linux操作系统培训

上传人:功*** 文档编号:250370946 上传时间:2024-11-02 格式:PPT 页数:28 大小:804KB
收藏 版权申诉 举报 下载
linux操作系统培训_第1页
第1页 / 共28页
linux操作系统培训_第2页
第2页 / 共28页
linux操作系统培训_第3页
第3页 / 共28页
资源描述:

《linux操作系统培训》由会员分享,可在线阅读,更多相关《linux操作系统培训(28页珍藏版)》请在装配图网上搜索。

1、,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,2007 VCOM Corporation,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,Linux,操作系统培训,内容摘要,Linux,基础,Linux,常用操作命令,Linux,设备管理,Linux,文件管理,Linux,进程调度,Linux,多线程编程,Linux,进程间通信,Linux,基础,操作系统的概念,操作系统是管理计算机系统资源(软件和硬件)资源的系统软件,它为计算机提供方便,有效,安全,可靠的工作环境。主要包括:进程管理,存储器管理,设备管理,文件管理,作业管理等。,操作

2、系统的分类。,操作系统分为实时操作系统和非实时操作系统,又可以分为嵌入式操作系统和非嵌入式操作系统等。,linux,操作系统即可以作为准实时的操作系统使用,也可作为非实时操作系统使用,并且可以满足服务器操作系统的要求,在桌面操作系统领域也得到较大的发展。,所以,,linux,操作系统已经渗透到嵌入式领域、服务器领域、个人,pc,领域,成为目前应用领域最广的一种操作系统。,Linux,基础,Linux,系统的组成,整个,linux,系统由内核、设备驱动、各种运行时的库、,shell,及应用程序等组成,。,Linux,的启动过程。,在硬件上电之后,首先会有一个自举程序运行(在嵌入式领域成为,loa

3、der,在,pc,中成为,bios),然后自举程序在初始化必要的硬件(例如内存)之后将,linux,内核读取到内存中,然后跳转到内核的开始位置运行,linux,内核,.,linux,内核在进行必要的初始化设置工作和挂载根文件系统之后,会启动文件系统中的一个程序作为系统中的第一个进程,这个进程就是大名鼎鼎的,init,进程,,init,进程会,然后运行,etc,目录下的对应的,shell,脚本文件。,Linux,基础,Linux,内核的作用,内核是,Linux,操作系统的核心,它负责系统的文件管理、设备管理、进程管理、存储管理、网络协议,直接决定着系统的性能和稳定性。,linux,的版本号,通常

4、我们所说的,linux,的版本号,指的就是,linux,内核的版本号。版本号由三部分组成主版本号、次版本号、末版本号。例如:,2.6.19 2,为主版本号、,6,为次版本号、,19,为末版本号。同时可以通过版本号来确定,linux,的版本是稳定版本还是开发版本(次版本号奇数为开发版本,偶数为稳定版本)。,Linux,常用操作命令,命令,功能,ls,列出当前目录下有哪些文件和目录。(,ls l,为列出一个目录下的详细信息),cd,进入一个目录。(,cd.,为进入上一级目录),pwd,显示当前目录。,rm,删除一个文件或目录。(,rm r,为删除一个目录及该目录下的所有文件),mkdir,创建一个

5、目录。,cp,拷贝一个文件。(,cp a b,把,a,文件拷贝成,b,文件),du,列出目录占用磁盘空间的大小,rmdir,删除一个目录,find,在指定路径查找文件,Linux,常用操作命令,命令,功能,grep,在指定文件查找指定字符串,mv,移动文件或目录,chmod,改变文件权限指令,man,命令或函数帮助查询指令,top,查看,cpu,和内存使用情况的指令,ps,查看当前运行的进程的指令,pstree,查看进程树的指令,Linux,设备管理,Linux,上层应用与实际设备的关联,Linux,对于设备的管理是通过设备驱动程序来进行管理,采用设备文件的方式进行关联。每个设备文件都有设备类

6、型,主设备号、次设备号,在驱动程序中会注册这些设备号。这样当上层应用程序操作设备文件时,就会将请求通过,Linux,操作系统调用传递到驱动程序中,驱动程序控制硬件设备完成相应的操作。,Linux,设备文件一般在,/dev,目录下面。例如如下设备文件:,crw-rw-1 root uucp 4,64 12,月,8 09:57/dev/ttyS0,是指,/dev/ttyS0,为字符型设备,主设备号为,4,,次设备号为,64,。其实这就是,linux,系统中的串口,1,的设备文件。我们打开这个设备文件,然后写入数据,我们写入的数据就会从串口发送出去,我们读入数据,就会读取到从串口收到的数据。,如果我

7、们想控制串口的速率、校验位、码位的长度,我们只需要调用,ioctl,函数,然后传入相应的数据就可以了。,Linux,文件管理,Linux,系统中使用的文件类型,目前,linux,采用的文件系统有,ext3,文件系统,但是在嵌入式,linux,操作系统中更多的使用的是,jffs2,yaffs,和,nfs,网络文件系统。,Jffs2,文件系统是专为,nor flash,设计的文件系统,考虑到了,nor flash,的许多特性,同时具有压缩性能,一般可以达到,2,:,1,的压缩效果,但是在用于大于,128Mbytes,的,flash,时,效果不是太好。,Yaffs,文件系统是专为,nand flas

