Linux内核设计与实现 第十七章】的更多相关文章

1. 设备类型 linux中主要由3种类型的设备,分别是: 设备类型 代表设备 特点 访问方式 块设备 硬盘,光盘 随机访问设备中的内容 一般都是把设备挂载为文件系统后再访问 字符设备 键盘,打印机 只能顺序访问(一个一个字符或者一个一个字节) 一般不挂载,直接和设备交互 网络设备 网卡 打破了Unix "所有东西都是文件" 的设计原则 通过套接字API来访问 除了以上3种典型的设备之外,还有"伪设备",即一些虚拟的设备,仅提供访问内核功能而已,没有物理设备与之关联…
<linux内核设计与实现>第一章 第一章Linux内核简介: 1.3操作系统和内核简介 操作系统:系统包含了操作系统和所有运行在它之上的应用程序.操作系统是指整个在系统中负责完成最基本功能和系统管理的那些部分.这些部分包括内核.设备驱动程序.启动应到程序.命令行shell或者其他种类的用户界面.基本的文件管理系统工具. 内核:如果说用户界面是操作系统的外在表像,那么内核就是操作系统的内在核心. 内核空间:系统态和保护起来的内存空间. 内核的组成: 1.中断服务程序(响应中断) 2.调度程序(…
第一章Linux内核简介 一.unix 1.Unix的历史 Unix是现存操作系统中最强大和最优秀的系统. ——1969年由Ken Thompson和Dernis Ritchie的灵感点亮的产物. ——1973年整个Unix操作系统用C语言进行重写,给后来unix广泛移植铺平道路. ——1977年伯克利推出第一个Unix演化版1BSD系统. ——1979年伯克利真正独立开发的Unix系统3BSD. 2.Unix的特点 简洁:仅提供几百个系统调用并有一个非常明确的设计目的. 抽象:在Unix中所有…
第二章:从内核出发 2.1获取源代码 2.1.1使用git Git:内核开发者们用来管理Linux内核源代码的控制系统. 我们使用git来下载和管理Linux源代码. 2.1.2安装内核源代码(如果使用git的话就省去解压这一步) 背景知识:内核压缩有两种形式:GUNd的zip(gzip)和bzip2.其中bzip2是首选默认的首选模式. 如果是bzip2,则解压指令为: 如果是GUN的zip: (注意:x.y.z内核源代码的具体版本,解压后源代码位于linux-x.y.z目录下.) (源代码安…
1. 进程和线程 进程和线程是程序运行时状态,是动态变化的,进程和线程的管理操作都是由内核来实现的. Linux中的进程于Windows相比是很轻量级的,而且不严格区分进程和线程,线程不过是一种特殊的进程. 进程提供2种虚拟机制:虚拟处理器和虚拟内存 每个进程有独立的虚拟处理器和虚拟内存, 每个线程有独立的虚拟处理器,同一个进程内的线程有可能会共享虚拟内存. 内核中进程的信息主要保存在task_struct中(include/linux/sched.h) 进程标识PID和线程标识TID对于同一个…
1. 什么是系统调用 系统调用就是用户程序和硬件设备之间的桥梁. 用户程序在需要的时候,通过系统调用来使用硬件设备. 系统调用的存在意义: 1)用户程序通过系统调用来使用硬件,而不用关心具体的硬件设备,这样大大简化了用户程序的开发. 比如:用户程序通过write()系统调用就可以将数据写入文件,而不必关心文件是在磁盘上还是软盘上,或者其他存储上. 2)系统调用使得用户程序有更好的可移植性. 只要操作系统提供的系统调用接口相同,用户程序就可在不用修改的情况下,从一个系统迁移到另一个操作系统. 3)…
第二章 从内核出发 一.获取内核源码 1.使用Git(linux创造的系统) 使用git来获取最新提交到linux版本树的一个副本: $ git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git 下载代码后,更新分支到Linux的最新分支: $ git pull 这两个命令可以获取并随时保持与内核官方的代码树一致. 2.安装内核源代码 压缩形式是bzip2,则运行: $ tar xvjf linu…
1. 什么是调度 现在的操作系统都是多任务的,为了能让更多的任务能同时在系统上更好的运行,需要一个管理程序来管理计算机上同时运行的各个任务(也就是进程). 这个管理程序就是调度程序,功能: 决定哪些进程运行,哪些进程等待 决定每个进程运行多长时间 此外,为了获得更好的用户体验,运行中的进程还可以立即被其他更紧急的进程打断. 总之,调度是一个平衡的过程.一方面,它要保证各个运行的进程能够最大限度的使用CPU(即尽量少的切换进程,进程切换过多,CPU的时间会浪费在切换上):另一方面,保证各个进程能公…
http://pan.baidu.com/s/1hqYAZNQ OneNote做的笔记没法儿带着格式一起导进来.所以上传到百度云,麻烦老师下载一下了. 下次不再用OneNote.…
<Linux内核设计与实现>课本第四章自学笔记 进程调度 By20135203齐岳 4.1 多任务 多任务操作系统就是能同时并发的交互执行多个进程的操作系统.多任务操作系统使多个进程处于堵塞或者睡眠状态,实际不被投入执行,这些任务尽管位于内存,但是并不处于可运行状态. 多任务系统分为两种: 抢占式多任务:Linux提供了抢占式的多任务模式,由调度程序来决定什么时候停止一个进程的运行. 现代操作系统提供:动态时间片计算的方式:可配置的计算策略 非抢占式多任务:除非进程自己主动停止运行,否则会一直…