第一章    Linux内核简介

1.1Unix历史

Unix特点:1、很简洁

2、所有东西都被当成文件对待

3、Unix内核和相关的系统工具软件都是用C语言编写而成

4、进程创建非常迅速

1.2追寻Linus足迹:linux简介

Linus开发。Linux是类Unix系统。Linux内核也是自由软件。

1.3操作系统和内核简介

操作系统:在整个系统中负责完成最基本功能和系统管理的那些部分。包括内核、设备驱动程序、启动引导程序、命令行shell或者其他种类的用户界面、基本的文件管理工具和系统工具。

内核:内核才是操作系统的核心。由负责响应中断和中断服务程序、负责管理多个进程从而分享处理器时间的调度程序,负责管理进程地址空间的内存管理程序和网络、进程间通信等系统服务程序共同组成。独立于普通应用程序,一般处于系统态

系统中运行应用程序通过系统调用与内核通信。内核还要负责管理系统的硬件设备。

1.4Linux内核和传统内核的比较

单内核

从整体是作为一个单独的大过程实现。大家都身处同一地址空间,内核之间的通信是微不足道的。单模块具有简单和性能高的特点。

微内核

微内核功能被划分为多个独立的过程。通过消息传递处理微内核通信,采用进程间通信(IPC)机制

实际应用的基于微内核的系统都让大部分或全部服务器位于内核。

Linux内核

支持动态加载内核模块;支持对称多处理机制;内核可以抢占;对内核来说所有进程都一样;提供北邮设备类的面向对象的设备模型;

1.5Linux内核版本

稳定的和处于开发中的。

命名机制:用”.“分隔的数字。第一个数字是主版本号,第二个数字是从版本号,第三个数字是修订版本号,第四个可选的数字为稳定版本号。

1.6Linux内核开发者社区

Linux内核邮件列表很有用。

第二章    从内核出发

2.1获取内核源码

Linux内核官方网站http://www.kernel.org

使用GIt获取最新提交到Linux版本树的一个副本:git clone git://git.kernel.org/pub/scm/linux/kernel/gie/Torvalds/linux-2.6.git

使用增量补丁想当于更新版本:patch –pl<../patch-x.y.z

2.3编译内核

编译内核之前需要进行配置。配置为二选一(yes or no)或三选一(yes or no or module)

配置工具:make config 遍历所有配置项,耗时长

Make menuconfig 基于ncurse库编制的图形界面工具

Make gconfig 基于gtk+的图形工具

Make defconfig 缺省配置

配置完成需要make就可以编译

2.4内核开发的特点

与应用程序开发的不同:

*既不能访问C库也不能访问标准的C头文件库

* 必须使用GUN C

*缺乏像用户空间那样的内存保护机制

*难以执行浮点运算

*给每个进程只有一个很小的定长堆栈

*由于内核支持异步中断、抢占和SMP,因此必须时刻注意同步和并发

*要考虑可移植性

最新文章

  1. CSS 基础语法
  2. 创建第二个 local network - 每天5分钟玩转 OpenStack(84)
  3. Dynamic支持CollectionView布局 、 MotionEffects特效 、 BlurImage效果 、 TextKit
  4. grunt构建前端自动化的开发环境
  5. Linux(Centos)配置OpenSSH无密码登陆&lt;转&gt;
  6. Logback 将日志分级别打印
  7. Codeforces Round #238 (Div. 1)
  8. input+div 下拉选择框
  9. Express安装入门与模版引擎ejs
  10. 24点游戏详细截图介绍以及原型、Alpha、Beta对比
  11. setTimeout和setInterval和单线程
  12. grid搜索最优参数
  13. Day5_协程函数_面向过程
  14. Java并发编程:Java Thread 的 run() 与 start() 的区别
  15. GIS案例学习笔记-多边形内部缓冲区地理模型
  16. linux_关闭防火墙
  17. Zabbix 命令:zabbix_get
  18. [转]未能加载文件或程序集 CrystalDecisions.Web Version=10.2.3600解决方法
  19. linux===进程操作
  20. Android面试题(1)

热门文章

  1. P3183 [HAOI2016]食物链
  2. 典型CAN通讯电路(带隔离)
  3. Ural 1183 Brackets Sequence(区间DP+记忆化搜索)
  4. 升级时针对Source oracle home 不存在解决办法
  5. Linux学习笔记(第十章)
  6. 20155236范晨歌 Exp1PC平台逆向破解及Bof基础实践
  7. 5 数据结构、栈、队列、链表、list、dict、迷宫问题
  8. P4048 [JSOI2010]冷冻波
  9. 洛谷 P4593 [TJOI2018]教科书般的亵渎
  10. Windows:打开MSDTC,恢复Windows任务栏,查看windows日志,打开远程桌面,打开Services,资源监控