操作系统-Linux课程实验报告

合集下载

Linux操作系统实验实验报告

Linux操作系统实验实验报告

L i n u x操作系统实验实验报告Document number:NOCG-YUNOO-BUYTT-UU986-1986UT实验1:安装Linux系统【实验目的和要求】:安装Linux系统,掌握操作系统的系统配置,建立应用环境的过程。

【实验内容】:1、首先在windows系统中安装虚拟机。

在网上找到VMwareWorksttionPro版本,确定安装目录。

一直下一步,不需要太多的说明。

2、图为安装完成后的界面。

3、然后在阿里巴巴开源镜像网站下载centos系统镜像,然后虚拟机创建新的虚拟机,进行一些简单的虚拟机设置,设置了网络链接nat模式等等。

安装完成后的界面实验2:Linux下c语言开发【实验目的】:学会和掌握用c语言开发一个应用程序的全过程,包括,编译,调试等等。

【实验步骤】:首先在系统中查看是否已经安装有gcc,输入查看命令发现没有,于是需要安装gcc。

在centos系统中可以使用比较简便的yum命令。

在之前已经配置好了yum源。

直接输入yuminstallgcc。

回车自动安装程序和需要的依赖包。

因为虚拟机中和电脑很多地方切换使用不方便,所以安装了xshell软件。

图为xshell中的截图。

安装完毕。

然后使用vi或者vim编写运行,在屏幕上打印出hello,world。

实验3:进程创建【实验目的和要求】1.了解进程的概念及意义;2.了解子进程和父进程3.掌握创建进程的方法。

【实验内容】1.子进程和父进程的创建;2.编写附件中的程序实例【实验步骤】一1、打开终端,输入命令,在文件中输入中的代码;2、输入命令,回车后显示无错误;3、输入命令:./1_fork运行程序。

二、1、打开终端,输入命令,在文件中输入中的代码;2、输入命令,回车后显示无错误:3、输入命令:./2_vfork运行程序。

从上面可以看到两次的运行结果不一样。

我们知道write函数是不带缓存的。

因为在fork之前调用write,所以其数据写到标准输出一次。

Linux操作系统实验报告

Linux操作系统实验报告

实验报告实验名称Linux操作、使用、编程指导教师杨健实验类型验证实验学时2+2 实验时间2007.10.29 1、实验目的和要求1.能够安装某Linux发行版本(例如Red Hat)2.了解Linux的启动过程3.了解Linux文件的组织结构4.熟悉X Window 环境5.练习使用Linux 常用命令6.熟练使用Linux的C语言开发环境7.学习并掌握Linux 编译工具gcc 的使用方法8. 熟练使用Linux的C语言开发环境9. 学习并掌握Linux 编译工具gcc 的使用方法10. Linux操作系统下的熟悉并能够进行进程创建11. 掌握Linux操作系统下的并发进程间同步12. 掌握Linux操作系统下的进程间通信IPC二、实验环境(实验设备)Windows 2000 + VMWare + RedHat Linux 8三、实验原理及内容熟悉了vim的操作,知道它的打开方式,编译方法,和运行方法。

了解了vim的常见的命令。

实验报告pid_t pid; //pid_t是Linux下的进程号类型,也就是Process ID _ Type 的缩写。

其实是宏定义的//unsigned int a类型int data=5;if((pid=fork())<0) /*错误处理,此处的pid的值,可以说明fork调用后,目前执行的是父进程还是子进程*/{printf("fork error\n");exit(0);}else if(pid==0) /*这是新进程*/{data--;printf("child\'s data is:%d\n",data);exit(0);}else /*这是最初的父进程*/{printf("parent\'s data is:%d\n",data);}exit(0);}/*fork函数被调用一次但返回两次。

操作系统-Linux课程实验报告

操作系统-Linux课程实验报告

实验1.1、1.2 Linux Ubuntu的安装、创建新的虚拟机VMWare实验1.3 Shell编程1.实验目的与内容通过本实验,了解Linux系统的shell机制,掌握简单的shell编程技巧。

编制简单的Shell程序,该程序在用户登录时自动执行,显示某些提示信息,如“Welcome to Linux”, 并在命令提示符中包含当前时间、当前目录和当前用户名等基本信息。

