趣谈Linux

需要前置 C 和 Linux 知识

  • x86, bootstrap, kernel mode
  • protection mode, multi process, process control, memory management, file system, io device control
  • inter process communication, network
  • virtualization, containerization, cluster

stages:

  • get familiar with linux clis
  • use glibc or syscall to write applications
  • learn the kernel mechanism
  • read kernel source code
  • customize linux modules

# commands

.

system calls

.

# framework

.

# sys init

# x86

  • 地址总线 (16, 32) 内存地址的范围
  • 数据总线 - 每次最多能从内存取到多少数据

# bootstrap

ROM -> BIOS

# start kernel

  • TASK_INIT(init_task)
    • process 0
  • trap_init()
    • interrupts
  • mm_init() - memory
  • sched_init() - schedulers
  • rest_init()
    • kernel_thread(kernel_init, NULL, CLONE_FS) - process 1
    • kernel_thread(kthreadd, NULL, CLONE_FS|CLONE_FILES) - process 2

four layers of process (execute permission) ring

  • ring0 kernel mode
  • ring3 user mode

# syscall of open

.

# process control

# memory control

# file system

# io system

# IPC

# network

# virtualization

# containerization

# practices

# references

  • 趣谈 Linux 操作系统 - 极客时间
Get Things Done
Built with Hugo
Theme Stack designed by Jimmy