03. Unix Linux
文章平均质量分 64
ExcaliburXK
这个作者很懒,什么都没留下…
展开
-
Linux系统启动流程
我们从按下电脑电源键开始说起。 (1) 首先是主板BIOS通电自检。按照《微机原理》课本上的说法,CS寄存器被置为0xFFFF,其它寄存器清零,因此CPU从FFFF:0000H处开始执行,这里保存的是跳转指令,跳转到固化在ROM中的自检程序处。于是对系统硬件包括内存进行自检。 当BIOS检查到硬件正常并且与CMOS的设置相符后,按照CMOS 中对启动设备的设置顺原创 2012-03-03 13:38:21 · 933 阅读 · 0 评论 -
POSIX信号处理
(知识整理计划中……)原创 2012-03-24 22:01:32 · 906 阅读 · 0 评论 -
Unix文件系统
Unix文件系统有多种实现,下文主要讨论基于BSD的UFS(UNIX File System)。 一般硬盘被分为多个分区,每个分区可以包含一个文件系统。文件系统的结构一般如下: 自举块 | 超级块 | 柱面组0 | 柱面组1 | …… | 柱面组n 其中,柱面组i的结构如下: 超级块副本 | 配置信息 | i-node图 | 块位原创 2012-03-11 16:49:14 · 2221 阅读 · 1 评论 -
Linux多线程
知识总结计划中……原创 2012-04-24 14:19:20 · 604 阅读 · 0 评论 -
僵尸进程详解
//xk> 铺垫1:fork()和exec Unix中派生一个新的进程的唯一方法是fork()函数(有些系统可能提供它的各种变体)。父进程中打开的所有描述符在fork()之后由子进程分享。 存放在硬盘上的程序文件能够被Unix执行的唯一途径是:由一个现有进程调用exec函数中的某一个(exec函数有6个,作用相同,调用参数不同)。exec不会创建一个新的进程,而原创 2012-03-25 18:55:13 · 965 阅读 · 0 评论 -
linux kernel中的编码技巧:将运行期错误提前为链接报错
//xk> 缘起 《深入Linux内核架构》P144页。读书存疑,继而想通。 //xk> 铺垫 虚拟地址空间一般按3:1划分为进程地址空间和内核地址空间,32位机器4G的虚拟地址空间就有1G分为内核地址空间。 (1) 内核地址空间前896M是直接映射的物理页帧,即物理内存上的896M能直接映射(通过线性偏移0xC000原创 2012-06-22 13:58:29 · 1297 阅读 · 0 评论 -
linux内核中的container_of宏
//xk> 引子 首先看一个简单的面试题:定义一个宏FIND(stru, e),求结构体stru中某个成员e相对于stru的偏移量。 题目的解答很简单: #define FIND(stru, e) &(((stru *)0)->e) 将常量0强制类型转化为stru *类型的指针。因为结构体的首地址为0,所以其成员的地址即为相对于结构体的偏移量。原创 2012-07-03 22:11:31 · 1037 阅读 · 0 评论