《Linux内核设计与实现》第一二章学习笔记

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《Linux内核设计与实现》第一二章学习笔记相关的知识,希望对你有一定的参考价值。

《Linux内核设计与实现》第一、二章学习笔记

姓名:王玮怡  学号:20135116

第一章 Linux内核简介

一、关于Unix

    ——一个支持抢占式多任务、多线程、虚拟内存、换页、动态链接和TCP/IP网络的现代化操作系统

1、主要发展过程

  1969年,贝尔实验室的程序员们设计了一个文件系统原型,最终发展演化成了Unix

  1971年,Unix被移植到PDP-11型机中

  1973年,整个Unix系统使用C语言进行重写,为后来Unix系统的广泛移植铺平了道路

  Unix第六版(V6)被贝尔实验室以外广泛使用

  1977年,贝尔实验室综合各种变体,推出了Unix SystemⅢ,其中最著名的为加州大学伯克利分校在1977年推出的第一个Unix演化版——1BSD(Berkeley Software Distribution)系统

  1977年,加州大学伯克利分校推出第一个Unix演化版——1BSD(Berkeley Software Distribution)系统

  1978年,伯克利推出2BSD,包含了csh、vi等软件

  1979年,伯克利推出其独立开发的3BSD系统

  1983年,AT&T推出system Ⅴ

  20世纪80、90年代,许多工作站和服务器厂商在结合AT&T和伯克利发行版的基础上,结合自己的需要,推出自己的Unix系统,包括Digital Tru64、HP的HP-UX、IBM的AIX、SequentDYNIX/ptx等

2、主要特点

(1)简洁

(2)很多东西被表示成文件,这种抽象使对数据和对设备使用一套相同的系统调用接口来进行的open()、read()、write()、lseek()、close()

(3)Unix内核和相关系统工具软件是用C语言编写而成,便于移植

(4)进程创建十分迅速,并且有一个独特的fork()系统调用

二、关于操作系统和内核

1、操作系统

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

2、内核

    内核有时候被称为挂你这或者是操作系统核心,通常由负责响应中断的中断服务程序,负责管理多个进程从而分享处理器时间的调度程序,负责管理进程地址空间的内存管理程序和网络、进程间通信等系统服务程序共同组成。内核独立于普通应用程序,一般处于系统态,拥有受保护的内存空间和访问硬件设备的所有权限。这种内存态和被保护起来的内存空间统称为内核空间。

3、应用程序、内核和硬件的关系

   在系统中运行的应用程序通过系统调用来与内核通信。

技术分享

 

交互关系:应用程序通过系统调用界面陷入内核

    应用程序被称为通过系统调用在内核空间运行;

    内核被称为运行于进程上下文中。

每个处理器在任何时间点上的活动可以概括为下列三者之一:

    技术分享

4、单内核与微内核的比较

(1)单内核

    从整体上作为一个单独的大过程来实现,同时也运行在一个单独的地址空间上,内核可以直接调用函数

    优点:简单、性能高

    缺点:一个功能损坏可能会造成整个内核无法正常使用

(2)微内核

    功能被划分为多个独立的过程,每个过程叫做一个服务器。所有的服务器都保持独立并运行在各自的地址空间上,不能直接调用函数,通过消息传递处理微内核通信,系统采用进程间通信(IPC)机制。

    优点:各自独立避免一个服务器失效祸及另一个,模块化的系统允许一个服务器为了另一个服务器而换出

    缺点:服务器间的调用涉及进程间的通信,时间开销大,效率低

三、关于Linux

1、主要发展过程

    1991年,Linus Torvalds为当时新推出的、使用intel 80386微处理器的计算机开发了一款全新的操作系统,Linux由此诞生。

2、内核 

    Linux基于单内核

(1)综合了微内核的精华——模块化设计、抢占式内核、支持内核线程以及动态装载内核模块的能力

(2)避免了微内核的弊端——所有事情运行在内核态,直接调用函数,无需消息传递

*Linux内核相比传统Unix内核的进步:

(1)支持动态加载内核模块

(2)支持对称多处理(SMP)

(3)内核可以抢占,允许内核运行的任务有优先执行的能力

(4)不区分线程和进程

3、版本

技术分享

 

 

Linux是类Unix系统,但它不是Unix,没有像其他Unix变种那样直接使用Unix源代码。Linux是一个互联网上的协作开发项目,任何人都可以开发内核。

以上是关于《Linux内核设计与实现》第一二章学习笔记的主要内容,如果未能解决你的问题,请参考以下文章

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

课本学习笔记1:第一二章 20135115臧文君

Linux第一二章笔记

《LINUX内核设计与实现》读书笔记之第一章和第二章

课本一二章

《Linux内核设计与实现》学习笔记——中断中断处理程序