06-Linux操作系统基础 (2)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Linux操作系统基础
(2) mv 命令,移动文件
命令格式:mv [-fiu] [源] [目的] 参数说明: -f:禁止操作提示 -i:操作提示 -u:当源文件比目的文件新的时候才执行
(3) rm 命令,移除(删除)文件或目录 命令格式:rm [-fir] [文件名] 参数说明: -f:强制删除 -i:删除确认(默认值) -r:递归全部删除,包括子目录
Linux操作系统基础
Linux内核的组成 Linux内核主要由五个子系统组成:进程调度,内存管理, 虚拟文件系统,网络接口,进程间通信。
内存管理
虚拟文件系统
进程调度
进程间通信
网络接口
Linux操作系统基础
ቤተ መጻሕፍቲ ባይዱ
6.2.1 进程调度
进程调度控制进程对CPU的访问,采用适当的调度策略使 各进程能够合理地使用CPU。
Linux操作系统基础
linux使用的进程间通信方式:
1. 2. 3. 4. 5. 6.
信号(signal) 管道(pipe)和有名管道(FIFO) 消息队列 共享内存 信号量 套接字(socket)
Linux操作系统基础
6.2.5 网络接口
Linux的网络接口分为4个部分: 1. 网络设备接口,从物理介质接收和发送数据; 2. 网络接口核心,为网络协议提供统一的发送接口,屏 蔽各种各样的物理介质,同时又负责把来自下层的包 向合适的协议配送; 3. 网络协议族,具体的协议实现,如TCP/IP、IPX等; 4. 网络接口Socket,提供给用户的编程接口。
2. 文件的复制、删除和移动命令
(1) cp 命令,拷贝文件
命令格式:cp [-adfiprlsu] [源] [目的] 参数说明: -a:递归复制目录 -d:如果拷贝的是link文件,将拷贝该文件的链接 -f:删除已存在的文件而不提示 -i:在文件操作前提示 -p:除复制文件外,还复制文件的权限 -l:不复制文件,仅链接文件 -r:拷贝目录 -s:拷贝成该文件的链接 -u:备份拷贝,只有源文件比目的文件新才拷贝
嵌入式系统原理与应用
第 6章
Linux操作系统基础
Linux操作系统基础
6.1 Linux操作系统概述
6.2 Linux内核的结构
操作系统内核的结构模式分两种: 整体式的单内核模式和层次式的微内核模式。 1.单内核(Monolithic kernel) 集中式操作系统,构成一个大模块,是个单独的二进制大 映象。它的内部又被分为处理器管理、存储器管理、设备 管理、文件管理等逻辑模块,模块间的通讯通过直接调用 其他模块中的函数实现。 2.微内核(Micro kernel) 将操作系统中的存储器管理、设备管理、文件系统等服务 尽可能地从内核中分离出来,仅在内核中保留少量最基本 的功能,使内核变得简洁。微内核一般都作为单独的进程 在特权状态下运行,他们通过消息传递进行通讯。
Linux操作系统基础
(2)虚拟控制台
Linux是多任务平台,允许多用户登录。由于提供了虚拟 控制台,还允许某一用户的多次登录。
用户的多次登录可以用:Alt + F1~F6 来实现访问6 个虚拟控制台。 (3)退出系统 在sheel提示符下,键入 shutdown 命令退出系统。
Linux操作系统基础
Linux操作系统基础
6.3.3 设备的控制方式
有3种控制方式:
1. 轮询方式:又称为查询等待方式,一般用于不支持中 断方式的设备,如并行接口的默认驱动方式就是轮询 方式; 2. 中断方式:硬件支持中断的情况下,驱动程序可以使 用中断方式控制输入输出过程。当某个设备需要服务 时就向CPU发出一个中断脉冲信号,CPU收到信号后根 据中断请求IRQ号启动中断服务例程为其服务。 3. DMA方式:硬件支持DMA的情况下,可以以DMA方式完成 设备与内存间的数据交换。
用户 虚拟文件系统 (VFS)
Ext2 MSDOS JSF
…
ROMFS
内存缓冲区
I/O驱动
Linux操作系统基础
6.2.4 进程间的通信 (IPC)
进程通信有如下一些目的: 1. 数据传输:一个进程需要将它的数据发送给另一个进 程,发送的数据量在一个字节到几M字节之间; 2. 共享数据:多个进程想要操作共享数据,一个进程对 共享数据的修改,别的进程应该立刻看到; 3. 通知事件:一个进程需要向另一个或一组进程发送消 息,通知它发生了某种事件(如进程终止时要通知父 进程); 4. 资源共享:多个进程之间共享同样的资源。为了作到 这一点,需要内核提供锁和同步机制; 5. 进程控制:有些进程希望完全控制另一个进程的执行 (如Debug进程),此时控制进程希望能够拦截另一个进 程的所有陷入和异常,并能够及时知道它的状态改变
TASK_STOPPED TASK_ZOMBIE
(暂停态)
暂停 TASK_RUNNING 等待某个资源 TASK_INTERRUPTIBLE
(僵死态)
终止
(执行态)
调度
等待某个资源 TASK_UNINTERRUPTIBLE
(可中断等待态)
资源满足 TASK_RUNNING 被唤醒
(不可中断等待态)
资源满足
Linux操作系统基础
3. 目录的创建和删除命令 (1) mkdir 命令,创建目录 命令格式:mkdir [-mp] [目录名] 参数说明: -m:对新建目录设置存取权限 -p:若目录的上层目录尚未建立,则一并建立上层目录 (2) rmdir 命令,删除空目录 命令格式:rmdir [-p] [目录名] 参数说明: -p:递归删除目录,当子目录被删除而父目录为空时, 也一并删除父目录 注意使用该命令时,其目录必须为空目录。
Linux操作系统基础
6.4 Linux的使用
6.4.1 Linux的常用命令
列出所有Linux命令:在sheel提示符下连续两个Tab键; Linux命令的帮助: man 命令 用上下箭头键滚动,Q键退出。 1. 进入和退出Linux系统 (1)进入Linux系统 进入Linux系统必须有账号和密码。 root账号:超级用户(系统管理员)账号,拥有最高操作 权限; 普通账号:一般用户使用,具有指定的操作权限。
Linux操作系统基础
6.Linux进程控制块task_struct的结构描述 task_struct 结构包含的信息: Linux内核空间中定义了一个 task指针数组用来管理进程 (1) 进程当前的状态; 控制块 task_struct结构的指针,task数组的大小限制了 (2) 调度信息:进程的类别、调度策略、优先级等 系统并发执行的进程总数。 (3)进程标识:进程标识号PID、组标识号GID、用户标识 号UID; (4)进程通信信息:与进程通信有关的信息; (5)进程的家族关系:进程的指针,分别指向初始化进程、 父进程、子进程的task_struct结构; (6)时间和定时信息:用于追踪和记录进程在整个生存周 期内使用CPU的时间; (7)文件系统信息:进程与文件系统相关的信息; (8)存储管理信息:进程虚拟内存空间信息及其与物理存 储有关的信息; (9)CPU现场保留信息:CPU寄存器、堆栈等环境。
Linux操作系统基础
6.2.6 各个子系统之间的依赖关系
进程调度与内存管理之间的关系; 进程间通信与内存管理的关系; 虚拟文件系统与网络接口之间的关系; 内存管理与虚拟文件系统之间的关系; 子系统依赖于一些共同的资源。
Linux中的软件的依赖关系: Linux中的软件大部分是零碎的,其单位比windows的小很 多,软件之间有很强的依赖关系。 Linux中的软件依赖关系成一颗拓扑树结构,比如A直接或 间接依赖B,那么B就不可能直接或间接依赖A。
Linux操作系统基础
两种内核的特点: 单内核:统一的整体,内部调用效率高。 微内核:可随时用新模块替换现有模块直接而且迅速的加 入系统,有很高的灵活性;当前不用的模块不会被加载到 内存中,因此微内核就能够更有效的利用内存。 争议 单内核的支持者:微内核的消息传递开销导致效率损失; 微内核的支持者:内核设计的灵活性和可维护性,能够弥 补任何损失。 Linux采用的是单内核。原因:内核紧凑,执行速度快。
地址映射机制
缓存和刷新机制
Linux操作系统基础
6.2.3 虚拟文件系统 (VFS)
Linux为了支持多文件系统,采用了统一的文件界面,用户 通过文件的操作界面来实现对不同文件系统的操作。 对于用户,不去关心不同文件系统的具体操作过程,而只 是对一个虚拟的文件操作界面来进行操作,这个操作界面 就是Linux的虚拟文件系统VFS。
操作系统的外壳,为用户提供使用操作 系统的接口。它是命令语言、命令解释 程序及程序设计语言的统称。
Linux操作系统基础
5.Linux进程的创建 Linux系统中以fork()函数创建进程 语法格式: #include <sys/types.h> //提供pid_t类型的定义 #include <unistd.h> //提供函数的定义 pid_t fork(); 调用fork函数之后,操作系统会复制一个与父进程完全 一样的子进程,共用代码段,但数据空间各自独立。 若fork成功,子进程中fork的返回值是0,父进程中 fork的返回值是子进程的进程号。
Linux操作系统基础
6.3 Linux设备管理
Linux设备管理的主要任务是控制设备完成输入输出操作。
在Linux操作系统中有3种类型的设备: 1. 字符设备:以字符为单位输入输出数据的设备,一般 不需要使用缓冲区而直接对其进行读写; 2. 块设备:以一定大小的数据块为单位进行输入输出数 据的,一般使用缓冲区在设备和内存之间传送数据; 3. 网络设备:通过通信网络传输数据的设备,一般是与 通信网络连接的网络适配器(网卡)等设备。
1. 进程的定义 一个进程是程序的一次执行过程。是Linux系统的基本调 度单位。 一个进程由如下元素组成: • 进程读取的上下文,表示进程读取执行的状态; • 进程当前的执行目录; • 进程服务的文件和目录; • 进程的访问权限; • 内存和其它分配给进程的系统资源。
Linux操作系统基础
2.Linux进程的状态
Linux操作系统基础
6.3.2 设备驱动
系统对设备的控制和操作是由设备驱动程序来完成的。
设备驱动程序是由设备服务子程序和中断处理程序组成, 设备服务子程序包括了对设备进行各种操作的代码,中断 处理子程序处理设备中断。 设备驱动程序的主要功能: • 对设备进行初始化 • 启动或停止设备的运行 • 完成设备上的数据到内存和内存的数据到设备的传送 • 检测设备的状态 应用程序对设备的操作,与操作普通数据文件相同。 Linux为所有的设备文件提供了统一的操作函数接口来控 制和管理这些设备。
Linux操作系统基础
6.3.1 设备文件
Linux设备管理的基本特点是将物理设备看成是文件,采 用系统文件的接口和系统调用来控制和管理设备。 从抽象观点看,Linux的设备又称为设备文件。
设备文件也有文件名,设备文件名一般由两部分组成: 第一部分:表示设备的种类,由2~3个字符组成,如cu 表示串口,lp表示并口,hd表示硬盘等; 第二部分:通常是字母或数字,用于区分同类型设备中的 不同单个设备。如hda、hdb表示第一块硬盘和第二块硬 盘,hda1、hda2则表示第一块硬盘中的第一个分区和第 二个分区。 设备文件一般存放在/dev目录下。 如:/dev/hda1, /dev/lp0
(就绪态)
Linux操作系统基础
3.Linux进程的结构
进程在内存中有3部分数据:数据段、堆栈段、代码段。
若有数个进程运行相同的一个程序,可共用代码段,但每 个进程都有自己的数据段和堆栈段。 4.Linux进程的种类
有3种不同类型的进程 (1)交互进程:由一个sheel启动的进程,即可以在前台运 行也可以在后台运行; (2)批处理进程:不与特定的终端相关联,提交到等待队 列中顺序执行处理; (3)守护进程:在Linux启动时初始化,需要时运行于后台 的一些服务进程。
Linux操作系统基础
6.2.2 内存管理
Linux的内存管理支持虚拟内存。
为了支持虚拟内存的管理,Linux采用了分页的方式来载 入进程。 标准Linux是针对有MMU的处理器设计的,虚拟地址在处理 器内部被送到内存管理单元映射为物理地址。
内存分配和回收机制
Linux虚拟内存实现原理
请求页机制 交 换 机 制