第一章    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,因此必须时刻注意同步和并发

*要考虑可移植性

Linux读书笔记第一、二章的更多相关文章

  1. linux 第三周读书笔记-----第一二章 20135334赵阳林

    第一章 Linux内核简介 1.1 Unix的历史 由于Unix系统设计简洁并且在发布时提供源代码,所以许多其他组织和团体都对它进了进一步的开发. Unⅸ虽然已经使用了40年,但计算机科学家仍然认为它 ...

  2. # linux读书笔记(3章)

    linux读书笔记(3章) 标签(空格分隔): 20135328陈都 第三章 进程管理 3.1 进程 进程就是处于执行期的程序(目标码存放在某种存储介质上).但进程并不仅仅局限于一段可执行程序代码( ...

  3. linux读书笔记(5章)

    linux读书笔记(5章) 标签(空格分隔): 20135328陈都 第五章 系统调用 5.1 与内核通信 系统调用 让应用程序受限的访问硬件设备 提供创建新进程并与已有进程通信的机制 提供申请操作系 ...

  4. Linux内核分析第一二章读书笔记

    linux读书笔记(1,2章) 标签(空格分隔): 20135328陈都 第一章 Linux内核简介 Unix的历史 Unix 虽然已经使用了40年,但计算机科学家仍然认为它是现存操作系统中最强大和最 ...

  5. Linux读书笔记第一周

    1.Unix内核的特点:简洁:抽象:可移植性:进程创建:清晰的层次化结构. Linux内核是一种自由/开源的软件,设计思想与Unix系统相似(一切皆文件,特定的单一用途 & 简单的组合方式) ...

  6. Linux读书笔记1/2章

    linux的内核设计: 第一章 1.1Linux历史: 历经时间的考验,今天Unix已经发展成一个支持抢占式多任务.多线程.虚拟内存.换页.动态链接.TCP/Ip网络的现代化操作系统. 1.2追寻Li ...

  7. linux读书笔记第三章

    第3章 进程管理20 3.1 进程20 进程就是处于执行期的程序(目标码存放在某种存储介质上),但进程并不仅仅局限于一段可执行程序代码.通常进程还要包含其他资源,像打开的文件,挂起的信号,内核内部数据 ...

  8. Linux读书笔记第五章

    主要内容: 什么是系统调用 Linux上的系统调用实现原理 一个简单的系统调用的实现 1. 什么是系统调用 简单来说,系统调用就是用户程序和硬件设备之间的桥梁. 用户程序在需要的时候,通过系统调用来使 ...

  9. 《LINUX内核设计与实现》第三周读书笔记——第一二章

    <Linux内核设计与实现>读书笔记--第一二章 20135301张忻 估算学习时间:共2小时 读书:1.5 代码:0 作业:0 博客:0.5 实际学习时间:共2.5小时 读书:2.0 代 ...

随机推荐

  1. openstack placement 组件作用理解

    例如,一个资源提供者可以是一个计算节点,共享存储池,或一个IP分配池.placement服务跟踪每个供应商的库存和使用情况.例如,在一个计算节点创建一个实例的可消费资源如计算节点的资源提供者的CPU和 ...

  2. SharePoint document 右键菜单和【...】菜单不一致的解决办法

    [问题]在sharepoint 2016环境中,当用户只有read权限,访问文档库,会发现文档的右键菜单和[…]菜单的内如是不一致的,而更高权限用户都是一致的. [分析]这个跟微软询问过,是个bug, ...

  3. Java类是如何默认继承Object的?

    原:https://juejin.im/post/5ca1e8ade51d454e6a300048 前言 学过Java的人都知道,Object是所有类的父类.但是你有没有这样的疑问,我并没有写exte ...

  4. iOS开发网络篇—发送GET和POST请求(使用NSURLSession) - 转

    说明: 1.该文主要介绍如何使用NSURLSession来发送GET请求和POST请求 2.本文将不再讲解NSURLConnection的使用,如有需要了解NSURLConnection如何发送请求. ...

  5. 【Mac 快捷键】 (不定时持续更新)

    显示/取消显示隐藏文件 command + shift + .

  6. JavaWeb基础—HttpServletResponse

    HttpServletResponse对象代表服务器的响应. 这个对象中封装了向客户端发送数据.发送响应头,发送响应状态码的方法. 几个方法: 向客户端发送数据: getOutputStream() ...

  7. 【转载】COM 组件设计与应用(十四)——事件和通知(vc.net)

    原文:http://vckbase.com/index.php/wv/1244.html 一.前言 我的 COM 组件运行时产生一个窗口,当用户双击该窗口的时候,我需要通知调用者: 我的 COM 组件 ...

  8. 解决 spring-test 出现 Failed to load ApplicationContext 的异常

    在使用spring-test的时候,在启动@Test的方法时,spring-test会去加载spring的配置文件,这个时候如果配置文件没有在 @ContextConfiguration 中写全,就会 ...

  9. Package设计1:选择数据类型、暂存数据和并发

    SSIS 设计系列: Package设计1:选择数据类型.暂存数据和并发 Package设计2:增量更新 Package 设计3:数据源的提取和使用暂存 一,数据类型的选择 对于SSIS的数据类型,容 ...

  10. (转)js数组与字符串的相互转换方法

    一.数组转字符串 需要将数组元素用某个字符连接成字符串,示例代码如下: var a, b; a = new Array(0,1,2,3,4); b = a.join("-"); 二 ...