2.程序源代码清单#include<stdio.h>#include<sys/wait.h>int main(){printf("Hello Linux\n");int pid;int state;int pfd[2];pipe(pfd);if (fork()==0){printf("In the grep progress\n");dup2(pfd[0],0);close(pfd[0]);close(pfd[1]);execlp("grep","grep","sh",0);perror("exelp grep error");}esle if(fork()==0){printf("In the ps progress\n");dup2(pfd[1],1);close(pfd[0]);close(pfd[1]);execlp("ps","ps","-ef",0);perror("execlp ps -ef");}close(pfd[1]);close(pfd[0]);wait(&state);wait(&state);}实验2.3 内核模块实验步骤:(1).编写内核模块文件中主要包含init_clock(),exit_clock(),read_clock()三个函数。

linux操作系统实验报告

linux操作系统实验报告

linux操作系统实验报告第一篇:linux操作系统实验报告Linux实验报告一一、实验步骤及内容1.虚拟机软件的安装(1)先准备虚拟机安装包。

(2)更改安装路径:“D: VMwareVMware Workstationvmware.exe”(3)输入序列号:ctrl+v,在安装过程中不能进行复制剪切操作。

(4)不能重新启动,才能继续安装汉化版D: vmwarevmware workstation2.新建一个虚拟机并进行配置(1)单击新建虚拟机虚拟机的类型选择:典型安装选择客户端操作系统:linux虚拟机的名字及位置根据需要网络类型选择:,桥接。

指定的磁盘容量删除软驱:双击floppy—remove虚拟内存设置:双击memory—1024MB设置linux的安装文件:选择安装镜像文件—指定第一个安装文件—就可以啦!之后会提示安装第二个安装文件就进行选择第二个中间鼠标切换用CTRL+ALT。

3.安装LINUX操作系统(1)要确定鼠标是否在虚拟机的激活状态下:敲回车不需要检测安装文件选择skip进入linux的安装前的配置选项:选择安装的语言—中文简体键盘:--默认鼠标:--默认安装类型:--workstation磁盘分区:--自动分区引导程序:默认网络配置:默认防火墙:无防火墙支持的语言:中文时区:亚洲-上海密码:root123456安装的软件包:全部。

二.在已有虚拟机软件的基础上安装LINUX的技巧。

(1)新建虚拟机—典型安装—linux ,red hat linux---给虚拟机命名,并且指定安装位置d:red hat linux---桥接---10G。

(2)在刚才建立的虚拟机上安装linux系统.(3)配置要安装的linux系统的安装文件iso镜像文件(4)选择配置好linux镜像文件刚才建立的虚拟机,启动虚拟机,开始安装。

三.实验总结充分了解linux系统的安装,学会新建虚拟机,在虚拟机上安装linux系统.和一些简单的技巧并对此门课程有了一定的兴趣。

操作系统Linux系统的使用实验报告1

操作系统Linux系统的使用实验报告1

实验课程名称:《操作系统》实验项目名称L i n u x系统的使用实验成绩实验者专业班级组别同组者实验日期年月日第一部分:实验分析与设计(可加页)一、实验预习报告(实验目的,主要设备、仪器,基本原理、实验步骤等)(可加页)实验目的和要求:Linux键盘命令和字符界面编辑器vi要求:掌握Linux系统键盘命令和vi的使用方法。

⑴熟悉开机后登录Linux系统和退出系统的过程;⑵熟悉Linux字符界面——虚拟终端窗口和shell,练习并掌握常用的Linux操作命令,如ls、cat、ps、df、find、grep、cd、more、cp、rm、mv、mkdir、rm、chmod、chown、passwd、kill、who、ln、control+d/c等;熟悉常用shell的提示符;熟悉图形界面——X-Window(如gnome或KDE)以及字符窗口与图形界面之间的切换(若实验条件允许)。

⑶学习使用Linux的在线求助系统,如man和help命令等。

⑷掌握一种Linux的编辑器,特别是字符界面的vi工具的使用。

⑸用vi编辑一个打印“Hello,I am a C program”字串的C语言程序,然后编译并运行它,记下整个过程。

熟悉gc编译器的使用。

二、实验过程记录(包括实验内容、数据记录、实验现象等)(可加页)1 首先用root创建新的用户如下图1-1所示图1-12 熟悉Linux字符界面——虚拟终端窗口和shell,练习并掌握常用的Linux操作命令,操作如图2-1所示Ls-l命令显示所有文件名字权限,创建时间等。

