文档库 最新最全的文档下载
当前位置:文档库 › linux试验-2015.1

linux试验-2015.1

linux试验-2015.1
linux试验-2015.1

一、实验一

内容:

1、熟悉linux的登录,linux窗口

学会使用自动补全输入命令,熟练掌握man 、ls、passwd、cp、who、uname、whereis等命令的用法。

2、完成Vimtutor教程,一到两遍

二、实验二

内容:

1、用vi完成一个简单的c语言程序,尽可能多的用vi中的各种命令。

2、学会用gcc编译,并执行该程序。

3、学会编写基本的makefile文件,使用makefile 和make工具做一个复杂一点的c语言程序(选做)

实验三

内容:

1、运行ls -l 命令,掌握输出各列的意义。

2、运行umask,了解掩码的设置。

3、熟悉目录的操作命令cd 、mkdir 、rmdir 等,删除文件的命令rm

4、用vi生成一个10行实验文件data1,内容自己定。将实验文件用sort命令排序,把结果输出到data1.sorted。用重定向完成

实验四

内容:

1、用root用户进入系统以后,建立一个普通帐号,并且设置密码。ctrl+d退出当前登录。

2、用普通用户进入系统。

3、在自己的主目录下面建立一个文件夹test,进入这个文件夹。

4、运行命令man tar > tar1.help,运行命令复制tar.help 到同一目录下面的tar2.help。分别用cat tac more less head tail查看tar2.help,比较这几个命令的区别。

运行man gzip >> tar2 ,比较> 和>> 的区别。

运行cat tar1.help tar2.help > tar3.help,然后运行命令比较tar1.help tar2.help tar3.help的大小,掌握合并多个文件的方法。

5、运行命令获得当前权限掩码,然后根据权限掩码算一下tar1的权限值(8进制)应该是多少,具体权限是什么?ls -l验证一下。

6、运行命令了解/usr/share/man/ 所占空间。把/usr/share/man/ 用tar打包,并且用gzip压缩;把/usr/share/man/ 用tar打包,并且用bzip2压缩。比较两者的压缩比。把两个压缩包分别解压到当前目录下面的man1 和man2 下面(提示,要先建目录)。

进入两个解压后的目录,了解目录结构。思考如果不把/usr/share目录结构带进压缩包应该如何处理。

(此项内容可以课后完成)

7、用su获得超级权限,用find命令找出/etc 下所有以.conf结尾的文件,并且把这些文件的绝对路径存入文件configbak中。

8、搜索configbak文件中和pass有关的行。

9、到/etc 打开rcN.d(N=0,1,2,...)中的任意一个目录,,目录中的文件是哪种文件类型?

10、运行whereis命令找到passwd的路径,共有几个passwd,运行ls -i命令了解它们的inode 值,判断它们的关系。(思考题:passwd的权限值是多少?)

11、为test目录下的tar3.help 文件建立一个硬链接tar4 ,一个软链接tar5,运行ls -l,总结tar4和tar5的不同点。掌握软链接和硬链接的使用。

12、找到正则表达式至少三份不同的资料,掌握正则表达式基本规则,了解正则表达式在vi,grep,.net,php,C,shell程序中的应用。

实验五

1、用ps了解Linux当前进程,说明选项:a、u、x、f的意义。

建立普通用户,用普通用户登录系统,说明普通用户运行的进程有几个,状态代号是什么,代表什么状态?

提示:得到普通用户运行的进程用ps aux|grep 当前用户的UID

或者你还有更好的方法。状态就是STA T列。

2、用ps auxf 和pstree 了解进程之间的关系,把两条命令输出的有父子关系的进程关系图画出来。

3、运行top命令,用h了解当前版本的linux的各项快捷键。

重点掌握使用u,F(注意大小写)

4、linux获得资源情况的命令很多,

free 了解内存资源情况

了解当前cpu信息:cat /proc/cpuinfo

了解硬件情况:lspci -v

实验上述命令,把得到的信息记录下来,重点了解得到的信息含义。

5、实验顺序执行和并行执行。

例如:date ; cal

date & cal

请大家自己设定两个命令进行顺序执行和并行执行的实验。

6、实验有条件执行。

当前目录下先运行mkdir test && man ps > ./test/ps.man

再运行mkdir test && man top > ./test/top.man

上述命令是否都运行完成,为什么?

再试试mkdir test || mkdir test1

列目录看看test1是否建立,重点了解|| 的含义。

7、实验kill进程

运行某个程序,用ps得到它的PID ,并用kill关闭它。

8、列出你当前运行的linux版本启动后运行的守护进程。

提示:看看目录/etc/rc2.d (ubuntu),/etc/rc3.d(redhat或者SUSE或者fc6)中的文件。

或者用ps查看进程。

用man命令了解这些守护进程的作用,记录下来。

实验六

内容:

1、对于ubuntu发行版,上网的设置:

1)/etc/network/interfaces作如下修改:

auto lo

iface lo inet loopback

# 以上配置lo

auto eth0 #配置第二块代号eth1

iface eth0 inet static #静态ip

address 192.168.0.101 #ip是。。

network 192.168.0.0 #网络

netmask 255.255.255.0 #网络掩码

broadcast 192.168.0.255 # 广播

gateway 192.168.0.1 #网关

2)加入dns修改/etc/resolv.conf

3)运行一下/etc/init.d/network restart

测试网络:学会使用ping命令测试网络

试验重点:掌握linux环境下直接修改配置文件配置网络的方法。

