搜档网
当前位置:搜档网 › Linux课程设计详解

Linux课程设计详解

Linux课程设计详解
Linux课程设计详解

摘要

Linux是一款免费的操作系统,用户可以通过网络或其他途径免费获得,并可以任意修改其源代码。这是其他的操作系统所做不到的。正是由于这一点,来自全世界的无数程序员参与了Linux的修改、编写工作,程序员可以根据自己的兴趣和灵感对其进行改变,这让Linux 吸收了无数程序员的精华,不断壮大。

Linux的基本思想有两点:第一,一切都是文件;第二,每个软件都有确定的用途。其中第一条详细来讲就是系统中的所有都归结为一个文件,包括命令、硬件和软件设备、操作系统、进程等等对于操作系统内核而言,都被视为拥有各自特性或类型的文件。

这次的课程设计为了熟悉以下内容Linux 基本网络命令,配置网络文件,建立个人账户,配置samba服务器,配置vsFTp服务器,shell编程。

关键词:Linux 基本网络命令配置网络文件建立个人账户配置samba服务器配置vsFTp服务器 shell编程

Linux课程设计

目录

1. 绪论 (1)

1. 1引言 (1)

2. 操作系统特性 (1)

2.1 linux的主要特性 (1)

2.2 UNIX的主要特点 (2)

3.系统设计 (3)

3.1设计的目的与意义 (3)

3.2课程设计的目标 (3)

3.3课程设计的要求 (3)

4 .课程设计的具体内容 (4)

4.1 基本网络命令及使用方法 (4)

4.2 telnet建立多账户测试 (8)

4.3 配置samba服务器,实现不同系统之间的文件共享 (10)

4.4 配置vsFTP服务器 (11)

4.5 简单shell编程 (14)

总结 (17)

参考文献 (18)

1.绪论

1. 1引言

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux 版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。Linux是一个领先的操作系统,世界上运算最快的10台超级计算机运行的都是Linux操作系统。严格来讲,Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和数据库的操作系统。Linux得名于天才程序员林纳斯?托瓦兹。

Linux操作系统是UNIX操作系统的一种克隆系统,它诞生于1991 年的10 月5 日(这是第一次正式向外公布的时间)。以后借助于Internet网络,并通过全世界各地计算机爱好者的共同努力,已成为今天世界上使用最多的一种UNIX 类操作系统,并且使用人数还在迅猛增长。

Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX 和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。它主要用于基于Intel x86系列CPU的计算机上。这个系统是由全世界各地的成千上万的程序员设计和实现的。其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的Unix兼容产品。

2. 操作系统特性

2.1 linux的主要特性

(1)基本思想

Linux的基本思想有两点:第一,一切都是文件;第二,每个软件都有确定的用途。其中第一条详细来讲就是系统中的所有都归结为一个文件,包括命令、硬件和软件设备、操作系统、进程等等对于操作系统内核而言,都被视为拥有各自特性或类型的文件。至于说Linux是基于Unix的,很大程度上也是因为这两者的基本思想十分相近。

(2)发展领域

职业领域:系统应用类(网管\系统管理和维护人员\安全管理人员中低端行业领域)待遇属于中下。

系统开发类行业(JAVA软件开发\C语言软件开发\WEB开发\嵌入式软件开发)其中嵌入式软件开发是linux应用最广的领域待遇属于中等发展方向:UNIX往高端领域和产业发展,例如:AIX、HP-UX、Solaris 等等。

(3)完全免费

Linux是一款免费的操作系统,用户可以通过网络或其他途径免费获得,并可以任意修改其源代码。这是其他的操作系统所做不到的。正是由于这一点,来自全世界的无数程序员参与了Linux的修改、编写工作,程序员可以根据自己的兴趣和灵感对其进行改变,这让Linux吸收了无数程序员的精华,不断壮大。

(4)完全兼容POSIX 1.0标准

这使得可以在Linux下通过相应的模拟器运行常见的DOS、Windows的程序。这为用户从Windows转到Linux奠定了基础。许多用户在考虑使用Linux时,就想到以前在Windows下常见的程序是否能正常运行,这一点就消除了他们的疑虑。

(5)多用户、多任务

Linux支持多用户,各个用户对于自己的文件设备有自己特殊的权利,保证了各用户之间互不影响。多任务则是现在电脑最主要的一个特点,Linux可以使多个程序同时并独立地运行。

(6)良好的界面

Linux同时具有字符界面和图形界面。在字符界面用户可以通过键盘输入相应的指令来进行操作。它同时也提供了类似Windows图形界面的X-Window系统,用户可以使用鼠标对其进行操作。在X-Window环境中就和在Windows中相似,可以说是一个Linux版的Windows。

(7)支持多种平台

Linux可以运行在多种硬件平台上,如具有x86、680x0、SPARC、Alpha等处理器的平台。此外Linux还是一种嵌入式操作系统,可以运行在掌上电脑、机顶盒或游戏机上。2001年1月份发布的Linux 2.4版内核已经能够完全支持Intel 64位芯片架构。同时Linux也支持多处理器技术。多个处理器同时工作,使系统性能大大提高。

2.2 UNIX的主要特点

(1)模块化程度高

Linux的内核设计非常精巧,分成进程调度、内存管理、进程间通信、虚拟文件系统和网络接口五大部分;其独特的模块机制可根据用户的需要,实时地将某些模块插入或从内核中移走,使得Linux系统内核可以裁剪得非常小巧,很适合于嵌入式系统的需要.

(2)源码公开

由于Linux系统的开发从一开始就与GNU项目紧密地结合起来,所以它的大多数组成部分都直接来自GNU项目。任何人、任何组织只要遵守GPL条款,就可以自由使用Linux 源代码。

(3)广泛的硬件支持

Linux能支持x86、ARM、MIPS、ALPHA和PowerPC等多种体系结构的微处理器。

(4)安全性及可靠性好内核高效稳定

Linux内核的高效和稳定已在各个领域内得到了大量事实的验证。Linux中大量网络管理、网络服务等方面的功能,可使用户很方便地建立高效稳定的防火墙、路由器、工作站、服务器等。为提高安全性,它还提供了大量的网络管理软件、网络分析软件和网络安全软件等。

(5)具有优秀的开发工具

开发嵌入式系统的关键是需要有一套完善的开发和调试工具。传统的嵌入式开发调试工具是在线仿真器(In Circuit Emulator,ICE),它通过取代目标板的微处理器,给目标程序提供一个完整的仿真环境,从而使开发者能非常清楚地了解到程序在目标板上的工作状态,便于监视和调试程序。在线仿真器的价格非

