操作系统实习报告.docx
- 文档编号:28419299
- 上传时间:2023-07-13
- 格式:DOCX
- 页数:19
- 大小:209.43KB
操作系统实习报告.docx
《操作系统实习报告.docx》由会员分享,可在线阅读,更多相关《操作系统实习报告.docx(19页珍藏版)》请在冰豆网上搜索。
操作系统实习报告
沈阳航空航天大学
Linux系统操作实习报告
院(系):
计算机学院
专业:
计算机科学与技术
班级:
学号:
姓名:
指导教师:
董燕举李晓明毕静
完成日期:
2015年7月17日
1.Linux基本命令
今天在李老师的指导下,我们初步学习了关于Linux系统的产生背景,及其与Windows系统一些不同。
并且了解到,Linux系统是开源的操作系统。
做完简单介绍后,我们便开始学习了Linux系统里的一些基本的终端命令,下面将这些命令做一些简单的罗列。
1.系统关闭命令及用法:
shutdown
命令格式:
shutdown[选项][时间][警告信息]
命令中各选项的含义为:
-k并不真正关机而只是发出警告信息给所有用户
-r关机后立即重新启动
-h关机后不重新启动
-f快速关机重启动时跳过fsck
-n快速关机不经过init程序
-c取消一个已经运行的shutdown
2.重启系统命令及用法:
reboot
格式:
reboot[-n][-w][-d][-f][-i]
主要参数
-n:
在重开机前不做把记忆体资料写回硬盘的动作。
-w:
并不会真的重开机,只是把记录写到/var/log/wtmp文件里。
-d:
不把记录写到/var/log/wtmp文件里(-n这个参数包含了-d)。
-i:
在重开机之前先把所有与网络相关的装置停止。
3.列出目录内容命令:
ls
Ls:
ls[选项][文件]
ls-a列出当前目录下的所有文件,包括以.头的隐含文件
ls–l|more列出当前目录下文件的详细信息,more是分页显示,按空格继续显示下一个画面,按Q键停止显示
4.显示当前路径命令:
pwd
5.改变工作目录命令cd
格式:
cd[路径]
cd..回当前目录的上一级目录
cd-回上一次所在的目录
cd~或cd回当前用户的宿主目录
cd~用户名回指定用户的宿主目录
cdzkl切换到当前目录下的zkl子目录
6.创建一个目录mkdir
格式:
mkdir[选项]目录名
例如:
mkdirzk
选项–m设定权限
m模式:
在建立目录时把按模式指定设置目录权限。
该目录的权限分为:
目录所有者的权限、组中其他人对目录的权限和系统中其他人对目录的权限。
这三个权限分别用三个数字之和来表示:
对目录的读权限是4、写权限是2、执行权限是1
7.删除目录rmdir
格式:
rmdir目录名
一般情况下要删除的目录必须为空目录,如果所给的目录不为空,系统会报告错误。
8.作用设定文件或目录权限chmod
格式:
chmod [选项] 文件和目录列表
说明:
只有文件和目录的所有者才有权限修改其权限,超级用户可对所有文件或目录进行权限设置
字符串表示:
rwxrw-rw-
三种不同的访问权限:
w写访问权限,r读访问权限,x执行权限
u(文件拥有者)g(所属用户组)o(其他用户)权限
9.复制命令cp
格式:
cp[选项]源文件或目录目标文件或目录
选项:
-f覆盖已经存在的目标文件而不提示
-i覆盖已经存在的目标文件要求用户确认
-r若给出的源文件是一个目录,递归复制该目录下所有子目录和文件,目标文件必须是目录
10.移动文件或目录mv
作用:
格式:
mv[选项]源文件或目录目标文件或目录
选项:
-f覆盖已经存在的目标文件而不提示
-i覆盖已经存在的目标文件要求用户确认
11.删除文件或目录命令rm
格式:
rm[选项]源文件或目录目标文件或目录
选项:
-f覆盖已经存在的目标文件而不提示
-i覆盖已经存在的目标文件要求用户确认
12.在指定目录中搜索文件find
格式:
find[路径][选项][文件]
选项:
-name支持通配符*和?
13.连接命令cat
作用:
并显示一个和多个文件的内容
格式:
cat[选项]文件1文件2
14.useradd命令:
作用:
创建一个新的用户
格式:
useradd[选项]用户名
15.passwd命令
作用:
为用户创建密码
格式:
passwd[选项]用户名
passwd-d用户名删除用户密码也能登陆
passwd-S用户名查询账号密码
16.who命令
作用:
显示登录用户
17.su命令
作用:
变更用户帐号
18.压缩解压命令gzip
作用:
对文件进行压缩和解压缩
格式:
gzip[选项][文件名]
2.Linux服务器配置与管理
(1)Web服务器配置与管理
Web服务器的安装与配置 检测与安装Apache ,检测Linux系统中是否已经安装了Apache服务器可以只用下面的命令当安装完Apache服务器后,如果想让其提供Web服务还必须启动它。
访问www原理:
1.上网用户在IE中输入网址(URL)回车;
2.本地DNS服务器把URL中的主机解析成IP;
3.根域名服务器根据IP向WWW服务器提出请求;
4.WWW服务器响应请求,返回内容。
(2)DNS服务器配置与管理
基本配置步骤
域名系统(DomainNameSystem,DNS),是一种分布式的、层次型的、客户机/服务器模式的数据库管理系统。
DNS服务器功能主要有两个:
(1)将域名转换成IP 地址(俗称正向解析);
(2)将IP 地址转换成计算机的域名(俗称逆向解析)。
域名系统的结构
其结构类似于一棵倒置的树,由最顶端的根一层一层往下延伸。
这样所组成的结构,即称为域的名称空间。
DNS域名解析的工作原理:
(1)DNS客户机提出域名解析请求,并将该请求发送给本地的域名服务器。
(2)当本地的域名服务器收到请求后,就先查询本地的缓存,如果有该记录项,则本地的域名服务器就直接把查询的结果返回。
(3)如果本地的缓存中没有该记录,则本地域名服务器就直接把请求发给根域名服务器,然后根域名服务器再返回给本地域名服务器一个所查询域(根的子域)的主域名服务器的地址。
(4)本地服务器再向上一步返回的域名服务器发送请求,然后接受请求的服务器查询自己的缓存,如果没有该记录,则返回相关的下级的域名服务器的地址。
(5)重复第4步,直到找到正确的记录。
(6)本地域名服务器把返回的结果保存到缓存,以备下一次使用,同时还将结果返回给客户机。
3.Linux多进程与多线程程序设计与开发
(1)设计题目
题目要求:
Linux平台下设计和开发一个多进程或多线程程序。
编程语言可以用C、C++或Java。
应用范畴:
内容不限,如信息处理、信息管理、游戏、多媒体、网络类等均可。
用户界面:
推荐图形用户界面,命令行界面也可。
(2)题目内容
1.多进程编程
设计实现三个进程,第一个进程主要输出一个菱形符号;第二个进程是调用了系统的cal命令来实现日期的显示,主要采用传递参数的形式,可以输出任何年、月的具体时间;第三个进程主要用来实现一个简单的计算器,主要功能有加
减、乘、除、退出等,除法运算可以对小数进行计算。
通过对getpid(),fork(),execl(),wait()的函数的运用最终实现这一系列的编程任务。
2.多线程编程任务
设计六个线程来实现对组员姓名的三遍输出,以及对每一个线程的线程号的输出。
具体的创建六个线程通过函数调用传参的形式来实现。
通过调用pthread_self、pthread_create、pthread_join等系统函数来对线程进行创建、管理。
要求:
(1)理解Linux下面多进程系统调用方法:
getpid(),fork(),execl(),wait()
(2)每个进程的任务尽量有趣,有一定代码量和难度(我将据此评定等级)
(3)能够读懂代码,改代码
(3)设计思路
1.多进程编程
在父进程中利用switch语句来实现相应进程的调用,利用fork()函数创建一个进程,此函数对子进程返回0,以此判断是子进程,并调用execl()函数用一个新的进程来替代这个子进程,实现相应的功能,若此函数返回的不是0,则调用wait()函数让主进程等待子进程执行,直到子进程执行完毕。
2.多线程编程
在main线程中调用pthread_create()函数来创建一个线程,并将此线程与一个函数体对应到一起,即此线程用来执行这个函数,以此创建六个线程。
函数调用时通过传递参数将输出的信息通过参数传过去,在线程体中输出,并调用pthread_self()系统函数来输出线程号。
在main线程中调用pthread_join(),使main线程等待,相应的线程执行,直到main线程执行结束。
(4)数据结构或类设计
1.多进程编程
多进程编程主要用到的头文件#include
2.多线程编程
多线程编程主要用到的头文件#include
(5)算法
1.多进程
在父进程中创建三个进程,对应三个小程序,当调用子进程的时候让父进程等待,直到子进程执行结束,父进程可以继续运行。
否
是
图1进程流程图
2.多线程
在main线程中创建六个线程,各个线程并发执行,执行的快慢主要看cpu的分配。
图2线程流程图
(6)测试用例与测试结果
表1进程测试用例
测试用例号
输入数据
期望输出
1
选择第一个进程
输出一个菱形图案
2
选择第二个进程,输入年、月
显示当月的日期
3
选择第三个进程,选择计算器,选择加法运算
输出计算结果
4
选择第三个进程,选择计算器,选择减法运算
输出计算结果
(7)程序运行
线程运行情况:
进程运行情况:
实习总结
(1)小组分工
赵凯敏、赵曼迪主要负责linux命令;
兰洋、刘凯宇负责DNS,WEB的网络的配置;
张宏伟、李明明负责进程、线程程序的编写;
(2)收获与体会
这是一个不断创新的时代,我们每个人都应该与时俱进,我时刻提醒自己,唯有不断努力,才能与时俱进。
在这次实习过程中,我很珍惜Linux系统的学习机会,也很难感谢老师和同学在这段时间里对我的指导和帮助,我从中受益非浅。
通过这次Linux服务器配置与管理的实习,一方面巩固了自己所学知识,提高了自己处理实际问题的能力;另一方面,它是我们从学校走向社会的一个过渡。
我们在大学里所学的知识应更多的与实践结合在一起,用实践来检验真理。
使一个专科生具备较强的处理基本事务的能力与比较系统的专业知识,这才是我们学习与实习的真正目的。
社会是不断发展变化,计算机技术更是日新月异的进步,我们只有不断学习学习再学习,才能保持自己不会落后。
这次实习它不仅使我在理论上对Linux这个领域有了全新的认识,而且在实践能力上也得到了提高。
通过这几次上机实习,使我更加扎实的掌握了有关编程方面的知识,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足。
实践出真知,通过编程,使我们掌握的知识不再是纸上谈兵。
其它能力上也都有了提高。
更重要的是,在课程设计上,我们学会了很多学习的方法。
而这是日后最实用的,真的是受益匪浅。
要面对社会的挑战,只有不断的学习、实践,再学习、再实践。
(3)Linux实习方式不足与改革建议
Linux不是简单的操作系统,是开源的系统,就意味着不断有创新,不断的发展,不断的学习,操作Linux系统,就必须不停的自我学习、不断发现问题、解决问题。
每个学生应该不仅是使用者,还是测试员、创作者、教师兼学员。
附录(源程序代码)
线程程序:
#include
#include
voidthread(void)
{
printf("第一个线程输出:
张宏伟张宏伟张宏伟id:
%lu\n",pthread_self());
}
voidthread1(void)
{
printf("第二个线程输出:
李明明李明明李明明id:
%lu\n",pthread_self());
}
voidthread2(void)
{
printf("第三个线程输出:
兰洋兰洋兰洋id:
%lu\n",pthread_self());
}
voidthread3(void)
{
printf("第四个线程输出:
刘凯宇刘凯宇刘凯宇id:
%lu\n",pthread_self());
}
voidthread4(void)
{
printf("第五个线程输出:
赵凯敏赵凯敏赵凯敏id:
%lu\n",pthread_self());
}
voidthread5(void)
{
printf("第六个线程输出:
赵曼迪赵曼迪赵曼迪id:
%lu\n",pthread_self());
}
intmain(void)
{
inti,ret;
pthread_tid,id1,id2,id3,id4,id5;//线程标识符
printf("9组有6名同学(张宏伟,李明明,兰洋,刘凯宇,赵凯敏,赵曼迪)\n");
ret=pthread_create(&id,NULL,(void*)thread5,NULL);//创建新线程
if(ret!
=0)
{
printf("Createpthreaderror!
\n");
exit
(1);
}
ret=pthread_create(&id1,NULL,(void*)thread4,NULL);//创建新线程
if(ret!
=0)
{
printf("Createpthreaderror!
\n");
exit
(1);
}
ret=pthread_create(&id2,NULL,(void*)thread3,NULL);//创建新线程
if(ret!
=0)
{
printf("Createpthreaderror!
\n");
exit
(1);
}
ret=pthread_create(&id3,NULL,(void*)thread2,NULL);//创建新线程
if(ret!
=0)
{
printf("Createpthreaderror!
\n");
exit
(1);
}
ret=pthread_create(&id4,NULL,(void*)thread1,NULL);//创建新线程
if(ret!
=0)
{
printf("Createpthreaderror!
\n");
exit
(1);
}
ret=pthread_create(&id5,NULL,(void*)thread,NULL);//创建新线程
if(ret!
=0)
{
printf("Createpthreaderror!
\n");
exit
(1);
}
pthread_join(id5,NULL);//等待线程执行结束
pthread_join(id4,NULL);//等待线程执行结束
pthread_join(id3,NULL);//等待线程执行结束
pthread_join(id2,NULL);//等待线程执行结束
pthread_join(id1,NULL);//等待线程执行结束
pthread_join(id,NULL);//等待线程执行结束
return(0);
}
进程程序:
#include
#include
#include
main()
{
printf("创建四个进程\n");
pid_tpid;
intchoice,flag;
printf("1.输出一个菱形\n");
printf("2.显示日期\n");
printf("3.计算器\n");
printf("4.退出\n");
while
(1)
{
flag=0;
printf("请输入你的选择:
\n");
scanf("%d",&choice);
switch(choice){
case1:
pid=fork();
if(pid==0)
{
execl("./lingxing","lingxing",NULL);
perror("execlfailedtorun");
break;
}
elseif(pid>0)
{
wait(NULL);
break;
}
case2:
pid=fork();
if(pid==0)
{
printf("请输入年、月\n");
charyear[4];
charmonth[2];
scanf("%s%s",year,month);
execl("/usr/bin/cal","cal",month,year,NULL);
perror("execlfailedtorun");
break;
}
elseif(pid>0)
{
wait(NULL);
break;
}
case3:
pid=fork();
if(pid==0)
{
execl("./jisuanqi","jisuanqi",NULL);
perror("execlfailedtorun");
break;
}
elseif(pid>0)
{
wait(NULL);
break;
}
case4:
{
flag=1;
}break;
}
if(flag)
break;
}
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 实习 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)