Computer Hardware and Operating System
Concepts: Notes
This set of notes covers a variety of essential concepts related to Computer Hardware and
Operating Systems (OS). The topics span from hardware components to OS architecture,
types, and the concept of virtualization.
1. Computer Hardware Overview
Processors (CPU)
   •   The central processing unit (CPU) is the heart of the computer, responsible for
       executing instructions and processing data.
   •   Modern processors are multi-core, meaning they can handle multiple tasks
       simultaneously, improving performance.
Processor Types:
   •   Single-core: Older processors with one processing unit.
   •   Multi-core: Modern processors (e.g., dual-core, quad-core) with multiple processing
       units, enabling better multitasking and parallel processing.
   •   Clock Speed: Measured in GHz, indicating the number of cycles per second a
       processor can perform. Higher clock speeds generally lead to better performance.
Memory (RAM and Storage)
   •   Primary Memory (RAM): Temporary, fast storage used by the CPU to hold data and
       instructions that are currently being processed.
   •   Secondary Memory (Storage): Non-volatile memory used for long-term data
       storage, such as:
           o Hard Disk Drives (HDD): Traditional spinning disks, slower but affordable.
           o Solid-State Drives (SSD): Faster than HDDs, use flash memory, but more
               expensive.
   •   Cache Memory: A small, fast memory located close to the CPU that stores frequently
       accessed data to speed up processing.
I/O Devices
   •   Input Devices: Devices that allow users to input data into the computer, such as
       keyboards, mice, scanners, and microphones.
   •   Output Devices: Devices that display or produce results of computations, such as
       monitors, printers, and speakers.
I/O Bus
                                             1
   •   The I/O bus is a communication pathway that connects the CPU with I/O devices.
   •   It enables the transfer of data between the processor and peripheral devices like
       storage, printers, and network interfaces.
   •   Types of I/O Buses:
           o PCI (Peripheral Component Interconnect): Used for high-speed
               connections to I/O devices.
           o USB (Universal Serial Bus): A widely used interface for peripherals.
           o SATA (Serial Advanced Technology Attachment): Used for connecting
               storage devices.
2. Operating System Basic Concepts
An Operating System (OS) is software that manages computer hardware and software
resources and provides services for computer programs.
Core Functions of OS:
   •   Process Management: Manages processes (running programs), including process
       scheduling, creation, execution, and termination.
   •   Memory Management: Allocates memory space to programs and ensures that each
       process has enough memory without interfering with others.
   •   File System Management: Organizes and manages data stored on disks and provides
       a way for users to store and retrieve files.
   •   Device Management: Manages I/O devices, ensuring that data is transferred
       efficiently between the system and peripherals.
   •   Security and Access Control: Protects the system from unauthorized access and
       ensures data integrity and privacy.
3. Architecture of Operating System
The architecture of an operating system defines how its components interact with the
hardware and software. It includes the following layers:
   1. Kernel: The core part of the OS, responsible for managing hardware resources,
      processes, and memory.
   2. Shell: The user interface that interacts with the kernel, typically a command-line
      interface (CLI) or graphical user interface (GUI).
   3. System Libraries and Utilities: Libraries provide essential functionality, and utilities
      assist with performing system-related tasks.
   4. User Applications: Programs that run on top of the operating system, such as web
      browsers, text editors, etc.
                                              2
4. Types of Operating Systems
Different types of operating systems are designed for specific hardware configurations,
application domains, and use cases. Here are some common types of OS:
Mainframe OS
   •   Mainframe computers are powerful machines used for large-scale computing tasks,
       such as processing bulk transactions and handling massive data sets.
   •   Mainframe OS is designed to handle large volumes of input/output operations,
       provide high availability, and support multiple concurrent users.
Examples: IBM z/OS.
Server-side OS
   •   Server OS is designed to manage resources in a server environment, where multiple
       users or applications require high-performance computing resources and reliability.
   •   They provide services such as database management, networking, web hosting, etc.
Examples: Linux (CentOS, Ubuntu Server), Windows Server.
Multiprocessor OS
   •   Multiprocessor OS is designed to manage multiple processors (CPU cores) in a
       system to maximize performance through parallel processing.
   •   They ensure that tasks are split efficiently across multiple CPUs, enhancing
       computational power.
Examples: UNIX, Linux.
Embedded OS
   •   Embedded OS is designed to run on embedded systems like smartphones, smart
       devices, and appliances. They are typically lightweight and optimized for specific
       hardware with real-time constraints.
Examples: Embedded Linux, FreeRTOS.
Real-Time OS (RTOS)
   •   RTOS is designed to process data in real-time, where processing time is critical.
       These operating systems ensure that tasks are executed within a strict time frame.
Examples: VxWorks, RTEMS.
Sensor Node OS
                                              3
   •   Sensor Node OS is used in sensor networks where devices gather and process data
       from their environment. These operating systems are optimized for low power
       consumption and real-time operation.
Examples: TinyOS, Contiki OS.
Smart Card OS
   •   Smart Card OS is designed for handling operations in smart cards, which are used
       for applications like banking, identity verification, and access control.
Examples: Java Card, Multos.
5. Virtualization
Virtualization allows a single physical machine to host multiple virtual machines (VMs),
each running its own operating system independently. It creates an abstraction layer between
hardware and software.
Types of Virtualization:
   1. Full Virtualization: The OS on the virtual machine (VM) does not need to be aware
      of the underlying hardware, as the virtualization software emulates the entire
      hardware environment.
   2. Paravirtualization: The guest OS is modified to work with the hypervisor, allowing
      for more efficient resource usage.
   3. Containerization: Allows multiple isolated applications to run on the same OS
      instance, sharing the OS kernel.
Benefits of Virtualization:
   •   Resource Optimization: Better utilization of hardware resources.
   •   Isolation: Each VM is isolated, preventing crashes in one from affecting others.
   •   Scalability: Easily add more VMs without needing new physical machines.
6. Free and Open Source Operating Systems
Free and Open Source Operating Systems (FOSS) are operating systems where the source
code is freely available to the public for modification, distribution, and use.
Popular Free and Open Source OS:
   •   Linux: A Unix-like OS that is open-source and widely used for servers, desktops, and
       embedded systems.
                                              4
   •   BSD: A family of open-source Unix-like OS (e.g., FreeBSD, OpenBSD) known for
       their robustness and performance.
   •   ReactOS: An open-source OS designed to be compatible with Windows applications.
Advantages:
   •   Flexibility: Users can modify the source code to suit their needs.
   •   Cost: Most FOSS are free to download and use.
   •   Security: Open-source software allows anyone to inspect and patch vulnerabilities
       quickly.
Summary Table
     Concept                                      Description
Processors (CPU) Executes instructions; multi-core for improved performance.
Memory              Includes RAM, cache, and storage for data and program execution.
I/O Devices and Bus Devices for input/output and buses like PCI and USB for data transfer.
OS Functions        Includes process management, memory management, file system, etc.
OS Architecture     Kernel, Shell, Libraries, and Applications form the OS structure.
Types of OS         Mainframe, Server, Multiprocessor, Embedded, Real-Time, and more.
Virtualization      Enables multiple virtual machines on one physical system.
FOSS                Free, open-source systems like Linux and BSD.
Conclusion:
Understanding the fundamentals of computer hardware and operating systems is critical for
optimizing system performance, ensuring efficient resource management, and exploring
advanced topics like virtualization and open-source systems. These notes provide a
foundation to dive deeper into each topic and explore more specialized operating system
concepts.