Linux 操作系统!开篇( 四 )


上面的设备驱动程序中,每个设备类型的内核代码都不同 。字符设备有两种使用方式,有一键式的比如 vi 或者 emacs ,需要每一个键盘输入 。其他的比如 shell ,是需要输入一行按回车键将字符串发送给程序进行编辑 。
网络软件通常是模块化的,由不同的设备和协议来支持 。大多数 Linux 系统在内核中包含一个完整的硬件路由器的功能,但是这个不能和外部路由器相比,路由器上面是协议栈,包括 TCP/IP 协议,协议栈上面是 socket 接口,socket 负责与外部进行通信,充当了门的作用 。
磁盘驱动上面是 I/O 调度器,它负责排序和分配磁盘读写操作,以尽可能减少磁头的无用移动 。

  • I/O 右边的是内存部件,程序被装载进内存,由 CPU 执行,这里会涉及到虚拟内存的部件,页面的换入和换出是如何进行的,坏页面的替换和经常使用的页面会进行缓存 。
  • 进程模块负责进程的创建和终止、进程的调度、Linux 把进程和线程看作是可运行的实体,并使用统一的调度策略来进行调度 。
在内核最顶层的是系统调用接口,所有的系统调用都是经过这里,系统调用会触发一个 trap,将系统从用户态转换为内核态,然后将控制权移交给上面的内核部件 。




推荐阅读