cpu和内存之间通过地址总线、数据总线、控制总线连接。外部总线连接外部设备。下图有问题,内存和外设没有直接连接。同一组总线,CPU和内存连接的时候硬盘就不能和内存连接,否则有冲突,core和core之间也有冲突,软件层实现。
应用软件无法直接访问硬件设备,都要通过操作系统,也就是通过system call。
dos具备多程序,不具备多任务。
内核态和用户态设计的基本思想是让操作系统免受用户干扰(黑客控制系统),在硬件层解决掉这个问题,内核态用户是无法访问的。
也就是说用户一般是通过系统程序来实现系统调用的,例:GUI或者标准C库,或者jvm,而不是直接调用系统调用。
能移的尽量往外移,保留最小的内核,例如文件系统管理,进程的管理必须在内核里。
http://www.icourses.cn/jpk/viewCharacterDetail.action?courseId=6801&characId=77013