上一页 1 ··· 11 12 13 14 15 16 17 18 19 ··· 28 下一页
摘要: 基本原则 公平性 Linux调度器追求公平性,即每个运行中的进程都有机会获得CPU时间。这通过使用时间片轮转算法和动态优先级调度来实现。Linux将进程分为实时(real-time)和普通(normal)进程,以确保实时任务不会被普通任务长时间阻塞。 优先级 Linux采用了静态优先级和动态优先级相 阅读全文
posted @ 2023-09-25 21:07 不会笑的孩子 阅读(85) 评论(0) 推荐(0)
摘要: 内核初始化 引导加载程序(BootLoader) 计算机首先加载引导(GRUB)。引导加载程序的任务是从存储介质(硬盘、光盘等)加载操作系统内核到内存中,并跳转到内核的启动位置。 设置堆栈和切换到保护模式 内核初始开始时,计算机可能仍让处于实模式。内核会设置堆栈,切换到保护模式或长模式(64位系统) 阅读全文
posted @ 2023-09-25 20:53 不会笑的孩子 阅读(79) 评论(0) 推荐(0)
摘要: 概念 设备控制器是计算机中的一个关键组件,它用于管理和控制与计算机相连的因该你设备。每个硬件设备通常都有一个相关联的设备控制器,设备控制器负责与操作系统进行通信,并执行各种操作,如数据传输、命令执行和错误处理。 设备控制器的类型 设备控制器的类型不同,包括磁盘控制器、网络控制器、图形控制器、USB控 阅读全文
posted @ 2023-09-25 20:20 不会笑的孩子 阅读(84) 评论(0) 推荐(0)
摘要: 内核运行的过程 启动阶段: 当计算机启动时,通常从硬盘、固态硬盘或其他存储设备中加载引导加载程序(Boot Loader)的第一部分。这个引导加载程序负责加载操作系统内核。 加载内核: 引导加载程序会从存储设备中加载操作系统内核的镜像文件,通常是一个称为vmlinuxz或bzImage的文件。这个内 阅读全文
posted @ 2023-09-25 09:29 不会笑的孩子 阅读(64) 评论(0) 推荐(0)
摘要: A20 A20是计算机内存地址线的第20根地址线,通常称为A20线。它在x86架构的计算机中起着重要的作用,特别是在早期的计算机中。 历史背景 早期的8086和80286处理器以及相应的计算机主板仅支持1MB的物理内存寻址。这意味着计算机只能寻址1MB的内存,而无法访问更多的内存。这是由于A20线默 阅读全文
posted @ 2023-09-25 09:11 不会笑的孩子 阅读(110) 评论(0) 推荐(0)
摘要: 阅读源码时注意的事项 在第一遍阅读源码时,已弄懂整体流程为主,至于具体的实现细节先简单的理清处过一遍,不用过于纠结。 当梳理清楚全部的框架逻辑后,第二遍再深入的学习研究各个模块的实现,此时应该解决第一遍中的疑惑。 第三遍可以跳出代码的实现,来看Linux的设计思路、编程艺术和演进之路。 重在实践。L 阅读全文
posted @ 2023-09-25 08:32 不会笑的孩子 阅读(21) 评论(0) 推荐(0)
摘要: Makefile Linux内核的Makefile系统非常复杂,因为内核包含了许多不同的配置选项、架构和模块。以下是Linux内核Makefile系统中一些重要的文件和目录,以及它的作用。 顶层Makefile(Makefile) 顶层Makefile是整个内核编译过程的入口点 它包含了全局选置选项 阅读全文
posted @ 2023-09-24 22:16 不会笑的孩子 阅读(215) 评论(0) 推荐(0)
摘要: 读源码时应该注意的事项 在第一遍阅读源码时,已弄懂整体流程为主,至于具体的实现细节先简单的理清处过一遍,不用过于纠结。 当梳理清楚全部的框架逻辑后,第二遍再深入的学习研究各个模块的实现,此时应该解决第一遍中的疑惑。 第三遍可以跳出代码的实现,来看Linux的设计思路、编程艺术和演进之路。 实模式 x 阅读全文
posted @ 2023-09-24 21:43 不会笑的孩子 阅读(131) 评论(0) 推荐(0)
摘要: 字符设备 字符以每个字符为单位进行读写操作设备。它们是一种逐字符流式设备,字符都是独立的。 例如,键盘、USB、串口设备等通常被视为字符设备,因为它们接受和发送单个字符或字节的数据。 字符通常不支持随机访问,设备只能按顺序访问数据。因此,无法像文件系统那样以块为单位读取或写入数据。 字符的数据传输通 阅读全文
posted @ 2023-09-24 21:04 不会笑的孩子 阅读(390) 评论(0) 推荐(0)
摘要: 指针函数(Pointer to Function) 指针函数:是指一个函数,其返回类型是一个指向函数的指针。这意味着该函数返回一个可以调用踢啊函数的指针。通常情况下,指针函数的声明如下: 返回类型 (*函数指针变量名)(参数类型1,参数类型2,.....); 例如,如下是一个简单的指向函数指针声明的 阅读全文
posted @ 2023-09-19 09:13 不会笑的孩子 阅读(18) 评论(0) 推荐(0)
上一页 1 ··· 11 12 13 14 15 16 17 18 19 ··· 28 下一页