1. History
    1. aka
      1. GNU/LINUX
        1. Reason
          1. Linux
          2. is
          3. Kernel
          4. GNU-software
          5. make
          6. Linux
          7. useful
          8. exist
          9. outside
          10. the Kernel
          11. range
          12. Windowing system
          13. eg. X11
          14. Compiler
          15. Shells
          16. Dev tools
          17. Editors
          18. Utilities
          19. others!
    2. 1960
      1. MIT and other companies
        1. developed
          1. Multics(Multiplexed Information and Computing Services)
    3. 1970
      1. AT&T
        1. dropped out
        2. developed
          1. own
          2. OS (Unics)
          3. plus
          4. C-language
    4. 1990
      1. Andrew Tanenbaum
        1. created
          1. MINIX(minimal UNIX)
          2. ran on
          3. small PC
    5. Early 1990s
      1. Linus Torvalds
        1. developed
          1. Linux
    6. Linux
      1. adopted
        1. GNU GPL
          1. which allowed
          2. GCC
          3. shells
  2. Kernel
    1. Architecture
      1. Linux Architecture - Two levels
        1. User app
        2. glibc
          1. GNU C library
          2. provides
          3. system call interface (SCI)
          4. connects to Kernel
          5. provides
          6. mechanism
          7. to transition b/w user and kernel space
          8. implements
          9. basic
          10. function
          11. calls
          12. from
          13. User space
          14. Kernel space
          15. as
          16. read
          17. write
          18. open
          19. etc.
          20. can be arch dependant
        3. Kernel
          1. Two parts
          2. Architecture-independent code
          3. Architecture-dependant code
          4. aka
          5. Board Support Package
          6. Processor & Platform specific code
    2. Components
      1. Linux Kernel Components
        1. Process Manager
          1. focused on
          2. execution of
          3. the processes
          4. provides
          5. an API
          6. through SCI
          7. to
          8. create new process
          9. through
          10. fork
          11. exec
          12. POSIX functions
          13. stop process
          14. through
          15. kill
          16. exit
          17. POSIX functions
          18. communicate & synchronise b/w processes
          19. through
          20. signal
          21. POSIX mechanisms
          22. implements
          23. a scheduling Algorithm
          24. to
          25. share CPU
          26. between
          27. active threads
        2. Memory Management
          1. source
          2. ./linux/mm
          3. manages
          4. memory
          5. in
          6. pages
          7. mostly
          8. 4KB
        3. Virtual File System+FileSystem+Buffer Cache
          1. VFS
          2. is
          3. interface abstraction
          4. for file systems
          5. a switching layer
          6. b/w
          7. SCI
          8. and
          9. the file system supported by kernel
          10. Buffer Cache
          11. optimizes
          12. file-system
          13. access to
          14. devices
          15. is
          16. independent
          17. of any
          18. particular
          19. filesystem
          20. source
          21. ./linux/fs
        4. Network Stack
          1. Socket-layer
          2. is
          3. UI
          4. to
          5. a variety of
          6. networking
          7. protocols
          8. the standard
          9. api
          10. to the
          11. networking
          12. subsystem
          13. invoked
          14. through
          15. SCI
          16. protocol-independent
          17. source
          18. ./linux/net
        5. Device Drivers
          1. constitute
          2. major
          3. part of
          4. Kernel
          5. is a
          6. sub-directory
          7. divided by
          8. various
          9. devices
          10. source
          11. ./linux/drivers
        6. Arch-dependent Code
          1. source
          2. ./linux/arch
          3. aka BSP
    3. Interesting features
      1. supports
        1. numerous
          1. Networking
          2. Protocols
          3. TCP?IP
          4. GbE
          5. SCTP(Stream Control Transmission Protocol)
      2. dynamic kernel
        1. as
          1. SW components/modules
          2. can be
          3. added/removed
          4. on the fly
      3. recently
        1. used as
          1. hypervisor
          2. ie. an OS
          3. for
          4. other OSs
        2. a modification
          1. called
          2. KVM (Kernel-based VM)
          3. allows
          4. this