Notes Flashcards

(244 cards)

1
Q

Version

A

A particular revision of a piece of software, normally described by a number.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Source

A

The actual code that defines how a piece of software works.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Shell

A

A program that runs on top of the OS and allows the user to issue commands.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Graphical User Interface

A

A method by which a person communicates with a computer using graphical images, icons, and methods other than text.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Network

A

Any group of computers that have a communication link between them.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Cooperative Multitasking

A

A multitasking method that depends on the application itself to be responsible for using the processor and then freeeing it for access by other applications.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Preemptive multitasking

A

A multitasking method in which the OS allots each application a certain amount of processor time and then forcibly takes back control.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Multithreading

A

The ability of a single application to have multiple requests in to the processor at on time.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

32-Bit

A

An operating system that can not only run on a 32-bit processor but can utilize the capabilities of the processor fully.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

64-bit

A

An OS that is written to utilize the instructions possible with a 64-bit processors.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

x86

A

Commonly used to refer to operating systems intended to run on the Intel processor.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

x64

A

Commonly used to denote operating systems that can run on 64-bit processors.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

ARM

A

Commonly used to denote operating systems that can run on Advanced RISC Machine processors. Usually found on tablet and phone processors.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Random Access Memory

A

Used to describe the amount of memory installed and accessible for an operating system.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Single-user Systems OS

A

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)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Mobile device systems OS

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Mainframe Systems OS

A

large-scale platforms and enterprise environments

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Network Server Systems OS

A

designed for specific purpose like database or web server.
○ Uses a command line interface (CLI) of 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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Real-time Systems OS

A

Systems that need to act in real time, ie in pacemakers, cars.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Embedded Control Systems

A

designed to control single piece of equipment, i.e. 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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Distributed Systems OS

A

allocates process power, programs files, to network users.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Barebones Computer System

A

a system that can run only one program at a time with no
memory or I/O.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Emulator

A

a 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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

Cross-platform application

A