常高,而且只适合做非常底层的调试。如果使用的是嵌人式Linux,一旦软硬件能支持正常的串口功能,即使不用在线仿真器,也可以很好地进行开发和调试工作,从而节省了一笔不小的开发费用。嵌入式Linux为开发者提供了一套完整的工具链(Tool Chain),能够很方便地实现从操作系统到应用软件各个级别的调试。

由于UNIX系统对各种数据库,特别是关系型数据库管理系统提供了强大的支持能力,因此主要的数据库厂家,包括Oracle,Informix,Sybase,Progress 等都将UNIX作为优选的运行平台,而且创造出极高的性能价格比。

3.系统设计

3.1设计的目的与意义

(1)Linux操作系统具有较好的可移植性、良好地编程环境和强大的网络工。程,作为计算机专业的学生,Linux是一门非常重要的必修课,(2)通过这课程设计能够全面了解Linux的基本命令和基本操作,而且通过上机操作提高自己的编程能力、程序调试能力和应用能力。

(3)本次Linux课程设计的目的就在于通过一次实践性的活动加深对这门课程的理解,使我们在感性的认识上进一步升华为理性的认识。为后继课程的学习打下坚实的基础。

(4)通过这次课程设计能够检测自己在这门课程上学习的好坏,这是这次课程设计的意义所在。

3.2课程设计的目标

(1)熟悉基本的网络命令以及他们的使用方法,例如ping、ifconfig、netstat等网络命令。

(2)熟悉网络配置文件的配置方法。

(3)体会Linux多用户的特点,利用telnet进行。每个人建立个自己的帐户进行测试。

(4)配置samba服务器,实现不同系统之间的文件共享。

(5)配置vsFTP服务器

(6)简单shell编程。

3.3课程设计的要求

(1)通过这次实习掌握网络命令的使用方法。

(2)掌握网络配置文件的配置方法。

(3)学会配置Samba和FTP服务器。

(4)掌握shell编程的基本知识。

4 .课程设计的具体内容

4.1 基本网络命令及使用方法

(1)ping命令

功能说明:检测主机。

语法:

ping [-dfnqrRv] [-c<完成次数>] [-i<间隔秒数>] [-I<网络界面>] [-l<前置载入>] [-p<范本样式>] [-s<数据包大小>] [-t<存活数值>] [主机名称或IP地址]

标准用法:ping(-选项)主机名称或IP地址

补充说明:执行ping指令会使用ICMP传输协议,发出要求回应的信息,若远端主机的网络功能没有问题,就会回应该信息,因而得知该主机运作正常。

参数:

-d 使用Socket的SO_DEBUG功能。

-c <完成次数> 设置完成要求回应的次数。

-f 极限检测。

-i <间隔秒数> 指定收发信息的间隔时间。

-I <网络界面> 使用指定的网络界面送出数据包。

-l <前置载入> 设置在送出要求信息之前,先行发出的数据包。

-n 只输出数值。

-p <范本样式> 设置填满数据包的范本样式。

-q 不显示指令执行过程,开头和结尾的相关信息除外。

-r 忽略普通的Routing Table,直接将数据包送到远端主机上。

-R 记录路由过程。

-s <数据包大小> 设置数据包的大小。

-t <存活数值> 设置存活数值TTL的大小。

-v 详细显示指令的执行过程。

Ping命令执行结果如下图:

(2)ifconfig命令

语法:

ifconfig [网络设备] [down up -allmulti -arp -promisc] [add<地址>] [del<地址>] [<硬件地址>] [media<网络媒介类型>] [mem_start<内存地址>] [metric<数目>] [mtu<字节>] [netmask<子网掩码>] [tunnel<地址>] [-broadcast<地址>] [-pointopoint<地址>]

补充说明:ifconfig可设置网络设备的状态,或是显示当前的设置。

参数:

[网络设备] 网络设备的名称。

Down 关闭指定的网络设备。

up 启动指定的网络设备。

-arp 打开或关闭指定接口上使用的ARP协议。前面加上一个负号用于关闭该选项。

-allmuti 关闭或启动指定接口的无区别模式。前面加上一个负号用于关闭该选项。

-promisc 关闭或启动指定网络设备的promiscuous模式。前面加上一个负号用于关闭该选项。

Add <地址> 设置网络设备IPv6的IP地址。

Del <地址> 删除网络设备IPv6的IP地址。

Media <网络媒介类型> 设置网络设备的媒介类型。

mem_start <内存地址> 设置网络设备在主内存所占用的起始地址。

Metric <数目> 指定在计算数据包的转送次数时,所要加上的数目。

Mtu <字节> 设置网络设备的MTU。

Netmask <子网掩码> 设置网络设备的子网掩码。

Tunnel <地址> 建立IPv4与IPv6之间的隧道通信地址。

-broadcast <地址> 将要送往指定地址的数据包当成广播数据包来处理。

-pointopoint<地址> 与指定地址的网络设备建立直接连线,此模式具有保密功能。

Ifconfig命令执行结果如下:

(3)netstat命令

功能说明:显示网络状态。

语法:

netstat [-acCeFghilMnNoprstuvVwx][-A<网络类型>][--ip]

补充说明:利用netstat指令可让你得知整个Linux系统的网络情况。

参数:

-a或--all 显示所有连线中的Socket。

-A <网络类型>或--<网络类型> 列出该网络类型连线中的相关地址。

-c或--continuous 持续列出网络状态。

-C或--cache 显示路由器配置的快取信息。

-e或--extend 显示网络其他相关信息。

-F或--fib 显示FIB。

-g或--groups 显示多重广播功能群组组员名单。

-h或--help 在线帮助。

-i或--interfaces 显示网络界面信息表单。

-l或--listening 显示监控中的服务器的Socket。

-M或--masquerade 显示伪装的网络连线。

-n或--numeric 直接使用IP地址,而不通过域名服务器。

-N或--netlink或--symbolic 显示网络硬件外围设备的符号连接名称。 -o或--timers 显示计时器。

-p或--programs 显示正在使用Socket的程序识别码和程序名称。 -r或--route 显示Routing Table。

-s或--statistice 显示网络工作信息统计表。

-t或--tcp 显示TCP传输协议的连线状况。

-u或--udp 显示UDP传输协议的连线状况。

-v或--verbose 显示指令执行过程。

-V或--version 显示版本信息。

-w或--raw 显示RAW传输协议的连线状况。

-x或--unix 此参数的效果和指定"-A unix"参数相同。

--ip或--inet 此参数的效果和指定"-A inet"参数相同。

netstat命令执行结果如下图所示:

4.2 telnet 建立多账户测试

功能说明:远端登入。

语法:

