计算机 · 2021年12月19日 0

Linux Kernel Labs

Linux Kernel Labs

网上发现的一门动手实践的课程,用来学习入门Linux内核正好难度适中,易于上手,而且用的内核代码也算新,相应的讲解和提示都很详细,非常便于自学。

亲测so2_2018分支是可以按照课程说明文档进行操作的。

Introduction

Introduction一节介绍了下操作系统中的一些术语和概念。

  • 微内核与宏内核(单内核)

    宏内核的各个子系统之间没有访问保护,不同子系统的函数可以直接互相调用,且这些子系统都运行在内核态是内核的一部分。

    微内核的各个子系统间相互隔离,并且这些子系统大多以服务的方式运行在用户态。微内核的意义在于各个子系统相互隔离,一个子系统崩溃了不会影响整个系统(实践中难以做到)。宏内核意义在于各个子系统都以内核态运行,各种访问、操作的效率更高。
  • preemptive multitasking与preemptive kernel
    1. cooperative multitasking
      需要应用程序主动放弃占用CPU,内核才有机会跑调度程序。
    2. preemptive multitasking
      内核限制了每个程序不能无限占用CPU。
    3. preemptive kernel
      进程即使在以内核态运行也可以被抢占CPU。
  • Pageable kernel memory
    部分内核内存可以被swap到硬盘。
  • Linux source code layout
  • Networking stack