me
Superdanby

Computer Fundamentals

Core Elements

  • Central Processing Unit:
    • Control Unit
    • Arithmetic Logic Unit
    • Memory Management Unit
    • Registers
  • Memory
  • Input/Output
  • Storage

CPU Architecture

  • RISC / CISC: ARM, IBM PowerPC / Intel, AMD
  • Bits: 32 -> 64

Metric Prefix

  • e.g. GiB vs GB

Clock Rates

How many clock cycles in 1 second. - CPU > Memory

Memory

  1. SRAM vs DRAM
  2. Memory Comparison
Storage Speed Volume
Register Fastest Smallest
L1 Cache 2 4
L2 Cache 3 3
L3 Cache 4 2
Main Memory Slowest Largest

Storage

Interfaces

Storage Partition

  1. Master Boot Record1

    1. Can only have at most 4 primary partitions.
    2. 2 TiB storage limit
    3. Maximum disk sector size: 512 bytes
    4. First sector: base partition table, bootstrap code
  2. GUID Partition Table2

    1. 2 ZiB storage limit
    2. Common sector size: 4 KiB, 512 bytes
    3. Has a secondary GPT header in case the primary one is broken.

System Structure Overview

  • Linux, BSD: Monolithic kernel3
  • Real-time systems: Micro kernel4
  • Windows NT(Windows 10…), XNU(macOS…): Hybrid Kernel5

Linux Backgrounds

Author

Linus Torvalds

Time line

  1. 1971: Unix published
  2. 1977: BSD released, based on Unix v6
  3. 1983: GNU project started
  4. 1987: Minix released, Unix-like
  5. 1991: Linux released, Unix-like
  6. 1995: Free Software Foundation established

Unix History

6

License

Specifically, GNU GPLv2

Free software definition:

  1. The freedom to run the program as you wish, for any purpose (freedom 0).
  2. The freedom to study how the program works, and change it so it does your computing as you wish (freedom 1). Access to the source code is a precondition for this.
  3. The freedom to redistribute copies so you can help your neighbor (freedom 2).
  4. The freedom to distribute copies of your modified versions to others (freedom 3). By doing this you can give the whole community a chance to benefit from your changes. Access to the source code is a precondition for this.

Linux Branches

  1. Mainline: constantly under development.
  2. Stable: a version of mainline which is considered stable. Will be maintained for a period.
  3. Longterm: just as stable, but will be maintained for a long time.
  4. EOL: end of life.

Fedora

is your best choice.