20135320赵瀚青LINUX第二章读书笔记
2016-03-16 22:27
357 查看
第二章—从内核出发
获取内核代码
使用git
获取最新提交到版本树的一个副本$ git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
安装内核源代码
压缩形式为bzip2运行:$ tar xvjf linux-x.y.z.tar.bz2压缩形式为zip运行:$ tar xvzf linux-x.y.z.tar.gz使用补丁
从内部源码树开始运行$ patch -p1 < ../patch-x,y,z内核源码树
如下图所示编译内核
配置内核(一)、启动内核配置程序。
cd /usr/src/linux
make config
除了上面的命令,用户还可以使用make menuconfig命令启动一个菜单模式的配置界面。如果用户安装了X window系统,还可以执行make xconfig命令启动X window下的内核配置程序。(二)、配置内核
Linux的内核配置程序提供了一系列配置选项。对于每一个配置选项,用户可以回答"y"、"m"或"n"。其中"y"表示将相应特性的支持或设备驱动程序编译进内核;"m"表示将相应特性的支持或设备驱动程序编译成可加载模块,在需要时,可由系统或用户自行加入到内核中去;"n"表示内核不提供相应特性或驱动程序的支持。
(三)、编译内核
make zImage
内核编译成功后,会在/usr/src/linux/arch/i386/boot目录中生成一个新内核的映像文件zImage。如果编译的内核很大的话,系统会提示你使用make bzImage命令来编译。这时,编译程序就会生成一个名叫bzImage的内核映像文件。(四)、编译可加载模块
如果用户在配置内核时设置了可加载模块,则需要对这些模块进行编译,以便将来使用insmod命令进行加载。
make modules
make modelus_install
编译成功后,系统会在/lib/modules目录下生成一个2.3.14子目录,里面存放着新内核的所有可加载模块。内核开发的特点
无libc库抑或标准头文件
没有内存保护机制
在内核中,不该访问非法的内存地址,引用空指针,否则内核会over;内核中的内存不分页:每用掉一个字节,物理内存都减少一个;
不用轻易在内核中使用浮点数
与用户空间进程不同,内核不完美支持浮点操作,因为他本身不能陷入;容积小而固定的栈
用户空间的栈本身比较大,而且可以动态增长;对于不用的体系结构,内核栈的大小不一样并都是固定的;同步和并发
Linux是抢占多任务操作系统Linux内核支持对称多处理器系统(SMP)
中断异步到来
Linux内核可以抢占
可移植性的重要性
Linux是可移植的操作系统。相关文章推荐
- Linux安装JDK
- 我的Linux书架
- 《LInux内核设计与实现》第一、二章读书笔记
- Linux进程间通信的几种方式总结--linux内核剖析(七)
- Linux_常用的磁盘列阵(RAID)
- 20135320赵瀚青LINUX第一章读书笔记
- linux笔记
- hadoop伪分布式安装,Linux
- LINUX下搭建VSFTPD服务器
- 《Linux内核设计与实现》 第三周 读书笔记
- 【转】虚拟机下安装小红帽Linux9.0图解
- linux ulimit 优化系统
- linux 创建 静态 链接库 动态 链接库
- 《Linux内核设计与实现》——第1、2章(内核简介)
- linux中awk命令详解
- 《linux内核设计与实现》读书笔记第一、二章
- linux正则表达式
- Linux下Opencv的安装及配置使用
- Linux下查看文件和文件夹大小
- 在Linux中,用什么命令可以查看到用户组中包含有哪里用户? usermod