进程之间互相通讯并和核心通讯,协调它们的行为。 linux 支持一些进程间通讯( IPC )的机制。信号和管道是其中的两种, linux 还支持系统 V IPC (用首次出现的 Unix 的版本命名)的机制。 5.1 Signals (信号) 信号是 Unix 系统中使用的最古老的进程间通讯的方法之一。用于向一个或多个进程发送异步事件的信号。信号可以用键盘终端产生,或者通过一个错误条件产生,比如进程试图访问它的虚拟内存中不存在的位置。 S...
Memory Management (内存管理) 内存管理子系统是操作系统的重要部分。从计算机发展早期开始,就存在对于大于系统中物理能力的内存需要。为了克服这种限制,开发了许多种策略,其中最成功的就是虚拟内存。虚拟内存通过在竞争进程之间共享内存的方式使系统显得拥有比实际更多的内存。 虚拟内存不仅仅让你的计算机内存显得更多,内存管理子系统还提供: Large Address Spaces (巨大的地址空间)操作系统使系统...
想入手分析linux源代码的linuxer,我想这篇文章可能对你会有些帮助的。我也在分析内存管理部分,欢迎交流,共同进步。[力量虽少,但希望早日实现在linux内核里有一行代码是我们中国人写的] linux的最大的好处之一就是它的源码公开。同时,公开的核心源码也吸引着无数的电脑爱好者和程序员;他们把解读和分析linux的核心源码作为自己的最大兴趣,把修改linux源码和改造linux系统作为自己对计算机技术追求的最大目标。 linux内核源...
启动 当PC启动时,Intel系列的CPU首先进入的是实模式,并开始执行位于地址0xFFFF0处 的代码,也就是ROM-BIOS起始位置的代码。BIOS先进行一系列的系统自检,然后初始化位 于地址0的中断向量表。最后BIOS将启动盘的第一个扇区装入到0x7C00,并开始执行此处 的代码。这就是对内核初始化过程的一个最简单的描述。 最初,linux核心的最开始部分是用8086汇编语言编写的。当开始运行时,核心将自 己装入到绝对地址0x90000,再将其...
http://joyfire.net/jln/kernel/ 另外此网站上还有其它的linux学习笔记 想在UNIX下编好程,或是想知道一个大的软件是怎样编出来的 系统怎样实现,那么看看内核总是有好处 这个网站写得比较简练,但是主要方面也写出来了 如果想看更深入的话,可以下linux内核情景分析 在linux论坛中有
OBJCOPY 可以将一种格式的目标 文件 内容进行转换,并输出为另一种格式的目标文件。 它使用GNU BFD(binary format description)库读/写目标文件,通过这个BFD库,objcopy能以一种不同于源目标文件的格式生成新的目标文件 在makefile里面用-O binary选项来生成原始的二进制文件,即通常说的image文件 OBJDUMP 显示一个或多个目标文件的信息,由其选项来控制显示哪些信息 一般来说,objdump只对那些要编写编译工具的程序员有帮助,但...
关于do_IRQ和虚拟内存 进程的虚拟 地址 空间 独立的地址空间(32位,4GB),每个进程一个 在 linux 中,3G以上是 内核 空间,3G以下是用户空间 4G的进程地址空间使用进程私有的二级页表进行地址转换(虚拟地址à物理地址) 每创建一个进程就给它分配4G的空间供它使用,4G=32位=10位的页目录+10位的页表+12位的页框。当找页中的某个项时会先根据它的高10位找到它在页目录中的位置,根据该值再找到页表,然后根据中间10位定位到哪张...