Linux102系列
文章平均质量分 97
专注Linux
公粽号「专注Linux」,专注Linux内核领域知识分享,同时讲解C、汇编。专注复杂问题简单化,条理化。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【Linux102】90-include/fcntl.h
fcntl.h 是 Unix/Linux 系统中一个非常重要的头文件,主要用于文件控制操作,提供了与文件打开、状态控制、锁定等相关的宏定义、结构体和函数声明。其核心作用是定义一套标准接口,让程序能够对文件描述符进行各种高级操作。原创 2025-09-05 12:57:05 · 1176 阅读 · 0 评论 -
【Linux102】61-fs/super.c
该文件描述了文件系统超级块操作函数,这些函数属于文件系统底层,供上层的文件名和目录操作函数使用。主要有get_super()、put_super()和read_super()。另外还有有关文件系统加载/卸载的系统调用函数sys_umount()和sys_mount(),以及根文件系统加载函数 mount_root()。其他一些辅助函数与buffer.c中的辅助函数的作用类似。超级块中主要存放了有关整个文件系统的信息原创 2025-09-04 23:08:49 · 789 阅读 · 0 评论 -
【Linux102】63-fs/file_table.c
file_table.c文件是文件系统的文件描述符表核心实现,负责管理系统中所有打开文件的状态,是进程与文件交互的关键中间层原创 2025-09-04 23:06:40 · 610 阅读 · 0 评论 -
【Linux102】64-fs/block_dev.c
block_dev.c 、file_dev.c 、pipe.c和 char_dev.c 都是为后面的read_write.c 程序提供服务,主要实现了系统调用write() 和 read()。原创 2025-09-04 23:05:14 · 1041 阅读 · 0 评论 -
【Linux102】59-fs/bitmap.c
bitmap.c程序 的功能和作用既简单又清晰,主要用于对i节点位图和逻辑位图进行释放和占用处理。原创 2025-09-03 23:56:34 · 619 阅读 · 0 评论 -
【Linux102】58-fs/buffer.c
buffer.c程序用于对高速缓冲区(池)进行操作和管理。高速缓冲区位于内核代码和主内存区 之间。整个高速缓冲区被划分成1024B大小的缓冲块,正好与块设备上的磁盘逻辑块大小一样。高速缓冲区采用hash表和空闲缓冲块队列进行操作管理。原创 2025-09-02 22:35:48 · 694 阅读 · 0 评论 -
【Linux102】45-kernel/blk_drv/ramdisk.c
这是内存虚拟盘驱动程序,由 Theodore Ts’o 编制。原创 2025-08-29 23:07:58 · 896 阅读 · 0 评论 -
【Linux102】41-kernel/blk_drv/hd.c
hd.c程序是硬盘控制器驱动程序,提供对硬盘控制器块设备的读写驱动和硬盘初始化处理。原创 2025-08-28 23:08:25 · 807 阅读 · 0 评论 -
【Linux102】40-kernel/blk_drv/blk.h
这是有关硬盘块设备参数的头文件,因为只用于块设备,所以与块设备代码放在同一个地方。其中主要定义了请求等待队列中项的数据结构request,用宏语句定义了电梯搜索算法,并对内核目前支持的虚拟盘、硬盘和软盘三种块设备,根据它们各自的主设备号分别设定了常数值。原创 2025-08-27 22:38:42 · 728 阅读 · 0 评论 -
【Linux102】39-include/asm/io.h
io.h定义了一系列宏,这些宏是 x86 架构下直接操作硬件 I/O 端口的底层工具:inb/outb 用于基本的端口读写,带_p后缀的版本(inb_p/outb_p)增加了延迟,适配慢速设备通过内联汇编直接控制 CPU 寄存器(AL、DX 等),实现了最高效的硬件交互通常用于操作系统内核、设备驱动等需要直接操作硬件的场景原创 2025-08-25 22:52:38 · 622 阅读 · 0 评论 -
【Linux102】38-include/linux/fdreg.h
这个头文件为操作软盘控制器提供了统一的符号定义和函数接口声明,是底层软盘驱动程序开发的基础,使得开发者可以通过这些抽象的符号和函数来与软盘控制器硬件进行交互,而无需直接使用具体的数值地址和命令码,提高了代码的可读性和可维护性。原创 2025-08-25 22:51:36 · 793 阅读 · 0 评论 -
【Linux102】37-kernel/exit.c
该程序主要描述了进程(任务)终止和退出的处理事宜。主要包含进程释放、会话终止和程序退出处理函数以及杀死进程、终止进程、挂起进程等系统调用函数。还包括进程信号发送函数send_sig()和通知父进程子进程终止的函数tell_father()。原创 2025-08-25 22:49:23 · 1033 阅读 · 0 评论 -
【Linux102】17-kernel/signal.c
这段代码是处理信号机制的核心实现,负责信号的设置、获取和处理。在操作系统内核中,进程是信号的载体与处理主体,信号则是内核或进程间向进程传递异步事件通知的机制,二者通过内核的信号管理模块紧密关联,二者的互动是内核实现进程控制(如终止、暂停)和异步事件通知的核心机制。原创 2025-08-23 10:16:26 · 1157 阅读 · 0 评论 -
【Linux102】26-include/sys/wait.h
include/sys/wait.h的主要作用定义解析子进程终止状态的宏(如WIFEXITED、WEXITSTATUS等),用于判断子进程是正常退出还是被信号终止,以及获取具体的退出码或信号值。声明wait和waitpid两个系统调用函数,用于父进程等待子进程结束并获取其状态。原创 2025-08-21 10:55:15 · 482 阅读 · 0 评论 -
【Linux102】25-include/errno.h
errno.h文件定义一系列标准错误码常量,用于标识系统操作中的具体错误类型。具体来说是通过声明全局错误变量errno,供程序获取最近一次错误状态。这些错误码是操作系统与应用程序之间沟通错误信息的标准化方式,几乎所有系统调用和库函数在执行失败时都会通过errno返回对应的错误码。原创 2025-08-21 10:52:29 · 954 阅读 · 0 评论 -
【Linux102】15-1-task_struct结构体
Linux102系列会详细讲解Linux0.11版本中的102个文件,本文讲解linux0.11的第15个文件include/linux/sched.h中的进程PCB结构体——task_struct的源码。为什么一个结构体单独出一篇文章?因为PCB太重要了! 我们说的进程的一切抽象全部在这里面,所以要好好看!原创 2025-08-18 22:47:35 · 1000 阅读 · 0 评论 -
【Linux102】21-include/asm/segment.h
include/asm/segment.h程序定义了一系列用于在 Linux 内核中访问用户空间内存的内联函数,主要通过内嵌汇编操作段寄存器fs来实现内核与用户空间的数据交互。原创 2025-08-17 20:12:42 · 772 阅读 · 0 评论 -
【Linux102】18-include/signal.h
在计算机领域,信号(Signal) 是一种由操作系统或进程发出的异步通知机制,用于告知目标进程发生了某个特定事件,需要其暂停当前工作并处理该事件。include/signal.h 定义了信号处理相关数据结构,是理解Linux内核的信号机制的必知前提。原创 2025-08-16 12:33:52 · 1261 阅读 · 0 评论 -
【Linux102】19-include/sys/types.h
在 Linux 系统中,include/sys/types.h 是一个核心的系统头文件,主要作用是定义跨平台的基础数据类型,为系统调用、库函数和应用程序提供统一的数据类型声明,确保不同架构(如 x86、ARM 等)和编译环境下的兼容性。原创 2025-08-16 11:02:57 · 1166 阅读 · 0 评论 -
【Linux102】14-kernel/system_call.s
Linux102系列会详细讲解Linux0.11版本中的102个文件,本文讲解linux0.11的第14个文件kernel/system_call.s的文件源码。原创 2025-08-13 20:20:08 · 885 阅读 · 0 评论 -
【Linux102】9-kernel/traps.c
Linux102系列会详细讲解Linux0.11版本中的102个文件,本文讲解linux0.11的第9个文件kernel/traps.s的文件源码。上文说到,asm.s程序实现了大部分硬件异常所引起的中断的汇编处理过程。而本届讲解的traps.c就是这些中断的具体实现。原创 2025-08-12 05:18:12 · 398 阅读 · 0 评论 -
【Linux102】12-include/stdarg.h
Linux102系列会详细讲解Linux0.11版本中的102个文件,本文讲解linux0.11的第11个文件include/stdarg.h的文件源码。1.stdarg的主要作用stdarg.h是C 语言标准库中用于处理可变参数函数的头文件,核心作用是提供一套宏定义,让函数能够接收数量和类型不确定的参数(如 printf(const char *fmt, ...) 中的 ...)。原创 2025-08-10 19:43:33 · 965 阅读 · 0 评论 -
【Linux102】11-kernel/vsprintf.c.c
Linux102系列会详细讲解Linux0.11版本中的102个文件,本文讲解linux0.11的第11个文件kernel/vsprintf.c的文件源码。1.vsprintf的主要作用一句话:格式化字符串输出函数,主要作用是将可变参数列表按照指定格式转换为字符串并存储到指定的缓冲区中。原创 2025-08-10 19:41:21 · 1245 阅读 · 0 评论 -
【Linux102】10-kernel/printk.c
Linux102系列会详细讲解Linux0.11版本中的102个文件,本文讲解linux0.11的第10个文件kernel/printk.c的文件源码。printk的主要作用一句话:就是内核态的printf。原创 2025-08-10 19:38:01 · 894 阅读 · 0 评论
分享