0% found this document useful (0 votes)
29 views31 pages

D386 Study Guide-2

The document provides an overview of operating systems, detailing various types such as single-user, mobile, mainframe, network server, real-time, embedded, distributed, and cloud-based systems, along with their functionalities and lifecycle. It also covers hardware components, particularly motherboards and CPUs, explaining their architecture, features, and storage options including HDDs, SSDs, and RAID configurations. Additionally, it discusses the importance of system calls, memory management, and different data transfer methods in operating systems.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
29 views31 pages

D386 Study Guide-2

The document provides an overview of operating systems, detailing various types such as single-user, mobile, mainframe, network server, real-time, embedded, distributed, and cloud-based systems, along with their functionalities and lifecycle. It also covers hardware components, particularly motherboards and CPUs, explaining their architecture, features, and storage options including HDDs, SSDs, and RAID configurations. Additionally, it discusses the importance of system calls, memory management, and different data transfer methods in operating systems.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 31

★ Operating Systems - primary purpose is to act as a resource manager

○ COHORT Operating systems


○ Types of OSs
■ Single-user systems - Personal computer, workstation, multi-tasking,
found in laptops and desktops
● Manages resources (CPU, memory, hard drive, peripherals) of a
computer
● Provides a GUI for the user to navigate
● Examples: Windows, Mac, Linux (GNOME, KDE)
■ Mobile device systems - Small hand-held devices like phones, tablets, e-
readers
● Cameras, mobile phones, smartphones and tablets contain non-
magnetic storage media
● Static magnetic fields near those devices cannot delete data
● Android 70% market share, iOS 28% market share
■ Mainframe systems - Large-scale platforms and enterprise environments
■ Network server systems: Designed for specific purpose like database or
web server
● Uses a command line interface (CLI) or GUI to control applications
and services
● Thin client - Computers that are connected to a networked server.
The computer contains the minimum amount of hardware required
for the user to interact with the system. The server does the "hard
work," including booting, storing data, and performing calculations.
● Examples: Windows Server, Linux, and Unix
■ Real-Time Operating Systems (RTOS) - Systems that need to act in real
time. Examples: air traffic control, process control, autonomous cars.
● Runs multi-threaded applications and can meet real-time
deadlines.
● Usually no user interface and designed to run multiple
applications, often with multi-threading
● OfferS other benefits like resource and file management and
device drivers.
● Sometimes used in embedded systems, such as for pacemakers
■ Embedded control systems - Designed to control single piece of
equipment; ie thermostat
● Provide a light-weight kernel that runs on low-powered hardware
● Designed to manage the resources of a device
○ Sensor, controller, other internet of things (IoT) devices-
like a fridge or microwave
● Examples: FreeRTOS and VxWorks
■ Distributed systems - Allocates process power, programs files, to network
users
■ Cloud Based (Virtual) Operating System - Designed to function in a cloud
or virtualized environment. Primarily stateless.
■ Barebones Computer System - System that can run only one program at
a time with no memory or I/O.
○ Functionality
■ Emulator - Computer or program that emulates or imitates another
computer or program. For example, emulators make it possible to run
Windows on a Mac computer and vice versa
■ Cross-platform application - May run on many platforms, or as few as two
● Linux, macOS and Microsoft Windows
● Some frameworks for cross-platform development are Codename
One, ArkUI-X, Kivy, Qt, Flutter, NativeScript, Xamarin, Phonegap,
Ionic, and React Native.
■ Multiprogramming - Multiple programs execute at the same time on a
single device
■ Multitasking - Allows multiple programs and processes to run on a
computer system simultaneously. Manage allocating system resources
such as CPU time, input/output devices, and computer memory.
● Preemptive - Each process is allocated an equal share of
computing resources
● Cooperative - Non-preemptive. Legacy technique, allocates an
entire CPU to a single process either until the time a process is
completed or until it yields control back at suspension
pointspoints.
● Hybrid - The preemptive multitasking part interrupts the running
process to allow other processes to run, whereas cooperative
multitasking allows the process to yield control voluntarily
■ Concurrency - ability of multiple threads to access shared resources
simultaneously
■ Batch processing - The method computers use to periodically complete
high-volume, repetitive data jobs
■ Process control block - data structure used by a computer operating system
to store all the information about a process
■ SMART - Self-Monitoring, Analysis, and Reporting Technology. Monitoring
system included in HDDs and SSDs
○ HCL - Hardware Compatibility List. List of computer hardware components,
typically including many types of peripheral devices, that are compatible with a
particular operating system or device management software.
○ System calls - how a program requests a service from the kernel of the operating
system, responds via the API.
■ Process control - Manage processes
■ File management - Manage files
■ Device management - Manage devices
■ Information maintenance - Manage process, file or device metadata
■ Communication - Communication connections. Messages. Transfer status
information. Attach or detach remote devices.
■ Protection - Manage file permissions
○ Operating system life cycle - Refers to the time when the OS is introduced to the
time in which the OS is no longer supported
■ End-of-life (EOL): OS will no longer receive updates
■ Life cycle terms
● Alpha, Beta, Release Candidate, Current, Service Pack,
Mainstream Support, and
● Extended Support - Only critical security updates no hotfixes
★ Hardware
○ Motherboard - Main printed circuit board in a computer, backbone through which
all components and external peripherals connect.
■ TRAINING Section 3, Motherboards: 13, 14, 15, 16, 17
■ COHORT Hardware
■ Form Factors
● Advanced Technology eXtended (ATX) – Full-sized motherboards
usually found in desktops
○ 12” X 9.6”
○ 7 Expansion slots run parallel to the 9.6” side
○ Vertical ridges
● Mini ATX
○ Smaller size w/ same features of ATX
○ 7 Expansion slots run parallel to the 9.6” side
○ 11.2” X 8.2”
○ Less popular
● Micro ATX (mATX)
○ 9.6” X 9.6”
○ Only 4 expansion slots
○ Same screw holes as larger ATX versions
● Mini Information Technology eXtended (Mini ITX) – Made for small
form factor PCs and laptops
○ 6.7” X 6.7”
○ Only 1 expansion slot
○ Same screw holes as ATX
● Nano, pico, and mobile ITX – used for embedded computers
○ Size customized for specific need
■ Motherboard components
● CPU socket
○ Zero Insertion Force (ZIF) mechanism
○ Intel - Land Grid Array (LGA) - socket has the pins and
processor has the holes
○ AMD - Pin Grid Array (PGA) - processor has the pins and
socket has the holes
○ Single-socket - only one physical processor can be
supported. Limits capacity.
○ Multi-socket - more than one physical processor can be
supported
○ Mobile processors are soldered in place
● Northbridge – Fast, connected directly to the CPU via the front-
side bus
○ CPU, memory, and graphics cards.
○ Heatsink, removes heat from card
● Southbridge – Connected to the CPU through the northbridge,
handles slower I/O operations
○ Hard drives, USB devices, and audio
● Expansion Ports
○ Peripheral Component Interconnect (PCI)
■ 32-bit, older technology
■ Network, audio, modem cards
■ Usually 1 to 6 PCI slots
■ 33MHz, slow
○ PCI-X
■ 64-bit, older technology
■ Version 1 133MHz
■ Version 2 up to 533MHz
■ Fully backwards compatible
○ Accelerated Graphics Port (AGP)
■ Designed for attaching a graphics card to assist in
the acceleration of 3D computer graphics
■ Older technology
○ PCIe x# (PCI Express)
■ Modern technology
■ Number is how long the bus is
■ x1 - modems, network cards, i/o devices, audio
■ x16 - Most common for graphics cards
■ 4GB/s of bandwidth per direction and 8Gb/s
concurrent
● BIOS - Chip containing software which instructs the computer how
to perform basic functions like booting and keyboard control.
○ Used to identify and configure the hardware in a computer
such as the hard drive, CPU, memory, and related
equipment.
○ Manages data flow between the computer's operating
system (OS) and attached devices
● CMOS battery – small battery directly on motherboard, ensures
that BIOS and southbridge settings are saved
● Port cluster – generally located on the rear of the motherboard
○ CPU – principal part of any digital computer system, processes program
instructions for output via the instruction cycle
■ Parts of CPU:
● Arithmetic & Logical Unit (ALU) - performs arithmetic, logical, and
bitwise operations on integer binary numbers
● Control Unit (CU)
○ Orchestrates the fetching from memory
○ Decoding and execution of instructions
○ Directs the coordinated operations of the ALU, registers,
and other components
○ Performs function at a rate determined by the clock speed
● Memory Management Unit (MMU)
○ Manages data flow between main memory (RAM) and the
CPU
● Registers
○ Smallest data holding elements that are built into the
processor itself
○ Types of Registers
■ Accumulator - most frequently used register used to
store data taken from memory
■ Memory Address Register (MAR) - holds the
address of the location to be accessed from
memory
● MAR and MDR together facilitate the
communication of the CPU and the main
memory
■ Current Instruction Register (CIR - Holds the
instruction currently being executed.
■ Memory Data Register (MDR) - contains data to be
written into or to be read out from the addressed
location
■ Program Counter (PC) - used to keep track of the
execution of a program
● Contains the memory address of the next
instruction to be fetched
● Points to the address of the next instruction
to be fetched from the main memory when
the previous instruction has been
successfully completed
● Bus - transfers data between components. Referred to as address
bus, data bus, and memory bus.
■ Architecture - 64 or 32 bit data path refers to the amount of bits
transferred per clock cycle (more is faster)
● x86 - 8-bit, 16-bit, 32-bit
○ Developed by Intel
○ 32 compatible with 32 or 64 programs
○ 32 process up to 4GB RAM
● x64 - 64-bit
○ 64 only compatible with 64 programs
○ 64 process up to 16 Exabytes of RAM
● ARM - Advanced RISC Machines
○ RISC - Reduced Instruction Set Computer
■ RISC utilizes a small, highly-optimized set of
instructions rather than the highly-specialized set of
instructions typically found in other architectures
■ Use code to do tasks
○ Extended battery life
○ Produces less heat
○ Currently mostly apple systems
■ Features
● Pipelining - Instead of a single instruction being executed per
clock cycle, the fetch-decode-execute portions are overlapped
○ Each step of the instruction cycle is being performed by
different parts of the CPU to increase throughput
● Multithreading
○ Simultaneous Multithreading (SMT), aka Hyper-Threading
■ Multiple parallel threads, allows CPU to execute
multiple threads of same process simultaneously
○ Symmetric Multiprocessing (SMP) - requires 2+ processors
and server-based OS
○ Multi-Core Package - Two or more processors inside one
chip.
○ Hardware assisted virtualization - run multiple systems on
a single physical host
● Programmed and Interrupt Initiated I/O
○ 2 modes for data transfer from the CPU to I/O devices:
○ Programmed I/O - Data transfer is initiated by the
instructions written in a computer program. Requires
constant monitoring of the peripheral device by the CPU
once the transfer is initiated. Time-consuming process that
keeps the processor busy needlessly, leads to wastage of
the CPU cycles
○ Interrupt Initiated I/O - Informs the interface to issue the
interrupt command when data becomes available and
interface is ready for the data transfer. Leaves the CPU
free to keep executing other tasks instead of waiting for I/O
task completion
■ Causes the CPU to deviate from what it is doing to
respond to the I/O transfer
■ CPU responds to the signal by storing the return
address from the program counter (PC) into the
memory stack and then branches to service that
processes the I/O request
■ After the transfer is complete, CPU returns to the
previous task it was executing
■ Much faster than programmed I/O
○ Direct Memory Access (DMA) - Allows I/O devices to
directly access memory with less participation of the
processor and reduced CPU load
■ DMA Controller – Hardware used to provide direct
memory access in order to reduce the burden of
programmed I/O on the CPU
● Type of control unit that works as an
interface for the data bus and the I/O
devices
● Contains an address unit, which generates
the address and selects an I/O device for
the transfer of data
● Dual Mode Processor - integrates two distinct processing units or
modes within a single chip. These two modes typically consist of a
high-performance mode and a power-efficient mode
○ Storage
■ TRAINING Section 7, Storage Devices: 46, 47, 48, 49
■ Hard Disk Drive (HDD) - Traditional, mechanical storage devices, use
spinning disks and magnetization to store data.
● VIDEO Hard drives
● Reliable and offer high storage capacities
● Suitable for storing large files and applications
■ Solid-State Drives (SSDs) - Electronic storage devices that use flash
memory to store data. Ideal for applications that require high-speed data
access.
● VIDEO SSD
● Advantages over HDDs:
○ Faster start-up and read times
○ No moving parts, quiet, more durable
○ Less power consumption and heat production
○ Higher data density per square centimeter
● Disadvantages over HDDs:
○ More expensive per byte
○ Limited to a finite number of write operations
○ Lower storage capacity
● SSD Connections
○ IDE, Parallel ATA (PATA)
■ Older technology
○ Serial ATA (SATA)
■ Replaced PATA
○ PCIe
■ Newer interface
■ Smaller footprint
■ Transmits data on up to four lanes
■ Supports NVMe (Non-Volatile Memory Express)
● Flash memory
● Fastest transfer speeds
● SSD Form Factors
○ mSATA - SATA interface only
○ M.2 - SATA or PCIe interface
■ Hybrid Drives
● Solid-state hybrid drive (SSHD)
○ OS sees an SSHD as single drive
● Dual-drive storage solution
○ Implemented and seen by OS as two separate drives
● Higher speeds than HDDs by using both fast flash memory
caches and slower spinning disks
● Provide greater durability than SSDs because they do not rely
solely on flash memory
● Cost is lower compared to buying two separate components (e.g.,
an HDD plus an SSD)
● HHDs offer better performance, higher reliability, lower power
consumption, heat dissipation, and longevity when compared to
either HDD or SSD alone
■ Optical
● Standard single-layer DVD can store up to 4.7 GB of data
● Dual-layer DVD up to 8.5 GB
■ USB flash drives - small and portable storage devices that use flash
memory to store data. Convenient and easy to use, making them suitable
for transferring files between computers and devices.
■ Memory cards - Memory cards are small storage devices that are
commonly used in digital cameras, smartphones, and tablets. They are
compact and provide high storage capacities, making them suitable for
storing photos and videos.
■ Network Attached Storage (NAS)
● Connected to a network and can be accessed by multiple users
● Usually has multiple drives
● Multiple RAID configurations
● Easily upgraded
● HDD and/or SSD
■ RAID (Redundant Array of Independent disks) - increase storage
capacity, improve redundancy, improve speed.
● VIDEO RAID
● Typically related to servers, NAS, and SAN devices
● Requires matching drives, all same size and speed
● Levels of RAID:
○ RAID level 0: disk striping. Written across two or more
disks. Faster data access, but if any of the drives fail, all
data is lost
■ Adds speed, no redundancy
■ Minimum of two disks required
■ If one disk is lost, all data is lost
○ RAID level 1: all data is written simultaneously to two
drives. Slower writing, but provides a backup.
■ disk mirroring
■ Adds redundancy
■ Minimum of two drives required
■ One disk can be lost without losing data
○ RAID level 5: Spreads data and parity among all drives. If
one drive fails, the parity information can be used to
rebuild the data on a new drive.
■ Block-interleaved distributed parity
■ Adds speed and redundancy
■ Minimum of three drives required
■ One disk can be lost without losing data
○ RAID level 6: Similar to RAID 5, but stores two sets of
parity information to provide redundancy in the event of
two drive failures.
■ Also called the P + Q redundancy scheme
■ Adds extra redundancy
■ Two disks could be lost without losing data
○ RAID level 10
■ 1 + 0, drives are mirrored in pairs and then the
resulting mirrored pairs are striped
■ Adds speed and redundancy
■ Minimum of four drives required
■ One disk can be lost without losing data
○ Memory - a hardware device used to store computer programs, instructions, and
data
■ TRAINING Section 5, System Memory: 32, 33, 34, 37
■ Cache Memory
● VIDEO CPU cache
● CPU Cache - Stores copies of data from frequently used main
memory locations
○ Smaller and faster than RAM
○ Buffer between the CPU and RAM
○ Uses SRAM (static random access memory)
■ Doesn’t need to be refreshed (hence, static vs
dynamic)
■ Faster and more expensive than DRAM
● Levels of cache, located on the processor
○ Level 1, primary cache
■ Fastest and smallest
■ One per core
○ Level 2, external cache
■ Larger and slower than level 1
■ One per core
■ Catches recent data accesses from the processor
not caught by level 1 cache
○ Level 3, shared cache
■ Larger and slower than level 2
■ Shared between all CPU cores
■ Catches recent data accesses from the processor
not caught by level 2 cache
○ If the needed data is not found in cache L1, L2, or L3, the
CPU will go to the RAM for the data
■ RAM (random access memory) - Volatile, gone if power is lost. Stores
data CPU needs for current processing. Large and high capacity.
● VIDEOS RAM
● DRAM (dynamic random access memory) - Stores bits of data in
capacitors and transistors. Needs to constantly be refreshed (new
electrical charge) to prevent charge leaks from the capacitor and
data loss.
○ VIDEO DRAM
○ ADRAM (asynchronous DRAM)
■ Not tied to the system clock
■ Older model
○ SDRAM (synchronous DRAM)
■ Runs in sync with the system clock
■ Operates same speed as the motherboard bus, but
slower than the CPU
■ 66-266 MHz bus (example PC66 = 66 MHz bus)
■ Faster than DRAM
● DDR SDRAM (double data rate synchronous DRAM) -
synchronizes memory speed with CPU clock speed. Doubles the
speed of RAM by sending data on the rising and falling edge of
the clock signal (clock signals are timed electrical pulses). Levels
not interchangeable.
○ DDR1 SDRAM
■ 2X faster than SDRAM
■ Example: 1600 MB/s throughput (PC-1600)
■ 184 pin connector
○ DDR2 SDRAM
■ Faster and more power efficient, and higher
latency, than DDR1
■ Example: 4200 MB/s throughput (PC2-4200)
■ 240 pin connector, keyed
○ DDR3 SDRAM
■ Twice as fast as DDR2, uses even less power,
increased latency
■ 6.4 - 17 GB/s throughput (example: PC3-10600 =
10.6 GB/s)
■ Maximum module size 8 GB per module
■ 240 pin connector, keyed
○ DDR4 SDRAM
■ Higher speeds, uses less power
■ 12.8 - 25.6 GB/s throughput (example: PC4-16000
= 16 GB/s)
■ Maximum module size 32 GB per module
■ 288 pins
○ DDR5 SDRAM
■ Doubles the speed of DDR4 to 6.4 Gbps.
■ 38.4 - 51.2 GB/s throughput (example: PC5-42000
= 42 GB/s)
■ Maximum module size 128 GB per module
■ 288 pins
○ Memory Slot Form Factors:
■ DIMM (dual memory in-line module) - Module
connected to the motherboard’s memory slots two
separate rows of different pins. Used in desktop
computers and servers
● Usually >= 240 pins
● Support higher memory capacity and
speeds vs SO-DIMM
● 64 bit
■ SO-DIMM (Small Outline DIMM) – Smaller version
of DIMM used in laptops, compact desktops
● Usually <= 204 pins
● Example SODIMM PC4-16000 = DD4
SODIMM 16 GB/s
○ Multichannel architecture - increases channels of
communication from CPU to memory modules
■ Dual - all DDRs, DDR5 one stick
■ Triple - DDR3
■ Quad - DDR3 and DDR4, DDR5 two sticks
■ Single 64, dual 128, triple 192, quad 256
■ Best to have the same storage, speed, frequency,
manufacturer. Sold in matching kits.
● Virtual RAM
○ Disk storage acts as additional RAM
○ Used to compensate for insufficient RAM during heavy
multitasking or resource intensive processes
○ Frees up RAM by swapping data that hasn’t been used
recently over to a storage device (HHD/SSD)
○ Referred to as a “paging file” on Windows and “Swap
Space” on Mac/Linux
● Error detection
○ Parity - checks one bit per byte. Sum of byte odd or even.
Detects but does not repair corrupted byte..
○ ECC - checks two bits per byte for variance. Detects
corrupted byte, interprets and repairs corrupted byte.
■ ROM (read-only memory) - Permanent, slower memory. Used to boot the
computer. Small and low capacity
● PROM (Programmable ROM) - contents can be changed once
after manufacture. Data then permanent, cannot be changed.
● EPROM (Erasable PROM) - can be erased and reprogrammed
★ Virtualization and Cloud Computing
○ TRAINING Section 8, Virtualization: 54, 55, 56, 57
○ VIDEO Virtualization
○ COHORT Virtualization/Cloud computing
○ Virtualization - simulating hardware and software in a virtual environment
■ Benefits:
● Save money on hardware, resources, maintenance
● Portability, easily transferred to another physical machine
● Takes advantage of full computing ability of a machine
● Easily backed up for disaster recovery
■ Purposes:
● Simulation of computers, operating systems, storage, and
networking
● Virtual Sandbox - secure and isolated environment in which users
can safely test software or perform other tasks without risking
damage to their computer or network.
○ Can be easily reset to a previous state
○ Useful for testing malware or other malicious software
● Application Virtualization - the process of running older
applications in a virtual environment, rather than on the original
hardware or operating system for which they were designed
● Hyperconverged Infrastructure - full integration of storage,
network, and servers without hardware changes
● Virtual Desktop Infrastructure (VDI) - hosts desktop OSs within a
virtualized environment hosted by a centralized server
● Cross-platform virtualization - Allows testing and running software
applications for different operating systems
○ Allows software applications or entire operating systems to
be run on a variety of different systems without
modification.
○ Popular cross-platform virtualization technologies
available: VMware, Parallels, VirtualBox
● Training - create lab environments, take snapshots
○ Virtual Machines (VMs) - Software simulations of a computer system. Runs on a
host computer installed with a hypervisor (virtualization software) and can
provide multiple complete operating system environments to run applications and
processes just like a physical computer.
■ VIDEO Virtual machines
■ Hypervisors are used to create and manage virtual machines and come in
2 types:
● VIDEO Hypervisor
● Type 1, Bare-metal hypervisor - runs directly on the host system's
hardware, without need for an underlying operating system
○ Data centers and enterprise environments where
virtualization is a critical part of the infrastructure
○ VMs created on top of this layer, isolated from host system
and other VMs running on same hypervisor
○ Known for their efficiency, performance, scalability, and
security.
○ Link to other type 1 hypervisors to provide load balancing
and high availability.
○ Faster and more efficient than Type 2
○ Example providers: vmWare ESXi, Citrix XenServer, and
Microsoft Hyper-V
● Type 2, Hosted hypervisor - the virtualization layer sits on top of
the host OS and creates virtual machines within it
○ Typically used for desktop virtualization, development,
testing, and other non-critical applications
○ Less efficient than Type 1, the host OS must manage the
resources of the VMs in addition to its own
○ Easier to install and manage than Type 1
○ Can be used on a wider range of hardware and operating
system platforms
○ Example providers: Oracle VM VirtualBox, VMware
Workstation, Microsoft Virtual PC, and Parallels Desktop.
■ Benefits
● Resource management - an be configured to use specific
amounts of CPU, memory, and storage resources
● Process isolation - isolated environment that can run applications
and processes independently from the host operating system
● Security - if a VM is compromised, the attacker will only have
access to the VM's resources, rather than the entire host machine.
● Scalability - can be easily created, cloned, and deleted, which
makes it easy to scale up or down the number of computing
resources available.
● Compatibility - can run different operating systems, making it
possible to run applications that require specific operating systems
or software configurations.
■ Examples of providers: VMWare Fusion, Oracle Virtual Box, Windows 10
Hyper-V
○ Containerization - lightweight virtualization technology used to provision an
isolated execution environment for an application. Relies on a common host OS
(almost always Linux) as the base for each container. Often used in cloud-native
application development
■ VIDEO Containers vs VMs Virtual machine vs containers
■ Benefits:
● Provides an isolated environment for an application, along with all
the necessary dependencies and libraries, process isolation
● Easy to move applications between different environments for
development, testing, and production
● container image, includes all the necessary files, libraries, and
dependencies required to run the application
● Can be started, stopped, and restarted quickly and easily, making
it easy to scale applications up or down as needed
● Infinitely portable by moving one file, the container image
● Can package and deploy individual services independently of one
another, making it easier to update, scale, and maintain the
application as a whole
● Fewer resources needed than VMs due to sharing same host
operating system
■ Potential problems:
● Containers cannot interface with each other without a virtual
network
● If host OS is compromised, all containers are effected
● If physical server crashes, all containers are effected
● If physical server is compromised, poses security risk to all
containers
● Container image must be packaged to work with specific operating
system
■ Container providers: Docker, Kubernetes (open-source), and Amazon
Elastic Container Service (ECS), Parallels Virtuozzo, OpenVZ
○ Cloud Computing
■ TRAINING Section 9 Cloud Computing: 62, 63, 64, 65, 66
■ VIDEO Cloud computing
■ Cloud computing - the delivery of computing resources, including servers,
storage, databases, software, analytics, and intelligence, over the internet
(the cloud). Providers: Amazon Web Services (AWS), Microsoft Azure,
and Google Cloud Platform.
● Features
○ High availability - very little downtime, 99.999% up time
○ Scalability - increase or decrease IT resources as needed
to meet changing demand
■ Scaling up / vertical - increase power/size of
resources like processors, RAM, storage,
bandwidth
■ Scaling out / horizontal - increase the number of
resources like servers or VMs. Work together using
a load balancer.
○ Rapid elasticity - ability to quickly scale up or down in real
time
○ Metered service - pay per use basis, pay for what you use
○ Shared resources - pooling hardware to reduce costs
○ File synchronization - data accessible from multiple
locations, streamline transfer
■ Cloud Deployment Models
● Public Cloud - infrastructure is owned and managed by a third-
party cloud service provider and are available to the public over
the internet
● Private Cloud - infrastructure is owned and managed by a single
organization and the cloud services are only available to the
members of the organization
○ High up-front costs
● Hybrid Cloud - A hybrid cloud is a combination of public and
private cloud infrastructure. An organization can use a
combination of on-premises and cloud-based services to meet
their specific business needs.
● Community Cloud - A community cloud is a cloud infrastructure
shared by several organizations with similar interests, such as a
group of healthcare organizations or educational institutions.
● Multitenancy - multiple customer share scalable resources
● Single tenancy - single customer uses scalable resources
■ Cloud service models
● VIDEO Cloud service models

● Infrastructure as a Service (IaaS)


○ Provides virtualized hardware to run a server
○ Can include operating system, but not infrastructure
software. Example: AWS EC2
○ Provider is responsible for maintaining the physical
hardware and infrastructure
○ User is responsible for managing the software,
applications, and data that run on the virtualized
infrastructure
○ Allows users to easily scale up or down computing
resources based on needs without having to invest in
hardware or maintenance and upgrades
● Platform as a Service (PaaS)
○ Provides a platform on which developers can build and
deploy web applications without having to worry about the
underlying infrastructure
○ Provides a development and deployment environment that
includes the OS, web server, and database
○ Scalable, flexible, and cost-effective solution for application
development and deployment
● Software as a Service (SaaS)
○ Provides a complete software application that is accessed
and used over the internet, without the need for any
installation or maintenance on the user's end
○ Software vendors host and maintain the software
○ Users only pay for the services they use on a subscription
basis
● Desktop as a Service (DaaS)
○ Provider takes care of maintenance, backup, updates, and
data storage
○ Providers may also handle security and applications for the
desktop
○ There are two kinds of desktops that are available:
■ Persistent desktop - Users have the ability to
customize and save a desktop so it will look the
same way each time a particular user logs on
● Require more storage than non-persistent
desktops, which can make them more
expensive.
■ Non-persistent desktop - Desktops are wiped each
time the user logs out
● simply access shared cloud services
★ Software
Functional / Non-Functional Requirements - qualities of a product, part of
acceptance criteria
■ VIDEO Nonfunctional requirements
■ COHORT Nonfunctional requirements (through 25:50)
■ Functional requirements – describes what a system must do and is
specified by the user
● Example – a messaging app must send messages
● User requirements and system requirements
■ Non-functional requirements (NFR) - Quality attributes. Specify how well
the system must perform. Derived from goals, values, concerns,
constraints, and competitor market.
● Example: a request should be processed within 10 seconds
● Basic NFRs
○ Performance - defines how fast a software system (or its
component) responds to certain users’ actions under a
certain workload
○ Scalability - the ability of a system or application to handle
an increasing amount of workload, data or users without
compromising performance, availability or reliability
○ Portability - determines if a system or its elements can
work in different environments and establishes how well
actions performed via one platform are run on another
○ Compatibility - defines how a system can coexist and
interact with another system in the same environment and
how well it can exchange data with external systems
○ Reliability - specifies how likely the system or its element
would run without a failure for a given period of time under
predefined conditions
○ Maintainability - defines the time needed for a solution or
its component to be fixed, changed to increase
performance or other qualities, or adapted to a changing
environment
○ Availability - describes how likely the system is accessible
to a user at a given point in time (one of the most business
critical requirements)
○ Security – ensures data within the system or its parts will
be protected against malware attacks, data breaches, or
unauthorized access
○ Usability - basically about user-friendliness (software must
be intuitive, easy to use, and meet the customer- only 1
question about RAID and it's about RAID 10.
○ Programming
■ COHORT IDEs, text editor, programming basics
■ Development programs
● Text editor
○ Benefits: Fast to load, no auto complete, simple with few
menu choice
○ Examples: Notepad, TextEdit, Sublime, VS Code (text
editor with extensions)
● Integrated Development Environment (IDE) – software for building
applications that combines multiple developer tools in a single GUI
○ Benefits over text editor:
■ Time saving features like intelligent code
completion and indentation
■ Built-in debugger
■ Built-in interpreter or compiler
■ Many have customizable plugins
○ Features:
■ Source code editor - Add and edit code
■ Runtime environment - Run program, converts
source code to machine code
■ Syntax checking - Checks for potential errors while
coding
■ Keyword highlighting - Color codes command
words, variables, and data types
■ Debugging tools - Help detect and locate errors to
be fixed
■ Break point - Stop code at specific points to check
variables
■ Memory inspector - Displays content of memory to
help debug problems
■ Threading - View, suspend, resume and see status
of each thread
○ Common IDEs:
■ IntelliJ
● Java
● User-friendly, performance is poor
■ Eclipse
● Primarily Java and Android development
● Extensions for: XML, Python, JavaScript,
PHP
● Free to use, performance is poor
■ PyCharm
● Python
● Interface with Django, Flask, Google App
Engine
● Free to use
■ VS Code
● Supports almost every major language
● Free to use
● Microsoft
■ Visual Studio
● Primarily .NET, C++, JavaScript, XML,
HTML, and CSS
● Often used for web development
● Microsoft
■ NetBeans
● Java, JavaScript, HTML and Android
development
● Used for building desktop, mobile, and web
applications
■ Xcode
● C, C++, Objective-C, Objective-C++, Java,
AppleScript, Python, Ruby, ResEdit (Rez),
and Swift
● iOS development
■ AWS Cloud9
● Supports 40+ languages
● Most popular: Node. js (JavaScript), Python,
PHP, Ruby, Go, and C++
■ Types of Programming Languages
● Compiled - Converted into machine code by a compiler before
running
○ OS / hardware specific
○ Runs quickly when in machine code
○ More difficult to debug, must be re-compiled after each
change
○ Examples: C, C++, C#, Java, Rust
○ Bootstrapping - process of using a compiler written in a
particular programming language to compile a new version
of the compiler written in the same language
● Interpreted / Scripted - Run one statement at a time by an
interpreter
○ Slower than compiled languages, translated one line at a
time
○ Can run on any machine that has an interpreter
○ Able to modify while running
○ Easier for newer developers to use
○ Examples: Python, Coral, JavaScript, Ruby, MATLAB
● Object Oriented Programming (OOP) languages
○ C++, C#, Python, Java
○ Useful for code reuse
○ Technology Stack - Set of technologies used to build an application.
■ COHORT Tech stacks and customizations Tech stacks powerpoint
■ Types:
● Front-end stack - Used to build the user interface of the
application
○ Client side
○ Languages: HTML, CSS, JavaScript, TypeScript
○ Frameworks: React, Vue, Angular
● Back-end stack - Used to build the functionality, internal workings,
of the application
○ Server side
○ Includes server, database, languages, and frameworks
■ Frameworks: Express, Django, Ruby on Rails
■ Web servers: Apache, Nginx, Lighttpd, IIS
● Full Stack - combines front-end and back-end stacks
■ Components with examples:
● Front-end user interface - HTML, CSS, JavaScript
● Front-end frameworks
○ Vue - Simple JavaScript framework, UI development,
streamlined
○ React - JavaScript framework supported by Meta, UI and
mobile app development most popular, slower, more
versatile, cross-platform development
○ Angular - Single-page client applications using HTML and
Microsoft TypeScript
● Front-end styling - Bootstrap, Tailwind CSS
● Programming languages - Node, Java, Python, PHP
● Back-end web application frameworks
○ Spring - Java framework, high-performing applications
○ Django - Python based framework, backend web
applications
○ ASP.NET - Created by Microsoft, used for building modern
web apps and services
● Full-stack web application framework
○ Ruby on Rails
■ Web development, data processing, automation
■ Flexible and portable.
○ Apache Hadoop
■ Java-based software platform
■ Manages data processing and storage for big data
applications
■ Components:
● HDFS (Hadoop Distributed File System) -
Allows large data sets to be stored across
nodes in a cluster in a fault-tolerant manner
● YARN (Yet Another Resource Negotiator) -
Used for cluster resource management,
planning tasks, and scheduling jobs that are
running on Hadoop
● MapReduce - Both a programming model
and big data processing engine used for the
parallel processing of large data sets.
○ Originally the only execution engine
available in Hadoop
○ Later, Hadoop added support for
others, including Apache Tez and
Apache Spark
● Hadoop Common - Provides a set of
services across libraries and utilities to
support the other Hadoop modules.
● Database - MongoDB, CouchDB, MySQL
○ MongoDB - NoSQL document-oriented open source
database
■ Stores data in BSON format, better storage
efficiency
■ Flexible and powerful querying system, supports
complex queries with aggregation and indexing
■ Better suited for high-throughput applications with
large datasets
■ More advanced security features such as field-level
encryption, data masking, and auditing
■ Large and active community, comprehensive
documentation and support resources
○ CouchDB - NoSQL document-oriented open source
database
■ Stores data in JSON format, widely used and easy
to work with
■ MapReduce-based querying system, less flexible
but more efficient for large datasets
■ Replication is more robust and easy to set up, with
built-in support for conflict resolution and
synchronization
■ Better suited for distributed applications with a high
degree of data synchronization
■ Small but dedicated community, simpler and more
lightweight codebase
○ MySQL - Relational database
● Event and messaging
○ Kafka - Stream processing system used for messaging,
website activity tracking, metrics collection and monitoring,
logging, event sourcing, commit logs, and real-time
analytics
● Infrastructure (Cloud) - Azure, AWS, Google Cloud
● Virtualization - Kubernetes is a platform for container runtimes like
Docker
● Mobile applications -
○ Android apps use Java programming language
○ iOS apps use Swift programming language
■ Advantages - Tried and tested
● Flexibility - Easy to modify project as it develops
● Efficiency - Pre-existing libraries and frameworks
● Reliability - Well-used stacks, better expectations
● Scalability - Easy to add more users, traffic, storage
● Speed and Performance - Optimized frameworks help build quick
and efficient projects
● Support - Existing support community
■ Common Tech Stacks

● LAMP
○ Components:
■ Linux - Operating system
■ Apache - Web server
■ MySQL - Relational database
■ PHP - Programming language
○ For hosting websites and web applications on a Linux
machine
○ All four components are open source
○ Backend stack
● WAMP
○ Components:
■ Windows - Operating system
■ Apache - Web server
■ MySQL - Relational database
■ PHP - Programming language
○ Only difference between LAMP is the OS (Linux vs.
Windows)
○ Backend stack
● MEAN
○ Components:
■ MongoDB - Document database
■ Express - Node.js web framework
■ Angular - Web application framework
■ Node.js - JavaScript web server
○ For building dynamic web apps
○ Open source end-to-end JavaScript stack
○ Largely used for cloud-hosted applications, very flexible
and scalable
○ Full stack
● MEVN
○ Components:
■ MongoDB - Document database
■ Express - Node.js web framework
■ Vue.js - Web app framework
■ Node.js - JavaScript web server
○ *MEVN is more similar to MEAN than MERN*
○ Full stack
● MERN
○ Components:
■ MongoDB - Document database
■ Express - Node.js web framework
■ React- Web application framework
■ Node.js - JavaScript web server
○ Full stack
○ Security Risks
■ Viruses - Type of malware designed to replicate itself. Running a program
can spread a virus. May or may not cause problems.
● VIDEO Viruses and worms
● COHORT Viruses (starting at 25:50)
● Types of viruses:
○ Armored - Complex code structures to prevent detection
○ Boot - Infects boot sectors of the hard drive. Turning on the
computer will trigger the virus to spread.
○ Trojans – Appears to be a legitimate program, but
performs malicious actions
■ Attacker usually uses social engineering to trick the
user into downloading or installing
■ Can spoof products by using the same icons and
names
○ Rootkits - Conceals malicious activities by altering system
functions to hide itself
■ Software that allows for stealthy presence of
unauthorized functionality in the system
■ Used when the attackers need to backdoor a
system and remain unnoticed access as long as
possible
○ Botnet - Networks of compromised devices controlled
remotely
■ VIDEO Distrubuted Denial of Service (DDOS)
■ Common uses: DDoS attacks, spam campaigns,
and click fraud
■ From the moment of infection, botnet agents keep
in touch with their remote Command-and-Control
server
○ Companion - Appears to be a legitimate file, similarly
named as a familiar executable, but executes malicious
code when opened
○ Macro Virus - Embedded in Microsoft Office files. Uses the
mini-basic programming language
○ Stealth - Any virus that attacks while trying to avoid
detection
○ Polymorphic virus - Constantly changes its code to create
new variants and avoid detection
○ Ransomware -Specified data or systems held captive by
attackers until a form of payment or ransom is provided
○ Worms - Malware that self-replicates without user action.
Uses the network as a transmission medium. Firewalls can
mitigate infestations.
● Vectors for infection - Spam emails, instant messaging, file-
sharing services, fake antivirus downloads, unpatched software,
infected hardware
■ Non-Virus attacks:
● Unauthorized access
● Privilege escalation
● Insider threats
● Phishing - Trick users into providing sensitive information
● Code and SQL Injection - Inserted into applications or queries to
gain unauthorized access
● Man in the MIddle - Intercept of communication to eavesdrop,
manipulate, or impersonate.
★ Networking
○ COHORT Networking
○ Networking Hardware:
■ VIDEO Routers, switches, access points
■ Network Interface Card (NIC) - hardware component, typically a circuit
board or chip, installed on a computer so it can connect to a network
■ Hub - The dumb versions of switches
● Message is broadcast to every port on the hub
● Considered obsolete due to inefficiency
■ Switch - Connects multiple devices together and forwards data packets
to/from those devices
● Only sends data to the device it is intended for
● Contains memory and knows which node is on which port
■ Modem - Processes signal from internet service provider and interfaces
with local network
■ Router - Creates local network, routes service to devices
■ Access Point - Allows devices to connect to a network wirelessly, often
combined with a router
■ Bridge / Gateway – Connects multiple sub-networks to create a single,
larger network
■ Firewall - Monitors traffic to or from your network. It allows or blocks traffic
based on a defined set of security rules.
■ Patch panel – mounted hardware assembly that contains ports used to
connect and manage incoming/outgoing LAN cables. Enables flexible
physical connectivity into a network and keeps cables organized.
■ CAT Cables:
● Made of unshielded twisted pair (UTP) wire
● Speeds:

○ Networking Architectures:
■ Client-server model – Centralized network where one or more devices, or
servers, provide services and resources to other devices, or clients.
● Clients request and receive data from servers which handle
processing and storage
● More reliable, secure, and efficient than P2P
● High cost, complex, and require maintenance
● Require specialized hardware and software and depend on the
functionality and available of the servers
● Suitable for large-scale, permanent, or formal applications, such
as web hosting, email, or database management
■ Peer-to-peer (P2P) - Each machine on the network can act as both server
and client (like Bitcoin and Tor)
● Easy to setup – minimal hardware and software requirements
● Users control their own data and resources
● Limited performance, reliability, and security
● Suitable for small-scale, temporary, or informal applications
(gaming, file sharing, and messaging)
■ Web server – software and hardware that uses HTTP and other protocols
to respond to client requests made of the web
● Web server providers: Apache, Nginx, LiteSpeed, Microsoft-IIS
○ Network Topologies:
■ VIDEO Network topology Network topologies
■ Bus - A single line of devices connected together by one shared network
cable, outdated
● Computers connect to the network by physically tapping into the
network cable
● Devices cannot send and receive simultaneously due to collision
along single line of communication
● Not secure or private, all computers attached to the network will
receive any and all traffic sent on the network
● Inexpensive, easy to install, and difficult to reconfigure
● Failure on the network cable means complete network failure
■ Star (hub-and-spoke) - Composed of a central network device connected
to various network devices by individual network cables
● All communication is sent through a central access point
● Most common type of network found in LANs
● Versatile. Cables can be run through a building, making moving
and hooking up equipment easier
● Break in comm line only affects a single device
● Failure of switch means complete network failure
■ Ring - Connects devices with exactly two neighboring devices
● Doesn’t have to actually look like a ring.
● Data flows in one direction (can be made bidirectional by having 2
connections between each node called a 2 ring topology)
● Reduces collision since everything travels in one direction
● Cheap to install and expand
● Pass tokens. A token is a frame of data transmitted between
network points.
● Break in the connection means complete network failure
■ Mesh - Connects every device to every other device
● Very high fault tolerance
● Not reasonable at high numbers
● Expensive to add new nodes
● Can establish new connections around failed nodes as needed
● Usually Wi-Fi with multiple routers
■ Tree – a variation of the star topology with a hierarchical flow of data
● Multi-point connection and a non-robust topology because if the
backbone fails the topology crashes
● Allows the network to get isolated and prioritize from different
computers
● Error detection and correction are easy
● High installation cost (due to cabling)
● Adding devices can make reconfiguration difficult
■ Point to Point - One point connecting to another point
○ Area Network Types:
■ VIDEO Network types
■ Personal Area Network (PAN) - Centered around a person and their
devices
● Like Bluetooth
■ Local Area Network (LAN) – Connected in a limited area, like home or
office
● Most often Ethernet, Wi-Fi, or both (it can be wired or wireless)
■ Campus Area Network (CAN) - Multiple LANs across a limited area
● Like a university campus or a group of buildings owned by a
company.
■ Metropolitan Area Network (MAN) – Covers a whole city or the equivalent
of a metropolitan area
● Made up of multiple LANs owned by many entities
■ Wide Area Network (WAN) - Covers a large geographical area (like the
internet)
● Mate up of two or more LANs, geographically remote
■ Wireless Local Area Network (WLAN) – same as LAN but wireless
● Wi-Fi
■ Storage Area Network (SAN) - network that allows access to storage
devices specifically
● Allow servers to access devices such as disk arrays
● Presented to OS like any other storage device
○ Protocols
■ VIDEO TCP vs UDP
■ Hypertext Transfer Protocol (HTTP) - Runs on top of other layers of the
network protocol stack. Used to load web pages using hypertext links
■ Transmission Control Protocol (TCP) - Ensures successful delivery of
data and messages
■ Internet Protocol (IP) – Network interface identification and location
addressing
■ Dynamic Host Configuration Protocol (DHCP) - Dynamically and
automatically assigns an IP address to any device, or node, on a network
so it can communicate using IP. Limited to a specific LAN.
■ Syslog Protocol - Send event data logs to a central location for storage.
Logs can be accessed by analysis and reporting software to perform
audits, monitoring, troubleshooting, and other essential IT operational
tasks.
■ Address Resolution Protocol (ARP) - Translates IP addresses to media
access control (MAC) addresses and vice versa.
○ Network Ports
■ VIDEO Network ports
■ VIDEO Common network ports
■ Port - Logical connection. Determines which program or service on a
computer or server is going to be used.
● Identified by a unique number 0-65535
● Always associated with an IP Address to identify the device where
the port is
○ IPv4 - Four sets of numbers ranging 0-255, separated by
periods
○ IPv6 - Eight sets of four hexadecimal digits, separated by
colons
● Common port numbers
○ System or Well-known ports 0-1023
■ FTP (File Transfer Protocol)
● tcp/20 Data, tcp/21 Control
■ SSH (Secure Shell)
● tcp/22 Encrypted
■ Telnet (Telecommunications network)
● tcp/23 Non encrypted
■ SMPT (Simple Mail Transfer Protocol)
● tcp/25 Send email
■ DNS (Domain Name System)
● udp/53 Converts names to IP addresses
■ DHCP (Dynamic Host Configuration Protocol)
● udp/67, udp/68 Automated configuration of
leased IP addresses
■ HTTP (Hypertext Transfer Protocol)
● tcp/80 Web server
● tcp/443 Web server with encryption
■ POP3 (Post Office Protocol version 3)
● tcp/110 Basic email reception
■ IMAP4 (Internet Message Access Protocol)
● tcp/143 Mailbox management and email
reception
■ SMB (Server Message Block)
● udp/137 NetBIOS find devices by name, old
● udp/139 NetBIOS set up session for transfer
● tcp/445 Direct connection between devices
■ SNMP (Simple Network Management Protocol)
● udp/161 Network queries
● udp/162 Network alerts or traps
■ LDAP (Lightweight Directory Access Protocol)
● tcp/389 Query Microsoft Active Directory
■ RDP (Remote Desktop Protocol)
● tcp/389 Windows remote sharing
■ Syslog Protocol
● udp/514 System logs
● tcp/1468 System logs with confirmed
delivery
○ User or Registered ports 1024-49151
■ Can be registered by companies and developers
for a price
■ Examples: 1102 Adobe, 1416 Novell, 1433
Microsoft SQL Server, 1537 Oracle
○ Dynamic or Private ports 49152-65535
■ Client computer assigns temporarily to itself
○ Networking Models:
■ OSI
● VIDEO OSI model
● 1. Physical Layer
○ Transmission of data
○ Physical Cabling, Network Interface Card
○ Electrical signals
● 2. Data Link Layer
○ Physical addressing, LAN delivery
○ L2 switches, Bridges
○ MAC address, switch
○ Ethernet
● 3. Network Layer
○ Routing data, logical addressing, WAN delivery
○ Fragments packets
○ L3 switches, Routers
○ IP address, router, packet
● 4. Transport Layer
○ End-to-end communication maintenance
○ Assembles packets
○ TCP segment, UDP datagram
● 5. Session Layer
○ Communication management between devices
○ SQL, RPC, NFS
○ Control protocols, tunneling protocols
● 6. Presentation Layer
○ Data format, encryption
○ JPG, MPG, PNG
○ Application encryption
○ Secure socket layer (SSL), transport layer security (TLS)
● 7. Application Layer
○ User interface, what we see
○ FTP, HTTP, IMAP, SMTP

■ TCP/IP - Transmission Control Protocol/Internet Protocol


● TCP/IP is essentially just a broader version of OSI - OSI is the
modern standard

○ Network Security:
■ Intrusion Detection System (IDS) – Monitors the network to detect threats
● Passive listening
● Works well in tap mode, connected to network to view traffic
● Sends an alert to the administrator about suspicious behavior
■ Intrusion Prevention System (IPS) – intercepts and blocks threats (acts)
● Must be positioned in in-line mode, actively block malicious traffic
● Nodes use routed cables connected to IPS device to create a
choke point
● Invisible on the network
■ Unified Threat Management (UTM) – a combination of IDS, IPS, next-gen
firewall (NGFW), antivirus, VPN, web-filtering, data loss prevention, and
anti-malware in a single device or service
● Essentially does all the things
■ AAA Network Security: (Authentication, Authorization, and Accounting)
● Authentication - the process of confirming a person’s identity
○ Username and password
○ 2-factor authentication
○ Using a 3rd party ACS (access control system) server
○ Biometrics (fingerprint scans, Face ID, retina scans)
● Authorization - determine what resources the user can access and
the operations that can be performed
● Accounting - monitoring and capturing the events done by the
user while accessing the network resources (it’s just auditing)
★ Quizzes
○ Quizlet 0
○ Quizlet 1
○ Quizlet 2
○ Quizlet 3
○ Quizlet 4
○ Quizlet 5
○ Quizzets

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy