Linux开机流程
1、加载 BIOS 的硬件信息,并取得第一个开机装置的代号;
2、读取第一个开机装置的 MBR 的 boot Loader (亦即是 lilo, grub, spfdisk 等等) 的开机信息;
3、加载 Kernel 操作系统核心信息, Kernel 开始解压缩,并且尝试驱动所有硬件装置;
4、Kernel 执行 init 程序并取得 run-level 信息;
5、init 执行 /etc/rc.d/rc.sysinit 档案;
6、启动核心的外挂模块 (/etc/modprobe.conf);
7、init 执行 run-level 的各个批处理文件( Scripts );
8、init 执行 /etc/rc.d/rc.local 档案;
9、执行 /bin/login 程序,并等待用户登入;
10、登入之后开始以 Shell 控管主机。
在/etc/rc.d/rc3.d内,以S开头的为开机启动,以K开头的为关闭,接着的数字代表执行顺序
相关文档:
原来likely和unlikely是用来编译优化的,其实都可以没有。我们知道很多cpu里面有告诉缓存,且有预读机制,likely和unlikely就是增加执行判断语句时的命中率。
如果是if(lilely(a)),说明a条件发生的可能性大,那么a为真的语句在编译成二进制的时候就应该紧跟在前面程序的后面,这样就会被cache预读取进去,增加程序执行 ......
#include <fcntl.h>
int main(void)
{
typedef union un{
short s;
char c[sizeof(short)];
}un;
un myun;
myun.s = 0x0102;
......
Linux 挂载文件系统
作者:lilleo 2005-01-24 11:19:55 来自:Linux公社
1、挂载点必须是一个目录。
2、一个分区挂载在一个已存在的目录上,这个目录可以不为空,但挂载后这个目录下以前的内容将不可用。
对于其他操作系统建立的文件系统的挂载也是这样。但是需要理解的是:光盘、软盘、其 ......
在共享内存(上)中,主要围绕着系统调用mmap()进行讨论的,本部分将讨论系统V共享内存,并通过实验结果对比来阐述两者的异同。系统V共享内存指的是把所有共享数据放在共享内存区域(IPC shared memory region),任何想要访问该数据的进程都必须在本进程的地址空间新增一块内存区域,用来映射存放共享数据的物理内存页面 ......