Skill Set Name: Kernel of Linux

Topics Level Sub topics Skill Category No Code Share comment
General introduction to the kernel of Linux I

Understanding the basic roles of OS and the history of OSes which have been developed to date. Knowing today's most popular OSes. Understanding the features of each OS.

  • Understanding the basic roles of OSes
  • Understanding the background to the deployment of an OS on a computer
  • Understanding the history of OSes
  • Understanding the introduction to today’s popular OSes
  • Understanding the type and features of OSes
  • Understanding the basics of system call
  • Understanding the basics of context switch
Architecture of Linux kernel I

Understanding the basic architecture and functions of the Linux kernel, including process management, memory management, file systems, networking, and I/O processing.

  • The architectural view of Linux kernel
  • Understanding basics of process management
  • Understanding basics of memory management
  • Understanding basics of file systems
  • Understanding basics of networking
  • Understanding basics of I/O processing
Scheduling I

Understanding the concept of context switch, and outlining the mechanism of switching processes. Knowing the actual application of scheduling algorithms, in addition to the underlying queuing theory and Markov chain.

  • Understanding the concept of context switch
  • Understanding the mechanism of switching processes
  • Understanding the concept of scheduling algorithm
    •  Task list queuing
    •   Real time scheduling
    •  Dual running queue
  • Using I/O scheduling
    •  CFQ
    •  Dead timeout
    •  Elevator algorithm
  • Understanding the selection and difference of kernel timers
    •  TSC
    •  ACPI timer
    •  High resolution timer, HPET
Interrupts and delayed action I

Understanding the association between the CPU and other devices and the concept of “interrupt.” Knowing several topics on interrupt, including those of the management and types of interrupts. Understanding the outline of interrupt processing in the kernel and the basic idea of the time-sharing system.

  • Understanding the basics of interrupts
    •  Hardware interrupt
    •  Software interrupt
    •  Timer interrupt
  • Understanding the concept of delayed execution
    •  Work queue
    •  Wait queue
System calls I

Understanding the system call function used to use OS functions in Objective ordinary applications. Understanding the position of the system call among other functions. Knowing the outline of the internal behavior of the OS when the system call function is activated.

  • Understanding concept of system call
  • Understanding the trap mechanism
  • Understanding switch of address space
    •  Kernel space
    •   User space
    •  Copying data from/to kernel and user space
  • Understanding the basic method for implementing features of system call
    •   Dispatch table
Process management I

Understanding the lifecycle of a process as it is created, is completed, and then disappears. Introduce a series of topics related to the lifecycle of processes, including the internal data structure of a process, state transition, process groups, and process-creation methods.

  • Understanding the concept of processes in multitask OS
  • Understanding process lifecycle and its process
  • Understanding the concept of process space
  • Understanding the transition of running modes
  • Understanding the concept of process context and kernel context
  • Understanding the creation of a process and thread
    •   fork()/clone()
    •   wait()
Process management II

Understanding deadlock and other situations where processes need synchronization or exclusion, as well as management by the kernel of
such situations. Knowing mounting technology to realize exclusive control, in addition to basic theories underlying the technologies.

  • Understanding the synchronization and exclusive control
  • Understanding bad situations such as deadlocks
  • Understanding the control method of deadlocks in kernel
  • Understanding mounting technology for exclusive control
Memory management I

Understanding the concept of “process space,” in which a program runs, and the purpose and features of process spaces. Knowing what can be done in one space but cannot be done in another. Understanding the transition of running modes caused by a system call.

  • Understanding the principle of physical address management
    •  Page
    •  Buddy system
    •  Grab and release of page
  • Understanding the algorithm of dynamic page allocation
    •  Slab allocator
    •  Memory pool
    •  Algorithms for assigning memory
  • Understanding the concept of swap and paging
    •  Demand paging
    •  Page cache
    •  Page fault
  • Dirty page
File Systems I

Understanding the concept of the virtual file system layer which is an abstract layer for hiding differences in the file system in order to access seamlessly. Understanding the file operation in the kernel and the concept of special files.

  • Understanding virtual file systems
    •  node
    •  irectory
    •  ount
  • Understanding file operation
    •  pen/close
    •  eek
    •  ead/write
  • Understanding special files
    •  evice file
    •  roc file system
  • Sys file system
File Systems II

Understanding the concept of asynchronous access to files and devices to archive high performance.

  • Understanding asynchronous file operations
    •   AIO subsystem
  • Understanding the concept of direct device access
    •   Direct IO
Inter process communications I

Understanding shared memory, semaphore, messaging, and other functions provided as a means of communicating data and messages between processes.

  • Understanding IPC Interprocess communication
    •  Shared memory
    •  Semaphore
    •  Messaging
Protocol stacks I

Understanding the concept of OSI reference models and TCP/IP protocol stacks. Knowing TCP/IP as an example of practical deployed protocol. Understanding the concept of IP address, TCP port number and other advanced features provided by TCP/IP protocol stack.

  • Understanding socket interfaces
    •  UNIX domain socket
    •  INET socket
  • Understanding IP and UDP
    •  IP address
    •  IPv4 and IPv6
    •  Routing
  • Understanding UDP and TCP
  • Difference between two major protocols
  • TCP flow control and congestion control