linux第七章笔记】的更多相关文章

第七章 链接 链接是将各种代码和数据部分收集起来并组合成为一个单一文件的过程,这个文件可被加载(或拷贝)到存储器并执行.链接可以执行于编译时,也就是在源代码被翻译成机器代码时:也可以执行于加载时,也就是在程序被加载器加载到存储器并执行时:甚至执行于运行时,由应用程序来执行.在早期的计算机系统中,链接是手动执行的.在现代系统中,链接是由叫链接器的自动执行的. 理解链接器将帮助构造大型程序 理解链接器将帮助避免一些危险的编程错误 理解链接器将帮助语言的作用域规则是如何实现的 理解链接器将帮助其他重要…
Vim编辑器 Vim 仅仅通过键盘来在插入和执行命令等多种模式之间切换.这使得Vim可以不用进行菜单或者鼠标操作,并且最小化组合键的操作,对文字录入员或者程序员可以大大增强速度和效率. CHAPTER 1.VIM快速入门 一.Vim的六种基本模式 1.普通模式 Vim的普通模式用的编辑器命令,比如移动光标,删除文本等等.这也是Vim启动后的默认模式,而不是大多数编辑器的插入模式. 普通模式命令往往需要一个操作符结尾. 普通模式进入插入模式的方法:a键(append/追加)键或者i(insert/…
1:链接概述 链接(linking)是将各种代码和数据部分收集起来并组合成为一个单一文件的过程,这个文件可被加载(或被拷贝)到存储并执行. 编译系统提供的调用预处理器.编译器.汇编器和链接器来构造目标文件的. 2. 静态链接 为了构造可执行文件,链接器的两个主要任务 符号解析:目标文件定义和引用符号.符号解析的目的是将每个符号引用刚好和一个符号定义联系起来. 重定位:编译器和汇编器生成从地址0开始的代码和数据节.链接器通过把每个符号定义与一个存储器位置联系起来,然后修改所有对这些符号的引用,使得…
第四章 进程调度 调度程序负责决定将哪个进程投入运行,何时运行以及运行多长时间.进程调度程序可看做在可运行态进程之间分配有限的处理器时间资源的内核子系统. 最大限度利用处理器时间的原则:只要有可以执行的进程,那么总会有程序正在执行. 一.多任务 1.概念:多任务操作系统就是能同时并发地交互执行多个进程的操作系统,在单处理器机器上这会产生多个进程在同时运行的幻觉,在多处理器机器上,这会使多个进程在不同的处理机上真正同时.并行地运行. 无论在单处理器或者多处理器机器上,多任务操作系统都能使多个进程处…
第一章 Linux内核简介 1. Unix内核的特点 简洁:仅提供系统调用并有一个非常明确的设计目的 抽象:几乎所有东西都被当做文件 可移植性:使用C语言编写,使得其在各种硬件体系架构面前都具备令人惊异的移植能力 进程:创建迅速,一次执行保质保量地完成一个任务:独特的fork系统调用 清晰的层次化结构:策略和机制分离的理念,简单的进程间通信元语把单一目的的程序方便地组合在一起 2. 关于Linux内核简介 Linux是基于Unix的类Unix系统,设计思想相似,比如它也实现了Unix的API.但…
这一章主要是要解决这么几个问题: 当执行程序时,main函数是如何被调用的? main函数的原型是: int main(int argc, char *argv[]); 其中argc是命令个数,argv则是字符指针,指向字符串(命令). 当内核执行一个C程序的时候,是由一个特别的起始例程(exex函数族的一个)来调用main函数的. 命令行参数是如何传递给执行程序的? 当执行一个程序时,调用exec的进程可将命令行参数传递给该新程序.argc[argc]是NULL. 典型的存储器布局是什么样式的…
5.1 与内核通信 系统调用在用户空间进程和硬件设备之间添加了一个中间层. 主要作用有: 为用户空间提供了一种硬件的抽象接口 系统调用保证了系统的稳定和安全 每个进程都需要运行在虚拟机内 5.2 API.POSIX和C库 一般情况下,应用程序通过在用户空间实现的应用编程接口(API)而不是直接通过系统调用来编程.因为编程接口不需要和内核提供的系统调用对应.一个API定义了一组应用程序使用的编程接口,他们可以实现一个系统调用,也可以通过调用多个系统来实现,完全不使用任何系统调用也不成问题. 在Un…
用户输入和while循环 1.函数input():让程序停止运行,等待用户输入一些文本.接受一个参数,既即要向用户显示的提示或说明. 2.将数值输入用于计算和比较前,务必将其转换为数值表示. 3.for循环用于针对集合中的每个元素的一个代码块:while循环不断运行,直到指定的条件不满足为止. 4.标志:定义一个变量,用于判断整个程序是否处于活动状态. 5.break,continue用于控制程序流程.…
第七章.中断和中断处理 7.1中断 中断使得硬件得以发出通知给处理器.中断随时可以产生,内核随时可能因为新来到的中断而被打断. 不同的设备对应的中断不同,而每个中断都通过一个唯一的数字标志.操作系统给不同的中断提供对应的中断处理程序. 这些中断值通常被称为中断请求(IRQ)线,每个IRQ线都会被关联一个数量值. 异常: 在处理器执行到由于编程失误而导致的错误指令(如被0除)的时候,或者是在执行期间出现特殊情况(如缺页),必须靠 内核来处理的时候,处理器就会产生一个异常. 7.2中断处理程序 在响…