《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内核设计与实现》第一二章学习笔记的主要内容,如果未能解决你的问题,请参考以下文章