下学期我将担任操作系统课程的助教。实验室将专门处理Linux内核
- 您认为Linux内核的哪些概念/组件在本课程中最重要
- 你希望你的研究中遗漏了什么
任何关于Linux内核或整个操作系统设计的建议都将不胜感激
我的列表:
- 操作系统关注的是:物理机器的抽象和扩展和资源管理
- 构建过程是如何工作的即,特定于体系结构/机器代码的东西是如何植入的
- 系统调用如何工作以及模块如何连接
- 内存管理/虚拟内存/分页和所有其他
- 进程如何在POSIX和其他系统中诞生、生存和消亡
- 用户空间与内核线程以及进程/线程之间的区别是什么
- 为什么单片内核设计越来越令人厌烦,还有哪些替代方案
- 调度(以及一些可选/特定于域的调度程序)
- I/O,驱动程序开发及其动态加载方式
- 启动的早期阶段以及内核如何设置环境
- 时钟、无mmu系统等问题
- 。。。我可以继续
- 我几乎忘记了IPC和Unix的“一切都是文件”设计决策
- POSIX,为什么它存在,为什么它不应该存在
最后,让他们通过tanenbaum的现代操作系统,并对其他一些内核进行案例研究,比如Mach/Hurd的微内核设置,可能还有一些分布式和外内核的东西
我再确认一下,也可以对过去的Linux有一个大致的了解
对于那些超级极客来说,操作系统的历史以及为什么它们是这样的