第一章


1.Unix内核特点

  1. 十分简洁:仅提供几百个系统调用并且有明确的目的;

  2. 在Unix中,大部分东西都被(或者正致力于)被当做文件对待;

  3. Unix内核即相关系统工具软件都是用C语言编写的,这使得系统有着强大的可移植性;

  4. Unix进程创建非常迅速,目标在于一次执行保质保量地完成一个任务

2.Linux与Unix异同

  • Linux是基于Unix的类系统,比如它也实现了Unix的API;

  • 但它不同于Unix,没有利用Unix内核源代码;

  • Linux是非商业的产品,任何人都可以参与到它的开发中

  • Unix内核与Linux内核的比较

  • Unix内核是一个不可分割的静态可执行库,通常需要硬件系统提供页机制(MMU)以管理内存;
  • Linux支持动态加载内核模块,并且是可抢占的。

3.Linux系统的基础是内核、C库以及工具集和系统的基本工具。

4.操作系统&内核

  1. 操作系统是指在整个系统中负责完成最基本功能和系统管理的那些部分,包括内核;

  2. 内核是操作系统的核心,系统其它部分必须依靠内核这部分软件提供的服务;

  3. 内核的组成&功能完成

    • 内核由调度、中断服务、通信等程序组成;
    • 内核处于的系统态以及受保护的内存空间被称为内核空间;
    • 应用程序通过系统调用接口与内核通信(这种交互方式是应用程序完成其工作的基本方式之一),有以下三种情况:
      • 函数较为复杂,系统调用只是工作的一部分;
      • 函数和系统调用是一一对应的关系;
      • 函数根本不需要调用系统级的操作。

4.内核分类

  1. 单内核(比如大多数Unix及Linux)

    • 把内核整体上作为一个大的单独的过程来实现,同时运行在一个单独的地址空间上
    • 简单,性能高
  2. 微内核(比如Windows NT)

    • 微内核的功能被划分为多个独立的功能,每个过程叫做一个服务器;便于处理内核间通信,还使用了IPC机制;

第二章


1.源代码管理

  1. 使用Git内核源代码一般安装在/usr/src/linux目录下,这个源码树并不能用于开发

    • Git作为版本控制系统来管理Linux内核源代码;
  2. 源代码树

    • 有很多目录值得被注意:

      • arch:特定体系结构的源代码;
      • include:内核头文件;
      • kernel:像调度程序这样的核心子系统。

2.编译内核

  1. 目的:将自己需要的功能编译进内核

  2. 步骤:

    1. 配置内核
    2. 前提:可以配置的各种变量都以CONFIG_前缀表示。
    3. 衍生多个编译作业
      • 一般每个处理器都会衍生1——2个作业,改善处理器的利用率
      • make -j32 > /dev/null
    4. 安装新内核

3.内核开发特点

  1. 无lib库或者标准头文件,不能直接使用标准C函数库

  2. 内核编程时使用GNU C,比如内联函数、内联汇编等

  3. 没有内存保护机制