telnet [-8acdEfFKLrx][-b<主机别名>][-e<脱离字符>][-k<域名>][-l<用户名称>][-n<记录文件>][-S<服务类型>][-X<认证形态>][主机名称或IP 地址<通信端口>]

补充说明:执行telnet 指令开启终端机阶段作业,并登入远端主机。

参数:

-8 允许使用8位字符资料,包括输入与输出。

-a 尝试自动登入远端系统。

-b <主机别名> 使用别名指定远端主机名称。

-c 不读取用户专属目录里的.telnetrc文件。

-d 启动排错模式。

-e <脱离字符> 设置脱离字符。

-E 滤除脱离字符。

-f 此参数的效果和指定"-F"参数相同。

-F 使用Kerberos V5认证时,加上此参数可把本地主机的认证数据上传到远端主机。

-k <域名> 使用Kerberos认证时,加上此参数让远端主机采用指定的领域名,而非该主机的域名。

-K 不自动登入远端主机。

-l <用户名称> 指定要登入远端主机的用户名称。

-L 允许输出8位字符资料。

-n <记录文件> 指定文件记录相关信息。

-r 使用类似rlogin指令的用户界面。

-S <服务类型> 设置telnet连线所需的IP TOS信息。

-x 假设主机有支持数据加密的功能,就使用它。

-X <认证形态> 关闭指定的认证形态。

4.3 配置samba服务器,实现不同系统之间的文件共享

Samba是一整套的UNIX程序(包括Linux),它可以理解SMB,即Server Message Block协议。Windows系列和OS/2操作系统都是使用SMB协议来在不同的计算机之间相互通信的。通过在UNIX上安装Samba,就使得UNIX可以同Windows系列计算机之间相互通信,并可以使UNIX机器模拟成Windows机器。这样,安装了Samba的Linux机器就可以模拟Window NT的功能,它并能提供几乎全部的Windows NT功能。

实现不同系统之间的文件共享,步骤如下图所示:

4.4 配置vsFTP服务器

在众多的网络应用中,FTP(File Transfer porotocol)有着非常重要的地位。在Internet中一个十分重要的资源就是软件资源。而各种各样的软件资源大多数都是放在FTP服务器中的。可以说,FTP与WEB服务几乎占据了整个Internet应用的80%以上。

FTP服务可以根据服务对象的不同分为两类:一类是系统FTP服务器,它只允许系统上的合法用户使用;另一类是匿名FTP服务器,Anonymous FTP Server,它使用任何人都可以登录到FTP服务器上去获取文件。

标准用法:ftp -v -d -i -n -g[主机名]

-v 显示远程服务器的所有响应信息。

-d 使用调试方式。

-i 关闭互动模式不许问任何问题。

-n 限制ftp的自动登录,即不使用.netrc文件。

-g 取消全局文件名。

(1)配置参数

(2)重启配置vsFTp

(3)查询配置的vsftp

4.5 简单shell编程

Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行。

实际上Shell是一个命令解释器,它解释由用户输入的命令并且把它们送到内核。不仅如此,Shell有自己的编程语言用于对命令的编辑,它允许用户编写由shell命令组成的程序。Shell编程语言具有普通编程语言的很多特点,比如

它也有循环结构和分支控制结构等,用这种编程语言编写的Shell程序与其他应用程序具有同样的效果。

总结

由于Linux的强大功能大都是用命令来实现的,要熟练掌握Linux操作系统的用法就必须动手实践,多练习系统中及各工具的命令,而课程实习就是练习和实践的开始,课程实习也是对我们综合能力的考察。

刚接触Linux操作系统,第一次做关于Linux系统的课程实习,难免存在许多不足,而且对有一些命令的理解不是很深入。但是通过此次实习,我们可以熟练的掌握基本的网络命令、网络配置文件及其配置方法以及ftp的配置,亲身体会到了Linux的多用户的特点。

这次课设让我认识到书上的内容很精致,但是要利用书上所学的知识来让我们编写一个实际的程序实在是非常困难。调试过程中我屡调屡败的状态下,老师和同学们给了我热情的帮助,他们指导我调试程序,说哪些是错的,哪些是多余的,哪些是必要的,一个杂乱无章的程序被修改得有条不紊,很显然结果也是最最正确的。在此,我真诚的感谢帮助我的老师和同学们。

团结就是力量,在老师、同学的帮助下,我顺利完成了此次的课程设计。也让我体会到了成功的来之不易,只有真正付出过才有满意的收获。同时也让我认识到,理论知识要与实际相结合。我们认为很简单的,实际操作起来可能非常困难,实践才是检验真理的标准。

参考文献

[1] David Tansley著. 徐炎译.Linux与UNIXShell编程指南. 北京:机械工业出版社.

[2] 刘兵著.Linux实用教程[M].北京:中国水利水电出版社.

[3] 朱居正、高冰著. Red Hat Linux 9实用培训教程. 北京:清华大学出版社.

[4] 张炯著.Unix网络编程实用技术与实例分析.北京:清华大学出版社.

[5] 顾云苏著.Linux 服务器配置与优化.北京:清华大学出版社.

[6] 王景新.Linux系统管理完全手册.清华大学出版社.

[7] 赵伟安.网络服务器配置与应用.西安:中国铁道出版社.

[8] 赵松涛.网络服务器配置与管理.北京:人民邮电出版社.

Linux 系统课程设计报告

Linux 系统课程设计报告 专业班级: 学号: 姓名: 同组成员: 2016年6月2日星期四

序论实验要求 实验目的 了解Linux内核源代码的目录结构及各目录的相关内容。 了解Linux内核各配置选项内容和作用。 掌握Linux内核配置文件的作用。 掌握Linux内核的编译过程。 掌握将新增内核代码加入到Linux内核结构中的方法。 实验指引 尽管目前Linux 2.6版本内核已经增加了很多对ARM体系甚至是S3C2440 CPU 的支持,但仍然需要对内核作一些小的修改来适应我们的开发板,并且需要重新配置、编译和重新生成新的内核映像。本实验从软硬件准备到下载到开发板等一系列连贯的操作来进行嵌入式Linux内核的移植。本实验的内核版本为2.6.29.1。 第一章Linux内核基础知识 1.1Linux版本 Linux主要的版本定义为“[主].[次].[发布].[修改]”的样式,次版本为奇数表示此版本为开发中版本,次版本为偶数表示此版本为稳定版本。 Linux内核的版本号可以从源代码的顶层目录下的Makefile中看到,比如2.6.29.1内核的Makefile中: VERSION = 2 PATCHLEVEL = 6 SUBLEVEL = 29 EXTRA VERSION = .1 其中的“VERSION”和“PATCHLEVEL”组成主版本号,比如 2.4、2.5、2.6等,稳定版本的德主版本号用偶数表示(比如2.6的内核),开发中的版本号用奇数表示(比如2.5),它是下一个稳定版本内核的前身。“SUBLEVEL”称为次版本号,它不分奇偶,顺序递增,每隔1~2个月发布一个稳定版本。“EXTRAVERSION”称为扩展版本号,它不分奇偶,顺序递增,每周发布几次扩展本版号。 1.2什么是标准内核 按照资料上的习惯说法,标准内核(或称基础内核)就是指主要在https://www.sodocs.net/doc/e5171401.html,/维护和获取的内核,实际上它也有平台属性的。这些linux

