UNIX操作系统实验1
UNIX操作系统
UNIX操作系统目录第一篇基础篇第一章UNIX操作系统概述 (1)1.1 UNIX操作系统简介 (1)一、UNIX特点 (1)二、UNIX流派及标准 (2)1.2 UNIX系统组成 (3)1.3 与UNIX有关的几个名词 (4)第二章UNIX常用操作 (5)2.1 启动终端 (5)2.2 登录 (5)2.3 UNIX命令 (5)一、UNIX命令格式 (5)二、特殊按键 (7)三、UNIX常用简单命令 (7)四、UNIX用户间简单通讯命令 (8)2.4 注销(退出UNIX系统) (10)第三章UNIX文件系统 (10)3.1 UNIX文件系统分类 (10)3.2 UNIX文件类型 (10)3.3 UNIX树型目录结构 (11)3.4 UNIX文件名称 (12)3.5 UNIX文件存取权限 (12)3.6 UNIX重定向与管道 (15)3.7 UNIX文件系统常用命令 (15)第四章UNIX文件系统常用工具和实用程序 (17)4.1 vi编辑器的最基本用法 (17)4.2 利用find命令查找文件 (18)4.3 grep命令基本用法 (19)4.4 利用cmp命令比较文件 (20)4.5 文件的备份和恢复实用程序 (20)一、tar命令 (20)二、cpio命令 (21)4.6 文件压缩和解压程序 (22)一、compress 压缩命令 (22)二、pack 压缩文件 (22)三、gzip 压缩文件 (23)四、pkzip压缩文件 (23)第五章UNIX简单维护与管理 (23)5.1 选择init状态 (23)5.2 UNIX关机 (25)5.3 修改系统时间 (25)5.5 如何查看磁盘使用情况 (26)5.6 掉电故障及处理 (26)第六章网络通信 (26)6.1 TCP/IP协议 (26)6.2 查看网上用户信息 (27)6.3 使用mail 发送和接收电子邮件 (27)一、发送电子邮件 (27)二、阅读电子邮件 (27)6.4 在网络上登录和拷贝 (28)一、telnet (28)二、ftp (29)第一章UNIX启动和定时管理 (32)1.1 UNIX启动过程 (32)1.2 UNIX用户的登录过程 (32)1.3 daemon进程 (33)1.4 UNIX系统的定时器 (33)第二章UNIX用户管理 (34)2.1用户管理 (35)一、增加新用户 (35)二、删除用户 (35)一、增加新用户组 (35)二、删除用户组 (36)2.2 采用另外一种方法增加和删除用户 (36)一、增加用户 (36)二、删除用户 (37)第三章存储设备的使用 (38)3.1磁带的使用 (38)3.4 mount和umount命令 (41)一、mount命令 (41)二、umount命令 (42)3.5 CD-ROM的使用 (42)一、CD-ROM设备的创建 (42)二、CD-ROM的挂接 (43)第四章网络、主机和路由参数设置 (43)4.1 /etc/networks文件 (43)4.2 /etc/hosts文件 (43)4.3 /etc/gateways文件 (44)4.4 设置步骤 (45)4.5 测试 (45)第一部分上机环境 (45)1.1 UNIX主机环境 (45)1.2 工作站环境 (46)第二部分在工作站上登录UNIX (46)2.2 NetTerm的使用 (46)第三部分UNIX常用命令的使用 (47)3.1 常用命令之一 (47)3.2 常用命令之二(选做) (51)3.3 常用命令之三 (51)第四部分ftp的使用 (53)4.1 ftp的安装 (53)4.2 使用ftp拷贝文件 (53)附录A UNIX命令速查表 (54)第一篇基础篇第一章UNIX操作系统概述1.1 UNIX操作系统简介Unix操作系统自1969年问世以来,至今已有20年的历史,它的第一版于1969年在Bell实验室产生,1975年对外公布,1976年以后在Bell实验室外广泛使用。
Unix实验报告
Unix实验报告计算机科学与技术系实验报告专业名称网络工程课程名称《网络操作系统》项目名称UNIX的Shell班级学号姓名同组人员无实验日期2016.6实验5 UNIX的Shell一、实验目的与要求:(简述本次实验要求达到的目的,涉及到的相关知识点,实验的具体要求。
)掌握UNIX B-shell的主要功能和shell脚本的编写、运行。
二、实验内容(请根据电子版实验指导书撰写如下内容:实验环境、实验子项目名称、实验步骤、实验运行结果)1、验证UNIX B-shell的主要功能2、编写一shell脚本并赋执行权限运行【实验步骤】1、验证shell的主要功能例1:$ ls -l >file1把ls命令的输出放到文件file1中,屏幕上不产生任何输出。
如果文件不存在则shell 建立它;否则文件的最初内容被来自ls的输出所替代(即覆盖原有数据)。
可以使用下面的记号把输出添加到一个文件原有内容的后面(称追加)$ ls -l >>file1在这种情况下如果file1 不存在则也建立它。
例2:将标准错误输出重定向到指定文件。
$ ls -l jin 2 >errfile由于名为jin的文件不存在,原来在屏幕上看到的错误信息重定向到errfile文件中;标准错误输出可重定向到指定文件中;其形式可用program 2>filename 。
2、编写一shell脚本,并赋执行权限运行:(1)$ vi aaa.sh // 输入可执行的内容,保存退出(2)$ chmod a +x aaa.sh // 赋可执行权限(3)$ aaa.sh // 运行三、实验分析与小结(实验过程中的问题分析、产生的原因以及解决方法;实验结果分析;有待优化思路)总结分析:1、shell是用户与作业系统之间的交互层,用户修改其环境,设置或取消shell的环境变量,shell的主要任务是:提示用户打入指令,读指令,转换指令为核心所能理解的语言。
操作系统实验报告(进程间的共享存贮区和信号量通信)
case -1:perror("fork()");exit(0);case 0:do_child_loop(sem_set_id,FILE_NAME);exit(0);default:break;}}for(i = 0;i<10;i++){int child_status;wait(&child_status);}printf("main is done");fflush(stdout);return 0;}运行结果:二、共享主存段机制共享主存段为进程提供了直接通过主存进行通信的有效手段,不像消息缓存机制那样需要系统提供缓存,也不像pipe机制那样需要事先建立一个特殊文件,而是有通信双方直接访问某些共享虚拟存储器空间。
在系统V中,系统管理一组共享主存段控制块。
通信进程在使用共享主存段以前,首先提出申请,系统为止分配存储空间并返回共享主存段标识号。
一个共享段建立后,进程把它被附加到自己的虚拟存储空间中。
一个进程可以附加多个共享主存段。
一个主存段一旦被附加到进程的虚拟机空间后,对它的访问以其他虚拟机的访问完全相同。
但为了保证共享主存段数据完整性,通信的进程之间要互斥的进行访问。
当通信进程不再需要该共享主存段时,可使用命令将其与进程分离,从而使其进程的虚空间删除。
为了理解进程通过共享主存段的通信过程,下面举例,一个是进程向共享段写信息的例子:一个是进行从共享段读信息的例子。
代码如下:四、实验过程与分析一、信号量机制在第一个例子的程序中创建了5个并发子进程,互斥地对文件进行写操作,将自己的进程号写到文件中去,信号量的初值为1,当地一个进程执行update_file函数时首先将信号量值-1,(相当于P操作)致使其它进程等待无法操作文件,直到其结束后,将其值变为1后(相当于V操作),其它进程并发竞争对文件的写操作,并将自己的pid 写入文件中。
在linux中信号量机制的执行既步骤如下所示:(1)信号量的定义:struct semaphore {spinlock_t lock;unsigned int count;struct list_head wait_list;};在linux中,信号量用上述结构体表示,我们可以通过该结构体定义一个信号量。
unix 实验报告
unix 实验报告UNIX 实验报告一、引言UNIX 是一种操作系统,广泛应用于计算机科学领域。
本实验报告旨在介绍UNIX 操作系统的基本概念、特点和使用方法,并通过实验验证其功能和性能。
二、UNIX 操作系统的基本概念1. UNIX 的起源UNIX 是由贝尔实验室的 Ken Thompson 和 Dennis Ritchie 在 1969 年开发的操作系统。
它最初是为了支持多用户、多任务和分时操作而设计的。
2. UNIX 的特点UNIX 具有以下几个特点:- 可移植性:UNIX 可以在不同的硬件平台上运行,使得软件开发更加灵活。
- 多用户和多任务:UNIX 支持多用户同时使用,并且可以同时运行多个程序。
- 分时操作:UNIX 采用分时操作方式,使得多个用户可以共享计算机资源。
- 强大的命令行界面:UNIX 提供了丰富的命令行工具,使用户可以通过命令完成各种操作。
3. UNIX 的文件系统UNIX 使用层次化的文件系统来组织文件和目录。
文件系统的根目录为 "/",所有的文件和目录都从根目录开始构建。
UNIX 的文件系统采用了一种统一的文件访问方式,用户可以通过文件路径来访问文件。
三、UNIX 操作系统的使用方法1. 登录和注销用户可以通过用户名和密码登录到 UNIX 操作系统。
登录后,可以执行各种命令和操作。
注销时,用户可以使用 "logout" 命令退出系统。
2. 文件和目录操作UNIX 提供了一系列命令来管理文件和目录,如:- "ls" 命令用于列出当前目录下的文件和目录;- "cd" 命令用于切换当前目录;- "mkdir" 命令用于创建新的目录;- "rm" 命令用于删除文件或目录。
3. 进程管理UNIX 允许同时运行多个进程,并提供了一些命令来管理进程,如:- "ps" 命令用于查看当前正在运行的进程;- "kill" 命令用于终止指定的进程。
unix实验报告
unix实验报告Unix实验报告引言Unix操作系统是一种广泛应用于计算机领域的操作系统,具有稳定性、可靠性和灵活性等优势。
本实验旨在探索Unix操作系统的基本特性和功能,以及如何在Unix环境下进行常见的操作和任务。
一、Unix操作系统的概述Unix操作系统诞生于20世纪70年代,由贝尔实验室的Ken Thompson和Dennis Ritchie等人开发。
它采用了分时操作系统的设计理念,支持多用户、多任务和多进程的运行环境。
Unix操作系统以其开放源代码和良好的可移植性,成为了众多计算机系统的首选操作系统。
二、Unix系统的基本命令和操作在Unix系统中,用户可以通过命令行界面或图形界面来操作系统。
本节将介绍一些常见的Unix命令和操作。
1. 文件和目录管理Unix系统以文件和目录的形式来组织和管理数据。
用户可以使用命令如ls、cd、mkdir等来查看、切换目录以及创建新的目录。
2. 文件编辑和查看Unix系统提供了强大的文本编辑工具,如vi和nano。
用户可以使用这些工具来编辑和查看文本文件,进行代码编写和修改。
3. 进程管理Unix系统支持多进程的运行环境,用户可以使用命令如ps、kill等来查看和管理系统中的进程。
这些命令可以帮助用户了解系统的运行情况,并进行必要的进程控制和管理。
4. 网络和通信Unix系统具有强大的网络和通信功能。
用户可以使用命令如ping、ssh等来测试网络连接和进行远程登录。
此外,Unix系统还支持各种网络协议和服务,如FTP、HTTP等。
三、Unix环境下的编程和开发Unix操作系统以其开放的设计理念,成为了许多程序员和开发者的首选平台。
本节将介绍Unix环境下的编程和开发工具。
1. C语言开发Unix操作系统的内核和许多系统工具都是使用C语言编写的。
因此,C语言成为了Unix环境下最常用的编程语言之一。
开发者可以使用Unix系统提供的gcc 编译器来编译和调试C语言程序。
unix操作系统实验汇总
实验1 进程控制一、实验目的1.加深对进程概念的理解,明确进程和程序的区别;2.进一步理解并发的概念,明确并发与并行的异同;3.分析进程竞争资源现象,学习解决进程互斥的方法;4.了解Linux系统中进程通信的基本原理。
二、实验内容1.进程的创建:编写一段源程序,使用系统调用fork()创建一个子进程,当此程序运行时,在系统中有一个父进程和一个子进程活动。
让每一个进程在屏幕上显示一个字符串:父进程显示字符“I am the parent”并显示其进程id和子进程的id;子进程显示字符串“I am the child”,并显示其进程id。
2.进程的控制,进程并发如图所示。
设有七个进程,其执行次序如图所示。
在Linux下使用C语言利用系统调用命令fork()、execl()、exit()、wait()描述,调用execl()函数的时候,模拟调用/bin/echo下的echo命令,向控制台输出一句可鉴别是哪个进程的字符串即可。
三、实验代码四、遇到问题及解决办法参考代码:实验2 进程同步与死锁一、实验目的1.理解进程同步的原理和机制;2.通过读者----写者问题的设计与实现进一步掌握进程同步在实际中的应用;3.理解死锁的产生原因,掌握预防和避免死锁的方法,以及死锁的检测方法;4.通过车辆行驶死锁问题的设计与实现掌握解决死锁的方法。
二、实验内容1.编写读者----写者问题的程序,要求如下:(1)在Linux下用C编程,利用信号量操作实现进程同步;(2)读写请求随机产生(比如敲击键盘上的r和w),并动态显示当前的状态(读的时候有多少读者,有多少个写者在等待;写的时候是谁在写,还有多少写者和读者在等待),每个读者和写者用的时间可以预先设定。
本例中,有一个初始化的数组,读者和写者均是对此数组进行操作。
写者是随机对数组中的数字进行修改,修改的值也是随机的,这样更直观、更有助于理解。
2.车辆行驶死锁问题,在Linux下用C语言完成下面模型:设有一个T型路口,其中A、B、C、D处各可容纳一辆车,车行方向如图所示,试找出死锁并用有序分配法消除之。
操作系统实验1-Linux系统操作使用
第1章Linux系统操作使用一、Linux操作系统简介Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux 版本,但它们都使用了Linux内核。
Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。
Linux是一个领先的操作系统,世界上运算最快的10台超级计算机运行的都是Linux操作系统。
严格来讲,Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核、并且使用GNU 工程各种工具和数据库的操作系统。
Linux得名于天才程序员林纳斯·托瓦兹。
Linux 操作系统的诞生、发展和成长过程始终依赖着五个重要支柱:UNIX 操作系统、MINIX 操作系统、GNU 计划、POSIX 标准和Internet 网络。
1981 年IBM公司推出微型计算机IBM PC。
1991年,GNU计划已经开发出了许多工具软件,最受期盼的GNU C编译器已经出现,GNU的操作系统核心HURD一直处于实验阶段,没有任何可用性,实质上也没能开发出完整的GNU操作系统,但是GNU奠定了Linux用户基础和开发环境。
1991年初,林纳斯·托瓦兹开始在一台386SX兼容微机上学习minix操作系统。
1991年4月,林纳斯·托瓦兹开始酝酿并着手编制自己的操作系统。
1991 年4 月13 日在comp.os.minix 上发布说自己已经成功地将bash 移植到了minix 上,而且已经爱不释手、不能离开这个shell 软件了。
1991年7月3日,第一个与Linux有关的消息是在comp.os.minix上发布的(当然此时还不存在Linux这个名称,当时林纳斯·托瓦兹的脑子里想的可能是FREAX,FREAX的英文含义是怪诞的、怪物、异想天开等)。
1991年的10月5日,林纳斯·托瓦兹在comp.os.minix新闻组上发布消息,正式向外宣布Linux内核的诞生(Freeminix-like kernel sources for 386-AT)。
操作系统实验---进程通信——共享存储区和信号量
实验报告实验题目姓名:学号:课程名称:操作系统实验所在学院:信息科学与工程学院专业班级:计算机任课教师:实验项目名称进程通信——共享存储区和信号量一、实验目的与要求:1、了解和熟悉共享存储机制2、了解和熟悉信号量机制3、熟悉信号量机制中使用的数据结构和信号量机制的操作以及控制。
4、了解共享主存段机制,学会对共享主存段的系统调用。
二、实验设备及软件:1、PC机一台2、Linux操作系统三、实验方法(原理、流程图)一、共享存储区1、共享存储区机制的概念共享存储区(Share Memory)是 UNIX 系统中通信速度最高的一种通信机制。
该机制可使若干进程共享主存中的某一个区域,且使该区域出现(映射)在多个进程的虚地址空间中。
另一方面,一个进程的虚地址空间中又可连接多个共享存储区,每个共享存储区都有自己的名字。
当进程间欲利用共享存储区进行通信时,必须先在主存中建立一共享存储区,然后将它附接到自己的虚地址空间上。
此后,进程对该区的访问操作,与对其虚地址空间的其它部分的操作完全相同。
进程之间便可通过对共享存储区中数据的读、写来进行直接通信。
图示列出二个进程通过共享一个共享存储区来进行通信的例子。
其中,进程 A 将建立的共享存储区附接到自己的 AA’区域,进程 B 将它附接到自己的 BB’区域。
应当指出,共享存储区机制只为进程提供了用于实现通信的共享存储区和对共享存储区进行操作的手段,然而并未提供对该区进行互斥访问及进程同步的措施。
因而当用户需要使用该机制时,必须自己设置同步和互斥措施才能保证实现正确的通信。
二、涉及的系统调用1、shmget( )创建、获得一个共享存储区。
系统调用格式: shmid=shmget(key,size,flag)参数定义: int shmget(key,size,flag);key_t key;int size,flag;其中,key是共享存储区的名字;size是其大小(以字节计);flag是用户设置的标志,如IPC_CREAT。
操作系统实验指导1
操作系统实验指导书楚雄师范学院计算机科学系操作系统课程组2011-9-20第一部分操作系统上机指导Linux操作系统环境:RedHat Enterprise Linux ES release 3 (Taroon Update 1) (2.4.21-9.EL)Red Flag Linux release 4.0 (HOT) (2.4)登录到系统常用命令练习:用root账号(超级用户)注册,口令为jkxroot(注意大小写)。
注册成功出现#号(超级用户系统提示符,普通用户的系统提示符为$)。
注销(退出)系统:logout 或exit3.练习使用命令ls(注意Linux命令区分大小写。
)使用ls 查看当前目录内容;使用ls 查看指定目录内容,如/目录,/etc目录使用ls –all 查看当前目录内容;使用dir 查看当前目录内容4.使用cd改变当前目录cd .. 回到上层目录;cd / 回到根目录5.pwd 显示当前路径6.建立目录mkdirmkdir 目录名;mkdir /home/s2001/newdir7.删除目录:rmdir;8.复制文件cp:如cp 文件名1 文件名29.移动文件或目录: mv10.删除文件rm11. 显示文件内容:more (分页显示);12. 显示文件:cat 文件名建立文件:cat >文件名,ctrl+d结束输入使用编辑器vi 编辑文件进入linux的文本模式之后,在命令行键入vi filename.c 然后回车。
下面作一些简单的解释:首先vi命令是打开vi编辑器。
后面的filename.c是用户即将编辑的c文件名字,注意扩展名字是.c;当然,vi编辑器功能很强,可以用它来编辑其它格式的文件,比如汇编文件,其扩展名字是.s;也可以直接用vi打开一个新的未命名的文件,当保存的时候再给它命名,只是这样做不很方便。
最基本的命令I :当进入刚打开的文件时,不能写入信息,这时按一下键盘上的I键(insert),插入的意思,就可以进入编辑模式了。
电子科技大学14秋《unix操作系统》在线作业1答案
14秋《unix操作系统》在线作业1
一,单选题
1. UNIX系统中显示指定年份日历表的命令是()。
A. last
B. date
C. cat
D. cal
?
正确答案:D
2. UNIX系统对初学者和健忘者提供的帮助有()。
A. or
B. 使用电子手册,即manu命令
C. man/help/info/learn
D. 各种命令及其UNIX在线手册
?
正确答案:C
3. 在UNIX下,进程是一个程序或者任务的()。
A. 编号
B. 执行进度
C. 完成情况
D. 执行过程
?
正确答案:D
4. 当用户退出系统时,()程序终止执行,UNIX系统在终端上启动一个新的getty程序并等待新的用户登录。
A. shell
B. 内核
C. init
D. LILO or GRUB
?
正确答案:A
5. 在UNIX操作系统下,对命令的使用可以是()。
A. 不区分大小写字母
B. 只能识别小写字母
C. 要区分小写或大写字母
D. 只能是大写字母
?
正确答案:B。
操作系统设备管理实验报告
操作系统设备管理实验报告1.计算机操作系统计算机操作系统(operating system缩写作OS)是管理计算机硬件与软件资源的计算机的系统程序, 同时也是计算机系统的内核与基石。
操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入设备与输出设备、操作网络与管理文件系统等基本事务。
操作系统也提供一个让用户与系统交互的操作界面。
操作系统在计算机系统中的位置1)操作系统位于底层硬件与用户之间, 是两者沟通的桥梁。
用户可以通过操作系统的用户界面, 输入命令。
操作系统则对命令进行解释, 驱动硬件设备, 实现用户要求。
•2)以现代标准而言, 一个标准PC的操作系统应该提供以下的功能: •进程管理: 计算机中的应用程序都是以进程单位运行的, 操作系统调度多个进程到CPU执行的过程称为进程管理。
•内存管理: 操作系统管理计算机内存, 控制着内存的分配和回收, 管理者内存与外存的信息交换, 以及配合硬件做地址转换。
•文件系统: 管理硬盘的数据, 可将数据已目录或者文件的形式存储。
•网络通信:管理与计算机外部的网络通信, 例如通过浏览器浏览网页, 打印文件等。
安全机制: 控制一些安全机制, 包含计算机非法入侵和一些合法校验。
用户界面: 图形界面。
驱动程序:与硬件交互的计算机软件, 操作系统通过驱动程序与硬件交互, 例如:USB驱动。
2.常见的操作系统1)Windowswindows10微软创始人比尔.盖茨Windows操作系统是美国微软公司推出的一款操作系统。
该系统从1985年诞生到现在, 经过多年的发展完善, 相对比较成熟稳定, 是当前个人计算机的主流操作系统。
Windows系统的特点:a、Windows操作系统界面友好, 窗口制作优美, 操作动作易学, 多代系统之间有良好的传承, 计算机资源管理效率较高, 效果较好。
b、Windows操作系统作为优秀的操作系统, 由开发操作系统的微软公司控制接口和设计, 公开标准, 因此, 有大量商业公司在该操作系统上开发商业软件。
Unix操作系统实验报告
Unix操作系统实验报告计算机科学与技术学院实验一、Linux基本命令一.实验目的掌握linux平台下的基本命令(40个)二.实验说明在介绍所有的命令之前,先介绍一下Linux的在线帮助man。
在Linux下,当你要查找一个命令的用法的,你可以通过man 命令名来源得命令的详细说明。
因为每个Linux都有一份man文档,所以介绍命令的时候我们只是简直介绍一下命令的学用选项。
如果想查看命令的详细说明,请自己看man。
下面是man各小节的内容:1 用户命令。
2 系统调用。
3 库函数。
4 特殊文件(设备和网络接口)。
5 文件格式。
6 游戏和演示。
7 系统环境、表格和宏。
8 系统管理和相关命令。
三.命令说明1.apropos 依据所给关键字查找相关的命令和系统调用格式:apropos keyword例:查找与ftp相关的命令和系统调用$apropos ftp注:类似的命令有man -k。
man -k 其实就是执行apropos2.at 在某一特定时间执行指定的命令格式:at [-V][-q 队列][-f 文件][-m] time选项说明:-V显示标准的错误输出。
-f可将作业存在一个文件中,用这个选项指定文件。
例如一个shell文件。
-q指定队列名称,默认为c。
-m执行后给用户发邮件。
time 指定开始执行的时间。
时间格式为: HH:MM,日期格式:MM/DD/YY或MM.DD.YY或MMDDYY。
下面的例子演示了在2004年3月11日21点34分执行一个at命令。
$at 21:34 03/11/04执行这条命令后会得到一条warning:commands will be executed using (in order) a)$SHELL b) login shellc)/bin/sh。
然后就出现“at>”的提示符。
这时你就可以输入你要执行的命令了,结束后按Ctrl+d。
你就可以去喝茶了,到时间后系统会自动执行它。
操作系统上机实验报告
操作系统上机实验报告计算机科学与技术学院操作系统上机实验报告实验名称:进程和线程实验⽬的:理解unix/Linux下进程和线程的创建、并发执⾏过程。
实验内容:1.进程的创建2.多线程应⽤实验步骤:⼀、进程的创建下⾯这个C程序展⽰了UNIX系统中⽗进程创建⼦进程及各⾃分开活动的情况。
1、实验指导fork( )创建⼀个新进程。
系统调⽤格式:pid=fork( )参数定义:int fork( )fork( )返回值意义如下:0:在⼦进程中,pid变量保存的fork( )返回值为0,表⽰当前进程是⼦进程。
>0:在⽗进程中,pid变量保存的fork( )返回值为⼦进程的id值(进程唯⼀标识符)。
-1:创建失败。
如果fork( )调⽤成功,它向⽗进程返回⼦进程的PID,并向⼦进程返回0,即fork( )被调⽤了⼀次,但返回了两次。
此时OS在内存中建⽴⼀个新进程,所建的新进程是调⽤fork( )⽗进程(parent process)的副本,称为⼦进程(child process)。
⼦进程继承了⽗进程的许多特性,并具有与⽗进程完全相同的⽤户级上下⽂。
⽗进程与⼦进程并发执⾏。
2、参考程序代码/*process.c*/#include#includemain(int argc,char *argv[]){int pid;/* fork another process */pid = fork();if (pid < 0) { /* error occurred */fprintf(stderr, "Fork Failed");exit(-1);}else if (pid == 0) { /* child process */ execlp( "/bin/ls", "ls",NULL);}else {/* parent process *//* parent will wait for the child to complete */ wait(NULL);printf( "Child Complete" );exit(0);}}3、编译和运⾏$gcc process.c –o processs4、运⾏$./process5、思考(1)系统是怎样创建进程的?⽤fork()系统调⽤创建。
UNIX_BASIC 第1章 UNIX操作系统概述
doswindowsunixlinuxmacosvxworks12unix操作系统的历史fernandojcorbato教授主持世界上第一个分时系统ctsscompatibletimesharingsystem1964年贝尔实验室mit和ge共同参与研发multicsmultiplexedinformationcomputingsystem多路信息与计算系统第二代分时系统设计目标是支持大规模的计算能够连接1000部终端机支持300的用户同时上线fernandojcorbatounix操作系统的历史2从事multics研究的kenthompson在pdp7计算机上用汇编语言实现了unics系统unix的原uniplexedinformationcomputingsystem在移植过程中dennisritchie用c语言改写了unics最终发布了unix的正式版本dennisritchie在thompson的b语言基础上发明了c语言从这以后大部分的操作系统都是用c语言写的kenthompsondennisritchiepdp11kendennisunix两大派系贝尔实验室unixsystemrelease42svr42现今的aixscounix等计算机系统研究小组csrg的bsdunixberkeleysoftwaredistributions现今的freebsdsolaris等工作站上的unix一般属于这一派系linux的历史麻省理工学院richardstallman荷兰andrewtanenbaum芬兰linustorvalds基于intel80386体系结构的操作系统内核加上gnu的bashgcc等其他软件unixhistoryaix的历史1986年ibm发布aix1操作系统安装在ibm6150微计算系统microcomputersystem1989年aixps2intel386pc版本1990aix3ibmrs6000小型机版本2000年aix5l同时支持power和itanium处理器2007年aix6和ibmpower处理器同步推出13unix的概念狭义的概念提供文件系统的管理功能unix的概念2广义的概念unix不仅指系统内核它是一个应用环境和程序设计环境提供了丰富的软件开发工具包括编辑器编译程序调试工具数据库等等功能强大的多任务多用户的操作系统unix的标准化由于世界中存在多种unix操作系统国际标准
UNIX系统程序设计实验指导
实验一实现带参数的简单shell实验一利用课本第9页程序1-5的框架,实现允许输入命令带参数的简单shell。
原来的实现是不能够带参数的。
输入命令所能带的参数个数,只受到系统键盘输入缓冲区长度(以及shell输入缓冲区长度)的限制,该缓冲区的缺省长度是4096个字节。
实现时要解决的主要问题有:1.正确理解并使用系统调用fork(),execve()和waitpid(),特别是execve()函数。
fork()函数创建一个新的进程。
新进程就是所谓的子进程,它是执行fork()函数的进程(父进程)的“克隆”,也就是说,子进程执行的程序与父进程的完全一样。
当fork()函数返回值为0时表示处于子进程中;而返回值大于0时表示处于父进程中,此时的返回值是子进程的进程id。
因此,fork()的返回值可以用来划分仅仅适合父进程和子进程执行的程序段。
fork()函数返回值为-1时表示出错。
如果子进程只是运行与父进程完全一样的程序,那用处是很有限的。
要让子进程运行不同于父进程的程序,就必须调用execve函数,它是所有其他exec函数的基础。
execve函数把调用它的进程的程序,替换成execve函数的参数所指定的程序。
运行execve函数成功后,进程将开始运行新的程序,也就是execve函数的参数所指定的程序。
execve函数原型:int execve(const char *path, const char *argv[],const char *envp[]); 其中:path:要执行的程序路径名,比如“/bin/ls”,“cd”,“/usr/bin/gcc”等等。
argv:参数表,比如ls命令中可带的命令行参数-l,-a等。
注意,argv的第一个元素必须是要执行的程序(命令)的路径名。
envp:环境变量表,供要执行的命令使用。
实参数用NULL或系统环境变量environ 均可。
注意,因为environ由系统提供,属于外部变量,所以说明时必须用“extern”修饰。
UNIX系统实验指导书
实验1 UNIX基本操作1、实验目的掌握 UNIX (LINUX)系统的基本使用方法:系统启动、注销、关闭和关机;帐号管理;文件系统的日常管理;文件系统的权限控制。
2、实验工具及环境UNIX(LINUX)系统网络环境或单机。
3、实验计划学时2学时上机实际操作。
4、实验内容及操作步骤⑴系统启动和关闭① 使用自己的账户登录UNIX系统,查看系统提示符确定自己使用的shell程序类型别。
◎开机后,系统自检启动后提示login:(输入:root ↙)password:(输入:用户口令↙ ,root用户为redhat )◎ 查看/etc/passwd文件可以获得用户使用的shell# grep $LOGNAME /etc/passwd ↙可能的显示为: user001:*:200:50::/usr/user001:/bin/sh请思考上述命令怎样得到了当前使用的shell类型的?使用下面的命令也可以查看当前shell:# echo $SHELL② 注销和关机命令。
◎ 用户注销使用:$exit ↙或$<ctrl>+<D> ↙或$logout ↙◎ 超级用户关机使用:#shutdown ↙该命令将结束所有的进程,当执行此命令后系统提示“ Safe to Power off or Press Any Key to Reboot ”时可以关闭电源或按任一键重启系统。
◎haltsys(halt),reboot只能由超级用户在单用户模式下使用。
⑵帐号管理① 添加用户,删除用户,修改个人口令后重新进行登录;◎ 添加用户的shell命令:# useradd user08 ↙(Linux系统中可以为 adduser)上述命令采用默认属性, UNIX 也可以使用选项来指定创建帐户的属性:- c comment 用户说明- d directory 指定用户主目录- m 若用户的起始目录不存在则创建- g group 指定用户所属组- s shell 指定用户使用的shell- u uid 为用户分配标识◎ 修改口令对linux系统而言,用adduser增加的用户应该随即用passwd命令来修改口令。
UNIX操作系统实验1
UNIX操作系统实验首都师范大学信息工程学院系统分析与管理实验室目录1、UNIX安装及基本操作………………………………………2、UNIX编程基础……………………………………….3、UNIX进程实验……………………………………….4、UNIX进程间通信……………………………………..5、UNIX文件系统实验………………………………………..6、UNIX综合实验………………………………………..实验一 UNIX安装及基本操作一、背景知识UNIX操作系统是一种精良的OS,可完成系统赋予OS的所有任务,与用户有良好的交互界面,在资源管理中有独到的算法和策略,开源软件使其技术有了长足发展。
UNIX核心部分设计简单且功能全面,支持多用户、多任务,文件系统可装卸,有良好的开放性及可移植性,具有强大的命令功能,具有完善的安全机制,具有网络特性等。
Linux 不同于WindowsNT、UNIX等系统,它的源代码是公开的,具有类UNIX的特点,安装和使用与UNIX相似,它实现了虚拟存贮管理,进程管理,多处理器,多文件系统,可以运行在PC平台,是一个先进的,具有生命力的操作系统,因此,课程将主要以Linux操作系统作为安装和实验的平台,UNIX操作系统的安装和使用可以参照Linux实验来完成。
二、实验目的1) 通过安装Linux,掌握Linux安装的一般程序,了解Linux安装的发展。
2) 通过学习和练习基本命令操作,掌握Linux下命令的特点,掌握基本命令的使用。
三、工具/准备工作在开始本实验之前,请回顾教科书的相关内容。
需要做以下准备:1) 一台个人计算机。
2) Linux介质(光盘,网络镜像或下载网址及网络通信联接)四、实验内容与步骤1. Linux简介Linux是一种能运行于多种平台(PC机、ALPHA工作站、SUN Sparc 工作站)的功能强大、与UNIX兼容的操作系统。
Linux的内核及应用软件的源代码是公开的,也是免费的。
操作系统进程的创建与控制实验报告
7、熟悉进程的睡眠、同步、撤消等进程控制方法
二、实验内容
1)UNIX/LINUX及其使用环境
1、用vi编写一个简单的、显示"Hello,World!"的C程序,用gcc编译并观察编译后的结果
2、利用gdb调试该程序
3、运行生成的可执行文件。
2)进程创建:
1、编写一段程序,使用系统调用fork()创建两个子进程。当此程序运行时,在系统中有一个父进程和两个子进程活动。让每一个进程在屏幕上显示一个字符:父进程显示'a',子进程分别显示字符'b'和字符'c'。试观察记录屏幕上的显示结果,并分析原因。
操作系统实验报告
实验一进程的创建和控制
班级:12计算机12班
学号:127401219
姓名:刘艳仙
成绩:
2013年6月17日
一、实验目的
1、掌握进程的概念,明确进程的含义
2、复习C语言程序基本知识
3、练习并掌握UNIX提供的vi编辑器来编译C程序
4、学会利用gcc、gdb编译、调试C程序
5、认识并了解并发执行的实质
操作系统实验报告实验一进程的创建和控制12计算机12实验目的1掌握进程的概念明确进程的含义2复习c语言程序基本知识3练习并掌握unix提供的vi编辑器来编译c程序4学会利用gccgdb编译调试c程序5认识并了解并发执行的实质6掌握进程另外的创建方法7熟悉进程的睡眠同步撤消等进程控制方法实验内容1unixlinux及其使用环境1用vi编写一个简单的显示helloworld
#include <stdio.h>
#inlude<stdlib.h>
#include<unistd.h>
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
UNIX操作系统实验首都师范大学信息工程学院系统分析与管理实验室目录1、UNIX安装及基本操作………………………………………2、UNIX编程基础……………………………………….3、UNIX进程实验……………………………………….4、UNIX进程间通信……………………………………..5、UNIX文件系统实验………………………………………..6、UNIX综合实验………………………………………..实验一 UNIX安装及基本操作一、背景知识UNIX操作系统是一种精良的OS,可完成系统赋予OS的所有任务,与用户有良好的交互界面,在资源管理中有独到的算法和策略,开源软件使其技术有了长足发展。
UNIX核心部分设计简单且功能全面,支持多用户、多任务,文件系统可装卸,有良好的开放性及可移植性,具有强大的命令功能,具有完善的安全机制,具有网络特性等。
Linux 不同于WindowsNT、UNIX等系统,它的源代码是公开的,具有类UNIX的特点,安装和使用与UNIX相似,它实现了虚拟存贮管理,进程管理,多处理器,多文件系统,可以运行在PC平台,是一个先进的,具有生命力的操作系统,因此,课程将主要以Linux操作系统作为安装和实验的平台,UNIX操作系统的安装和使用可以参照Linux实验来完成。
二、实验目的1) 通过安装Linux,掌握Linux安装的一般程序,了解Linux安装的发展。
2) 通过学习和练习基本命令操作,掌握Linux下命令的特点,掌握基本命令的使用。
三、工具/准备工作在开始本实验之前,请回顾教科书的相关内容。
需要做以下准备:1) 一台个人计算机。
2) Linux介质(光盘,网络镜像或下载网址及网络通信联接)四、实验内容与步骤1. Linux简介Linux是一种能运行于多种平台(PC机、ALPHA工作站、SUN Sparc 工作站)的功能强大、与UNIX兼容的操作系统。
Linux的内核及应用软件的源代码是公开的,也是免费的。
它具有众多的自由组织和商业公司的支持和参与。
学习和使用Linux要遵守GPL规则。
GPL即General Public License通用公共许可协议的缩写。
GNU是GNU’s Not Unix 的缩写。
FSF是自由软件基金会(Free Software Foundation)的缩写。
Linux具有丰富的功能,它支持多种系统语言:C,C++,Java等;支持多种脚本语言:Perl,Tcl/Tk等;支持多种自然语言:中文,英文等;支持多种排版软件:Tex/Latex,OpenOffice等;支持X-Windows:Khoros,GRASS等;支持免费数据库:Postgres,MySQL等;支持网络应用:WWW等。
Linux最初是由Linus Torvalds在芬兰的Helsinki大学做毕业研究时所首创的。
Linus是将Linux作为一个小型的基于PC机的UNIX实现来写的,他的前身是Tanenbaum的Minix。
1991年夏天,Linus将Linux在Internet上公布,1991年9月,发布了0.01版,1991年10月,发布了0.02版,1991年11月初,发布了0.03版,1991年12月,Linux的版本号增加到0.10,1991年12月底,增加了虚拟内存。
Linus使Linux的源代码免费可用,并且鼓励其他的程序员来进一步地发展它。
直到今天,在由Linus所领导的、由全世界的程序员组成的开发组在整个Internet上继续开发Linux。
Linux共享了许多与UNIX相同的性质和特征:Linux是用C语言写的,而且很轻便;源代码是可以获得的;并且设计良好。
一般地,可以从Linux内核版本号来区分系统是否是Linux 稳定版还是测试版。
以版本2.4.0为例,2代表主版本号,4代表次版本号,0代表改动较小的末版本号。
在版本号中,序号的第二位为偶数的版本表明这是一个可以使用的稳定版本,如2.2.5,而序号的第二位为奇数的版本一般有一些新的东西加入,是个不一定很稳定的测试版本,如2.3.1。
这样稳定版本来源于上一个测试版升级版本号,而一个稳定版本发展到完全成熟后就不再发展。
目前的Linux稳定的版本是2.6.38-2。
Linux在持续地演变和提高,新的内核版本在几周内就可以出现,甚至在发展的集中时期在几天内就可以出现。
大部分的用户使用最新的Linux稳定版。
有特殊需要和拥有特殊硬件的用户会试试内核的测试版。
Linux没有使用任何来自A T&T或任何其他专有者的代码。
Linux的软件来自不同的来源。
许多软件包是由Free Software Foundation的GNU项目开发的,其他的来自Berkeley Software Distribution (BSD UNIX),还有XFreee86 Project公司,和全世界的职业的和业余的程序员。
因为其许可方式,Linux和Linux的发布版是非常便宜的;实际上,大部分是免费的。
Linux的种类很多,主流的Linux发行版有Ubuntu,Debian GNU/Linux,Fedora,Gentoo,MandrivaLinux,PCLinuxOS,Slackware Linux,openSUSE,ArchLinux,Puppylinux,Mint,CentOS,Red Hat等;中国大陆的Linux发行版有中标麒麟Linux(原中标普华Linux),红旗Linux (Red-flag Linux),Qomo Linux(原Everest),冲浪Linux(Xteam Linux),蓝点Linux,新华Linux,共创Linux,百资Linux,veket,lucky8k-veket.Open Desktop,Hiweed GNU/Linux,Magic Linux,Engineering Computing GNU/Linux,kylin,中软Linux,新华华镭Linux(RaysLX),CD Linux,MC Linux,即时Linux(Thizlinux),b2d linux,IBOX,MCLOS,FANX,酷博linux,新氧Linux,Hiweed,Deepin Linux,雨林木风YLMF OS等。
2002年8月,九家厂商联合发布了“Linux标准基础(LSB,Linux Standard Base),从而避免遭遇像UNIX那样分裂的命运。
2. Linux安装安装之前首先要了解计算机的硬件情况:1、CPU:对Linux来说,要求是386或更高的CPU2、Memory:至少8M,多多益善3、Harddisk:硬盘数量,硬盘类型,硬盘大小,主盘位置4、CDROM Driver:驱动器型号、厂商,接口类型5、SCSI Adapter:有无SCSI卡,厂商、型号6、Display Adapter:厂商、型号,水平、垂直的扫描频率范围7、Mouse:鼠标类型,按钮数量,串口、总线、PS2,串口号8、Net:主机的IP地址、子网掩码、网关地址,域名服务器的IP地址、主机所处域的名称、主机的名称、网络的类型等参数如何收集硬件资料:收集有关硬件的各种手册;在MSDOS下,可用MSD程序来收集;在Windows下,通过“控制面板”收集。
或参阅硬件的产品说明书。
请填写Linux安装硬件准备表,这将使你的安装变得简易。
表1 计算机硬件设备参数表现代操作系统几乎无一例外地使用硬盘分区。
在作硬盘分区时,通常有如下几种情况。
1、硬盘上还有尚未分区的空间,则为Linux新建一个分区。
2、硬盘上有一个未使用的分区,则首先删除现已不用的分区,再为Linux新建一个分区。
3、所使用的分区上尚有未使用的空间,方法一是做好数据备份并做好验证,删除原有大分区,再新建二个分区;方法二是压缩现有数据,改变分区大小,再创建新分区。
如何压缩数据/改变分区/创建新区:采用RedHat光盘中,位于目录dosutils下的fips 工具来做,或采用第三方软件来做。
Linux提供了多种类型的安装:客户机类型安装:Linux首先删除原来Linux的分区,再创建新分区并安装Linux,如果硬盘上有其他操作系统,可以通过安装LILO(LInuxLOad)或GRUB做成双启动。
所需空间约600MB左右。
服务器安装:如果需要一台Linux服务器,则可以采用服务器安装。
它首先删除所有的分区(不管是否是Linux),再创建几个Linux分区,并安装Linux。
所需空间约1600MB左右。
(只有需要服务器时才采用)自定义安装:可以选择安装何种软件包,是否采用LILO双启动等。
安装方式:从光盘安装:通过引导盘从软盘启动或在DOS下将目录转到光驱的DOSutils下运行autonboot启动/修改BIOS直接光盘启动。
从硬盘安装:将所有的Linux软件包存入硬盘另一个分区的子目录下,制作引导盘,由引导盘启动。
从NFS安装:将Linux软件包通过NFS方式传到自己的计算机上,服务器上要有Linux 的安装文件,了解主机名或IP地址,设置好共享文件夹,通过网络引导盘启动。
从FTP安装:通过FTP方式将所需的软件包下载到自己的计算机上,设置好服务器的地址,做好网络启动盘,通过网络引导盘启动。
从HTTP安装:通过HTTP方式与通过FTP方式很相似,将所需的软件包下载到自己的计算机上,设置好服务器的地址,做好网络启动盘,通过网络引导盘启动。
HTTP方式只是下载方式的不同。
一般安装过程:Linux的安装过程非常简单,只要按照提示选择安装即可。
1、引导安装系统:在纯DOS下运行autoboot.bat或自启动。
2、选择语言:3、选择键盘:4、选择安装方法:光盘、硬盘等5、选择安装还是升级:6、选择安装类型:Workstation/Server/Custom7、创建Linux分区:可以用DiskDruid/Fdisk来创建8、设置安装点:最好分为二个,一个为“/”,另一个大于64M9、初始化交换区:初始化内存2倍的分区作为交换区10、格式化Linux分区:格式化时检查坏块11、选择和安装软件包:12、配置鼠标:13、配置网络:14、配置时区:15、选择启动服务:自动/缺省/数据库16、配置打印机:17、设置root口令并创建用户:超级用户口令至少输入6个以上字符码18、配置验证方案:NIS/Shadow/MD519、创建专用引导盘:20、安装LILO或GRUB:21、配置X-Window系统:显示卡/显示器/显示内存/显示时钟22、完成安装不同的Linux安装方式不尽相同,但是,大体不出左右。
3. Linux使用基础登录:Linux是一个多用户,多任务的操作系统,可以有多个用户同时使用一台计算机,各用户都有自己独立的用户帐号。