一个普通的操作系统,即类似于一个软件中间件,是用户程序和硬件之间的“中介”
因此,一个达到要求的操作系统,便能够运行许多用户级别的应用程序(第三方程序)。
同时,这些应用程序可以:
- 和用户交互
- 和互联网交互
- 和文件系统交互
对于应用程序来说,操作系统就像是计算机本身,这台“计算机”提供了:
(1)进程(应用程序的可执行单元);
(2)内存;
(3)文件系统(位于磁盘中);
(4)互联网交互;
(5)用户交互设备(即输入输出设备,常见的诸如键盘,鼠标,显示器等,专用的设备诸如空间球,游戏手柄等);
(6)对于多用户操作系统,还需要给每个用户分配权限,管理他们可以操作等文件等;
(7)计算机安全,比如防止黑客入侵某个部分,或者防止第三方应用程序的肆意破坏= =;
(8)其它。(Whatever needed)
(日后补充操作系统的架构概念图)
因此,当我们学习操作系统时,可以从一下几个方面入手:
(1)内存管理与CPU:
首当其冲,这是操作系统,也就是应用程序所谓的“计算机”的核心。
(2)进程与线程:
这是最重要的部分,事实上和内存管理、CPU唇齿相连。没有了进程和线程,操作系统也就失去了意义。
(3)文件系统:
对于一个操作系统,管理磁盘也相当重要;进程相关的内容都存储在内存中,可是进程需要读写,需要长期存储一些东西,这些都是文件系统都功劳。
(4)硬件设备接口:
硬件设备,包括磁盘,鼠标,键盘等,是操作系统的另一个重要任务;对于磁盘,关系到文件系统的读取;而对于其它设备,关系到操作系统能否良好地提供一个交互式应用程序环境。
(5)互联网接口:
这关系到操作系统能否提供一个良好的网络应用程序环境。面对互联网发达的今天,没有一个操作系统可以不提供这样的接口。
(注:Chromium OS,Firefox OS,几乎完全依赖与网络。Web OS,我认为是以后操作系统发展的方向)
在有了以上几个部分以后,其实操作系统已经可以运行。但是为了更好的服务与应用程序,操作系统需要这些:
*虚拟内存:可以在磁盘中扩张内存。当应用程序需要的内存大于物理内存时,操作系统可以不受束缚的提供更大的内存。
*计算机安全:为了保护操作系统、硬盘、用户资料或者别的用户进程,操作系统应该需要提供安全保护。
最新内容请见作者的GitHub页:http://qaseven.github.io/