⑶学习使用Linux的在线求助系统,如man和help命令等。

操作如图3-1图3-1 通过输入help得到一些函数的使用方法和信息⑷掌握一种Linux的编辑器,特别是字符界面的vi工具的使用。

操作如图4-1,4-2所示输入vi yxq.c创建并进入vi编辑器图4-1输入i进入编辑模式,程序编辑完成按Ese键,在如入:wq保存并退出图4-2⑸用vi编辑一个打印“Hello,I am yxq”字串的C语言程序,然后编译并运行它,记下整个过程。

linux实验系统实验报告

linux实验系统实验报告

linux实验系统实验报告Linux实验系统实验报告一、引言Linux实验系统是一个基于Linux操作系统的实验平台,旨在提供一个实践学习的环境,帮助学生深入了解Linux操作系统的原理和应用。

本实验报告旨在总结和分析我在使用Linux实验系统进行实验时的经验和收获。

二、实验环境1. 硬件环境:我使用的是一台配备Intel Core i5处理器和8GB内存的个人电脑。

2. 软件环境:我下载并安装了Linux实验系统的最新版本,该版本基于Ubuntu操作系统,并预装了一系列常用的开发工具和软件包。

三、实验内容1. 实验一:Linux基础命令的使用在这个实验中,我通过终端窗口使用了一些常用的Linux命令,如ls、cd、mkdir、rm等。

通过实际操作,我熟悉了Linux文件系统的结构和基本操作,掌握了如何在Linux中创建、删除和移动文件夹,以及如何查看文件和文件夹的属性。

2. 实验二:Shell脚本编程这个实验要求我们使用Shell脚本编写一个简单的程序,实现对指定文件夹中所有文件进行备份的功能。

通过这个实验,我学会了如何使用Shell编程语言,掌握了一些基本的语法和命令,比如if语句、for循环和cp命令。

我还学会了如何将Shell脚本保存为可执行文件,并在终端中运行。

3. 实验三:网络配置与管理这个实验主要涉及Linux系统的网络配置和管理。

我学会了如何配置网络接口,包括设置IP地址、子网掩码和网关。

我还学会了如何使用ping命令测试网络连接,以及如何使用ifconfig命令查看和管理网络接口的状态。

通过这个实验,我对Linux系统的网络配置有了更深入的了解。

四、实验收获通过使用Linux实验系统进行实验,我获得了以下收获:1. 对Linux操作系统有了更深入的了解:通过实际操作,我对Linux操作系统的基本原理和文件系统有了更深入的了解。

我学会了如何在Linux中进行文件和文件夹的管理,以及如何使用命令行界面进行各种操作。

linux实验报告总结-共10篇

linux实验报告总结-共10篇

∣inux实验报告总结(共10篇)(Linux实验报告汇总)(一)Shell 编程一、实验目的:1)掌握在Linux下的C编程基本方法。

2)掌握shell编程方法。

3)掌握dialog图形化编程方法。

二、实验内容1、编写能输出“Hello world!”问候语的C程序,并在终端中编译、执行。

要求记录所使用的命令及结果。

#include stdio.hmain()(printf(Hello world!\n);)2、编写一个C程序并设置其在后台执行,其功能是在一段时间后(可自行设置),在屏幕上显示信息:Time for play!,写出相应的程序、命令及结果。

#include stdio.hmain()(int time=0;printf(请输入等待时间(单位:s):);scanf(%d/&amp;time);sleep(time);printf(Time for play!\n);)3、编写C程序,求1到100之间整数的阶乘和,并对程序进行优化。

写出程序、命令和结果。

#include stdio.hmain()int i;double s = l,sum = 0;for( i= l;i= 100;i++)sum+=s*=i;printf( 1到100之间整数的阶乘和:%f\n,sum);printf( 1到100之间整数的阶乘和:%e\n,sum);}4、编写C程序,根据键盘输入的半径求圆面积,要求在命令行周率(P∣=3∙14,PI=3∙14159,PI=3.14159626 等)进行编使用不同的译,写出程序、命令和结果。

#include stdio.hint main()double r = 0.0 , Area = 0.0;printf(请输入半径:);scanf(%lf, &amp;r);Area = PI * r * r;printf(圆面积:%f∖n, Area);)5、编写shell程序sh.l,完成向用户输出“你好!”的问候语。

