版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第6章_Linux操作系统基础第一页,共25页。主要内容1324Linux操作系统概述Linux内核的结构Linux设备管理Linux的使用第二页,共25页。
6.1.1Linux操作系统的产生及发展1990年,LinusTorvalds首次接触Minix;1991年,LinusTorvalds开始在Minix上编写各种驱动程序等操作系统内核组件;1991年,LinusTorvalds公开了Linux内核;
1993年,Linux1.0版发行,Linux转向GPL版权协议;
1994年,Linux的第一个商业发行版Slackware问世;
1996年,美国国家标准技术局的计算机系统实验室确认Linux版本1.2.13符合POSIX标准;1999年,Linux的简体中文发行版相继问世;2001年,Linux2.4版内核发布;2003年,Linux2.6版内核发布。第三页,共25页。
6.1.2Linux操作系统的特点自由开放软件真正的多任务多用户UNIX的完整实现完全符合POSIX标准良好的用户界面强大的网络功能良好的可移植性设备独立性
第四页,共25页。主要内容1324Linux操作系统概述Linux内核的结构Linux设备管理Linux的使用第五页,共25页。操作系统内核的结构模式可分为两种:整体式的单内核模式单内核也叫集中式操作系统。以提高系统执行效率为设计理念,缺点是系统升级比较困难。层次式的微内核模式
微内核是指把操作系统结构中的内存管理、设备管理、文件系统等高级服务功能尽可能地从内核中分离出来,变成几个独立的非内核模块,而在内核中只保留少量最基本的功能,使内核变得简洁可靠。
6.2Linux内核的结构Linux采用的是单内核模式,Linux内核主要由五个子系统组成:进程调度,内存管理,虚拟文件系统,网络接口,进程间通信。第六页,共25页。6.2.1进程调度进程调度控制进程对CPU的访问。采用适当的调度策略使各进程能够合理的使用CPU。进程的定义一个进程是一个程序的一次执行过程。Linux进程的状态可运行状态、等待状态、暂停状态、僵死状态Linux下进程的结构数据段、堆栈段和代码段Linux进程的种类交互进程、批处理进程、守护进程Linux进程的创建fork()函数进程所有操作都要依赖进程控制块task_struct结构,task_struct结构是进程实体的核心,是进程存在的唯一标志。第七页,共25页。6.2.2内存管理内存管理(MM)允许多个进程安全的共享主内存区域。Linux的内存管理支持虚拟内存。Linux虚拟内存的实现需要6种机制的支持:地址映射机制、内存分配回收机制、缓存和刷新机制、请求页机制、交换机制和内存共享机制。第八页,共25页。6.2.3虚拟文件系统Linux的文件系统由两层结构组成。第一层是虚拟文件系统(VFS),第二层是各种不同的具体文件系统。第九页,共25页。6.2.4进程间通信信号机制管道消息队列命名管道信号是在软件层次上对中断机制的一种模拟,是进程间通信机制中唯一的异步通信机制。用于发送信号的主要系统函数有:kill()、raise()、sigqueue()、alarm()、setitimer()以及abort()。管道是利用有公共祖先的进程之间的共享文件描述符进行的一种通讯方式。命名管道不同于管道之处在于它提供一个路径名与之关联,以FIFO的文件形式存在于文件系统中。消息队列实际上就是一个消息的链表。每个消息队列都有一个队列头,用结构structmsg_queue来描述。目前主要有两种类型的消息队列:POSIX消息队列和系统V消息队列。第十页,共25页。6.2.5网络接口Linux的网络接口分为四部分:网络设备接口、网络接口核心、网络协议族以及网络接口socket层。TCP/IP协议栈四层模型Socket套接字TCP/IP协议遵守一个四层的模型概念:网络接口层、互联层、传输层和应用层。Socket接口是TCP/IP网络的API,定义了许多函数或例程,程序员可以用它们来开发TCP/IP网络上的应用程序。套接字基本上有三种类型,分别是数据流套接字、数据报套接字和原始套接字。第十一页,共25页。6.2.6各个子系统之间的依赖关系进程调度与内存管理之间的关系:这两个子系统互相依赖。在多道程序环境下,程序要运行必须为之创建进程,而创建进程的第一件事情,就是将程序和数据装入内存。进程间通信与内存管理的关系:进程间通信子系统要依赖内存管理支持共享内存通信机制,这种机制允许两个进程除了拥有自己的私有空间,还可以存取共同的内存区域。虚拟文件系统与网络接口之间的关系:虚拟文件系统利用网络接口支持网络文件系统(NFS),也利用内存管理支持RAMDISK设备。内存管理与虚拟文件系统之间的关系:内存管理利用虚拟文件系统支持交换,交换进程定期由调度程序调度,这也是内存管理依赖于进程调度的唯一原因。当一个进程存取的内存映射被换出时,内存管理向文件系统发出请求,同时,挂起当前正在运行的进程。第十二页,共25页。主要内容1324Linux操作系统概述Linux内核的结构Linux设备管理Linux的使用第十三页,共25页。6.3Linux设备管理Linux设备管理的主要任务是控制设备完成输入输出操作,所以又称输入输出(I/O)子系统。设备管理把各种设备硬件物理特性的细节屏蔽起来,提供一个对各种不同设备进行统一操作的接口。在linux操作系统中有三种类型的设备:字符设备块设备网络设备第十四页,共25页。6.3.1设备文件Linux将所有外部设备看成是一类特殊文件,称之为“设备文件”。对设备文件的识别使用设备类型、主设备号和次设备号:设备类型:字符设备或者块设备。主设备号:按照设备使用的驱动程序不同而赋予设备不同的主设备号。主设备号与驱动程序一一对应。次设备号:用来区分使用同一个驱动程序的不同设备。第十五页,共25页。6.3.2设备驱动设备驱动程序是Linux内核与设备之间的接口。设备驱动程序对应用程序屏蔽了硬件在实现上的细节,使得应用程序可以像操作普通文件一样来操作设备。Linux为所有的设备文件提供了统一的操作函数接口来管理这些设备,方法是使用数据结构struct。这个数据结构中包括许多操作函数的指针,如open()、close()、read()、write()和ioctl()等。第十六页,共25页。6.3.3控制方式轮询方式中断方式轮询方式又称查询等待方式。对于不支持中断方式的机器只能采用这种方式来控制I/O过程,所以Linux中也配备了轮询方式。轮询方式意味着需要经常读取设备的状态,一直到设备状态表明请求已经完成为止。在硬件支持中断的情况下,驱动程序可以使用中断方式控制I/O过程。当某个设备需要服务时就向CPU发出一个中断信号,CPU接收到信号后根据中断请求号启动中断服务例程。Linux内核需要将来自硬件设备的中断传递到相应的设备驱动,这个过程由设备驱动向内核注册其使用的中断来协助完成。第十七页,共25页。主要内容1324Linux操作系统概述Linux内核的结构Linux设备管理Linux的使用第十八页,共25页。6.4.1Linux常用命令在线帮助命令:man文件管理命令
>文件拷贝:cp
>
文件移动:mv
>
文件删除:rm
目录管理命令
>创建目录:mkdir
>删除空目录:rmdir
>改变工作目录:cd
>
显示当前完整路径:pwd
>
列出当前目录内容:ls文本处理命令
>按行排序:sort
>删除重复行:uniq
备份与压缩命令
>创建备份:tar>压缩和解压缩:gzip>解压缩:unzip改变文件或目录的访问权限命令
>改变访问权限:chmod
>改变所属的组:chgrp>更改拥有者和所属组:chown
与用户有关的命令
>设置和修改用户口令:passwd
>用户之间切换:su
系统管理命令
>向所有登录用户发送信息:wall
>向某一个用户发送信:write
第十九页,共25页。系统管理命令
>设定是否允许其他用户用write命令给自己发送信息:mesg
>强制把内存中的数据写回硬盘:sync
>关闭或重启Linux系统:shutdown
>查看当前系统内存的使用情况:freeLinux磁盘管理命令>检查文件系统的磁盘空间占用情况:df
>统计目录(或文件)所占磁盘空间的大小:du
>挂接设备:mount>卸载已经挂接的设备:umount
Linux其它命令>显示一段文字:echo
>显示某年某月的日历:cal
>清除屏幕上的信息:clear6.4.1Linux常用命令第二十页,共25页。6.4.2vi编辑器的使用vi编辑器是一个命令行编辑器,有三种基本的工作模式:
(1)命令模式
vi的默认模式,在命令模式下,可以键入命令来删除、更改、移动文本、定位光标、搜索文本字符串或退出vi编辑器。(2)编辑模式在编辑模式下,可以向文件中输入文本。(3)最后行模式当处于命令模式时,通过键入“:”,将使光标处于屏幕的最后一行,这就称为最后行模式,这时可以执行更先进的编辑命令。注意:所有的命令都是由命令模式发起的,所以最后行模式也属于命令模式。第二十一页,共25页。
vi编辑器中三种工作模式的切换通过键入i、o、a命令,vi编辑器将离开默认的命令模式,进入编辑模式。在编辑模式下,键入的所有文本都不会被翻译成命令,这时,所有键入的文本都会被保存到文件中。当完成了文本的输入后,按Esc键vi将回到命令模式下。当处于命令模式下时,通过键入“:”,将使光标处于屏幕的最后一行,进入最后行模式。第二十二页,共25页。6.4.3make工具和gcc编译器gccgcc是可以在多种平台上编译出可执行程序的超级编译器。
举例:gcc–chello.cgcc-ohello.exehello.cmake命令makefilemake命令用于根据文件之间的依赖关系(在makefile文件中定义)来自动维护目标文件,与手工编译和链接相比,make命令的优点在于它只更新修改过的文件。makefile定义了一系列的规则来指定哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作。makefile带来的好处就是“自动化编译”,一旦写好makefile,只需要一个make命令,整个工程即可实现完全自动编译,从而极大地提高了软件开发的效率。第二十三页,共25页。举例:工程包含3个C文件(main.c,mytool1.c,mytool2.c)和2个头文件(mytool1.h,mytool2.h),需要写一个Makefile来告诉make命令如何编译和链接这几个文件。
Makefile的编写格式
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年轮台县中小学幼儿园教师招聘考试备考试题及答案解析
- 2026年东山县医疗事业单位人员招聘考试参考题库及答案解析
- 2026年仁布县医疗事业单位人员招聘笔试备考题库及答案解析
- 2026年奉节县医疗事业单位人员招聘考试参考题库及答案解析
- 2026年北京教师招聘《教育心理学》必考题及答案题库大全
- 2026年中方县带编教师招聘笔试备考题库及答案解析
- 2026年中方县医疗事业单位人员招聘笔试备考试题及答案解析
- 2026年涉县医疗事业单位人员招聘考试备考试题及答案解析
- 2026年道真仡佬族苗族自治县社区工作者招聘考试备考题库及答案解析
- 2026年宁县医疗事业单位人员招聘考试参考题库及答案解析
- 《青铜蕴巧思》教学课件 - 2026-2027 学年人教版(新教材)小学美术四年级上册
- 2026年高考全国1卷语文高考试题(原卷版)
- 2026年版高中英语(外研社版)单词大全
- 2026年水生生物病害防治员专项题库(附答案与解释)
- 开学第一课 课件(共25张) 人教版地理七年级上册
- 国家电网有限公司高校毕业生招聘考试公共与行业知识题库(2026版)
- 2026年部编版语文二年级上册第三单元教学设计
- 2026年保教结合幼儿园
- 中新嘉善现代产业园开发有限公司招聘笔试题库2026
- 管道焊接专项施工计划
- 消防设施更换施工方案
评论
0/150
提交评论