(完整版)操作系统毕业课程设计说明书-基于Linux的模拟文件系统的设计与实现

中北大学 操作系统课程设计 说明书 学院、系:软件学院 专业:软件工程 学生姓名:徐春花学号: 设计题目:基于Linux的模拟文件系统的设计与实现 起迄日 期: 2014年6月14日- 2014年6月26日指导教薛海丽

师: 2014 年 6月 26 日 前言 简单地说,Linux是一套免费使用和自由传播的类Unix操作系统,它主要用于基于Intel x86系列CPU的计算机上。这个系统是由世界各地的成千上万的程序员设计和实现的。其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的Unix兼容产品。 Linux不仅为用户提供了强大的操作系统功能,而且还提供了丰富的应用软件。用户不但可以从Internet上下载Linux及其源代码,而且还可以从Internet上下载许多Linux的应用程序。可以说,Linux本身包含的应用程序以及移植到Linux上的应用程序包罗万象,任何一位用户都能从有关Linux的网站上找到适合自己特殊需要的应用程序及其源代码,这样,用户就可以根据自己的需要下载源代码,以便修改和扩充操作系统或应用程序的功能。这对Windows NT、Windows98、MS-DOS或OS2

等商品化操作系统来说是无法做到的。 Linux具有:稳定、可靠、安全的优点,并且有强大的网络功能。其中有对读、 写进行权限控制、审计跟踪、核心授权等技术,这些都为安全提供了保障。在相关软 件的支持下,可实现WWW、FTP、DNS、DHCP、E-mail等服务,还可作为路由器 使用,利用IPCHAINSIPTABLE网络治理工具可构建NAT及功能全面的防火墙。 Linux是在GNU公共许可权限下免费获得的,是一个符合POSIX标准的操作系 统。Linux操作系统软件包不仅包括完整的Linux操作系统,而且还包括了文本编辑 器、高级语言编译器等应用软件。它还包括带有多个窗口管理器的X-Windows图形 用户界面,如同我们使用Windows NT一样,允许我们使用窗口、图标和菜单对系 统进行操作。 目录 1需求分析 (3) 1.1 功能介绍 (3) 1.2 目的及意义 (5) 1.2.1 目的 (5) 1.2.2 意义 (6) 1.3 设计成果 (7) 2总体设计 (8) 2.1功能介绍 (8) 2.2模块关联 (9) 3详细设计 (12)

linux网络编程课设报告

《Linux网络编程》 课程设计 班级: 姓名: 指导老师:

一、设计背景 Linux操作系统作为一个开源的操作系统被越来越多的人所应用,它的好处在于操作系统源代码的公开化!只要是基于GNU公约的软件你都可以任意使用并修改它的源代码。通过这次课程设计能更好的学习网络编程知识和掌握LINUX平台上应用程序设计开发的过程,将大学四年所学知识综合运用,为未来的工作学习打下基础。 二、设计目的 1、学习epoll 跟FTP被动模式 2、掌握linux基本命令,例如ls、cd、login; 3、学会如何编译、运行 三、环境要求 1、centos 64位操作系统 2、gcc编译器 四、设计原理 4.1客户端 客户端程序的主要任务有以下3个: (1)、分析用户输入的命令。 (2)、根据命令向服务器发出请求 (3)、接受服务器返回请求的结果 客户端为用户提供了3种命令:(1)、get:从服务器下载文件(2)、list:列出客户端当前目录的内容(3)、quit离开 4.2 服务器端 (1)、分析请求代码。 (2)、根据请求代码做相应的处理 (3)、等待返回结果或者应答信息

五、软件测试结果

六、部分主代码 #include "ftserve.h" int main(int argc, char *argv[]) { int sock_listen, sock_control, port, pid; if (argc != 2) { printf("usage: ./ftserve port\n"); exit(0); } port = atoi(argv[1]); // create socket if ((sock_listen = socket_create(port)) < 0 ) { perror("Error creating socket"); exit(1); } while(1) { // wait for client request

2011180021-Linux操作系统-课程设计报告-基于Linux的进程调度模拟程序

河南中医学院 《linux操作系统》课程设计报告 题目:基于Linux的进程调度模拟程序 所在院系:信息技术学院 专业年级:2011级计算机科学与技术完成学生:2011180021 郭姗 指导教师:阮晓龙 完成日期:201X 年06 月22 日 目录 1. 课程设计题目概述3 2. 研究内容与目的4 3. 研究方法5 4. 研究报告6 5. 测试报告/实验报告7 6. 课题研究结论8 7. 总结9

1、课程设计题目概述 随着Linux系统的逐渐推广,它被越来越多的计算机用户所了解和应用. Linux是一个多任务的操作系统,也就是说,在同一个时间内,可以有多个进程同时执行。如果读者对计算机硬件体系有一定了解的话,会知道我们大家常用的单CPU计算机实际上在一个时间片断内只能执行一条指令,那么Linux是如何实现多进程同时执行的呢?原来Linux使用了一种称为"进程调度(process scheduling)"的手段,首先,为每个进程指派一定的运行时间,这个时间通常很短,短到以毫秒为单位,然后依照某种规则,从众多进程中挑选一个投入运行,其他的进程暂时等待,当正在运行的那个进程时间耗尽,或执行完毕退出,或因某种原因暂停,Linux就会重新进行调度,挑选下一个进程投入运行。因为每个进程占用的时间片都很短,在我们使用者的角度来看,就好像多个进程同时运行一样了。本文就是对进程调度进行研究、实验的。 本文首先对Linux系统进行了简要的介绍, 然后介绍了进程管理的相关理论知识。其次,又介绍最高优先数优先的调度算法(即把处理机分配给优先数最高的进程)、先来先服务算法的相关知识,并对进程调度进行最高优先数优先的调度算法和先来先服务算法模拟实验,并对比分析两种算法的优缺点,从而加深对进程概念和进程调度过程/算法的理解 设计目的:在多道程序和多任务系统中,系统内同时处于就绪状态的进程可能有若干个。也就是说能运行的进程数大于处理机个数。为了使系统中的进程能有条不紊地工作,必须选用某种调度策略,选择某一进程占用处理机。使得系统中的进程能够有条不紊的运行,同时提高处理机的利用率以及系统的性能。所以设计模拟进程调度算法(最高优先数优先的调度算法、先来先服务算法),以巩固和加深处理进程的概念,并且分析这两种算法的优缺点。关键词:linux 进程调度调度算法