linux系统使用实验报告

linux系统使用实验报告

linux系统使用实验报告Linux 系统使用实验报告一、实验目的本次实验旨在深入了解和熟悉 Linux 操作系统的基本操作、命令行使用以及系统配置,掌握常见的文件管理、进程管理、用户权限管理等功能,提高对 Linux 系统的实际应用能力。

二、实验环境1、操作系统:Ubuntu 2004 LTS2、实验工具:终端模拟器(Terminal)三、实验内容与步骤(一)系统登录与基本命令1、启动计算机,选择 Ubuntu 操作系统,输入用户名和密码登录系统。

2、打开终端模拟器,熟悉常用的基本命令,如`ls` (列出当前目录下的文件和文件夹)、`cd` (切换目录)、`mkdir` (创建新目录)、`rmdir` (删除空目录)等。

(二)文件管理1、在用户主目录下创建一个名为`experiment` 的文件夹,使用`mkdir experiment` 命令。

2、进入该文件夹,使用`cd experiment` 命令。

3、在`experiment` 文件夹中创建一个文本文件`filetxt` ,使用`touch filetxt` 命令。

4、使用`vi` 或`nano` 编辑器打开`filetxt` 文件,输入一些文本内容,并保存退出。

5、查看文件的内容,使用`cat filetxt` 命令。

6、复制文件,使用`cp filetxt file_copytxt` 命令。

7、移动文件,使用`mv filetxt/`命令将文件移动到上级目录。

8、删除文件,使用`rm file_copytxt` 命令。

(三)进程管理1、运行一个后台进程,例如`ping &`,然后使用`jobs` 命令查看后台进程。

2、将后台进程切换到前台,使用`fg %1` (其中%1 为后台进程的编号)命令。

3、终止进程,使用`Ctrl + C` 组合键终止正在运行的进程。

4、查看系统当前运行的进程,使用`ps aux` 命令。

(四)用户权限管理1、创建一个新用户,使用`sudo adduser username` 命令,其中`username` 为新用户的用户名。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验 1.1、1.2 Linux Ubuntu的安装、创建新的虚拟机VMWare实验1.3 Shell编程1.实验目的与容通过本实验,了解Linux系统的shell机制,掌握简单的shell编程技巧。

编制简单的Shell程序,该程序在用户登录时自动执行,显示某些提示信息,如“Welcome to Linux”, 并在命令提示符中包含当前时间、当前目录和当前用户名等基本信息。

2.程序源代码清单#include<stdio.h>#include<sys/wait.h>int main(){printf("Hello Linux\n");int pid;int state;int pfd[2];pipe(pfd);if (fork()==0){printf("In the grep progress\n");dup2(pfd[0],0);close(pfd[0]);close(pfd[1]);execlp("grep","grep","sh",0);perror("exelp grep error");}esle if(fork()==0){printf("In the ps progress\n");dup2(pfd[1],1);close(pfd[0]);close(pfd[1]);execlp("ps","ps","-ef",0);perror("execlp ps -ef");}close(pfd[1]);close(pfd[0]);wait(&state);wait(&state);}实验2.3 核模块实验步骤:(1).编写核模块文件中主要包含init_clock(),exit_clock(),read_clock()三个函数。

其中init_clock(),exit_clock()负责将模块从系统中加载或卸载,以及增加或删除模块在/proc中的入口。

read_clock()负责产生/proc/clock被读时的动作。

(2).编译核模块Makefile文件# Makefile under 2.6.25ifneq ($(KERNELRELEASE),)#kbuild syntax. dependency relationshsip of files and target modules are listed here.obj-m := proc_clock.oelsePWD := $(shell pwd)KVER ?= $(shell uname -r)KDIR := /lib/modules/$(KVER)/buildall:$(MAKE) -C $(KDIR) M=$(PWD) modulesclean:rm -rf .*.cmd *.o *.mod.c *.ko .tmp_versions *.symvers *.orderendif编译完成之后生成proc_clock.ko模块文件。