2、安装sshd服务。互相建立用户,用对方的主机试验rlogin,ssh,rsh等远程登陆命令。(可以在课后完成,参考资料:https://www.wendangku.net/doc/f617428174.html,/www/special/linux13.asp

参考资料2:https://www.wendangku.net/doc/f617428174.html,/tech/school/Linux/linux_doc/rec_ubuntu.asp)

在虚拟机上安装并运行sshd。

互相访问:用ssh -l 用户名ip地址

3、架设简单的ftp服务器(建议用vsftp),试验ftp命令和gftp软件,掌握ftp的使用。(在课后完成,参考资料1:https://www.wendangku.net/doc/f617428174.html,/main/?q=node/152

参考资料2:https://www.wendangku.net/doc/f617428174.html,/u/30752/showart_271518.html)

在虚拟机上安装vsftp。运行/etc/init.d/vsftp start可以启动ftp服务。

在windows下面打开浏览器,地址栏输入ftp://虚拟机的ip地址即可使用虚拟机提供的ftp 服务。

4、用一条命令显示当前系统中的登录用户数量,提示:计算行数用wc -l

用一条命令显示当前系统中的第一个登录的用户。提示,先用时间排序。

请分别到自己机器和https://www.wendangku.net/doc/f617428174.html,/远程主机上验证。

5、用一条命令把今天新建的文件或者目录全部找出来。把列表送到list1.test。

6、用vi生成一个10行实验文件data1,内容自己定。将实验文件用sort命令排序,把结果输出到data1.sorted。用重定向完成。

Linux网络设备驱动开发实验

实验三:Linux网络设备驱动开发实验 一、实验目的 读懂linux网络设备驱动程序例子,并且实际加载驱动程序,加载进操作系统以后,会随着上层应用程序的触发而执行相应动作,具体执行的动作可以通过代码进行改变。 ●读懂源码及makefile ●编译驱动程序 ●加载 ●多种形式触发动作 二、预备知识 熟悉linux驱动基本原理,能读懂简单的makefile。 三、实验预计时间 80-120分钟左右 四、驱动程序部分具体步骤 要求读懂一个最简单的驱动程序,在驱动程序的诸如“xxx_open”、“xxx_read”等标准接口里面加入打印语句。可参考多模式教学网上的驱动样例。 五、用于触发驱动动作的应用程序及命令 驱动程序就是以静态的标准接口库函数形式存在,网络设备驱动会受到两大类情况的触发,一种是linux里面的控制台里面的命令,另一种是套接口应用程序,首先要搞清都有哪些具体的命令和应用程序流程,应用程序参考多模式教学网的例子。 六、运行测试 提示:需要将驱动程序以dll加载进系统中,并且触发应用程序调用各种文件操作的接口函数,使得驱动有所动作,打印出相关信息。 1.编译驱动: cd /某某目录/vnetdev/ make clean make 2.加载驱动与打开网卡: insmod netdrv.ko

ifconfig vnet0 up 3.运行应用程序 ../raw 4.通过命令“修改网卡MTU”触发驱动执行动作: ifconfig vnet0 mtu 1222 5.显示内核打印: cat /var/log/messages 6.卸载: ifconfig vnet0 down rmmod netdrv.ko 7.修改代码中的某些函数中的打印信息,重新试验上述流程。 至此大家都应该真正理解和掌握了驱动程序-操作系统-应用程序的三者联动机制。 七、实验结果 由图可知能正常加载网卡驱动,并且能够打印调试信息。

LINUX实验报告

实验报告 ( 2014/ 2015 学年第一学期) 课程名称操作系统A 实验名称文件系统 实验时间2014 年12 月8 日指导单位计算机学院计算机科学与技术系 指导教师徐鹤 学生姓名王生荣班级学号B12040809 学院(系) 计算机学院专业软件工程

实验名称文件系统指导教师徐鹤 实验类型设计实验学时 2 实验时间2014.12.08 一、实验目的和要求 1. 学习LINUX系统下对文件进行操作的各种命令和图形化界面的使用方法。 2. 深入学习和掌握文件管理系统的基本原理和LINUX等操作系统下常用的系统调用,编写一个使用系统调用的例程。 3.实现一个文本文件的某信息的插入和删除 4.实现一个记录文件的某记录的插入和删除 二、实验环境(实验设备) Windows XP + VMWare + RedHat Linux 8

三、实验过程描述与结果分析 1. 目录/proc下与系统相关的文件和目录 (1) /proc/$pid/fd:这是一个目录,该进程($PID号码进程)每个打开的文件在该目录下有一个对应的文件。 例如:#ls /proc/851/fd 0 1 2 255 这表示,851号进程目前正在使用(已经打开的)文件有4个,它们的描述符分别是0、1、2、255。其中,0、1、2 依次分别是进程的标准输入、标准输出和标准错误输出设备。 (2)/proc/filesystems:该文件记录了可用的文件系统类型。 (3)/proc/mounts:该记录了当前被安装的文件系统信息 例如:#cat /proc/mount (4)/proc/$pid/maps:该文件记录了进程的映射内存区信息。 例如:#cat /proc/851/maps 2.常用命令讲解 ls 命令 用来查看用户有执行权限的任意目录中的文件列表,该命令有许多有趣的选项。例如: $ ls -liah * 22684 -rw-r--r-- 1 bluher users 952 Dec 28 18:43 .profile

实验一Linux基本操作实验报告

实验一 Linux基本操作 一.实验目的: 1. 二.实验环境: 虚拟机+Red Hat Enterprise Server 5.0 三.实验内容: 根据以下的文字提示,调用相应的命令来完成,记录相应的运行结果。一)用户和组基本操作 1.添加一个user01用户,家目录为/home/sub2,并设置密码 2.添加一个group1 组 3.将user01用户添加到group1组中 4.修改group1组名称为group2 5.修改user01的家目录为/home/user01 6.判断/etc/password这个目录是否包含user01这个用户 7.修改user01的shell为/bin/tcsh 8.添加一个group3组,把user01和root用户都添加到该组

https://www.wendangku.net/doc/f617428174.html,er01用户从group2组切换到group3组 10.设置user01的密码在2012-5-20过期 11.把/home/user01目录所属的组修改为group3 12.删除user01帐号 13.查看内核版本号 二)进程管理 1.运行cat命令:vi test,输入若干字符如this is a example,挂起vi进程 2.显示当前所有作业 3.将vi进程调度到前台运行

4.将vi进程调度到后台并分别用kill/pkill/killall命令结束该该进程。 三)磁盘管理 1.通过fdisk 将为硬盘增加一个分区(主分区或者逻辑分区)。 2.并格式化ext3系统,

