上面的设备驱动程序中,每个设备类型的内核代码都不同 。字符设备有两种使用方式,有一键式的比如 vi 或者 emacs ,需要每一个键盘输入 。其他的比如 shell ,是需要输入一行按回车键将字符串发送给程序进行编辑 。
网络软件通常是模块化的,由不同的设备和协议来支持 。大多数 Linux 系统在内核中包含一个完整的硬件路由器的功能,但是这个不能和外部路由器相比,路由器上面是协议栈,包括 TCP/IP 协议,协议栈上面是 socket 接口,socket 负责与外部进行通信,充当了门的作用 。
磁盘驱动上面是 I/O 调度器,它负责排序和分配磁盘读写操作,以尽可能减少磁头的无用移动 。
- I/O 右边的是内存部件,程序被装载进内存,由 CPU 执行,这里会涉及到虚拟内存的部件,页面的换入和换出是如何进行的,坏页面的替换和经常使用的页面会进行缓存 。
- 进程模块负责进程的创建和终止、进程的调度、Linux 把进程和线程看作是可运行的实体,并使用统一的调度策略来进行调度 。
推荐阅读
- Mysql6.5二进制安装
- 作为一个新人 怎样学习嵌入式Linux
- 在linux系统下运行 .net core 程序
- 聊聊DOS操作系统中的文件系统FAT12
- Linux开发时常用Linux命令行使用技巧有哪些
- Linux 使用ps命令监视进程状态
- 1000+ 常用的 Linux 命令来袭
- 基于CentOS8Linux运维教程-Linux系统用户与组管理
- 华为二面凉凉:Linux+Redis+MySQL+算法+网络+Java一个都讲不清
- 使用Xmanager6远程连接工具连接Linux