Linux课程设计报告

《Linux课程设计》 设计题目:shell 编程实现用户信息管理专业:软件工程 指导教师:蔡照鹏王斌斌 班级: 学号: 姓名: 同组人: 计算机科学与工程学院

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中。Linux是一个领先的操作系统,世界上运算最快的10台超级计算机运行的都是Linux操作系统。严格来讲,Linux这个词本身只表示Linux 内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和数据库的操作系统。Linux得名于天才程序员林纳斯·托瓦兹。 Linux操作系统是UNIX操作系统的一种克隆系统,它诞生于1991 年的10 月5 日(这是第一次正式向外公布的时间)。以后借助于Internet网络,并通过全世界各地计算机爱好者的共同努力,已成为今天世界上使用最多的一种UNIX 类操作系统,并且使用人数还在迅猛增长。Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX 和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux 继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。它主要用于基于Intel x86系列CPU的计算机上。这个系统是由全世界各地的成千上万的程序员设计和实现的。其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的Unix兼容产品。

Linux课程设计

摘要 Linux是一款免费的操作系统,用户可以通过网络或其他途径免费获得,并可以任意修改其源代码。这是其他的操作系统所做不到的。正是由于这一点,来自全世界的无数程序员参与了Linux的修改、编写工作,程序员可以根据自己的兴趣和灵感对其进行改变,这让Linux 吸收了无数程序员的精华,不断壮大。 Linux的基本思想有两点:第一,一切都是文件;第二,每个软件都有确定的用途。其中第一条详细来讲就是系统中的所有都归结为一个文件,包括命令、硬件和软件设备、操作系统、进程等等对于操作系统内核而言,都被视为拥有各自特性或类型的文件。 这次的课程设计为了熟悉以下内容Linux 基本网络命令,配置网络文件,建立个人账户,配置samba服务器,配置vsFTp服务器,shell编程。 关键词:Linux 基本网络命令配置网络文件建立个人账户配置samba服务器配置vsFTp服务器 shell编程

Linux课程设计 目录 1. 绪论 (1) 1. 1引言 (1) 2. 操作系统特性 (1) 2.1 linux的主要特性 (1) 2.2 UNIX的主要特点 (2) 3.系统设计 (3) 3.1设计的目的与意义 (3) 3.2课程设计的目标 (3) 3.3课程设计的要求 (3) 4 .课程设计的具体内容 (4) 4.1 基本网络命令及使用方法 (4) 4.2 telnet建立多账户测试 (8) 4.3 配置samba服务器,实现不同系统之间的文件共享 (10) 4.4 配置vsFTP服务器 (11) 4.5 简单shell编程 (14) 总结 (17) 参考文献 (18)

1.绪论 1. 1引言 Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux 版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。Linux是一个领先的操作系统,世界上运算最快的10台超级计算机运行的都是Linux操作系统。严格来讲,Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和数据库的操作系统。Linux得名于天才程序员林纳斯?托瓦兹。 Linux操作系统是UNIX操作系统的一种克隆系统,它诞生于1991 年的10 月5 日(这是第一次正式向外公布的时间)。以后借助于Internet网络,并通过全世界各地计算机爱好者的共同努力,已成为今天世界上使用最多的一种UNIX 类操作系统,并且使用人数还在迅猛增长。 Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX 和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。它主要用于基于Intel x86系列CPU的计算机上。这个系统是由全世界各地的成千上万的程序员设计和实现的。其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的Unix兼容产品。 2. 操作系统特性 2.1 linux的主要特性 (1)基本思想 Linux的基本思想有两点:第一,一切都是文件;第二,每个软件都有确定的用途。其中第一条详细来讲就是系统中的所有都归结为一个文件,包括命令、硬件和软件设备、操作系统、进程等等对于操作系统内核而言,都被视为拥有各自特性或类型的文件。至于说Linux是基于Unix的,很大程度上也是因为这两者的基本思想十分相近。 (2)发展领域 职业领域:系统应用类(网管\系统管理和维护人员\安全管理人员中低端行业领域)待遇属于中下。 系统开发类行业(JAVA软件开发\C语言软件开发\WEB开发\嵌入式软件开发)其中嵌入式软件开发是linux应用最广的领域待遇属于中等发展方向:UNIX往高端领域和产业发展,例如:AIX、HP-UX、Solaris 等等。 (3)完全免费 Linux是一款免费的操作系统,用户可以通过网络或其他途径免费获得,并可以任意修改其源代码。这是其他的操作系统所做不到的。正是由于这一点,来自全世界的无数程序员参与了Linux的修改、编写工作,程序员可以根据自己的兴趣和灵感对其进行改变,这让Linux吸收了无数程序员的精华,不断壮大。

linux_课程设计模板

辽宁工业大学linux 课程设计(论文) 题目:REDHAT LINUX 系统下搭建FTP 服务器 学院:软件学院 专业班级:软件工程125班 学号: 121301143 学生姓名:张白冰 指导教师:陈浩 教师职称:讲师 起止时间: 2012.12.1—2012.12.5

课程设计(论文)任务及评语

目录 第一章安装VSFTP套件 (1) 1.1首先查看我的Redhat5上是否已经安装 (1) 1.2 如果没有安装话,就要选择一种方式安装 (1) 1.3 VsFtp的配置文件 (3) 第二章配置FTP服务器 (4) 2.1最简单的vsfrpd.conf设定 (4) 2.2 配置好FTP服务器后,使用匿名用户及实体用户上传下载文件进行测试。 (5) 第三章总结 (9) 参考文献 (10)

第一章安装VSFTP套件 1.1首先查看我的Redhat5上是否已经安装 rpm -qa| grep vsftpd 如果已经安装就会出现vstfp的版本号相关的信息,如果没有出现就是没有安装1.2 如果没有安装话,就要选择一种方式安装 可以到官方网站去下载 https://www.sodocs.net/doc/e5171401.html, 也可以用光盘安装,RedHat 5的安盘里自带的,所以我选择光盘安装 (1)先把光盘挂载到系统上: mount /dev/cdrom /mnt 这样光盘的内容就被挂载到/mnt的设备上,现在可以通过/mnt访问光盘上的内容了 (2)在光盘上安装vsftp,并且启动vsftp rpm -ivh vsftpd* (3)修改启动方式,改为系统启动时,自动启动 chkconfig vsftpd on 也可以查看启动方式 chkconfig --list |grep vsftpd 只要在第2--5为on就能随机启动 (4)启动ftp service vsftpd start (5)连接测试 vsftp默认安装目录是:/etc/vsftpd 默认有一个ftp目录:var/ftp vsftp默认是用允许匿名用户【anonymous】登陆,允许下载,但是不允许上传 如果连不上,可能是linux 防火墙的原因 停止防火墙:service iptables stop 开启防火墙:service iptables start (1)从光盘中找到从光盘中找到从光盘中找到从光盘中找到 vsftp的的的的rpm 安装包安装包安装包安装包

