基于《Linux内核设计与实现》笔记概述------从内核出发
来源:互联网 发布:什么的是网络协议 编辑:程序博客网 时间:2024/05/16 09:20
整章的重点:编译内核
捎带介绍基本常识:内核源代码的获取,以及如何安装新的内核,使用补丁,内核源码树
内核源码的获取:可以登录Linux官网获取源代码。PS:希望拥有最新的代码。
安装内核源代码(位置):内核源码一般安装在/usr/src/linux目录下。
注意:不能把这个源代树用于开发。
不要以root身份对内核进行修改。
使用补丁:不再需要下载庞大的内 核源码的全部压缩,而只需给旧版本打上一个增量补丁就OK了
(可以以补丁的形式发布对代码的修改,也可以以补 丁的形式接收其他人所做的修改。)
一般来说,一个给定版本的补丁的内核总是打在前一个版本上。
内核源码树:内核源码树由许多目录组成,而大多数目录又包含饿了更多的子目录。
编译内核:
编译内核包括三部分,配置内核,较少编译的垃圾信息,衍生编译的多个作业。
编译内核之前,首先要配置它。PS:由于内核提供了数不胜数的功能,且支持了难以计数的硬件,因而有许多东西需要配置。
可以配置 各种选项,配置选项既可以用来决定那些文件编译进了内核,也可以通过预处理命令处理代码。
配置项可以是二选一,或者是三选一。
配置选项既可以值字符串,可以是整数。
重点:如果你是一个黑客,你应当编译自己的内核,并按照自己的意愿决定包括或不包括哪一模块。
内核提供了不同的工具来简化内核配置:简单的有三种方法。
- 最简单的一种是一个字符界面下的命令行工具:$ make config1.
- 或者,是用基于gtk+的图形工具:$ make gconfig
- 基 于ncurse库编制的图形界面工具:$ make menuconfig
这三种工具将所有配置项分门别类放置,这些配置项也会被存放在内核代码树的根目录文件下。
一旦你配置好了,就可以用简单的命令来编译它了。
安装内核
在内核编译好之后,该需要安装它。
一定要保证随时有一个或两个可以启动的内核,以防新编译的内核出现问题。
内核开发的特点:
无libc库抑或无标准头文件
Linux内核是用C语言编写的
没有内存保护机制
不要轻易在内核代码中使用浮点数。
容积小而固定的栈
同步和并发性
以及重要的可移植性
从这几点可以看出他们的 重要差异:
•内核编程时既不能访问C库也不能访问标准的C头文件。
•内核编程时必须使用GNU C。
•内核编程时缺乏像用户空间那样的内存保护机制。
•内核编程时难以执行浮点运算。
•内核给每个进程只有一个很小的定长堆栈。
•由于内核支持异步中断、抢占和SMP,因此必须时刻注意同步和并发。
•要考虑可移植性的重要性。
阅读全文
1 0
- 基于《Linux内核设计与实现》笔记概述------从内核出发
- Linux内核设计与实现 之二 从内核出发
- Linux内核设计与实现——从内核出发
- 《Linux内核设计与实现》——从内核出发
- 《linux内核设计与实现》Chapter2内核出发(笔记)
- 《linux内核设计与实现》--从内核出发 第二章 进程线程
- linux内核设计与实现【第三版】摘记----第二章:从内核出发
- 读薄「Linux 内核设计与实现」(1) - 从内核出发
- 《Linux内核的设计与实现》读书笔记(二)---从内核出发
- 【读书笔记】LINUX设计与实现---第2章 从内核出发
- 【Linxu内核设计与实现】-第2章 从内核出发
- Linux内核学习笔记——从内核出发
- 《Linux内核设计与实现》笔记-1-linux内核简介
- [笔记]《Linux内核设计与实现》第一章Linux内核简介
- Linux内核设计与实现学习笔记
- Linux内核设计与实现笔记
- LKD (linux内核设计与实现)笔记
- 《linux内核设计与实现-笔记1》
- Matrix Power Series POJ
- C++中的int和string的相互转换
- Java 对象克隆(clone)
- 版本管理工具Git(3)VS2013下如何使用gi
- 美赛数模论文之摘要写作
- 基于《Linux内核设计与实现》笔记概述------从内核出发
- sizeof用法
- Socket网络编程和HTTP网络应用编程的比较
- PAT_1081. Rational Sum(辗转相除法)
- 用C#一步步写串口通信
- Codeforces 466D Increase Sequence(dp+组合数学)
- 擅长排列的小明
- Oracle之唯一性约束(UNIQUEConstraint)用法详解
- mysql 常用cache