8、h,设计的文件系统,考虑到了,nand falsh,的许多的特性,但是不具有压缩性能,但其加载速度较快,使用于大容量存储的场合。,除去以上文件类型的不同之外,,linux,提供统一的,api,操作函数,来实现对文件系统的管理。另外,在,linux,中,在对一个设备上的文件进行操作时,需要首先挂载这个设备到文件系统中,才能操作这个设备上的文件。,在,linux,内核启动时,会默认挂载一个文件系统,这个就是根文件系统,此后所有的文件系统都是基于这个文件系统进行挂载,同时也可以卸载,但是根文件系统是不能卸载的。,挂载一个文件系统的命令如下:,mount t yaffs/dev/mtdblock0/m

9、nt,意思是说,把文件类型为,yaffs,的,mtdblock0,上的文件系统挂载到,/mnt,目录下,Linux,进程调度,Linux,调度算法,Linux,调度算法把,CPU,的时间划分为时期(,epoch,)。在一个单独的时期内,每个进程有一个指定的时间片,时间片持续时间从这个时期的开始计算。一般情况下,不同的进程有不同大小的时间片。时间片的值是在一个时期内,分配给进程的最大,CPU,时间部分。当一个进程用完它的时间片时,这个进程被抢占,并用另一个可运行进程代替它。当然,在同一时期内,一个进程可以几次被调度程序选中(只要它的时间片还没用完),例如,如果进程挂起自己,等待,I/O,,那么,

10、它还剩余一些时间片,并可以在同一时期内再度被选中。当所有的可运行进程都用完它们的时间片时,一个时期才结束;在这种情况下,调度程序的算法重新计算所有进程的时间片,然后,一个新的时期开始。,Linux,进程管理,Linux,进程的优先级,静态优先级(,Static priority,),这种优先级由用户赋给实时进程,范围从,1,到,99,,调度程序从不改变它。,动态优先级(,Dynamic prority,),这种优先级只应用于普通进程。实质上它是基本时间片由此也叫进程的基本优先级(,base priority,)与当前时期内的剩余时间片之和。,当然,实时进程的静态优先级总是高于普通进程的动态优先

11、级,只有当,TASK_RUNNING,状态没有实时进程时,调度程序才开始运行普通进程。,Linux,进程管理,Linux,进程的创建,在,Linux,中要使用,exec,函数族。系统调用,execve,()对当前进程进行替换,替换者为一个指定的程序,其参数包括文件名(,filename,)、参数列表(,argv,)以及环境变量(,envp,)。,exec,函数族当然不止一个,但它们大致相同,在,Linux,中,它们分别是:,execl,,,execlp,,,execle,,,execv,,,execve,和,execvp,,下面我只以,execlp,为例,其它函数究竟与,execlp,有何区别

12、,请通过,manexec,命令来了解它们的具体情况。,一个进程一旦调用,exec,类函数,它本身就,死亡,了,系统把代码段替换成新的程序的代码,废弃原有的数据段和堆栈段,并为新程序分配新的数据段与堆栈段,唯一留下的,就是进程号,也就是说,对系统而言,还是同一个进程,不过已经是另一个程序了。(不过,exec,类函数中有的还允许继承环境变量之类的信息。),Linux,线程管理,使用线程的优点,和进程相比,它是一种非常“节俭”的多任务操作方式(内存占用,启动时间,切换时间,),和进程相比,线程间的通信更加方便。,提高应用程序响应,使多,CPU,系统更加有效,改善程序结构,复杂问题简单化,Linux,

13、线程管理,多线程的例子,#include,#include,#include,#include,void thread(void),int i;,for(i=0;i3;i+),printf(This is a pthreadn);,usleep(100*1000);,int main(void),pthread_t id;,int i,ret;,ret=pthread_create(,if(ret!=0),printf(Create pthread error!n);,exit(1);,for(i=0;i3;i+),printf(This is the main processn);,usle

14、ep(100*1000);,pthread_join(id,NULL);,return(0);,Linux,线程管理,多线程的编译,APP=threadTest,$(APP):$(APP).c,gcc-Wall-o$(APP)$(APP).c-lpthread,clean:,rm$(APP),Linux,进程间通信,Linux,进程间通信的方法,管道、消息队列、共享内存、信号量、套接口、信号,Linux,进程间通信,管道,管道包括无名管道和有名管道两种,前者用于父进程和子进程间的通信,后者用于运行于同一台机器上的任意两个进程间的通信,无名管道,无名管道由,pipe,()函数创建:,int pi

15、pe(int filedis2),;,参数,filedis,返回两个文件描述符:,filedes0,为读而打开,,filedes1,为写而打开。,filedes1,的输出是,filedes0,的输入。,Linux,进程间通信,无名管道的例子,#include,#include,#include,#include,#include,#define INPUT 0,#define OUTPUT 1,int main(),int file_descriptors2;,/*,定义子进程号*,/,pid_t pid;,char buf256;,int returned_count;,/*,创建无名管道*

16、,/,pipe(file_descriptors);,/*,创建子进程*,/,if(pid=fork()=-1),printf(Error in forkn);,exit(1);,Linux,进程间通信,无名管道的例子,if(pid=0),/*,执行子进程*,/,printf(child process.n);,/*,子进程向父进程写数据,关闭管道的读端*,/,close(file_descriptorsINPUT);,write(file_descriptorsOUTPUT,test data,strlen(test data);,exit(0);,else,/*,执行父进程*,/,printf(parent process.n);,/*,父进程从管道读取子进程写的数据,关闭管道的写端*,/,close(file_descriptorsOUTPUT);,returned_count=read(file_descriptorsINPUT,buf,sizeof(buf)-1);,if(returned_count0),printf(receive data from child is e

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

相关资源

更多
正为您匹配相似的精品文档
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  sobing.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!