《Linux内核设计与实现》Chapter 1 读书笔记
《Linux内核设计与实现》Chapter 1 读书笔记
一、Unix的特点
Unix从Multics中产生,是一个强大、健壮和稳定的操作系统。
特点
1.很简洁
2.在Unix系统中,所有的东西都当做文件对待。这种抽象使对数据和对设备的操作都是通过一套相同的系统调用借口来进行的:open(),read(),write(),lseek()和close()
3.Unix内核和相关的系统工具软件用C语言编写而成——该特点使其具备出色的平台可移植性
4.Unix进程创建非常快速简洁,目标在于一次执行保质保量地完成一个任务上
今天,Unix已经发展成为一个支持抢占式多任务、多线程、虚拟内存、换页、动态链接和TCP/IP网络的现代化操作系统
二、Linux与Unix的区别
Linux是由LinuxTorvalds于1991年推出的类Unix系统。
- Linux借鉴了许多Unix设计,并实现了API,但Linux没有直接使用Unix源代码。
- Linux没有抛弃Unix的设计目的并且保证了应用程序编程接口的一致。
- Linux是非商业的产品,任何人都可以开发内核,Linux内核是自由(公开)软件
- Linux系统的基础是内核,C库,工具集和系统的基本工具
三、操作系统和内核简介
操作系统是指在整个系统中负责完成最基本功能和系统管理的那些部分。
这些部分包括:
- 内核
- 设备驱动程序
- 启动引导程序
- 命令行shell或者其他种类的用户界面
- 基本的文件管理工具和系统工具
用户界面是操作系统的表象,内核才是操作系统的核心。
内核独立于普通应用程序,一般处于系统态,拥有受保护的内存空间和访问硬件设备的所有权限。
这种系统态和被保护起来的内存空间,统称为内核空间。
在系统中运行的应用程序通过系统调用来与内核通信。
当内核运行时,系统以内核态进入内核空间执行;
当执行一个普通用户程序时,以用户态进入用户空间执行。
处理器的活动必然其下三者之一:
- 运行于用户空间,执行用户进程
- 运行于内核空间,处于进程上下文,代表某个特定的进程执行
- 运行于内核空间,处于中断上下文,与任何进程无关,处理某个特定的中断
四、单内核与微内核设计之比较
1.单内核(比如大多数Unix及Linux)
- 把它从整体上作为一个大的单独的过程来实现,同时运行在一个单独的地址空间上
- 内核直接调用函数。Linux是单内核。
- 简单,性能高
2.微内核(比如Windows NT)
- 微内核的功能被划分为多个独立的功能,每个过程叫做一个服务器
- 需特权服务的服务器运行在特权模式下,其他运行在用户空间。
- 通过消息传递处理通信。
- 便于处理内核间通信,还使用了IPC机制;
- 基于微内核的系统都让大部分或全部服务器位于内核。
五、Linux内核版本
Linux内核有两种:稳定的和开发中的。
【统计时间】
步骤 |
耗时 |
百分比 |
预计时间 |
2h |
|
实际时间 |
2.5h | |
阅读 |
1h | 40% |
代码 |
0h |
|
分析总结 |
1.5h | 60% |
《Linux内核设计与实现》Chapter 1 读书笔记的更多相关文章
- 《Linux内核设计与实现》 Chapter4 读书笔记
<Linux内核设计与实现> Chapter4 读书笔记 调度程序负责决定将哪个进程投入运行,何时运行以及运行多长时间,进程调度程序可看做在可运行态进程之间分配有限的处理器时间资源的内核子 ...
- Linux内核设计与实现第四周读书笔记
第5章系统调用 5.1与内核通信 主要作用: 为用户控件提供了一种硬件的抽象接口. 保证了系统稳定性与安全性. 为用户空间&系统提供公共接口. 5.2API.POSIX和C库 一般情况,应用程 ...
- 《Linux内核分析》第六周 读书笔记
<Linux内核设计与实现>CHAPTER3阅读梳理 [学习时间:3hours] [学习内容:进程的描述:进程的生命周期(包括创建.终结)] 一.进程(任务)描述 1.进程是处于执行期的程 ...
- linux内核分析 1、2章读书笔记
一.linux历史 20世纪60年代,MIT开发分时操作系统(Compatible TIme-Sharing System),支持30台终端访问主机: 1965年,Bell实验室.MIT.GE(通用电 ...
- 《Linux内核分析》第七周 读书笔记
<深入理解计算机系统>CHAPTER7阅读梳理 [学习时间:3hours] [学习内容:链接需要的代码&数据:链接机制:链接生成的目标文件] 一.链接概述 1.链接 定义:链接是将 ...
- 《Linux内核设计》第17章学习笔记
- 《linux内核》课本第五章读书笔记
- 《Linux内核设计与实现》课本第一章&第二章学习笔记
<Linux内核设计与实现>课本学习笔记 By20135203齐岳 一.Linux内核简介 Unix内核的特点 Unix很简洁,所提供的系统调用都有很明确的设计目的. Unix中一切皆文件 ...
- 《Linux内核设计与实现》Chapter 3 读书笔记
<Linux内核设计与实现>Chapter 3 读书笔记 进程管理是所有操作系统的心脏所在. 一.进程 1.进程就是处于执行期的程序以及它所包含的资源的总称. 2.线程是在进程中活动的对象 ...
随机推荐
- [转载]ArcGIS SERVER 9.3如何清除REST缓存
有时候,发布了一个服务后,但是点击服务后,不能显示出来 http://hostname/ArcGIS/rest/services/服务名称/MapServer 这时候,十有八九是因为REST缓存没有清 ...
- BZOJ1005:[HNOI2008]明明的烦恼(组合数学,Prufer)
Description 自从明明学了树的结构,就对奇怪的树产生了兴趣......给出标号为1到N的点,以及某些点最终的度数,允许在任意两点间连线,可产生多少棵度数满足要求的树? Input 第一行为N ...
- php 微信公众号接入支付宝支付
真是无力吐槽这个需求了,好端端的非要在微信公众号接入支付宝,都知道微信公众号是拒绝支付宝的,屏蔽了支付宝,所以在微信公众号接入支付宝的话就必须手动复制链接跳出微信内置浏览器,强制性打开web浏览器完成 ...
- php输出日志
error_log('你要输出的信息', 3, 'E:\work\jiajiayue\Application\Api\Controller\1.txt');die; php error_log记录日志 ...
- Android给拼接好的Bitmap加上个性化边框
在上一节中将到将若干张图片拼接成为一张图片.但是这种简单的操作往往不能满足实际的需求,有时我们会需要给图片添加上个性化的边框,来更好的展示图片. 下面就讲一下在图片拼接后如何给bitmap添加边框. ...
- php删除文件夹和其下的内容
原文地址:http://www.cnblogs.com/xiaochaohuashengmi/archive/2011/05/13/2045158.html <?php function del ...
- centos7 sentry部署指南
依赖说明 sentry官方推荐docker方式安装,使用到了docker-compose.docker至少是1.10.3以上的版本.为此需要使用centos7. 安装docker #添加yum 源 # ...
- 十万的License只取决于一个连接
前段时间看到一份代码,小规模.低难度的一个应用,MVC用到极致,业务逻辑却混成一团麻,应该是中了培训班的毒.现在的程序员,大多是没仔细读过<现代操作系统>,没看过编译原理,不知道堆与栈,没 ...
- CoreFoundation对象的内存管理
近来没什么新项目做,想学习一些swift开源项目,看了几个文件感觉有点懵,可能水平还没达到,等用到具体内容的时候再去仔细看吧. 关于现在的项目,想想单元测试还可以完善一下,就在framwork工程中写 ...
- 20155216 Exp7 网络欺诈技术防范
Exp7 网络欺诈技术防范 基础问题回答 1.通常在什么场景下容易受到DNS spoof攻击? 1.在同一局域网下比较容易受到DNS spoof攻击,攻击者可以冒充域名服务器,来发送伪造的数据包,从而 ...