3.检测分区是否有坏道 4.检测分区的完整性 5.加载分区到/mnt目录(或者其他分区)下,并拷贝一些文件到该目录下 6.(选做)为test用户设置磁盘配额(软限制和硬限制参数自行设定) 7.退出/mnt目录后卸载该分区 8.用du查看/usr目录的大小

Linux设备驱动程序举例

Linux设备驱动程序设计实例2007-03-03 23:09 Linux系统中,设备驱动程序是操作系统内核的重要组成部分,在与硬件设备之间 建立了标准的抽象接口。通过这个接口,用户可以像处理普通文件一样,对硬件设 备进行打开(open)、关闭(close)、读写(read/write)等操作。通过分析和设计设 备驱动程序,可以深入理解Linux系统和进行系统开发。本文通过一个简单的例子 来说明设备驱动程序的设计。 1、程序清单 //MyDev.c 2000年2月7日编写 #ifndef __KERNEL__ #define __KERNEL__//按内核模块编译 #endif #ifndef MODULE #define MODULE//设备驱动程序模块编译 #endif #define DEVICE_NAME "MyDev" #define OPENSPK 1 #define CLOSESPK 2 //必要的头文件 #include //同kernel.h,最基本的内核模块头文件 #include //同module.h,最基本的内核模块头文件 #include //这里包含了进行正确性检查的宏 #include //文件系统所必需的头文件 #include //这里包含了内核空间与用户空间进行数据交换时的函数宏 #include //I/O访问 int my_major=0; //主设备号 static int Device_Open=0; static char Message[]="This is from device driver"; char *Message_Ptr; int my_open(struct inode *inode, struct file *file) {//每当应用程序用open打开设备时,此函数被调用 printk ("\ndevice_open(%p,%p)\n", inode, file); if (Device_Open) return -EBUSY;//同时只能由一个应用程序打开 Device_Open++; MOD_INC_USE_COUNT;//设备打开期间禁止卸载 return 0; } static void my_release(struct inode *inode, struct file *file)

浙江大学Linux程序设计实验报告

Linux程序设计实验报告1 ——操作系统基本命令使用 一、实验目的 1.通过对Emacs、vi、vim、gedit文本编辑器的使用,掌握在Linux环境下文本文件的编辑方法; 2.通过对常用命令mkdir、cp、cd、ls、mv、chmod、rm等文件命令的操作,掌握Linux操作系统中文件命令的用法。 二、实验任务与要求 1.emacs的使用,要求能新建、编辑、保存一个文本文件 2.vi或vim的使用,要求能新建、编辑、保存一个文本文件 3.gedit的使用,要求能新建、编辑、保存一个文本文件 4.掌握mkdir、cd命令的操作,要求能建立目录、进入与退出目录 5.掌握cp、ls、mv、chmod、rm命令的操作,要求能拷贝文件、新建文件、查看文件、文件重命名、删除文件等操作。 三、实验工具与准备 计算机PC机,Linux Redhat Fedora Core6操作系统 四、实验步骤与操作指导 任务1.学习emacs的使用,要求能新建、编辑、保存一个文本文件 (1)启动emacs (2)输入以下C程序 (3)保存文件为kk.c (4)用emacs打开文件kk.c (5)修改程序 (6)另存为文件aa.txt并退出。 任务2.vi或vim的使用,要求能新建、编辑、保存一个文本文件 (1)点击”应用程序”→ “附件”→“终端”,打开终端,在终端输入命令: [root@localhost root]#vi kk.c 按i键,进入插入状态。 (2)输入以下C程序 #include int main( ) {

printf(“Hello world!\n”); return 0; } 此时可以用Backspace、→、←、↑、↓键编辑文本。 (3)保存文件为kk.c 按Esc键,进入最后行状态,在最后行状态输入:wq保存文件,退出vi。 (4)用vi打开文件kk.c,输入命令: [root@localhost root]#vi kk.c (5)修改程序为: #include int main( ) { printf(" Hello world!\n"); printf("*****************\n"); return 0; } (6)按Esc键,进入最后行状态,在最后行状态输入:wq aa.txt保存文件,如图1所示,另存为文件aa.txt并退出vi。。 图1 程序编辑环境 任务3.gedit的使用,要求能新建、编辑、保存一个文本文件 (1)启动gedit,点击”应用程序”→ “附件”→“文本编辑器”,打开文本编辑器,如图所示。

实验七 Linux基础实验

实验七Linux基础实验 一、实验目的 1、搭建Linux开发环境:包括安装虚拟机VMware,在虚拟机中安装Ubuntu,实现Ubuntu 和主系统Windows之间的文件相互访问。 2、熟练使用Linux常用命令 3、初步了解Makefle 能够解读3个Makefile例子中所有代码, 二、实验设备及工具 PC机 三、实验原理 1、搭建Linux开发环境

我们实验是在VMware上创建一个Linux虚拟机,并安装Ubutun操作系统。 2、Linux命令 ls显示文件或目录 -l 列出文件详细信息l(list) -a 列出当前目录下所有文件及目录,包括隐藏的a(all) mkdir 创建目录 -p 创建目录,若无父目录,则创建p(parent) cd 切换目录 cat 查看文件内容 cp 拷贝 mv 移动或重命名 rm 删除文件 -f :就是force 的意思,忽略不存在的文件,不会出现警告信息; -i :互动模式,在删除前会询问使用者是否动作 rmdir 删除空目录(目录内容没空,目录才能删除) pwd 显示当前路径 tar: 打包压缩 -c 归档文件 -x 压缩文件 -z gzip压缩文件 -j bzip2压缩文件 -v 显示压缩或解压缩过程v(view) -f 表示文件,后面跟着文件名 -C 临时改变工作目录,用于解压时指定解压目录 -P 表示压缩和解压时使用绝对路径 sudo chown [-R] owner[:group] {File|Directory} 文件权限管理 三种基本权限 R 读数值表示为4 W 写数值表示为2 X 可执行数值表示为1 -rw-rw-r–一共十个字符,分成四段。 第一个字符“-”表示普通文件;这个位置还可能会出现“l”链接;“d”表示目录 第二三四个字符“rw-”表示当前所属用户的权限。所以用数值表示为4+2=6 第五六七个字符“rw-”表示当前所属组的权限。所以用数值表示为4+2=6 第八九十个字符“r–”表示其他用户权限。所以用数值表示为2 所以操作此文件的权限用数值表示为662 更改权限 sudo chmod [u所属用户g所属组o其他用户a所有用户] [+增加权限-减少权限] [r w x] 目录名

