计算机系统的抽象基础---进程、虚存和文件。安全
进程抽象:操做系统内核的主要任务之一就是讲处理器“虚拟化”,制造每个运行进程都独自拥有一个处理器的假象。函数
虚存抽象:进程拥有一个硕大的联系地址空间。并且进程的虚拟主存空间彼此隔离,具备很好的安全性。学习
文件抽象:除处理器和主存职位,将磁盘和其余外部设备资源都抽象为文件。优化
[注释(19)#在学习操做系统的时候,一个重要的概念是传统操做系统内
核是独占,不可剥夺的,Kernel is not preemptive。这个概念的理解把握
对阅读源码,理解Unix/Linux的演化是相当重要的。对锁机制,锁粒度的
优化也是最重要的。操作系统
[注释(20)# 用户态/核心态的本质是: 保护。保护什么?Kernel的全局
变量。为何? Kernel是共享的。每一个进程,例如,32位系统Linux,是
4G空间。3G用户+1G核心 =进程。由于是共享的kernel,因此须要互
斥。不然,全局变量用一半就被冲了。。。
[注释(21)# 理解kernel空间是PART OF 一个进程空间,是对现代操做
系统把握最重要的概念之一。例如,经典OS有一个重要的statement:blog
kernel是没有context的。什么意思?kernel不存在生命。是属于一个进程
的,并且是共享的。 进程
[注释(22)#系统调用是操做系统里略微难理解的一个概念。其实就是通
过一个特殊指令,使得CPU挑战到异常处理,而后经过查表(事先填好)
,最后调用相应的kernel库函数。(在经典os里),kernel就是全局变量
+函数。写系统调用时,要注意的是对参数传递的约定要比较清楚。资源