Linux课程设计报告

《Linux课程设计》 设计题目: shell 编程实现用户信息管理专业:软件工程 指导教师:蔡照鹏王斌斌 班级: 学号: 姓名: 同组人: 计算机科学与工程学院

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux核。Linux可安装在各种计算机硬件设备中。Linux是一个领先的操作系统,世界上运算最快的10台超级计算机运行的都是Linux操作系统。严格来讲,Linux这个词本身只表示Linux核,但实际上人们已经习惯了用Linux来形容整个基于Linux核,并且使用GNU 工程各种工具和数据库的操作系统。Linux得名于天才程序员林纳斯·托瓦兹。 Linux操作系统是UNIX操作系统的一种克隆系统,它诞生于1991 年的10 月5 日(这是第一次正式向外公布的时间)。以后借助于Internet 网络,并通过全世界各地计算机爱好者的共同努力,已成为今天世界上使用最多的一种UNIX 类操作系统,并且使用人数还在迅猛增长。 Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。它主要用于基于Intel x86系列CPU的计算机上。这个系统是由全世界各地的成千上万的程序员设计和实现的。其目的是建立不受任何商品化软件的制约的、全世界都能自由使用的Unix兼容产品。

Linux课程设计

Linux课程设计---编写proc文件系统相关的内核模块 学号:20085229 姓名:杜森 班级:08级网络一班 指导教师:于群 日期:2011年6月29号

一、背景知识: 1、内核模块。 操作系统采用两种体系结构:微内核(Micro kernel),最常用的功能模块被设计成内核模式运行的一个或一组进程,而其它大部分不十分重要的功能模块都作为单独的进程在用户模式下运行!单内核(Monolithic kernel,有时也叫宏内核Macro kernel)!内核一般作为一个大进程的方式存在。该进程内部又可以被分为若干模块,在运行的时候,它是一个独立的二进制映象为了弥补单一体系结构的这一缺陷,Linux操作系统使用了模块机制。用户可以根据需要,在不需要对内核重新编译的情况下,模块可以动态地载入内核或从内核中移出!如图所示,模块可通过 insmod命令插入内核,也可以通过rmmod命令从内核中删除。 2、进程管理 Linux的每一个进程都有自己的属性,用一个task struct数据结构表示,即进程控制块Ⅲ(Process Concrol Block,PCB)。它对进程在其生命周期内涉及的所有事件进行全面的描述,主要有进程标识符(PID)、进程状态信息、进程调度信息、进程所占的内存区域、相关文件的文件描述符、处理器环境信息、信号处理、Linux操作系统内核分析与研究资源安排、同步处理等几个方面。在一个系统中,通常可拥有数百个甚至数千个进程,相应地就有很多进程控 制块。为了有效地对它们加以管理,应该用适当地方式将这些进程控制块组织起来。 进程控制块数据结构主要域定义如下: task_struct结构:在linux/sched.h中 struct task_struct{ volatile long state; //系统进程状态,一共有五种状态: //0 可运行态 //1 可中断的等待态 //2 不可中断的等待态 //3 僵死态

Linux课程设计

目录 前言 (1) 正文 (2) 1设计背景 (2) 1.1设计的目的与意义 (2) 1.2课程设计的目标 (2) 1.3课程设计的要求 (2) 1.4课程设计的方案 (2) 2 网络命令 (3) 2.1 常用的网络命令 (3) 2.2 telnet建立多账户测试 (7) 2.3 smba服务器的配置 (9) 2.4 ftp服务器配置 (12) 2.5 shell编程 (15) 总结 (16) 参考文献 (17)

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux 版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中。Linux 是一个领先的操作系统,世界上运算最快的10台超级计算机运行的都是Linux 操作系统。严格来讲,Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和数据库的操作系统。Linux得名于天才程序员林纳斯·托瓦兹。 Linux操作系统是UNIX操作系统的一种克隆系统,它诞生于1991 年的10 月5 日(这是第一次正式向外公布的时间)。以后借助于Internet网络,并通过全世界各地计算机爱好者的共同努力,已成为今天世界上使用最多的一种UNIX 类操作系统,并且使用人数还在迅猛增长。 Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX 和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。它主要用于基于Intel x86系列CPU的计算机上。这个系统是由全世界各地的成千上万的程序员设计和实现的。其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的Unix兼容产品。 UNIX特点: (1)模块化程度高 (2)源码公开 (3)广泛的硬件支持 (4)安全性及可靠性好内核高效稳定 (5)具有优秀的开发工具

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设计报告

广西大学计算机与电子信息学院 课程设计报告 ( 2015——2016年度第一学期) 名称: UNIX程序设计课程设计 题目: UNIX程序设计课程设计 院系:计算机与电子信息学院 班级:计科132班 学号: 58 学生姓名:郭江达 指导教师:葛志辉 设计周数: 2周 成绩: 日期: 2015年 12月 27日

目录 1. 设计任务 (1) 2. 设计步骤 (1) 开发环境配置 (1) 开发工具 (2) 3. 程序开发步骤 (4) 4. 遇到的问题及相应解决办法 (12) 5. 个人体会及建议 (13) 参考文献 (13)

1. 设计任务 设计题目、任务及完成情况的大致说明,让老师能够了解你所做工作的大体情况。(每个人都要独立完成下面三个题目,不要相互抄袭!切记!) 1、完成Linux下的shell编程,要利用shell编程实现某一个具体的功能。 2、完成Linux下的C语言编程,要求至少包括两个文件,比如一个,,中包含了中的声明,分别利用gcc和makefile进行编译。 3、完成Linux下PHP+MySQL的编程,能够完成一个简单的具有数据库存储功能的网站。 2. 设计步骤 开发环境配置 Shell编程的开发环境 Shell编程的开发环境不需要什么配置,只需在Linux系统的终端进行即可。 C语言编程的开发环境 C语言在Linux系统下编程,需要dev安装包,用于编译C语言。 在终端下输入“sudo apt-get install libc6-dev”进行下载,在下载之前需要输入登录密码,之前已经下载好了,如下图所示:

下载好后,系统会自动安装,安装完成便可在终端编译C语言程序了。 Linux下PHP+MySQL编程的开发环境 这是在ubuntu上搭建LAMP,需要安装“php5”,“mysql”,“apache2”和“phpmyadmin”,如下图所示: 开发工具 VMware Workstation 12 虚拟机 VMware Workstation 12 虚拟机简介:著名的虚拟机软件。不需要分区或重开机就能在同一台PC上使用两种以上的操作系统,完全隔离并且保护不同OS的操作环境以及所有安装在OS上面的应用软件和资料,不同的OS之间还能互动操作,包括网络、周边、文件分享以及复制贴上功能等。 安装方法: 1.下载虚拟机可执行文件点击运行,按照安装教程安装即可。 使用方法: 打开虚拟机,在“文件”菜单中选择“新建虚拟机”,然后弹出“新建虚拟机

Linux课程设计报告书模版

Linux系统与程序设计课程设计报告书 报告人:

目录: 1、实验项目目的3 2、实验项目的功能及模块划分2 3、实验项目的人员组成及指责划分2 4、设计与实现3 4.1 系统结构3 4.2 客户端界面3 4.2.1 注册3 4.2.2 登录4 4.2.3 界面设计4 4.2.4查找好友4 4.3服务器的实现5 4.3.1 用户登录5

4.3.2用户管理5 4.3.3转发聊天消息5 4.4 文件操作6 4.5 通信模块的实现6 4.5.1 通信方式的选择6 5、测试与调试6 6、总结7 7、附录:程序代码9 1、实验目的 在Linux下利用java编程实现类似于QQ的通信功能。实现简单的qq功能:注册、登陆、查找好友、聊天功能服务端还需实现配置文件设置、用户管理、日志显示的功能。同时使用到相关的的文件操作以及java编程。通过这次实验来锻炼在Linux下的编程能力,主要是熟悉Linux的编程环境,相关命令的操作、java 软件的安装、以及对文件的操作,网络通讯等相关的方面东西。

2、实验项目的功能及模块划分 本实验是一个Linux下的网络即时通信工具,实现三人间的通讯。这个项目总共分为五个模块客户端,服务器,通讯,文件操作以及文档维护与测试。客户端的在分为登录、从服务器端获取在线人员并显示、选择联系人、向在线人员发送消息。实时显示别人发给你的消息。服务端主要是为客户端提供相关的信息服务,包括保存登录人员的IP信息、发送给客户端其他登录人员的IP、操作数据库等相关操作。基本上完成了注册、登陆、聊天功能总体来说可以分为几下几个模块:1)客户端与服务器的界面设计 2)客户端的通信部分 3)服务端的通信部分 4)文件操作 5)文档测试与维护 3、实验项目的人员组成及指责划分 xx:组长,系统分析、整体设计和模块划分 xx:通信模块设计和编码。 xx:客户端以及服务器界面设计和编码。 xx:文档维护和测试。 xx:文件操作的设计和编码。 4、设计与实现

