Linux Kernel Labs
网上发现的一门动手实践的课程,用来学习入门Linux内核正好难度适中,易于上手,而且用的内核代码也算新,相应的讲解和提示都很详细,非常便于自学。
亲测so2_2018分支是可以按照课程说明文档进行操作的。
Introduction
Introduction一节介绍了下操作系统中的一些术语和概念。
- 微内核与宏内核(单内核)
宏内核的各个子系统之间没有访问保护,不同子系统的函数可以直接互相调用,且这些子系统都运行在内核态是内核的一部分。
微内核的各个子系统间相互隔离,并且这些子系统大多以服务的方式运行在用户态。微内核的意义在于各个子系统相互隔离,一个子系统崩溃了不会影响整个系统(实践中难以做到)。宏内核意义在于各个子系统都以内核态运行,各种访问、操作的效率更高。 - preemptive multitasking与preemptive kernel
- cooperative multitasking
需要应用程序主动放弃占用CPU,内核才有机会跑调度程序。 - preemptive multitasking
内核限制了每个程序不能无限占用CPU。 - preemptive kernel
进程即使在以内核态运行也可以被抢占CPU。
- cooperative multitasking
- Pageable kernel memory
部分内核内存可以被swap到硬盘。 - Linux source code layout
- Networking stack
近期评论