一个简单的演示用的Linux字符设备驱动程序.

实现如下的功能: --字符设备驱动程序的结构及驱动程序需要实现的系统调用 --可以使用cat命令或者自编的readtest命令读出"设备"里的内容 --以8139网卡为例,演示了I/O端口和I/O内存的使用 本文中的大部分内容在Linux Device Driver这本书中都可以找到, 这本书是Linux驱动开发者的唯一圣经。 ================================================== ===== 先来看看整个驱动程序的入口,是char8139_init(这个函数 如果不指定MODULE_LICENSE("GPL", 在模块插入内核的 时候会出错,因为将非"GPL"的模块插入内核就沾污了内核的 "GPL"属性。 module_init(char8139_init; module_exit(char8139_exit; MODULE_LICENSE("GPL"; MODULE_AUTHOR("ypixunil"; MODULE_DESCRIPTION("Wierd char device driver for Realtek 8139 NIC"; 接着往下看char8139_init( static int __init char8139_init(void {

int result; PDBG("hello. init.\n"; /* register our char device */ result=register_chrdev(char8139_major, "char8139", &char8139_fops; if(result<0 { PDBG("Cannot allocate major device number!\n"; return result; } /* register_chrdev( will assign a major device number and return if it called * with "major" parameter set to 0 */ if(char8139_major == 0 char8139_major=result; /* allocate some kernel memory we need */ buffer=(unsigned char*(kmalloc(CHAR8139_BUFFER_SIZE, GFP_KERNEL; if(!buffer { PDBG("Cannot allocate memory!\n"; result= -ENOMEM;

2《Linux基础》实验报告 基本配置Linux

实验序号: 2 《Linux基础》 实验报告 实验名称:基本配置Linux操作系统 姓名: 学院:计算机学院 专业: 班级: 学号: 指导教师: 实验地址:N6-113 实验日期:2017.3.7

说明 一.排版要求 1.实验报告“文件名”按模板要求填写。 2.一级标题:顶格排版。汉字用宋体,阿拉伯数字用Times New Roman字 体,四号字体,加粗。 3.二级标题:顶格排版。汉字用宋体,阿拉伯数字用Times New Roman字 体,小四号字体,加粗。 4.三级标题:顶格排版。汉字用宋体,阿拉伯数字用Times New Roman字 体,五号字体。 5.正文:每段缩进量:2个汉字。两端对齐;汉字用宋体,阿拉伯数字用 Times New Roman字体,五号字体。 6.图形要求 (1)在正文中要有引用。 (2)要有图名,图名位于图的下方,汉字用宋体,阿拉伯数字用Times New Roman字体,五号字体。 (3)图和图名“居中”。 7.表格要求 (1)在正文中要有引用。 (2)要有表名,表名位于表的上方,汉字用宋体,阿拉伯数字用Times New Roman字体,五号字体。 (3)表和表名“居中”。 二.注意事项 1.复制、拷贝、抄袭者取消成绩。 2.没有安实验报告排版要求者不及格。

实验2基本配置Linux操作系统实验 【实验目的】 1.。。。。 2.。。。。 3.。。。。 4.思考: (1)Linux默认的系统超级管理员帐户是什么? (2)Linux的操作系统引导器是什么?它有哪几种的操作界面? (3)RHEL的支持哪几种X-Window图形管理器?默认是使用哪一种?(4)RHEL支持哪几种Shell?默认是使用哪一种? 【实验原理】 1.。。。 。。。 2.。。。 。。。 (1)。。。 。。。 (2)。。。 。。。 3.。。 【实验环境】 1.实验配置 本实验所需的软硬件配置如表1所示。 表1 实验配置 本实验的环境如图1所示。

(完整版)Linux基本命令(带参考答案)

实训项目2 Linux基本命令 一、实训目的 ●掌握Linux各类命令的使用方法; ●熟悉Linux操作环境。 二、实训内容 练习使用Linux常用命令,达到熟练应用的目的。 三、实训步骤 子项目1.文件和目录类命令的使用 (1)启动计算机,利用root用户登录到系统,进入字符提示界面。练习使用cd命令 (2)用pwd命令查看当前所在的目录。 pwd命令用于显示用户当前所在的目录。如果用户不知道自己当前所处的目录,就可以使用这个命令获得当前所在目录 (3)用ls命令列出此目录下的文件和目录。 然后,使用ls命令,并用-a选项列出此目录下包括隐藏文件在内的所有文件和目录。 最后,用man命令查看ls命令的使用手册。 补充说明浏览信息内容:(以下面图片为例) - rw- r-- r-- 1 root root 8 Feb 21 18:42 mybook 1 2 3 4 5 6 7 8 9 10 11 1属性:- 代表文件,l代表链接文件,d代表目录 2 所有者权限(文件权限):具有r 读w 写没有x 执行

3 同组用户权限(文件权限):只读r 4 其他人权限(文件权限):只读r 5 链接数:1 6 文件拥有者:root 7 文件所属组:root 8 文件大小:8字节 9 创建或修改日期:2月21日 10 创建或修改时间:18:42 11 文件或目录名称 (4)在当前目录下,创建测试目录test。利用ls或ll命令列出文件和目录,确认test 目录创建成功。然后进入test目录,利用pwd查看当前工作目录。 ?mkdir命令用于创建一个目录。 ?该命令的语法为:mkdir [参数] 目录名 ?常用参数–p:如果父目录不存在,则同时创建该目录及该目录的父目录。 (5)利用cp命令复制系统文件/etc/profile到当前目录下。 # cp /etc/profile . (6)复制文件profile到一个新文件profile.bak,作为备份。 # cp profile profile.bak (7)用ll命令以长格形式列出当前目录下的所有文件,注意比较每个文件的长度和创建时间的不同。 (8)用less命令分屏查看文件profile的内容,注意练习less命令的各个子命令,如b、p、q等,并对then关键字查找。 注意:可以通过less - -help 命令查看帮助 ?less命令是more命令的改进版,比more命令的功能强大。more命令只能向下翻页,而less命令可以向下、向上翻页,甚至可以前后左右的移动。 ?执行less命令后,进入了less状态,按【Enter】键可以向下移动一行,按【space】键可以向下移动一页;按【b】键可以向上移动一页;也可以用光标键向前、后、左、右移动;按【q】键可以退出less命令。

linux字符设备驱动课程设计报告

一、课程设计目的 Linux 系统的开源性使其在嵌入式系统的开发中得到了越来越广泛的应用,但其本身并没有对种类繁多的硬件设备都提供现成的驱动程序,特别是由于工程应用中的灵活性,其驱动程序更是难以统一,这时就需开发一套适合于自己产品的设备驱动。对用户而言,设备驱动程序隐藏了设备的具体细节,对各种不同设备提供了一致的接口,一般来说是把设备映射为一个特殊的设备文件,用户程序可以像对其它文件一样对此设备文件进行操作。 通过这次课程设计可以了解linux的模块机制,懂得如何加载模块和卸载模块,进一步熟悉模块的相关操作。加深对驱动程序定义和设计的了解,了解linux驱动的编写过程,提高自己的动手能力。 二、课程设计内容与要求 字符设备驱动程序 1、设计目的:掌握设备驱动程序的编写、编译和装载、卸载方法,了解设备文件的创建,并知道如何编写测试程序测试自己的驱动程序是否能够正常工作 2、设计要求: 1) 编写一个简单的字符设备驱动程序,该字符设备包括打开、读、写、I\O控制与释放五个基本操作。 2) 编写一个测试程序,测试字符设备驱动程序的正确性。 3) 要求在实验报告中列出Linux内核的版本与内核模块加载过程。 三、系统分析与设计 1、系统分析 系统调用是操作系统内核和应用程序之间的接口,设备驱动程序是操作系统内核和机器硬件之间的接口。设备驱动程序为应用程序屏蔽了硬件的细节,这样在应用程序看来,硬件设备只是一个设备文件,应用程序可以象操作普通文件一样对硬件设备进行操作。设备驱动程序是内核的一部分,它完成以下的功能: 1、对设备初始化和释放; 2、把数据从内核传送到硬件和从硬件读取数据; 3、读取应用程序传送给设备文件的数据和回送应用程序请求的数据; 4、检测和处理设备出现的错误。 字符设备提供给应用程序的是一个流控制接口,主要包括op e n、clo s e(或r ele as e)、r e ad、w r i t e、i o c t l、p o l l和m m a p等。在系统中添加一个字符设备驱动程序,实际上就是给上述操作添加对应的代码。对于字符设备和块设备,L i n u x内核对这些操作进行了统一的抽象,把它们定义在结构体fi le_operations中。 2、系统设计: 、模块设计:

linux操作系统实验报告要点

LINUX操作系统实验报告 姓名 班级学号 指导教师 2011 年05月16 日 实验一在LINUX下获取帮助、Shell实用功能 实验目的: 1、掌握字符界面下关机及重启的命令。 2、掌握LINUX下获取帮助信息的命令:man、help。 3、掌握LINUX中Shell的实用功能,命令行自动补全,命令历史记录,命令的排列、替

换与别名,管道及输入输出重定向。 实验内容: 1、使用shutdown命令设定在30分钟之后关闭计算机。 2、使用命令“cat /etc/cron.daliy”设置为别名named,然后再取消别名。 3、使用echo命令和输出重定向创建文本文件/root/nn,内容是hello,然后再使用追加重定向输入内容为word。 4、使用管道方式分页显示/var目录下的内容。 5、使用cat显示文件/etc/passwd和/etc/shadow,只有正确显示第一个文件时才显示第二个文件。 实验步骤及结果: 1.用shutdown命令安全关闭系统,先开机在图形界面中右击鼠标选中新建终端选项中输入 命令Shutdown -h 30 2、使用命令alias将/etc/cron.daliy文件设置为别名named,左边是要设置的名称右边是要更改的文件。查看目录下的内容,只要在终端输入命令即可。取消更改的名称用命令unalias 命令:在命令后输入要取消的名称,再输入名称。 3.输入命令将文件内容HELLO重定向创建文本文件/root/nn,然后用然后再使用追加重定向输入内容为word。步骤与输入内容HELLO一样,然后用命令显示文件的全部内容。 4.使用命令ls /etc显示/etc目录下的内容,命令是分页显示。“|”是管道符号,它可以将多个命令输出信息当作某个命令的输入。

实验一linux基础

课程内容简介 实验目的 通过这门实验课,应可以做到: 一、初步的掌握Linux的使用:界面、基本命令、文本编辑、启动关机以及基本的设置。 二、理解集成电路设计的基础概念与流程。 三、了解集成电路设计的一些工具和基本设计方法:电路仿真(Hspice)、电路图绘制(Cadence Composer)、版图绘制(Cadence Virtuoso)、版图设计验证(Cadence Draculer/ Mentor Calibre、)。如果时间允许,也可能增加硬件描述语言设计与验证(Cadence LDV)、自动综合(Synopsys Design Compiler)的内容。 四、可以相对独立的完成一个完整CMOS数字电路的设计 任课教师与上课地点: 教师:张志峰email zhangzf@https://www.wendangku.net/doc/f617428174.html, msn gipfel_z@https://www.wendangku.net/doc/f617428174.html, 上课地点:电信学院实验中心348室 有问题也可以与实验中心的陈捷老师联系。 实验内容安排及学时分配 序 号 实验项目名称实验学时实验类型 1 Linux使用与文本编辑2必做 2 版图设计基础——反相器:版图设计 基本几何图形和基本编辑命令实验、 视窗操作命令及快捷键的使用实验 4必做 3 电路图绘制基础 2必做 4 版图DRC验证——反相器 2必做5 电路仿真基础——H s p i c e/S p e c t r e, S p i c e E x p l o r e r使用 2必做6 电路设计与仿真—— 一位加法器、D触发器 2必做

7 版图设计——一位加法器、D触发器2必做 8 版图验证——DRC、LVS、ERC 2必做 9 版图后仿真2必做 10-a 16位加法器设计4选做 10-b 12位计数器设计4选做 10-c 硬件描述语言设计与自动综合4选做 课程基本要求与考核: 课程成绩评定的依据为考勤、每次实验完成情况与实验报告、期终考核三部分。 考勤:每次实验开始前首先在考勤表中签名登记,请注意不要代签,否则一经发现代签人和被代签人最终课程成绩均做降档处理(扣20分),旷课每次扣10分。有特殊情况无法按时上课的必须提前通知任课教师,或在当次课请其他同学代交请假条(口头代为请假无效),否则作旷课处理。缺课(请假、旷课)必须另外安排时间完成所缺席的实验内容。 试验完成情况考核:每次实验时任课教师随机抽查。 实验报告:按照电信学院实验中心的要求,在实验中心网站上下载实验报告书,每次实验课完成后,下次实验课上课之前,以电子文档的方式提交给任课老师。电子文档请发送至zhangzf@https://www.wendangku.net/doc/f617428174.html,,或在下次实验课当堂提交,邮件名称和电子文档名称均应为姓名_学号_实验序号。 期终考核:分为基本考核和综合实验考核两部分。综合实验考核——内容为学期末最后的综合实验完成情况,根据所提交的设计数据和设计报告评定期终考核部分的成绩,最高成绩为优。基本考核——对于无法独立完成综合实验内容的同学,可以选择完成基本考核。在期末最后一次实验时间,完成任课教师所规定的一个相对简单的考核内容,选择基本考核方式的同学最高成绩为良。 欢迎学有余力的同学报名担任助教,最终成绩评定时会适当加分。 基本设计环境简介:

linux驱动程序的编写

linux驱动程序的编写 一、实验目的 1.掌握linux驱动程序的编写方法 2.掌握驱动程序动态模块的调试方法 3.掌握驱动程序填加到内核的方法 二、实验内容 1. 学习linux驱动程序的编写流程 2. 学习驱动程序动态模块的调试方法 3. 学习驱动程序填加到内核的流程 三、实验设备 PentiumII以上的PC机,LINUX操作系统,EL-ARM860实验箱 四、linux的驱动程序的编写 嵌入式应用对成本和实时性比较敏感,而对linux的应用主要体现在对硬件的驱动程序的编写和上层应用程序的开发上。 嵌入式linux驱动程序的基本结构和标准Linux的结构基本一致,也支持模块化模式,所以,大部分驱动程序编成模块化形式,而且,要求可以在不同的体系结构上安装。linux是可以支持模块化模式的,但由于嵌入式应用是针对具体的应用,所以,一般不采用该模式,而是把驱动程序直接编译进内核之中。但是这种模式是调试驱动模块的极佳方法。 系统调用是操作系统内核和应用程序之间的接口,设备驱动程序是操作系统内核和机器硬件之间的接口。设备驱动程序为应用程序屏蔽了硬件的细节,这样在应用程序看来,硬件设备只是一个设备文件,应用程序可以像操作普通文件一样对硬件设备进行操作。同时,设备驱动程序是内核的一部分,它完成以下的功能:对设备初始化和释放;把数据从内核传送到硬件和从硬件读取数据;读取应用程序传送给设备文件的数据和回送应用程序请求的数据;检测和处理设备出现的错误。在linux操作系统下有字符设备和块设备,网络设备三类主要的设备文件类型。 字符设备和块设备的主要区别是:在对字符设备发出读写请求时,实际的硬件I/O一般就紧接着发生了;块设备利用一块系统内存作为缓冲区,当用户进程对设备请求满足用户要求时,就返回请求的数据。块设备是主要针对磁盘等慢速设备设计的,以免耗费过多的CPU时间来等待。 1 字符设备驱动结构 Linux字符设备驱动的关键数据结构是cdev和file_operations结构体。

linux实验报告

实验一 实验名称:Linux 基本命令的使用 实验时间:2学时 实验目的:熟练使用Linux字符界面、窗口系统的常用命令。 实验内容 (一)Linux操作基础 1.重新启动linux或关机(poweroff,shutdown,reboot,init 0,init 6) 2.显示系统信息(uname),显示系统日期与时间,查看2014年日历(date,cal) ①uname:查看系统与内核相关信息 uname -asrmpi 参数: -a :所有系统相关的信息; -s: 系统内核名称; -r: 内核的版本; -m:本系统的硬件名称,如i686或x86_64; -p: CPU的类型,与-m类似,只是显示的是CPU的类型; -i :硬件的平台(ix86). ②date:显示日期的命令 ③cal:显示日历 单独cal:列出当前月份的日历 cal 2014:列出2014年的日历 cal 5 2014:列出2014年五月的目录 3.使用帮助命令(man,help) ①man:是manual(操作说明)的简写,是在线帮助系统 man后跟某个命令就会详细说明此命令,例如:man man就会详细说明man 这个命令的用法; ②help:也是帮助命令,一般会在命令后,例如:cd --help 就会列出cd命令的使用说明。 4.查看当前登陆用户列表(who),显示当前用户(whoami) ①who:显示目前已登录在系统上面的用户信息; ②whoami:查询当前系统账户 5.建立一个新用户mytest,设定密码(useradd,passwd) ①useradd mytest(建立新用户mytest);

Linux文件系统实验报告

黄冈师学院 提高型实验报告 实验课题文件系统的设计与实现(实验类型:□综合性 设计性□应用性) 实验课程操作系统原理 实验时间2015-2016 第二学期 学生何正发 专业班级软件工程1401 学号07

成绩: 一、实验目的和要求 1、熟悉操作系统设计的过程,巩固操作系统的基本知识,加深对操作原理、功能及各种不同的存储管理方法理解与应用; 2、学会运用各种语言、软件开发新软件的基本方法; 3、增强实际应用能力和动手操作能力。 二、实验条件 Win7 /Windows 8.1/Linux等操作系统,装有java、C、C++、C#等语言工具的环境。 三、实验原理分析 可以选择最佳适应算法,按照从小到大的次序组成空闲区自由链,当用户作业或进程申请一个空闲区时,存储管理 程序从表头开始查找,当找到第一个満足要求的空闲区时,停止查找。如果该空闲区大于请求表中的请求长 度,将减去请求长度后的剩余空闲区部分留在可用表中。回收时,从作链中删去要回收的作业块,同时在空 闲链中插入该作业大小的空闲区,并按顺序排列 四、实验方案或步骤 1、应用环境、需求分析 本模拟系统主要针对文件的管理和操作名主要有:创建用户、文件、文件夹,读文件,写文件,执行文件,关闭文件,删除用户、文件夹、文件的功能。 创建用户、文件、文件夹:在对系统发出操作命令之前必须先登录用户,然而登录之前必须创建该用户。在创建完后,可通过登录用户来创建文件和文件夹。在创建文件时可设置文件的属性和输入文件的容。 读文件:读取任何已创建的只读或读写文件的容;如果所要读的文件不是可读文件时,系统会显示该文件不可读;如果所读文件不存在,系统会显示文件不存在。 写文件用户可写或重写读写文件中的容,并保存文件中的重写容,以供下次读取;当所要写的文件不是可写的文件时,系统会显示该文件不可写;当所要写的文件并不存在时,系统会显示该文件不存在。

实验一Linux操作系统基础

实验一 1 实验名称:Linux操作系统基础 2 实验目标 2.1 掌握安装Linux操作系统的方法。 2.2 掌握Linux操作系统的基本配置。 2.3 了解GNOME桌面环境。 2.4灵活掌握基本shell命令的使用。 3 实验准备 3.1 下载VMware Workstation虚拟机软件(版本不限)。 3.2 准备Linux操作系统的安装源(内核版本和发行版本均不限)。 注:实验准备、实验内容4.1和4.2作为回家作业布置,同学们利用课余时间完成。 4 实验要求、步骤及结果 4.1 安装虚拟机软件。 【操作要求】安装VMware Workstation虚拟机软件,版本不限,并填写以下内容。 4.1.1安装VMware Workstation虚拟机软件的环境(操作系统) 4.1.2VMware Workstation虚拟机版本号

4.2 安装Linux操作系统。 【操作要求】在VMware虚拟机下安装Linux操作系统,版本不限,并填写以下内容。 4.2.1 Linux发行版本: 4.2.2 Linux内核版本: 4.2.3Linux操作系统的主要配置参数

4.3 了解Linux操作系统的桌面环境之一GNOME。 【操作要求1】打开图形化用户界面、查看桌面图标,查看主菜单,查看个人用户主目录等使用环境。 【操作要求2】启动字符终端2,了解命令提示行含义。 Alt+F2+Ctrl

[用户名@主机名目录名]提示符 【操作要求3】注销字符终端2 【操作要求4】关闭图形化用户界面,关闭Linux操作系统。 4.4 掌握基本shell命令的使用。 注:以下需要截取shell命令与结果,没有结果截到下一命令提示行。 【操作要求1】用超级用户登陆;将主机名改为具有个人学号后3位特征的名称,退出虚拟终端后重新登录;查看当前目录的绝对路径。 【操作步骤-登陆】 【操作步骤-修改主机名】 【操作步骤-查看结果】 【操作要求2】查看ls命令的手册页帮助信息;了解其中-d选项的作用,并举例说明。 【操作步骤】 【主要显示结果1-ls命令-d选项】

一个简单字符设备驱动实例

如何编写Linux设备驱动程序 Linux是Unix操作系统的一种变种,在Linux下编写驱动程序的原理和思想完全类似于其他的Unix系统,但它dos或window环境下的驱动程序有很大的区别。在Linux环境下设计驱动程序,思想简洁,操作方便,功能也很强大,但是支持函数少,只能依赖kernel中的函数,有些常用的操作要自己来编写,而且调试也不方便。本文是在编写一块多媒体卡编制的驱动程序后的总结,获得了一些经验,愿与Linux fans共享,有不当之处,请予指正。 以下的一些文字主要来源于khg,johnsonm的Write linux device driver,Brennan's Guide to Inline Assembly,The Linux A-Z,还有清华BBS上的有关device driver的一些资料. 这些资料有的已经过时,有的还有一些错误,我依据自己的试验结果进行了修正. 一、Linux device driver 的概念 系统调用是操作系统内核和应用程序之间的接口,设备驱动程序是操作系统内核和机器硬件之间的接口。设备驱动程序为应用程序屏蔽了硬件的细节,这样在应用程序看来,硬件设备只是一个设备文件,应用程序可以象操作普通文件一样对硬件设备进行操作。设备驱动程序是内核的一部分,它完成以下的功能: 1)对设备初始化和释放; 2)把数据从内核传送到硬件和从硬件读取数据; 3)读取应用程序传送给设备文件的数据和回送应用程序请求的数据; 4)检测和处理设备出现的错误。 在Linux操作系统下有两类主要的设备文件类型,一种是字符设备,另一种是块设备。字符设备和块设备的主要区别是:在对字符设备发出读/写请求时,实际的硬件I/O一般就紧接着发生了,块设备则不然,它利用一块系统内存作缓冲区,当用户进程对设备请求能满足用户的要求,就返回请求的数据,如果不能,就调用请求函数来进行实际的I/O操作。块设备是主要针对磁盘等慢速设备设计的,以免耗费过多的CPU时间来等待. 已经提到,用户进程是通过设备文件来与实际的硬件打交道。每个设备文件都都有其文件属性(c/b),表示是字符设备还是块设备。另外每个文件都有两个设备号,第一个是主设备号,标识驱动程序,第二个是从设备号,标识使用同一个设备驱动程序的不同的硬件设备,比如有两个软盘,就可以用从设备号来区分他们。设备文件的主设备号必须与设备驱动程序在登记时申请的主设备号一致,否则用户进程将无法访问到驱动程序. 最后必须提到的是,在用户进程调用驱动程序时,系统进入核心态,这时不再是抢先式调度。也就是说,系统必须在你的驱动程序的子函数返回后才能进行其他的工作。如果你的驱动程序陷入死循环,不幸的是你只有重新启动机器了,然后就是漫长的fsck。 二、实例剖析 我们来写一个最简单的字符设备驱动程序。虽然它什么也不做,但是通过它可以了解Linux的设备驱动程序的工作原理.把下面的C代码输入机器,你就会获得一个真正的设备

Linux常用命令实验报告

实验二 姓名:陈辉龙学号:201407010201 班级:14计科(1)一.实验目的: 掌握Linux常见命令,为今后的实验打下良好的基础。 二.实验内容 1.新建用户为chenhuilong,配置密码为passwd: 2.切换到chenhuilong用户,并在/home/chenhuilong目录下新建文件夹dir: 3.在文件夹dir下新建文件hello(内容为"printf hello world!"),并将其拷贝至/home/user目录: 4.统计/home/user目录下文件的个数,包括子目录里的首字符为-的普通文件:

5.统计/home下目录的个数,包括子目录里的目录: 6.显示/home/user目录下名为hello的文件的行数、字数以及字符数(使用输入重定向): 7.将上步的结果输出重定向到名为cnt_hello的文件: 8.删除/home/user目录下的hello文件: 9.进入/home/user/dir文件夹,将hello文件属性变为-rwxrw-r--(使用符号标记方式),并为hello文件在/home/user目录下建立软链接,链接文件名为link_hello:

10.查看/home/user/dir/hello文件的详细信息: 11.切换至根目录下查找hello文件: 12.打包home/user/dir/hello文件,并进行压缩,然后再进行解压缩解包: 13.退出user用户,删除/home/user文件夹:

14.将文件夹/home的所有者改为user用户,并删除user用户: 三.实验总结: 本实验旨在熟悉Unix的常用命令,实验较简单,操作起来还算顺利,做了一遍感觉还不是很熟悉,因此做了两遍,第二遍就很得心顺手。通过这次实验,熟悉了一些常用的命令操作,为以后的学习打下坚实的基础,提高自己的动手能力。

实验一Linux基础

实验一Linux基础 一、实验目的 1.通过对Emacs、vi、vim、gedit文本编辑器的使用,掌握在Linux环境下文本文件的编辑方法; 2.通过对常用命令mkdir、cp、cd、ls、mv、chmod、rm等文件命令的操作,掌握Linux 操作系统中文件命令的用法。 二、实验目标与要求 1.emacs的使用,要求能新建、编辑、保存一个文本文件 2.vi或vim的使用,要求能新建、编辑、保存一个文本文件 3.gedit的使用,要求能新建、编辑、保存一个文本文件 4.掌握mkdir、cd命令的操作,要求能建立目录、进入与退出目录 5.掌握cp、ls、mv、chmod、rm命令的操作,要求能拷贝文件、新建文件、查看文件、文件重命名、删除文件等操作。 三、实验工具与准备 计算机PC机,Linux Redhat 9.0或者其他的linux操作系统 预备知识 文本编辑器Emacs、gedit是一款图形化的编辑器,具体的使用方法按照菜单操作。文本编辑器vi有三种状态:命令状态、最后行状态、编辑状态。 mv:用来为文件或目录改名,或者将文件由一个目录移入另一个目录中,它的使用权限是所有用户。 rm:删除文件或目录,应注意:参数-r指示rm将参数中列出的全部目录和子目录均递归删除,在使用rm命令要小心,因为一旦被删除,它是不能恢复的。 cp:将一个文件拷贝至另一文件,或将数个文件拷贝以及至另一目录。 chmod:用于改变文件或目录的访问权限,它的使用格式为: chmod [who] [+|-|=] [mode] 文件名 who可取u、g、o、a,或它们的组合 mode可取r、w、x、-等。

linux应用程序开发实验报告3

实验报告 学生姓名:白迪学生学号:222014********* 日期:2016年11月15日与11月29日 院(系):计算机与信息科学学院软件学院专业(班级):网络工程实验题目:终端驱动属性编程及利用属性特性的应用程序编程 一. 实验目的 掌握终端驱动属性的特殊功能,掌握终端驱动属性的显示与修改方法编程,掌握利用终端驱动属性的特属性编写需要特殊功能的应用程序技巧。 二. 实验原理 三. 实验器材 安装有Windows操作系统PC机一台,实验环境为LINUX虚拟机(包含gcc 与gdb). 四. 实验分析与设计 补全终端设备属性位与控制字符的信息输出: Main函数

Flags的补充 显示flags函数

Setecho函数,设置echo的状态位Echostate函数。显示echo状态 Setecho函数

忽略特殊的一些按键,CTRL+C、CTRL+\,不能一直阻塞等待键盘输入,设置等待一定的时间的非阻塞。 预处理 Main函数 Tty—mode set_nodelay_mode()//没阻塞 set_nobuf_noecho_mode()//没回显,没缓冲

Getresponse() 中断处理函数 五. 实验结果 属性位与控制字符的信息输出

stty控制字符的修改功能,setecho 忽略特殊的一些按键,CTRL+C、CTRL+\,不能一直阻塞等待键盘输入,设置等待一定的时间的非阻塞。当按下的键不是y或者n就显示f。 六. 实验心得 通过本次试验中对终端文件更加的了解了,还学会了对中断文件的一些基本的设置,前面的实验做起来就是一些验证比较简单,但是收获很大,最后一个做的时候先看过书后,自己编写的,调试过程中总是出错,做到最后跟书上的代码比较发现自己的代码跟书上比差了好远,修改了很多,自己用的是Redhat5,cc—

相关文档