《Linux内核设计与实现》第1、2章读书笔记的更多相关文章

  1. 《Linux内核设计与分析》第四章读书笔记

    <内核设计与实现>第四章读书笔记 第四章:进程调度 进程(操作系统)程序的运行态表现形式. 进程调度程序,它是确保进程能有效工作的一个内核子系统. 调度程序负责决定将哪个进程投入运行,何时 ...

  2. 《Linux内核设计与分析》第十七章读书笔记

    设备与模块 关于设备驱动和设备管理,四种内核成分. 设备类型:在所有Unix 系统中为了统一普通设备的操作所采用的分类. 模块: Linux 内核中用于按需加载和卸载目标码的机制. 内核对象:内核数据 ...

  3. 《Linux内核设计与实现》第一二章读书笔记

    第一章 Linux内核简介 1.Unix简介 (一)概念:支持抢占式多任务.多进程.虚拟内存.换页.动态链接和TCP/IP网络的现代化操作系统. (二)Unix特点(层次化结构): Unix很简洁,仅 ...

  4. 《Linux内核设计与实现》第17章读书笔记

    第十七章  设备与模块 一.四种内核成分 设备类型:在所有 Unix 系统中为了统一普通设备的操作所采用的分类. 模块: Linux 内核中用于按需加载和卸载目标码的机制. 内核对象:内核数据结构中支 ...

  5. 《Linux内核设计与实现》第4章读书笔记

    第四章 进程调度 调度程序负责决定将哪个程序投入运行,何时运行以及运行多长时间.进程调度程序可看做在可运行态进程之间分配有限的处理器时间资源的内核子系统.调度程序是像Linux这样的多任务操作系统的基 ...

  6. 《Linux内核设计与实现》第四章读书笔记

    4.1 多任务 多任务操作系统就是能同时并发地交互执行多个进程的操作系统. 多任务系统可以划分为两类: 非抢占式多任务进程会一直执行直到自己主动停止运行 抢占式多任务Linux/Unix使用的是抢占式 ...

  7. 《Linux内核设计与实现》第三章读书笔记

    一.进程(任务)描述 1.进程是处于执行期的程序:除了可执行程序代码,还包括打开的文件.挂起的信号.内核内部数据.一个或者多个执行线程等多种资源 线程是在进程活动中的对象:内核调度的对象是线程而不是进 ...

  8. 《Linux内核设计与实现》第七章读书笔记

    第七章.中断和中断处理 7.1中断 中断使得硬件得以发出通知给处理器.中断随时可以产生,内核随时可能因为新来到的中断而被打断. 不同的设备对应的中断不同,而每个中断都通过一个唯一的数字标志.操作系统给 ...

  9. 《Linux内核设计与实现》第五章读书笔记

    第五章  系统调用 5.1与内核通信 1. 系统调用 让应用程序受限的访问硬件设备 提供创建新进程并与已有进程通信的机制 提供申请操作系统其他资源能力是用户空间进程和硬件设备之间的中间层 2. 系统调 ...

  10. 《Linux内核设计与实现》第3章读书笔记

    第三章 进程管理 一.进程 1.进程就是处于执行期的程序,但并不局限于可执行代码.实际上,进程是正在执行的程序代码的实时结果. 2.执行线程是在进程中活动的对象 每个线程拥有一个独立的计数器.进程栈. ...

随机推荐

  1. OpenCL入门:(二:用GPU计算两个数组和)

    本文编写一个计算两个数组和的程序,用CPU和GPU分别运算,计算运算时间,并且校验最后的运算结果.文中代码偏多,原理建议阅读下面文章,文中介绍了OpenCL相关名词概念. http://opencl. ...

  2. 书写可维护的javascript

    内容介绍 编写可维护的代码很重要,因为大部分开发人员都花费大量时间维护他人代码. 1.什么是可维护的代码? 一般来说可维护的代码都有以下一些特征: 可理解性---------其他人可以接手代码并理解它 ...

  3. sqlserver(2012)清理tempdb

    当数据库运行时间长了之后,tempdb变得特别大,几十G,受不了啊:当然我们知道重启 SQL Server服务的话,tempdb数据库会自动重新创建的,从而使 tempdb 回归到初始大小.但是这是生 ...

  4. 2.0 flume、sqoop、oozie/Azkaban

    在一个完整的大数据处理系统中,除了hdfs+mapreduce+hive组成分析系统的核心之外,还需要数据采集.结果数据导出.任务调度等不可或缺的辅助系统,而这些辅助工具在hadoop生态体系中都有便 ...

  5. 《Cocos2d-x游戏开发实战精解》学习笔记4--实战一个简单的钢琴

    上一节学习了使用Cocos2d-x播放音乐的方法,但是那种方法一般只适合于播放较大的音乐,而一般比较短小的音乐(如游戏中的打斗.按键音效等)则要通过playEffect来播放.本节使用该方法以及之前学 ...

  6. centos下部署jenkins

    本文摘抄自:https://www.cnblogs.com/edward2013/p/5284503.html  ,请支持原版! 1. 安装JDK 1 yum -y install java 2.安装 ...

  7. Python学习之路7 - 生成器&迭代器

    本章内容: 列表生成式 生成器 yield 迭代器 列表生成式 当我们要定义一个列表的时候,我们通常用这种方式a = [1,2,3],但是如果我们定义了一个比较长的列表的时候,手动定义列表就会比较麻烦 ...

  8. 王者荣耀交流协会-小组互评Alpha版本

    小组分工如下: 1.探路者---贪吃蛇(测评人:王玉玲) 链接:http://www.cnblogs.com/WYLFZ/p/7805520.html    http://www.cnblogs.co ...

  9. linux +redis 安装 +mongo 安装

    Linux 下redis安装 本教程使用的最新文档版本为 2.8.17,下载并安装: $ wget http://download.redis.io/releases/redis-2.8.17.tar ...

  10. 读着读着《构建之法》(Build To Win) 越精神的白雪儿的思考

    哲学家的宗旨是:我思,故我在 科学家的宗旨是:我发现,故我在 工程师的宗旨是:我构建,故我在 ——<工程学--无尽的前沿> 序言:珍惜角色“人”,注重实践“物” <构建之法>, ...