Linux应用开发课程设计报告

Linux应用开发课程设计报告 项目名称贪吃蛇 学号: 姓名:张浩 专业:软件工程专业 班级:14软工软设1班 指导教师:郭俊颖 南阳理工学院软件学院 2016年12月

一需求分析 1.问题描述 ①蛇与食物出现的位置; ②蛇的游动; ③怎样实现蛇撞到自身会死; ④怎样判断蛇撞到墙; 2基本要求 实现蛇在不断吃到食物后分数增加,实现蛇的游动。 3.需实现的主要功能 ①蛇与食物不能出现在一起; ②蛇撞到自身以及墙都会死; ③蛇吃到事物后,长度增加同时分数增加一 ⑤随着分数的增加,关卡难度增加 4.设计实现方案 将蛇头的坐标以及蛇身的坐标都用二维数组表示出来,规定第一个下标为0则代表蛇头,为i则为蛇身,第二个下标为0代表横坐标,为1代表纵坐标,foodx代表食物横坐标,foody代表食物纵坐标,当蛇头坐标与事物坐标相等时则表示蛇吃到了事物,长度加一。方向变化为:当向上走时,横坐标不变,纵坐标减减;向下走时,横坐标不变,纵坐标加加;向左走时纵坐标不变,横坐标--;向右走时纵坐标不变,横坐标++。 2系统设计

分功能描述和设计流程图 当用户打开贪吃蛇时,进入主界面,主界面有开始及退出两个选项,当用户点击开始时,进入第二个界面(游戏界面),左侧为游戏界面,右上方显示分数与等级,当用户控制蛇吃到事物时分数会增加,当分数增加到5,15,20时,等级会提升。右下方为上下左右开始返回键,用户可以控制上下左右来操控蛇的游动方向,当用户点击开始时游戏则开始,当用户点击返回时,则退回到主界面。 。设计流程图如图2-1所示: 2-1 设计流程图 3系统实现 贪吃蛇的界面和代码

Linux课程设计

鲁东大学信息与电气工程学院2016 -2017 学年第 1 学期 《 Linux 应用技术 》课程设计 课程号: 2260020 任课教师 刘飞 成绩 一、主文本菜单 1.1 通过while 循环输出,输入q 退出循环。 1.2 通过case,选择选项,通过./xx.sh ,进入相应的shell 脚本。 代码如下: #!/bin/bash while true;do echo "主菜单" echo " 1.用户管理" echo " 2.磁盘管理" echo " 3.计算机" echo " 4.自动备份" echo " q.退出" read -p "选择操作:" c1 case $c1 in 1) ./yonghu.sh ;; 2) ./cipan.sh ;; 3) ./jisuanqi.sh ;; 4) ./beifen.sh ;;

q) exit ;; *) echo -e "\n输入错误,请重新输入!\n" ;; esac done 二、用户管理子菜单 2.1 输出passwd文件下的内容,通过cut,切割出用户名。 2.2 useradd添加账户,passwd添加密码。 2.3 输入用户名,通过grep,查看passwd下是否存在该用户,如果存在,删除此账户。 代码如下: #!/bin/bash while true;do echo "a.查看当前系统下所有用户的信息" echo "b.添加用户帐号" echo "c.删除用户账户" echo "q.退出" read -p "选择操作:" c2 case $c2 in a) cat /etc/passwd | cut -d ":" -f1 ;; b) read -p "输入用户名:" name useradd $name echo "输入密码" passwd $name ;; c) read -p "输入用户名:" name if [ "$name" = `cat /etc/passwd | cut -d ":" -f1 | grep $name` ];then userdel $name else echo "账户不存在" fi ;; q) exit ;; *) echo "输入错误,请重新输入!" ;; esac done 三、磁盘管理子菜单 3.1 df 查看硬盘分区情况。 3.2 dd新建一个文件,格式化,挂载在swap分区。 3.3 mkfs格式化分区。 3.4 du查看home文件夹下各个用户多占的空间,sort排序,head取出前10。代码如下: #!/bin/bash

