随笔分类 -  linux

摘要:1 物理内存模型 参考了:https://www.cnblogs.com/xelatex/p/3491301.html 物理内存模型主要分为两种:UMA(Uniform Memory Access,一致性内存访问)和NUMA(Non-Uniform Memory Access,非一致性内存访问)。U 阅读全文
posted @ 2025-04-11 16:29 zhenjingcool 阅读(57) 评论(0) 推荐(0)
摘要:基于linux内核2.6.24版本,书籍:Professional Linux Kernel Architecture英文版(可在https://github.com/welldef/os_books.git下载) 1 一些概念 1.1 微内核和单体内核 微内核:只有最基本的功能直接在中央内核(微内 阅读全文
posted @ 2024-09-19 15:45 zhenjingcool 阅读(236) 评论(0) 推荐(0)
摘要:1 系统初始化 1.1 通知链 为什么需要通知链?书中给出了一个例子,如果网络中一个子网不可达,必须更新路由器的路由表,而更新这个路由表就需要通知链。然后给出结论:In any case, the routing subsystem that manages the tables must be i 阅读全文
posted @ 2024-05-16 21:34 zhenjingcool 阅读(520) 评论(0) 推荐(0)
摘要:1 安装 在microsoft store安装,安装后使用wsl命令查看是否有实例。 wsl2安装了之后,即使没有安装任何发行版,linux内核也已经存在了,这个内核是windows提供的,专门用于windows的linux内核版本。 PS C:\Users\xxx> wsl -l -v NAME 阅读全文
posted @ 2024-05-08 23:08 zhenjingcool 阅读(141) 评论(0) 推荐(0)
摘要:1 minix文件系统 1.1 磁盘结构 minix文件系统磁盘结构如下所示 图中,整个磁盘被划分为360个磁盘块(每个磁盘块1Kb) 引导块,MBR就在这个磁盘块中。当计算机加电,ROM BIOS将会自动读取该磁盘块到内存并执行其中的代码。 分区,一块磁盘,我们可以最多有4个主分区。MBR大小为一 阅读全文
posted @ 2023-07-29 08:55 zhenjingcool 阅读(190) 评论(0) 推荐(0)
摘要:1 下载Bochs https://sourceforge.net/projects/bochs/ 我下载的版本为Bochs-win64-2.7.exe,双击即可安装 2 运行linux0.11 2.1 不使用配置文件 http://oldlinux.org/Linux.old/images/下载如 阅读全文
posted @ 2023-07-26 21:17 zhenjingcool 阅读(690) 评论(0) 推荐(0)
摘要:操作系统所有设备可分为两类:块设备和字符设备。 块设备是一种可以以固定大小的数据块为单位进行寻址和访问的设备,例如硬盘、软盘。 字符设备是一种以字符流作为操作对象的设备,不能进行寻址操作,例如打印机、网卡、终端设备。 为便于管理,操作系统将这些设备统一的以设备号进行分类。linux0.11内核将设备 阅读全文
posted @ 2023-07-22 08:06 zhenjingcool 阅读(218) 评论(0) 推荐(0)
摘要:中断:也叫异步中断,是由外设产生的。 异常:也叫同步中断,是由CPU产生的,是指令执行过程中产生的。 中断信号的作用:中断信号提供了一种特殊的方式,使处理器转而去运行正常控制流之外的代码。 0 硬中断和软中断 硬件中断面对CPU,软中断对内核,信号对某个进程中断。 硬件中断是由外设引起的,软中断是执 阅读全文
posted @ 2022-10-06 09:24 zhenjingcool 阅读(326) 评论(0) 推荐(0)
摘要:rs232串行通信处理的过程。它把串行线路上接收到的字符放入串行终端的读缓冲队列read_q当中,或者把写缓冲队列read_q发送到远端的穿行的终端设备 源码 /* * linux/kernel/rs_io.s * * (C) 1991 Linus Torvalds */ /* * rs_io.s 阅读全文
posted @ 2022-04-05 18:36 zhenjingcool 阅读(68) 评论(0) 推荐(0)
摘要:该源文件主要处理串行数据的发送和接收。 0 显卡和CGA 参考:https://blog.csdn.net/cy295957410/article/details/108436730 CGA(Color Graphics Adapter)彩色图形接口。是CGA显卡,提供基本的彩色文本显示 EGA(E 阅读全文
posted @ 2022-04-05 02:48 zhenjingcool 阅读(189) 评论(0) 推荐(0)
摘要:这个文件的核心是con_write(struct tty_struct * tty)函数,用于将缓冲队列write_q中的字符显示在控制台,所有其他函数都是围绕con_write函数。另外还有一个函数con_init()函数用于初始化控制台,这个函数在main.c中被调用(tty_init调用了co 阅读全文
posted @ 2022-04-04 01:20 zhenjingcool 阅读(162) 评论(0) 推荐(0)
摘要:0 键盘扫描码 当我们按下键盘的时候,键盘上的微控制器产生一个键盘扫描码传送给计算机,计算机把这个键盘扫描码传唤为ASCII字符。 下图为AT键盘的扫描码对照表 键盘工作的大概过程:当用户在键盘上键入一个字符时,会引起键盘中断,此时键盘中断处理程序就会从键盘控制器读入对应的键盘扫描码,然后会将键盘扫 阅读全文
posted @ 2022-04-02 01:18 zhenjingcool 阅读(398) 评论(0) 推荐(0)
摘要:这两个源码用于对参数产生格式化输出,和内核关系不大,主要是调用C语言进行一些格式化操作。了解一下。 1 vsprintf.c源码 /* * linux/kernel/vsprintf.c * * (C) 1991 Linus Torvalds */ /* vsprintf.c -- Lars Wir 阅读全文
posted @ 2022-03-30 23:35 zhenjingcool 阅读(682) 评论(0) 推荐(0)
摘要:该源码包含了很多系统调用的函数实现 源码 /* * linux/kernel/sys.c * * (C) 1991 Linus Torvalds */ #include <errno.h> #include <linux/sched.h> #include <linux/tty.h> #includ 阅读全文
posted @ 2022-03-30 23:18 zhenjingcool 阅读(189) 评论(0) 推荐(0)
摘要:在system_call.s中,我们定义了_sys_fork标签 _sys_fork: call _find_empty_process //首先判断是否进程号已满.见本文后面对该函数的解释 testl %eax,%eax //eax与自身相与,为的是判断eax是否为0 js 1f //如果进程号已 阅读全文
posted @ 2022-03-27 23:32 zhenjingcool 阅读(273) 评论(0) 推荐(0)
摘要:该源码主要实现进程退出或终止的相关功能 源码 /* * linux/kernel/exit.c * * (C) 1991 Linus Torvalds */ #include <errno.h> #include <signal.h> #include <sys/wait.h> #include < 阅读全文
posted @ 2022-03-27 02:14 zhenjingcool 阅读(245) 评论(0) 推荐(0)
摘要:signal.c用于信号处理。Linux的信号机制是使用信号来进行进程之前传递消息的机制。 进程接收到信号后有三种处理:1)忽略该信号 2)捕获该信号,执行自定义操作函数 3)执行系统默认的操作,一般就是结束进程。 信号位图:就是一个数组,数组的下标代表不同的信号,数组的元素则是对应信号的状态。li 阅读全文
posted @ 2022-03-26 22:31 zhenjingcool 阅读(292) 评论(0) 推荐(0)
摘要:源码 /* * linux/kernel/sched.c * * (C) 1991 Linus Torvalds */ /* * 'sched.c' is the main kernel file. It contains scheduling primitives * (sleep_on, wak 阅读全文
posted @ 2022-03-20 19:45 zhenjingcool 阅读(324) 评论(0) 推荐(0)