本文最后更新于31 天前,其中的信息可能已经过时,如有错误请发送邮件到ponsde333@gmail.com
该篇内容以及之后的内容将源于中山大学计算机系统。
介于操作系统微内核的发展以及OS-Course-Lab,接下来我会以ChCore内核为例开始后续的讲解。
在故事启程的开始,让我们简单的对计算机操作系统来分分层:
用计算、存储和通讯来概括一下,让我们一步步的看看哪些是必须的哪些是后来的优化
在早期的操作系统我们从抽象化的进程入手(那时候还没有进程的概念,只有批处理、工作、程序加载等),此时为了实现,我们的需求只是执行、内存管理、隔离不同的程序保证安全、多程序执行的并发安全和资源管理等,因此此时的基础操作只是:
进程管理、内存管理和同步原语

接下来,操作系统慢慢开始出现,最开始用户与硬件的直接打交道是危险的,操作系统开始慢慢的作为软件与硬件的中转,此时的中断、异常处理等开始出现,操作系统的存在感来源于中断,中断的发生让操作系统获得cpu的掌控权,进行管理、调度、调整等。
开始开始慢慢的引入进程间通信(加强不同进程间的联系、在微内核下是内核与不用组件间通讯的基础)、操作系统调度(此时随着计算机的发展,原本简单的调度开始独立发展为单独的学问,涉及进程、线程、协程等的调度)、文件系统(微内核架构的文件系统在用户态而不是内核态,内核负责基础的如IPC通信于用户和文件系统的沟通等)等

此时的操作系统已经可以满足大部分的需求,但是,随着技术的发展,其他方面的需求开始增加,如云计算对虚拟化的需求、高吞吐量的网卡对高性能的需求(Intel DPDK)、多核缓存、内存的冲突与性能下降等,我们进入进阶的内容,开始进一步的学习

接下来的学习内容,将从最基础的部分一步步走向深入,让我们从问题走向解决,带着问题的探索是对知识摄入的最好方法,让我们开始这次的操作系统之旅吧~