linux课程设计题目及服务器搭建1

福建工程学院软件学院 课程设计报告 名称linux服务器架设与管理 2011年6月14日至2011年6月20日共2周 院系福建工程学院软件学院 班级web0901 姓名郭新林 任课教师安珂

福建工程学院软件学院课程设计任务书 名称:linux服务器架设与管理起讫时间: 院系:福建工程学院软件学院 班级:web901 指导教师:安珂

目录 1虚拟机的设置及redhat linux 9的安装 (6) 1.1 新建虚拟机 (6) 1.2 rhel5的安装 ............................................................................................. 错误!未定义书签。 2Ssh,telnet安装与配置 .............................. 错误!未定义书签。 2.1 执行桌面上的putty连接本机linux,测试是否可以访问。................ 错误!未定义书签。 2.2 安装telnet-server ...................................................................................... 错误!未定义书签。 3dns的安装与配置 (38) 3.1 查询dns是否安装 (38) 3.2 安装相关文件........................................................................................... 错误!未定义书签。 3.3 开起服务................................................................................................... 错误!未定义书签。 3.4 dns配置 .................................................................................................... 错误!未定义书签。 4apache+php+mysql+webmin的安装与配置 (41) 4.1 Apache (41) 4.2 php ............................................................................................................. 错误!未定义书签。 4.3 mysql ......................................................................................................... 错误!未定义书签。 4.4 安装phpmyadmin和webmin软件包..................................................... 错误!未定义书签。 5vsftp的安装与配置 (41) 5.1 vsftp的安装 (41) 5.2 vsftp的配置.............................................................................................. 错误!未定义书签。 6postfix+webmail+dovecot+mysql+postfixadmin错误!未定义书签。 6.1 postfix安装与配置................................................................................... 错误!未定义书签。 6.2 dovecot安装与配置 ................................................................................. 错误!未定义书签。 6.3 webmail ..................................................................................................... 错误!未定义书签。 7遇到的问题与解决方法............................... 错误!未定义书签。 8简答 ............................................................... 错误!未定义书签。 9心得体会 ....................................................... 错误!未定义书签。

linux编程SHELL编程实验报告

Linux编程课程设计报告题目: Linux Shell编程 专业 学号姓名 指导教师 日期

题目:Linux Shell编程 一、设计目的和任务 实验目的:1.熟悉Shell环境和Shell的执行 2.熟悉Shell的基本语法和语句 3.了解Shell程序的调试方法 实验内容:1.编写Shell程序 2.调试和执行Shell程序 二、设计原理 Linux是一种开放源码、能够免费使用及自由传播的类似于UNIX操作系统。它可运行于各种平台之上。因为它不但具有UNIX系统的良好性能(如稳定性、安全性),同由于其具有开源和免费的特点,也越来越广泛地应用于各种嵌入式系统中。 Shell是用户和Linux操作系统内核程序间的一个借口。Shell既是命令解释器,有事一种编程语言。作为命令解释器,Shell为用户使用Linux操作系统提供丰富的工具界面。若用户输入命令,Shell负责解释执行该命令并向用户返回结果。作为编程语言,它利用自身的语言结构将工具命令组合起来提供更复杂的功能。 三、实验环境和总体设计 一台 2.安装虚拟机版的Linux操作系统 四、详细设计步骤 1.打开vmware软件,启动Linux系统 2.用root用户名和密码登入系统中 3.将某目录下面所有的文件名后面加上所有者的名字,如的所有者为owner,修改后为a[owner].txt文件。 基本要求: ①使用方法为usage:程序名称目录名称 若没有“目录名称”参数,则修改当前目录下文件名称 ②对目录中的子目录不做变化。 ③ 给出实验结果。 五、结果测试与分析 1. 进入root模式创建2618文件夹和文件 2.编写shell程序

linux课程设计

Linux课程设计报告 专业班级: 学号: 姓名:

使用共享内存来完成进程间通信 一、相关原理介绍分析 1,共享内存的三种实现方式 (1)POSIX共享内存对象:shm_open创建一个名称为tmp的共享内存区对象后,在/dev/shm/下可以看到对应的文件(tmpfs的文件系统可以看成是直接对内存操作,速度非常快)。cat可以看到映射的内容。进程重启共享内存中数据不会丢失,内核自举或显示调用 shm_unlink或rm掉文件删除后丢失 (2)POSIX文件映射:通过映射一个普通文件(匿名文件或一个打开的命名文件)实现共享内存——mmap()。该方式的特点接口简单,较通用。可利用cat查看映射的文件,要注意考虑进程终止对通信的影响。该方式也是本实验使用的方式,下面将做具体表述。 (3)systemV共享内存:通过映射特殊存储块shm中的文件实现进程间的共享内存通信——主要有以下几个API:shmget()、shmat()、shmdt()及shmctl()。本方式无法看到文件实体。 进程重启共享内存中数据不会丢失,内核自举或显示调用shmdt或使用ipcrm删除后丢失。 2,POSIX文件映射共享内存简介 POSIX文件映射指mmap mmap()系统调用使得进程之间通过映射同一个普通文件实 现共享内存。普通文件被映射到进程地址空间后,进程可以向访问普通内存一 样对文件进行访问,不必再调用read(),write()等操作。 3,POSIX文件映射共享内存实现方法 (1)文件与address_space结构的对应:一个具体的文件在打开后,内核会在内存中为之建立 一个struct inode结构,其中的i_mapping域指向一个address_space结构。这样,一个文件就对应一个address_space结构,一个address_space与一个偏移量能够确定一个page cache 或swap cache中的一个页面。因此,当要寻址某个数据时,很容易根据给定的文件及数据在文件内的偏移量而找到相应的页面。 (2)进程调用mmap()时,只是在进程空间内新增了一块相应大小的缓冲区,并设置了相应的 访问标识,但并没有建立进程空间到物理页面的映射。 4,主要函数介绍: (1)void* mmap ( void * addr , size_t len , int prot , int flags , int fd , off_t offset ) ①返回值为最后文件映射到进程空间的地址,进程可直接操作起始地址 ②addr指定文件应被映射到进程空间的起始地址,一般被指定一个空指针,此时选 择起始地址的任务留给内核来完成。 ③len是映射到调用进程地址空间的字节数,它从被映射文件开头offset个字节开始算起。 ④prot 参数指定共享内存的访问权限。 PROT_READ(可读), PROT_WRITE (可写),

相关主题