may run on many platforms, or as few as two.
○ may run on Linux, macOS and Microsoft Windows
○ Some frameworks for cross-platform development are Codename One, ArkUI-X,
Kivy, Qt, Flutter, Native Script, Xamarin, PhoneGap, Ionic, and React Native.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Multiprogramming
multiple programs execute at a time on a single device.
26
Multitasking
allow multiple programs and processes to run on a computer system simultaneously. Multitasking operating systems help manage allocating system resources such as CPU time, input/output devices, and computer memory among programs that are running.
27
Preemptive multitasking
Each process is allocated an equal share of computing resources.
28
Cooperative Multitasking
non-preemptive. Legacy technique allocates an entire CPU to a single process till the time a process is completed.
29
Hybrid Multitasking
The preemptive multitasking part interrupts the running process to allow other processes to run, whereas cooperative multitasking allows the process to yield control voluntarily.
30
Multithreading
allows the CPU to execute multiple threads of the same process simultaneously.
31
Concurrency
ability of multiple threads to access shared resources simultaneously.
32
Batch processing
The method computers use to periodically complete high-volume, repetitive data jobs
33
HCL
Hardware compatibility list. list of computer hardware (typically including many types of peripheral devices) that is compatible with a particular operating system or device management software.
34
Process control
Manage processes
35
File management
Manage Files
36
Device management
Manage devices
37
Information Maintenance
Manage process, file or device metadata.
38
Communication
Communication connections. Messages. Transfer status information attach or detach remote devices.
39
Protection
Manage file permissions
40
Operating system life cycle
Refers to the time when the OS is introduces to the time in which the OS is no longer supported.
41
End-of-life (EOL)
OS will no longer receive updates
42
CPU
principal part of any digital computer system, generally composed of the main memory, control unit, and arithmetic-logic unit and processes program instructions for output via the instruction cycle.
43
Arithmetic Logic Unit (ALU)
performs arithmetic, logical, and bitwise operations on integer binary numbers.
44
Control Unit (CU)
orchestrates the fetching (from memory), decoding and execution (of instructions) by directing the coordinated operations of the ALU, registers, and other components.
45
Registers
the smallest data holding elements that are built into the processor itself. These are the memory locations that are directly accessible by the processor.
46
Supplies Operands
(values that operations are performed on) to the ALU and stores the results of ALU operations.
47
Accumulator
Most frequently used register used to store data taken from memory.
48
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.)
49
Memory Data Register (MDR)
Contains data to be written into or to be read out from the addressed location.
50
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.
51
Instruction Register (IR)
holds the instruction which is about to be executed. ○ The instruction from PC is fetched and stored in IR ○ Once in IR, the CPU starts executing the instruction and the PC points to the next instruction to be executed.
52
Pipelining
Instead of a single instruction being executed per clock cycle, the fetch-decode- execute portions are overlapped. Different parts of the CPU are performing each step of the instruction cycle to increase throughput.
53
32 vs 64
○ 32 compatibles with 32 or 64. 64 only compatible for 64 ○ 32 process up to 4GB RAM. 64 process up to 16 Exabytes of RAM 64- or 32-bit data path refers to the number of bits transferred per clock cycle (more is faster)
54
CISC - Complex instruction set computing
○ x86: group term to refer to operating systems that run on the Intel processor. ○ X86 CPU has better software compatibility.
55
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.
56
ARM - Advanced RISC Machine
■ Focuses on reduced power for mobile devices. ■ Also used for desktops and servers ■ Most widely used family of instruction set architectures.
57
Motherboard
main printed circuit board in a computer, central communications backbone connectivity point, through which all components and external peripherals connect.
58
CPU Socket
exactly what you’d think it is. (pin grid array (PGA) has the pins on the CPU and are AMD/land grid array (LGA) are Intel and have the connector pins directly on the motherboard.
59
Northbridge
connected directly to the CPU via the front-side bus (FSB) and handles high performance tasks such as CPU, memory, and graphics cards.
60
Southbridge
connected to the CPU through the northbridge and handles slower I/O operations such as hard drives, USB devices, and audio.
61
Accelerated Graphics Port (AGP)
designed for attaching a video card to a computer system to assist in the acceleration of 3D computer graphics.
62
Peripheral Component Interconnnect (PCI) Slots
used to install Add-on cards, such as LAN cards, Sound cards, Capture cards and TV tuner cards - usually anywhere from 1 to 6 PCI slots.
63
PCI Express (PCI-E)
16x slots -cis the most common for graphics cards (4GB/s of bandwidth per direction and 8Gb/s concurrent)
64
PCI-E 1x
used for sound and ethernet cards.
65
Integrated Device Electronics (IDE)
aka Parallel Advanced Technology Attachment (PATA) and Serial ATA (SATA) – connection HDD, SSD, optical drives (CD, DVD, and Blue Ray), and other mass storage devices ○ A standard single-layer DVD can store up to 4.7 GB of data, a dual-layer DVD up to 8.5 GB.
66
SATA
has replaced PATA/IDE and is much faster*
67
CMOS Battery
small battery directly on motherboard and ensures that BIOS and southbridge settings are saved.
68
Port Cluster
located on the rear of the motherboard.
69
Advanced Technology Extended (ATX)
full-sized motherboards usually found in desktops. ○ 12” X 9.6”/305mm X 244mm ○ Expansion slots run parallel to the 9.6” side. ○ Vertical ridges
70
Mini ATX
○ Smaller size w/ same features of ATX ○ 11.2” X 8.2”/284mm X 208mm
71
Micro ATX (mATX)
○ 9.62”/2442mm ○ Same features as ATX EXCEPT only has 4 expansion slots.
72
Mini Information Technology eXtended (Mini ITX)
made for small form factor PCs (laptops) ○ 6.72”/170mm2 ○ Only 1 expansion slot
73
Nano, Pico, Mobile ITX
used for embedded computers.
74
All ATX/ITZ models
will fit into a case that can hold a normal sized ATX due to screw hole standardization.
75
Memory
a hardware device used to store computer programs, instructions, and data.
76
DIMM(Dual Memory In-Line Module)
module connected to the motherboard’s memory slots w/ pins and “dual” because there are 2 separate rows of these pins that are different from one another. ○ Used in desktop computers and servers. ○ Usually, >= 240 pins and support higher mem capacity and speeds vs. SODIMM ○ All DIMM are 64 bit.
77
SODIMM(Small Outline DIMM)
Smaller version of DIMM used in laptops, compact desktops, and other small form factor systems. ○ Usually, <= 204 pins ○ Data and programs stored on the hard drive are loaded into RAM. ○ Once in RAM, the CPU can access the data/run the program. ○ Higher RAM increases performance since the data does not need to be constantly fetched from the hard drive and sent to RAM, since RAM can hold more data and is faster than fetching from the hard drive.
78
DRAM (Dynamic Random-Access Memory)
stores bits of data in capacitors that need to be continuously refreshed, hence ‘dynamic’ (capacitors leak)
79
SDRAM (Synchronous DRAM
■ Runs in sync with the system clock. ■ Faster than DRAM
80
ADRAM (Asynchronous DRAM)
■ Operates asynchronously from the clock cycle. ■ Slower than SDRAM
81
Virtual RAM
★ Process of transferring data from RAM to disk storage ★ Referred to as a “paging file” on Windows and “Swap Space” on Mac/Linux ★ Mapping memory chunks to disk files allows the secondary/external memory (drives that hold data permanently (SSD/HDD)) to be treated like primary memory (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) ★ FPM DRAM (fast page mode DRAM) ★ EDO DRAM (extended data out DRAM) ★ BEDO DRAM (burst EDO DRAM) ★ SDR SDRAM (single data rate SDRAM)
82
DDR SDRAM
○ Doubles the speed of RAM by sending data on the rising and falling edge of the clock signal (clock signals are timed electrical pulses) ○ 184 pins ○ 2X faster than SDRAM
83
DDR2 SDRAM
○ Faster and more power efficient than DDR ○ 240 pins
84
DDR3 SDRAM
○ Twice as fast as DDR2 and uses even less power. ○ 240 pins ○ Notches to attach to motherboard are in different places.
85
DDR4 SDRAM
○ 288 pins, higher speeds ○ Uses less power.
86
DDR5 SDRAM
○ Doubles the speed of DDR4 to 6.4 Gbps
87
CPU Cache
stores copies of data and instructions from RAM that’s waiting to be used by the CPU which allows it to access that data more quickly. ○ Faster than RAM (CPUs process data faster than RAM can feed it to the CPU) ○ Acts as a buffer between the CPU and RAM
88
SRAM (Static Random-Access Memory)
○ Type of memory that is used in CPU cache and doesn’t need to be refreshed (hence, static vs dynamic) ○ Faster and more expensive than DRAM
89
Level 1 Primary Cache
■ Located on the actual CPU. ■ Runs at the same speed as the processor and is the fastest cache on a computer. ■ Dedicated to its own CPU core.
90
Level 2
■ Used to catch recent data accesses from the processor not caught by level 1 cache. ■ Located on the processor, slower, and larger than level 1 cache. ■ Dedicated to its own CPU core.
91
Level 3
■ Catches recent data accesses from the processor that level 2 missed. ■ Also located on the processor, slower, and larger than level 2 cache ■ Shared between all CPU cores. ○ *If the needed data is not found in cache L1, L2, or L3, the CPU will go to the RAM for the data*
92
ECC
code that checks that data was processed correctly and makes any needed corrections.
93
ROM (Read-Only Memory)
○ used to boot the program.
94
Hard Disk Drive (HDD)
mechanical storage devices that use spinning disks to store data. They are reliable and offer high storage capacities, making them suitable for storing large files and applications.
95
Solid State Drive (SSD)
electronic storage devices that use flash memory to store data. They are faster and more durable than HDDs, making them ideal for applications that require high-speed data access.
96
Advantages of SSD
■ Faster start-up and read times. ■ Less power consumption and heat produced. ■ Silent operation ■ More reliable because of a lack of moving parts. ■ Less susceptible to damage from physical shock and heat production ■ Higher data density per square centimeter
97
Advantages of HDD
■ The technology to build an SSD is more expensive per byte. ■ Limited to a finite number of write (including erase) operations. ■ Lack of longevity could be an issue. As the technology matures, this is becoming less and less of a problem.
98
SSD Communication Interfaces
■ SATA ■ PCIe ■ NVMe
99
SSD Form Factors
■ mSATA ■ M.2
100
Solid-State Hybrid Drive(SSHD)
OS sees an SSHD as single drive
101
Dual-drive Storage solution
Implemented and seen by OS as two separate drives
102
Pros of Hybrid 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.
103
USB Flash Drives
USB flash drives are small and portable storage devices that use flash memory to store data. They are convenient and easy to use, making them suitable for transferring files between computers and devices.
104
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.
105
Network Attached Storage
NAS devices are storage devices that are connected to a network and can be accessed by multiple users. They provide high storage capacities and can be used for backing up and sharing data across a network. Scalable.
106
Cloud Storage
Cloud storage is a service that allows users to store and access data over the internet. It provides a convenient and secure way to store and access data from anywhere with an internet connection.
107
RAID Level 0 (Disk Striping)
stripes are written across 2 or more disks. Faster data access, but if any of the drives fail, all data is lost.
108
Raid Level 1 Disk Mirroring
all data is written simultaneously to two drives. Slower writing but provides a backup.
109
RAID Level 4 (User Error Correcting Code ECC)
ECC is also used in RAID 5 and 6.
110
RAID Level 5 Block-Interleaved distributed Parity
differs from level 4 in that it spreads data and parity among all N + 1 drives. If one drive fails, the parity information can be used to rebuild the data on a new drive.
111
RAID Level 6
also called the P + Q redundancy scheme, this configuration is like RAID 5, but it stores two sets of parity information to provide redundancy in the event of two drive failures.
112
RAID Level 10
★ 0 + 1 a combination of RAID levels 0 and 1 ★ 1 + 0, in which drives are mirrored in pairs and then the resulting mirrored pairs are striped.
113
Virtualization
the process of creating a virtual version of a physical IT resource such as a server, storage device, network or even an operating system.
114
Virtualization Requirements
○ Fidelity ○ Performance ○ Safety
115
Virtualization Pros
★ Enables multiple operating systems or applications to run on a single physical machine, allowing organizations to improve resource utilization, flexibility, and scalability while reducing hardware costs. ★ Enhance security by isolating workloads from one another (sandboxing) and allowing for easier backup and disaster recovery. There are several types of virtualizations, including server virtualization, storage virtualization, network virtualization, and desktop virtualization.
116
Virtual Machine
- Software emulations of a computer system.
117
Virtualization Pros
○ Provide an 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.
118
Types of VMs
● VMWare Fusion ● Oracle Virtual Box ● Windows 10 Hyper-V
119
Virtual Sandbox
★ - a secure and isolated environment in which users can safely test software or perform other tasks without risking damage to their computer or network. ○ Create an environment that is separate from the user's operating system, but that can run on the same physical hardware. ○ Can be easily reset to a previous state. ○ Especially useful when testing software. ○ Useful for testing malware or other malicious software
120
Virtualizing Legacy Applications
the process of running older applications in a virtual environment, rather than on the original hardware or operating system for which they were designed.
121
Cross Platform Virtualization
the ability to create and run a VM/container that can run on different operating systems and hardware platforms. ○ Allows software applications or entire operating systems to be run on a variety of different systems without modification.
122
Popular Cross platform technologies
VMware provides a range of virtualization solutions for desktops, servers, and cloud environments, allowing virtual machines to be created and run on a variety of different operating systems and hardware platforms.
123
Virtual Box
a free and open-source virtualization platform that allows virtual machines to be created and run on a variety of different operating systems, including Windows, Linux, and macOS.
124
Docker
a containerization platform that allows applications to be packaged and run on different systems, providing a lightweight and portable way to deploy applications across different platforms.
125
Type 1 (bare Metal) Hypervisor
○ Typically used in data centers and enterprise environments where virtualization is a critical part of the infrastructure. ○ Virtualization layer sits directly on the physical hardware and manages the resources of the host system, including CPU, memory, and storage. ○ VMs are then created on top of this layer, isolated from the host system and other VMs running on the same hypervisor. ○ Known for their performance, scalability, and security. ○ Ideal for enterprise virtualization deployments ○ Examples of Type 1 hypervisors include: VMware ESXi, Citrix XenServer, and Microsoft Hyper-V
126
Type 2 Hypervisor
the virtualization layer sits on top of the host OS and creates virtual machines within it
127
Type 1 vs Type 2
○ Less efficient than Type 1 hv because 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. ○ Examples of Type 2 hypervisors: Oracle VirtualBox, VMware Workstation, and Parallels Desktop.
128
Containers
lightweight virtualization technology used to package and deploy software applications. (See Container Notes)
129
Cloud Computing
the delivery of computing resources, including servers, storage, databases, software, analytics, and intelligence, over the internet (the cloud) to offer faster innovation, flexible resources, and economies of scale ○ Allows businesses to access infrastructure and services on-demand, without having to maintain and manage them on-premises. ○ Offers several benefits, including cost savings, scalability, agility, high availability, disaster recovery, and improved security.
130
Cloud "as a Service" (aaS)
cloud-based services that provide a variety of infrastructure, platforms, software, and data storage services to users ○ Cloud "as a service" benefits: flexibility, scalability, cost-effectiveness, and easy maintenance
131
Infrastructure as a Service (IaaS)
a cloud computing service model that provides virtualized computing resources over the internet ○ Provides virtualized computing resources, such as servers, storage, and networking, that can be used to build and deploy applications. ○ Allows businesses to rent computing infrastructure, including virtual machines, storage, servers, and networking hardware ○ Cloud service 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 ○ Examples of IaaS providers: Amazon Web Services (AWS), Microsoft Azure, and Google Cloud Platform.
132
Platform as a Service (PaaS)
service that provides a platform for developers to build, run, and manage applications without having to worry about the underlying infrastructure. ○ 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 ○ Also provides application development frameworks, testing tools, and deployment automation ○ Can be used for developing/testing web and mobile applications, enterprise applications, collaborative development, and rapid prototyping and experimentation Scalable, flexible, and cost-effective solution for application development and deployment
133
Software as a Service (SaaS)
software applications are provided over the internet on a subscription basis ○ 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. ○ Customers access and use the software through a browser or other interface. ○ Eliminates the need for customers to install and maintain software on their own servers and computers. ○ Users only pay for the services they use on a subscription basis. ○ Business uses include applications such as customer relationship management (CRM), enterprise resource planning (ERP), and human resource management (HRM) ○ Personal use includes applications such as email, file storage, and collaboration tools.
134
Desktop as a Service (DaaS)
a service provider delivers virtual desktops to end users over the Internet, licensed with a per-user subscription. ○ Provider takes care of maintenance, backup, updates, and data storage. ○ Providers may also manage security and applications for the desktop, or users may manage these service aspects individually. ○ There are two kinds of desktops that are available in DaaS—persistent and non- persistent.
135
Persistent Desktop
Users can 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.
136
Non-Persistent Desktop
Desktops formatted each time the user logs out - simply access shared cloud services.
137
Public Cloud
infrastructure is owned and managed by a third-party cloud service provider and are available to the public over the internet.
138
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
139
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.
140
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.
141
Functional Requirements
defines a function of a system or its components where a function is described as a summary of behavior between inputs and outputs – describes what a system must do and is specified by the user ○ Example – a messaging app must send and text, video, and audio between two or more users or an email client user must be authenticated when logging in
142
Non-Functional Requirements
specify how the system must perform ○ Example: a website should load within 3 seconds or request should be processed within 10 seconds
143
NFR Performance
defines how fast a software system (or its component) responds to certain users’ actions under a certain workload
144
NFR Scalability
the ability of a system or application to handle an increasing amount of workload, data or users without compromising performance, availability or reliability
145
NFR 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
146
NFR 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
147
NFR Reliability
specifies how likely the system or its element would run without a failure for a given period of time under predefined conditions
148
NFR 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
149
Availability
describes how likely the system is accessible to a user at a given point in time (one of the most business critical requirements)
150
Security
ensures data within the system or its parts will be protected against malware attacks, data breaches, or unauthorized access
151
NFR 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.
152
IDE
software for building applications that combines multiple developer tools in a single GUI
153
Source Code Editor
A text editor that can assist in writing software code with features such as syntax highlighting with visual cues, providing language specific auto-completion, and checking for bugs as code is being written.
154
Local Build Automation
Utilities that automate simple, repeatable tasks as part of creating a local build of the software for use by the developer, like compiling computer source code into binary code, packaging binary code, and running automated tests.
155
Debugger
A program for testing other programs that can graphically display the location of a bug in the original code.
156
Compiled Vs. Interpreted Languages
(Languages used in the source code to write the computer instructions of an application):
157
Compiled Languages
first converted by a tool (compiler) into machine code, which can run on a particular machine. ○ Faster than interpreted languages (translation is incurred just once, when the source is compiled; thereafter, it need only be loaded and executed) ○ Machine must have a compiler to run them, thus more limited than interpreted languages. ○ Examples: C, C++, C#, Java.
158
Bootstrapping
process of using a compiler written in a particular programming language to compile a latest version of the compiler written in the same language.
159
Interpreted Languages
run one statement at a time (line-by-line of code) by another program called an interpreter. ○ Slower than compiled languages but getting faster thanks to just-in-time (JIT) translation. ○ Can run on any machine that has an interpreter (most of them) ○ Easier for newer developers to use. ○ Higher resource overhead because the program must be translated each time it is executed. ○ Examples: Python, JavaScript, MATLAB
160
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 and also monitor the possibility of new transfer once the transfer has been initiated. Thus, CPU stays in a loop until the I/O device indicates that it is ready for data transfer and can’t do anything else ○ Programmed I/O is a time-consuming process that keeps the processor busy needlessly and leads to wastage of the CPU cycles ○ Uses 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 ○ *This can be overcome using an interrupt facility*
161
Interrupt Initiated I/O
informs the interface to issue the interrupt command when data becomes available and interface is ready for the data transfer, which 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, since the CPU remains fluid/dynamic to tasks
162
Mobile Languages
★ iOS is Swift. ★ Android is Java
163
Technology Stack
Set of technologies used to build an application. refers to the combination of software products, programming languages, and tools used to develop and operate a software application or service.
164
Front End
The part of the program that interfaces with the user
165
Front End Languages
HTML, CSS, JavaScript, ReactJS, TypeScript, Elm, Swift
166
Front-End Frameworks
React, Angular, Vue.js, Ember.js, Backbone.js, jQuery, Bootstrap
167
Back-End
The part of the program that does the “behind-the-scenes” work. responsible for managing the business logic of the application, handling data processing and storage, and delivering information to the front-end for display to the user (server, application, and database)
168
Back End Languages
Python, Java, PHP, Ruby, C++/C/C#
169
Back End Frameworks
Node.js, Ruby on Rails, Django, Spring
170
Back End Databases
MySQL, MongoDB, CouchDB, Oracle ○ Databases, Programming languages, Frameworks, Web Servers ○ *js=javascript and DB/SQL are databases*
171
LAMP (Linux-OS, Apache-server, MySQL-database, and PHP-programming language)
■ For hosting web pages on a Linux machine ■ Used to build websites and web applications ■ All 4 components are free and open-sourced ■ Backend stack
172
WAMP Stack (Windows, Apache, MySQL, and PHP)
■ Only difference between LAMP is the operating systems (Linux vs. Windows) ■ Backend stack
173
MEAN (MongoDB, Express.js, AngularJS, and Node.js)
■ For building dynamic web apps ■ Open-source end-to-end JavaScript stack largely used for cloud-hosted applications (very flexible and scalable) ■ Full stack
174
MEVN stack (MongoDB, Express.js, VueJS, Node.js)
■ Full stack ■ *MEVN is more like MEAN than MERN*
175
○ MERN (MongoDB, Express.js, React, and Node.js)
■ Enables the development of full-stack JavaScript applications. ■ Full stack
176
Web Application Framework
Software Framework designed to support the devolopment of web applications. Provide a standard way to build a and deploy web applications. Aim to automate the overhead associated with common activities performed in web development.
177
ASP.NET
open-source web framework, created by Microsoft, for building modern web apps and services that run on macOS, Linux, Windows, and Docker.
178
Ruby on Rails
a full stack framework
179
Hadoop
Apache Hadoop is an open source, Java-based software platform that manages data processing and storage for big data applications.
180
HDFS Hadoop Distributed File System.
HDFS is a Java-based system that allows large data sets to be stored across nodes in a cluster in a fault-tolerant manner.
181
YARN - Yet Another Resource Negotiator.
YARN is used for cluster resource management, planning tasks, and scheduling jobs that are running on Hadoop.
182
MapReduce
MapReduce is both a programming model and big data processing engine used for the parallel processing of large data sets. Originally, MapReduce was the only execution engine available in Hadoop. But, later on Hadoop added support for others, including Apache Tez and Apache Spark.
183
Hadoop Common
Hadoop Common provides a set of services across libraries and utilities to support the other Hadoop modules.
184
MongoDB vs CouchDB
○ MongoDB and CouchDB are both NoSQL document-oriented databases ○ Data model: MongoDB stores data in BSON format, which is a binary representation of JSON, while CouchDB stores data in JSON format. BSON provides better storage efficiency, but JSON is more widely used and easier to work with. ○ Querying: MongoDB uses a flexible and powerful querying system that supports complex queries with aggregation pipelines and indexing, while CouchDB uses a MapReduce-based querying system that is less flexible but more efficient for large datasets. ○ Replication and synchronization: CouchDB's replication is more robust and easy to set up, with built-in support for conflict resolution and synchronization. ○ Scalability: MongoDB is better suited for high-throughput applications with large datasets, while CouchDB is better suited for distributed applications with a high degree of data synchronization. ○ Security: MongoDB has more advanced security features such as field-level encryption, data masking, and auditing. ○ Community and support: MongoDB has a larger and more active community with better documentation and support resources, while CouchDB has a smaller but dedicated community and a simpler and more lightweight codebase.
185
Trojans
generally hidden as a legitimate program that the user downloads/installs and then transfers to the user computer ○ Attacker usually uses social engineering to fool the user into downloading/installing ○ Can spoof products by using the same icons and names ○ Not usually spread from a device once infected and remain on the host’s computer ○ Once it is installed, it performs malicious actions such as backdooring a computer, spying on its user, and doing various types of damage
186
Rootkits
a package giving the highest privileges in the system (think admin level control down to the OS itself) ○ Software that allows for stealthy presence of unauthorized functionality in the system ○ Used when the attackers need to backdoor a system and preserve unnoticed access as long as possible. ○ May register system activity and alter typical behavior in any way desired by the attacker.
187
Companion Virus
poses as a legitimate file by copying its file name but uses a different extension - it doesn’t modify files..
188
Macro Virus
virus that’s written in macro, a programming language rooted inside software applications like Microsoft Office ○ Uses the mini-basic programming language. ○ Macros are used for automation to increase workflow. ○ Operates by injecting its code into macros attached to the type of popular data files associated with office work, like Microsoft Word, Excel, or PowerPoint files ○ Can deliver other malware to your system and also uses deception like a Trojan to spread by hiding under seemingly legitimate files.
189
Armored Virus
a type of malware designed to evade detection and hinder the analysis process by using various techniques, such as encryption, obfuscation, or manipulation of code. ○ VIDEO Armored virus ○ These viruses are created to prevent antivirus software from detecting, diagnosing, and removing them.
190
Botnet
networks of computers infected by a botnet agent that are under hidden control of a third party. ○ Used to execute various commands ordered by the attacker. ○ Called a group of zombies. ○ Common uses of botnets are criminal operations that require distributed resources, such as DDoS attacks on selected targets, spam campaigns, and performing click fraud. ○ From the moment of infection, botnet agents keep in touch with their remote Command-and-Control server (C&C) ○ Most common implementation of the C&C is a web-application, contacted by the client via simple HTTP requests.
191
Stealth Virus
any virus that attacks while trying to avoid detection by antivirus software.
192
Polymorphic Virus
mutate to change their code while usually retaining their core function. ○ Employ a polymorphic (mutation) engine to hide their code, usually through cryptography. ○ The mutation engine modifies the malware’s decryption procedure every time it replicates, making its new state challenging for conventional antivirus software to identify.
193
Multipartite(hybrid) virus
a fast-moving virus that uses file infectors or boot infectors to attack the boot sector and executable files simultaneously.
194
Ransomware
type of malware identified by specified data or systems being held captive by attackers until a form of payment or ransom is provided.
195
Boot sector
the sector of a persistent data storage device which contains machine code to be loaded into random-access memory (RAM) and then executed. ★ Affecting the boot sector and program files causes more damage than other viruses. ★ When the boot sector is infected, simply turning on the computer will trigger a boot sector virus because it latches on to the hard drive that contains the data that is needed to start the computer. ★ When the boot sector is infected, simply turning on the computer will trigger a boot sector virus because it latches on to the hard drive that contains the data that is needed to start the computer.
196
Personal Area Network (PAN)
a network that is centered around a person and their devices (like Bluetooth)
197
Local Area Network
computers connected in a limited area, like home or office. ○ Most often Ethernet, Wi-Fi, or both (remember it can be wired or wireless)
198
WLAN
same as LAN but wireless – Wi-Fi
199
Storage Area Netowrk (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.
200
Campus Area Network (CAN)
provides networking of multiple LANs across a limited area, like a university campus, group of buildings owned by a company, etc.
201
Metropolitan Area Network(MAN)
covers a whole city or the equivalent of a metropolitan area.
202
WAN
covers a large geographical area within its network (like the internet) ○ Used by international companies and governments (banks, for example)
203
Simplex transmission mode
Sender can send the data, but the sender can’t receive the data. It is a type of unidirectional communication in which communication happens in only one direction. Example of this kind of mode is Keyboard, Traditional Monitors, etc.
204
Half duplex transmission mode
Sender can send the data and also receive the data one at a time. It is a type of two- way directional communication but restricted to only one at a time. An example of this kind of transmission is the Walkie-Talkie, where the message is sent one at a time but in both directions.
205
Full duplex transmission mode
Sender can send the data and also can receive the data simultaneously. It is two-way directional communication simultaneously that is both way of communication happens at a same time. Example of this kind of transmission is Telephone Network, where communication happens simultaneously.
206
Multiplexing transmission mode
Multiplexing, or muxing, is a way of sending multiple signals or streams of information over a communications link at the same time in the form of a single, complex signal. When the signal reaches its destination, a process called demultiplexing, or demuxing, recovers the separate signals and outputs them to individual lines.
207
Client server model
○ 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
208
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)
209
Requester
person or device that requests a network connection service.
210
Web Server
software and hardware that uses HTTP and other protocols to respond to client requests made of the web.
211
Web Server providers
Apache, Oracle, AWS (Amazon), Nginx, LiteSpeed, Microsoft-IIS, OpenResty, etc.
212
Bus
a single line of devices connected together by one shared network cable
213
Ring
forms a ring connecting devices with exactly two neighboring devices (doesn’t have to actually look like a ring)
214
Star(hub and spoke)
composed of a central network device connected to various network devices by individual network cables.
215
Mesh
connects every device to every other device
216
Tree
a variation of the star topology with a hierarchal flow of data
217
Intrusion Detection System (IDS)
monitors the network to detect threats (passive listening) ○ Works well in tap mode (connected to network to view incoming/outgoing traffic) ○ Sends an alert to the administrator about suspicious behavior
218
Intrusion Prevention System (IPS)
intercepts and blocks threats (acts) ○ Must be positioned in in-line mode (between devic e responsible for incoming/outgoing traffic and computer) ○ Nodes use routed cables connected to IPS device to create a choke point ○ Appears invisible on the network
219
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
220
AAA Network Security:
(Authentication, Authorization, and Accounting)
221
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, etc.)
222
Authorization
determine what resources the user can access and the operations that can be performed.
223
Accounting
monitoring and capturing the events done by the user while accessing the network resources (it’s just auditing)
224
Router
Directs network traffic based on destination addresses and preset rules. selects paths for data packets to cross networks and reach their destinations using IP addresses. These are usually situated between gateways/modems and switches.
225
Switch
simply connect multiple devices together on a network 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.
226
Gateway
connect a private network to the internet. ○ Can also just be a device that connects one private network to a larger private network.
227
Hub
The dumb version of switches ○ Function like repeaters - when a computer talks on the network it will broadcast that message to every port on the hub ○ Must constantly broadcast to all ports and considered obsolete due to inefficiency.
228
Bridge
connects multiple sub-networks to create a single, larger network
229
Modem
converts network traffic into a format that can be used on the media that connects you to the internet; Whether that be fiber, coaxial cable, 3G/4G wireless signals, or a copper phone line
230
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
231
Cat Cables
○ *CAT cables are made of unshielded twisted pair (UTP) wire which exactly what is sounds like*
232
Physical Layer
responsible for the transmission and reception of unstructured raw data between a device and a physical transmission medium.
233
Data Link Layer
responsible for the reliable transmission of data frames between two adjacent nodes connected by a physical layer.
234
Network Layer
responsible for the transmission of packets between nodes that are not directly connected, and for routing packets to their destinations.
235
Transport Layer
responsible for the reliable delivery of data between end points and for error checking.
236
Session Layer
This layer is responsible for managing and coordinating communication sessions between applications on different devices.
237
Presentation Layer
This layer is responsible for data representation, compression, and encryption/decryption.
238
Application layer
This layer provides services directly to the end user, such as file transfer, email, and remote login. (It’s what the user actually sees)
239
Hypertext Transfer Protocol (HTTP)
an application layer protocol designed to transfer information between networked devices and runs on top of other layers of the network protocol stack. ■ Foundation of the WWW and used to load webpages using hypertext links.
240
Transmission Control Protocol (TCP)
designed to send packets across the internet and ensure the successful delivery of data and messages over networks
241
Internet Protocol
locates addresses to machines and networks for the exchange of information. ○ Serve two main functions: network interface identification, and location addressing. ○ These addresses are changed to human-readable formats instead of a series of
242
Dynamic Host Configuration Protocol (DHCP)
network management protocol used to dynamically assign an IP address to any device, or node, on a network so it can communicate using IP ○ Assigns new IP addresses in each location when devices are moved from place to place, which means network administrators do not have to manually configure each device with a valid IP address ○ Client-server protocol in which servers manage a pool of unique IP addresses, as well as information about client configuration parameters ○ Limited to a specific LAN
243
Syslog
protocol that computer systems use to send event data logs to a central location for storage. ○ Logs can then be accessed by analysis and reporting software to perform audits, monitoring, troubleshooting, and other essential IT operational tasks. ○ Listener: Gathers the syslog data over a UDP port. Because UDP does not notify on transmission, a TCP port may be used for this. The listener cannot request data, differentiating it from other collector types. ○ Database: Syslog can generate large amounts of data, and servers need to be configured to handle the volume. ○ Software for data handling: Running on top of the server data, software can help automate tasks that are not built in to the syslog process, making the data more usable.
244
Address Resolution Protocol (ARP)
○ Connects an ever-changing Internet Protocol (IP) address to a fixed physical machine address, also known as a media access control (MAC) address, in a local- area network (LAN) ○ This mapping procedure is important because the lengths of the IP and MAC addresses differ, and a translation is needed so that the systems can recognize one another. ○ The most used IP today is IP version 4 (IPv4). An IP address is 32 bits long. However, MAC addresses are 48 bits long. ARP translates the 32-bit address to 48 and vice versa