上一页 1 2 3 4 5 6 7 ··· 14 下一页

kernel——Kbuild

摘要: 0. kbuild的组成 0.1 构成文件 顶层Makefile .config arch/$(ARCH)/Makefile 各个目录下的Makefile scripts/Makefile.* 0.2 预定义的目标和变量 obj-m obj-y xxx-objs zImage menuconfig 阅读全文
posted @ 2022-10-24 12:45 开心种树 阅读(682) 评论(0) 推荐(0) 编辑

《Linux内核设计艺术》——第7章 缓冲区和多进程操作文件

摘要: 1. 缓冲区的作用 缓冲区是在物理内存中开辟的一块空间,这块内存空间的物理性质与进程所占的内存空间没有什么本质的不同。块设备与缓冲区交互数据同硬盘与进程内存空间交互数据从物理层面上看完全相同,既不会影响交互数据的正确性,也不会影响交互数据的传输速度。从这个角度看,没有缓冲区没有什么不可以,完全可以实 阅读全文
posted @ 2022-09-07 17:00 开心种树 阅读(239) 评论(0) 推荐(0) 编辑

《Linux内核艺术》——第6章 用户进程与内存管理

摘要: 现代操作系统的重要特征就是支持实时多任务——同时运行多个程序。运行中的程序被称为进程。在类UNIX操作系统的设计者看来,操作系统的核心就是进程。 所谓的操作系统就是若干个正在运行、操作的进程构成的系统。按照这个思路,进程的创建只可能由进程承担,也就是父子进程创建机制。在任何情况下,至少得有 一个进程 阅读全文
posted @ 2022-08-22 10:56 开心种树 阅读(172) 评论(0) 推荐(0) 编辑

kernel——模块机制

摘要: 1. 使用模块机制 测试模块hello.c #include <linux/init.h> #include <linux/module.h> static int __init hello_init(void) { printk("Hello world\n"); return 0; } stat 阅读全文
posted @ 2022-08-19 19:46 开心种树 阅读(151) 评论(0) 推荐(0) 编辑

《Linux内核设计的艺术》——第5章 文件系统

摘要: 1. 挂载文件系统 当前系统已经完成了根文件系统的挂载,将要挂载新的文件系统。 新的文件系统挂载在根文件系统的某个目录的inode上。 1)将硬盘的超级块读出,载入系统的super_block[8]中 2)从根文件系统读出指定的inode,载入inode_table[32] 3)将硬盘的超级块挂接到 阅读全文
posted @ 2022-08-19 11:24 开心种树 阅读(104) 评论(0) 推荐(0) 编辑

《Linux内核设计的艺术》——第4章

摘要: 现在已经有进程0,进程1,并挂载根文件系统,接下来创建进程2,并加载shell。 1. 打开标准输入,标准输出,标准错误 加载完根文件系统后,进程1调用open打开标准输入 open产生软件中断 int0x80,根据在IDT中的偏移,进入sys_open函数。 sys_open 分配 文件描述符,分 阅读全文
posted @ 2022-08-18 11:06 开心种树 阅读(138) 评论(0) 推荐(0) 编辑

《Linux内核设计的艺术》——3.进程1

摘要: 0. 前言 现在已经有了处于特权3的进程0,将使用fork出进程1,之后的进程也使用fork。 void main() { sti(); move_to_user_mode(); // 切换到特权3 if (!fork()) { init(); // 进程1进行init } for(;;) paus 阅读全文
posted @ 2022-08-17 15:24 开心种树 阅读(164) 评论(0) 推荐(0) 编辑

《Linux内核设计艺术》——1.BIOS

摘要: 1. 上电时发生了什么 CS寄存器和IP寄存器被置位,让cpu运行BIOS程序。这个步骤是硬件实现。 CS寄存器为 code segment register,ip/eip : instrucation pointer 这时BIOS被执行,BIOS之所以能被执行,还因为他被写入ROM中,ROM是掉电 阅读全文
posted @ 2022-08-09 09:37 开心种树 阅读(406) 评论(0) 推荐(0) 编辑

《Linux内核设计的艺术》——2.激活进程0

摘要: 1. 前言 Linux 0.11是一个支持多进程的现代操作系统。这就意味着,各个用户进程在运行过程中,彼此不能相互干扰,这样才能保证进程在主机中正常地运算。然而,进程自 身并没有一个天然的“边界”来对其进行保护,要靠系统“人为”地给它设计一套“边界”来对其进行保护。这套“边界”就是系统为进程提供的进 阅读全文
posted @ 2022-08-08 22:49 开心种树 阅读(120) 评论(0) 推荐(0) 编辑

kernel——开发环境搭建

摘要: 1. 基于zImage 1.1 zImage 修改kernel的Makefile 384 CROSS_COMPILE := arm-linux-gnueabi- 385 ARCH := arm 编译内核,模块,dtb文件 make vexpress_defconfig; make -j10 zIma 阅读全文
posted @ 2022-07-31 11:46 开心种树 阅读(149) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 ··· 14 下一页