《Linux内核设计与实现》读书笔记 1&2

本文详细介绍了Linux内核的基础知识,包括Linux内核的历史、操作系统与内核的区别、Linux内核与传统内核的比较、内核版本及开发者社区。同时,提供了获取内核源码、编译内核的方法,并探讨了内核开发的特点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一章    Linux内核简介

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,因此必须时刻注意同步和并发
  • 要考虑可移植性

转载于:https://www.cnblogs.com/mqy123/p/5326189.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值