(3).核模块源代码clock.c#include <linux/kernel.h>#include <linux/module.h>#include <linux/proc_fs.h>#include <linux/string.h>#include <linux/vmalloc.h>#include <asm/uaccess.h>#define MODULE#define MODULE_VERSION "1.0"#define MODULE_NAME "clock"struct proc_dir_entry* my_clock;int read_clock(char* page, char** start, off_t off, int count, int* eof, void* data) {int len;struct timeval xtime;do_gettimeofday(&xtime);len = sprintf(page, "%d %d\n", _sec, _usec);printk("clock: read_func()\n");return len;}struct proc_dir_entry *clock_proc_file;int init_clock(void){clock_proc_file =create_proc_read_entry("clock",0,NULL,read_clock,NULL); return 0;}void exit_clock(void){remove_proc_entry("clock",clock_proc_file);}module_init(init_clock)module_exit(exit_clock)MODULE_LICENSE("GPL");(4).编译核模块# make(5).加载核模块在系统root用户下运行用户态模块命令装载核模块# insmod proc_clock.ko(6).测试在终端中输入以下命令:#cat /proc/clock(7).卸载核模块在系统root用户下运行用户态模块命令卸载核模块#rmmod proc_clock.ko实验2.4 系统调用实验步骤:(1). 添加新调用的源代码在./linux-2.6.33.7/arch/x86/kernel/sys_i386_32.c中添加相应的调用代码asmlinkage int sys_xwlcall(struct timeval *tv){struct timeval ktv;do_gettimeofday(&ktv);copy_to_user(tv,&ktv,sizeof(ktv));printk(KERN_ALERT"PID %ld called sys_xwlcall()./n",(long)current->pid);return 0;}(2). 连接系统调用a、修改./linux-2.6.33.7/arch/x86/include/asm/unistd_32.h,在系统调用列表后面相应位置添加一行,这样在用户空间做系统调用时就不需要知道系统调用号了,如果在用户空间指明了调用号,就可以省略这一步,实际上我就没写:#define __NR_xwlcall338新增加的调用号位338b、修改./linux-2.6.33.7/arch/x86/kernel/syscall_table_32.S在ENTRY(sys_call_table)清单最后添加一行,这步至关重要,338就是这里来的:.long sys_xwlcall(3). 重建新的Linux核先安装好编译核必要的软件包:# sudo apt-get install build-essential kernel-package libncurses5-dev复制当前核的配置文件# cp /boot/config-`uname -r` ./.config保存配置文件# sudo make menuconfig使用debian的的核编译方法,要简单很多# sudo make-kpkg-initrd--initrd--append-to-version=xwlcall kernel_image kernel-headers运行以下deb包,安装核镜像和模块:linux-image-2.6.33.7xwlcall_2.6.33.7xwlcall-10.00.Custom_i386.deb运行以下deb包,安装核头文件:linux-headers-2.6.33.7xwlcall_2.6.33.7xwlcall-10.00.Custom_i386.deb运行以下命令,使核启动时能调用模块,比如硬件驱动:# sudo update-initramfs -c -k 2.6.33.7xwlcall此次编译的核采用ubuntu默认配置文件,通用性非常好,可以拷贝到大部分x86机器上安装。

安装后系统自动会修改grub启动选单。

4. 重建引导信息a、安装deb包就自动重建引导信息了,无须另行处理。

b、如果仍然不放心,可以运行# update-grub5.重新引导从新的核进入6. 修改系统调用表7. 测试实验3.3 Shell编程实验(进程管理实验)1、实验目的通过编写shell程序,了解子进程的创建和父进程与子进程间的协同,获得多进程程序的编程经验。

2、实验容1设计一个简单的shell解释程序,能实现基本的bsh功能。

3、实验原理将每一条命令分子段压入argv栈。

然后再子进程中调用execvp()来实现该命令的功能。

4、代码(源代码清单)#include <stdio.h>#include <string.h>#include <stdlib.h>#define BUFFERSIZE 256//最简单的shell,只是简单的执行命令调用,没有任何的其他功能int main(){char buf[BUFFERSIZE],*cmd,*argv[100];char inchar;int n,sv,buflength;int result;buflength = 0;for(;;) {printf("=> ");//处理过长的命令;inchar = getchar();//读取命令while (inchar != '\n' && buflength < BUFFERSIZE ){buf[buflength++] = inchar;inchar = getchar();}if (buflength > BUFFERSIZE){printf("Command too long,please enter again!\n");buflength = 0;continue;}elsebuf[buflength] = '\0';//解析命令行,分成一个个的标记//char *strtok(char *s,char *delim)//分解字符串为一组字符串。

相关文档
最新文档