linux大作业
Linux期末大作业
简单的IRC聊天程序—— Linux课程期末实验第一章概述【实验目的】综合应用Linux系统下的网络编程技术,使用C语言,结合软件工程思想,设计并实现一个简单的IRC聊天程序,具有服务器端和客户端,可以是终端字符界面,支持用户管理,用户名/密码注册和登录,支持版面聊天,用户可以选择进入某个版面,版面发言大家可以看到,同时支持点对点私聊,可以选择某个用户进行私聊。
从而熟悉在Linux系统所提供的网络通信接口及该系统下的编程思想,深入对计算机系统的理解,并切实提高软件设计开发的能力。
【实验原理】一个简单的聊天室,其功能是当这个聊天室中的任何一个用户输入一段字符后,室内的其他用户都可以看到这句话。
据此,聊天程序分为客户端和服务器端。
客户端对应每一个参加聊天的用户,完成从终端上输入采集并传递到服务器端和从服务器端接收信息输出显示的功能。
总体介绍该结构如下。
首先是初始化服务器,使服务器进入监听状态:sockfd = socket(AF_INET, SOCK_STREAM, 0);// 首先建立一个socket,族为AF_INET,类型为SOCK_STREAM。
// AF_INET = ARPA Internet protocols,即使用TCP/IP协议族。
// SOCK_STREAM类型提供了顺序的,可靠的,基于字节流的全双工连接。
// 由于该协议族中只有一个协议,因此第三个参数为0。
bind(sockfd, (struct sockaddr *)&servaddr,sizeof(serv_addr));// 再将这个socket与某个地址进行绑定。
// serv_addr 包括sin_family=AF_INET 协议族同socket。
// sin_addr.s_addr = htonl(INADDR_ANY)服务器所接收的所有其他地址// 请求建立的连接。
// sin_port = htons(SERV_TCP_PORT) 服务器所监听的端口。
Linux课程大作业
Linux课程设计报告题目 Linux课程大作业院系班级姓名指导教师一、基础篇(给出源程序和编译运行的结果)1、编写一个简单的c语言程序:根据输入的两个整数求平均值并且在终端输出,通过gcc编译器得到它的汇编程序文件。
源代码(c):源代码(汇编):.file "sum.c".text.globl average.type average, @functionaverage:.LFB0:.cfi_startprocpushl %ebp.cfi_def_cfa_offset 8.cfi_offset 5, -8movl %esp, %ebp.cfi_def_cfa_register 5subl $8, %espmovl 12(%ebp), %eaxmovl 8(%ebp), %edxaddl %edx, %eaxmovl %eax, -4(%ebp)fildl -4(%ebp)fldl .LC0fdivrp %st, %st(1)leave.cfi_restore 5.cfi_def_cfa 4, 4ret.cfi_endproc.LFE0:.size average, .-average.section .rodata.align 4.LC2:.string"\350\257\267\350\276\223\345\205\245\344\270\244\344\270\252\346\225\260\ 357\274\214\345\233\236\350\275\246\345\210\206\345\211\262".LC3:.string "%d".LC4:.string"%d\344\270\216%d\347\232\204\345\271\263\345\235\207\345\200\274\346\23 0\257\357\274\232%lf\n".text.globl main.type main, @functionmain:.LFB1:.cfi_startprocpushl %ebp.cfi_def_cfa_offset 8.cfi_offset 5, -8movl %esp, %ebp.cfi_def_cfa_register 5 andl $-16, %espsubl $48, %espmovl $0, 44(%esp) movl $.LC2, (%esp) call putsmovl $.LC3, %eax leal 40(%esp), %edx movl %edx, 4(%esp) movl %eax, (%esp) call __isoc99_scanf movl $.LC3, %eax leal 44(%esp), %edx movl %edx, 4(%esp) movl %eax, (%esp) call __isoc99_scanf movl 44(%esp), %edx movl 40(%esp), %eax movl %edx, 4(%esp) movl %eax, (%esp) call averagemovl 44(%esp), %ecx movl 40(%esp), %edx movl $.LC4, %eax fstpl 12(%esp)movl %ecx, 8(%esp) movl %edx, 4(%esp) movl %eax, (%esp)call printfleave.cfi_restore 5.cfi_def_cfa 4, 4ret.cfi_endproc.LFE1:.size main, .-main.section .rodata.align 8.LC0:.long 0.long 1073741824.ident "GCC: (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3".section .note.GNU-stack,"",@progbits执行结果:2、编写一个c语言程序:打印输出所有“水仙花数”,用gdb调试程序(给出步骤,至少十步以上)。
《Linux系统管理与服务配置》大作业
《Linux系统管理与服务配置》大作业背景描述无论从硬件还是从软件上来讲,Linux操作系统都已经是一个非常成熟的操作系统,由于其免费、开源的特性使得Linux对Windows的威胁也越来越大。
在服务器和嵌入式系统市场上,Linux已经是主流的操作系统之一,现在Linux正稳步拓展桌面操作系统市场。
Linux网络服务功能非常强大,在Linux上可以部署Web Server、DNS Server、Mail Server、DB Server、FTP server等等,但是也由此产生了很多网络问题。
据统计,在Linux系统下产生的故障有60%来自网络方面,40%来自系统本身,课件熟练解决LInux下故障,对于熟练掌握Linux 系统有着巨大的帮助,请学生列出Linux系统下常见的故障与处理方法。
要求:1.要求从网络硬件传输故障(网线、路由器、交换机等)、网卡故障、网络服务故障等方面进行展开。
2.字数不少于1500字。
作业格式要求:(1)以A4纸张作(2)论文格式如下:论文标题用小二号字,宋体,加粗1 一级标题,用小三号黑体,加粗,并留出上下间距为:段前0.5行,段后0.5行)1.1 ××××××(作为正文2级标题,用小4号黑体,加粗)×××××××××(小4号宋体)××××××…………1.1.1 ××××(作为正文3级标题,用小4号黑体,不加粗)×××××××××(小4号宋体,行距1.5倍)××××××××教师姓名:李茂林联系方式:邮箱:截止日期:5月27日前将完成的作业发至指定邮箱。
Linux-习题(1)
大作业 ( 一 )一:填空题1:Linux中除图形登录外还可以使用命令提示行进行登录。
2:如果要访问网络中的另一台电脑,可以通过命令方式进行登录。
3: shell 是一个类似于 dos 的命令行解释工具。
4:Shell的概念最初是在__unix____操作系统中形成和得到广泛应用的。
5:Linux中的Shell有多种类型,其中最常用的几种是 Bourne Shell sh 、C Shell(csh)和Korn Shell(ksh).6:Bourne Shell简称 sh 。
7:创建名为p的用户可以通过 useradd p 命令进行创建。
8:为名为p的用户创建密码可以通过 passwd p 命令进行创建。
9:删除名为p的用户可以通过 userdel p 命令进行。
10:mv命令用来移动文件,cp命令用来复制文件。
11:当在Shell环境中启动vi编辑器时,可以使用 vi 命令进行启动。
12:当在vi编辑器中输入文字时,需要按键盘中的 I 键才可以进行输入。
13:在命名文件时不可以使用/、:、 \、 *、?、 % 、 >、|等符号。
14:root用户账户的基本信息保存在 /root/. 文件中。
15:在账户记录文件“root: x: 0: 0: root: /root: bin/bash”代码中的“bin/bash”表示 Bourne Again shell 。
16:当其他用户登录后要切换到root用户账户时,可以通过 su 命令进行。
17:当需要修改root用户账户时,需要在用户设置窗口中选择新建选项后才可以进行。
18:除了root用户账户外,还有lp、mail、uucp、 news 和 halt 这些默认的系统账户。
19:在Linux中权限最大的组是 root组,该组具备Linux操作的所有权限。
20:在Linux中可以使用 fdisk 或 df 命令查看磁盘分区情况。
21:当需要使用kill命令关闭编号是2547的程序时,其书写方式是 kill-9 2547 。
linux编程大作业讲解
linux编程大作业讲解linux第一部分简述题目要求:这部分题目必做,要详细回答,最好用自己理解的语言回答,有些题目可用图形和举例等阐述问题。
1、makefile文件的作用是什么,makefile文件中有一种变量,其值是根据具体的规则来确定的,称为自动变量,其中代表所有依赖文件列表的是哪个;举例说明make 命令的工作流程。
答:在Makefile文件中描述了整个工程所有文件的编译顺序、编译规则。
其中包括:工程中的哪些源文件需要编译以及如何编译、需要创建那些库文件以及如何创建这些库文件、如何最后产生我们想要的可执行文件。
Makefile 有自己的书写格式、关键字、函数。
在Makefile 中可以使用系统shell所提供的任何命令来完成想要的工作。
能够使用一行命令来完成“自动化编译”。
自动变量$^代表所有依赖文件,以空格分开,以出现的先后为序。
2、什么是进程,用fork()创建一个子进程时,系统会做什么工作。
请编程说明。
答:进程是具有独立功能的程序关于某个数据集合上的一次运行活动,是系统进行资源分配的单位,不仅是系统内部独立运行的实体也是独立竞争资源的实体。
用fork()时系统会分配子进程一个ID号然后继承父进程的地址空间,包括进程上下文进程堆栈打开的文件描述符等等,他就是父进程的一个复制品。
3、简述Linux文件系统通过i节点把文件的逻辑结构和物理结构转换的工作过程。
解释i节点在文件系统中的作用。
答:文件系统建立在由若干连续的逻辑块构成的存储空间中,根据用途逻辑块可分为:超级块、i节点区和数据区。
其中i节点区用于存放i节点,每个文件都有各自唯一的i节点,i 节点是一个64字节长的表,表中包含了文件的相关信息,其中有文件的大小、文件所有者、文件的存取许可方式以及文件的类型等重要信息。
在i 节点表中最重要的内容是磁盘地址表。
在磁盘地址表中有13个块号,文件将以块号在磁盘地址表中出现的顺序依次读取相应的块。
linux大作业及要求
一、为企业架设web服务器,要求:1.建立WEB服务器,服务器名为,网站主目录为/var/xx/www,站点主页文件的搜索顺序为index.html index.php;服务器启动时的子进程数为5;使用端口为80。
网页内容为:班级名称,用户名,192.168.yy.12,2.每个同学为自己建立个人主页空间,在/home下对自己做限额,软配额限制15M,硬配额限制60M, i节点数不受限制。
每个同学都属于gp组,组的限额是用户限额的50倍。
网页内容为:学号,用户名,192.168.yy.12,/home/用户名/www 其中:XX为同学名字的最后一个字的拼音,yy为同学学号的后两位数字,十位为0的只取个位数字。
评分标准:1. 正确安装DNS和apache并配置地址。
(10分)2. 正确配置dns,添加主机记录,并能够正常解析的。
(30分)3. 正确配置站点,建立主页,建立用户及个人主页,并能正常访问。
(30分)4. 正确设置配额。
(20分)5. 将配置及测试过程整理成文档,格式规范,步骤完整、图表清晰。
(10分)二、为企业架设ftp服务器1.建立FTP服务器,服务器名字为,服务器的欢迎语为“welcometo login ftpserver”.允许匿名用户上传下载文件,匿名用户的根目录为/var/ftp/pub,匿名用户的最大传输速率为10Kb/s.2.为自己和自己前后相邻的两个同学建立账户(只有一个相邻的,就建立一个),账户名字为姓名的全拼,允许本地用户访问,禁止相邻两个同学的账号切换到主目录以外的目录。
3.对/home做磁盘限额,用户的软配额限制15M,硬配额限制60M, i节点数不受限制。
每个同学都属于gp组,组的限额是用户限额的50倍。
4.将windows主机的一个txt文件上传到ftp服务器,文档的内容为:姓名,学号,windows主机ip,192.168.yy.13.其中:XX为同学名字的最后一个字的拼音,yy为同学学号的后两位数字,十位为0的只取个位数字。
LINUX题库及参考答案
LINUX(UBUNTU)大作业Linux第一次作业一、选择题1、下列哪种说法是错误的( C ) 。
A.操作系统是裸机之上的第一层软件B.操作系统控制和管理全部的计算机资源C.Microsoft Office 是操作系统的一种D.操作系统应为用户提供便捷的操作界面2、以下说法中正确的是(C )。
A.Windows 8是单用户单任务操作系统B.MS-DOS是多用户多任务操作系统C.Linux是多用户多任务操作系统D.Unix是单用户多任务操作系统3、下列哪种说法是错误的( C ) 。
A.操作系统可用于控制和管理计算机系统资源B.操作系统可用于对各类任务进行调度C.操作系统可用于完成源代码编译D.操作系统应为用户提供便捷的操作界面4、Linux中系统超级管理员的帐户是(B )。
A.adminB.rootC.administratorD.superuser5、Linux系统是一个(D )的操作系统。
A.单用户、单任务B.单用户、多任务C.多用户、单任务D.多用户、多任务6、Linux是一个功能强大的操作系统,同时它是一个(C )。
A、商业软件B、共享软件C、自由软件D、专利软件7、自由软件的含义是(B )。
A.用户不需要付费B.软件可以自由修改和发布C.只有软件作者才能向用户收费D.软件发行商不能向用户收费8. 超级用户登录后的操作提示符是( B ) 。
A、$B、#C、&D、@9、在某终端显示信息为:[user@localhost ~]$,其中“~”表示(D )。
A.当前目录B.名为~的主机C.系统根目录/D.用户user的家目录10、关于Linux内核版本的说法,以下错误的是(C )。
A.表示为主版本号.次版本号.修正号B.1.2.3表示稳定的发行版C.1.3.3表示稳定的发行版D.2.2.5表示对内核2.2的第5次修正二、简答题1、请简述Linux操作系统有什么优点?答:Linux的主要优点包括:•提供了先进的网络支持:内置TCP/IP协议;•真正意义上的多任务、多用户作系统;•与UNIX系统在源代码级兼容,符合IEEE POSIX标准;•支持数十种文件系统格式;•开放源代码,用户可以自己对系统进行改进;•采用先进的内存管理机制,更加有效地利用物理内存。
LINUX大作业
Linux系统编程大作业一、实验题目实现一个FTP服务系统二、实验目的通过该实验,掌握Linux环境下的多线程/进程编程技术、文件操作、用户权限管理、进程间通信技术三、实验要求基于客户/服务器交互模式,采用TCP/IP通信协议,实现一个支持远程文件传输的客户/服务器软件,支持文件的上传和下载。
其中客户端软件命名为myftp,服务器软件命名为ftpserver,具体功能需求如下:(一)服务器1)启动方式。
执行ftpserver [IP地址] port启动FTP服务。
其中IP地址为可选项。
若不提供服务器IP地址,FTP服务将自动绑定到本地网络的IP。
2)用户认证与权限管理。
为FTP客户提供基于用户名/密码认证的服务模式,只有授权用户才可以访问FTP服务。
与此同时,对文件/目录的访问,也实现基于授权的访问机制,即只有授权用户才可以对指定文件进行读写操作。
用户只有在具备写权限操作的目录上才能上传文件。
(可直接集成Linux服务器系统的用户管理)3)并行执行功能。
为提高系统性能,服务器将采用多进程/线程技术响应客户请求。
当客户通过身份验证后,服务器将创建一个新的进程/线程来响应用户请求,提供服务。
4)服务器支持的客户文件操作。
登录成功后,客户可在服务器执行以下操作:创建/删除目录(mkdir/rmdir)、显示当前路径(pwd)、切换目录(cd)、查看当前目录下的所有文件(ls)、上传单个/多个文件(put/mput)、下载单个/多个文件(get/mget)。
5)服务传输模式。
支持二进制(默认)及ASCII传输模式。
用户可通过执行binary/ascii 命令切换传输模式。
6)站点计数与用户管理功能。
统计服务器站点的当前活动用户数及自运行以来的访客总数。
系统管理员可在服务器软件运行终端窗口执行以下命令:A)count current:当前活动用户数B)c ount all:显示系统访客总数C)l ist:显示当前在线的所有用户的用户名D)kill username:强制删除某个用户。
Linux大作业
石家庄学院课程设计报告课程名称:Linux大作业设计题目:Web服务器的配置院系:计算机系专业:计算机科学与技术班级:2011级设计者:马淑娟马晓春张聪聪学号:20111303015 2011130301620111303017指导教师:滑斌杰2012 年 6 月17 日一、题目分析:通过对web服务器的有关配置,深刻理解web服务器的功能,并学会如何配置基于IP,基于端口,基于域名的虚拟主机。
二、制作过程:2.1 配置基于IP的虚拟主机:下面介绍在 192.168.0.8 和192.168.0.9 上创建两个基于IP 地址的虚拟主机的配置过程。
1.创建文档目录和测试主页student@Ubuntu: ~$ sudo mkdir -p /home/www/192.168.0.8/htdocsstudent@Ubuntu: ~$ sudo mkdir -p /home/www/192.168.0.9/htdocsstudent@Ubuntu:~$ sudo touch /home/www/192.168.0.8/htdocs/index.htmlstudent@Ubuntu: ~$ sudo touch /home/www/192.168.0.9/htdocs/index.html用来测试index.html 文件的内容可以分别为“this 192.168.0.8”与“this 192.168.0.9”。
2.配置虚拟网络接口(1) 使用如下命令。
student@Ubuntu:~ $ sudo gedit /etc/network/interfaces(2) 添加如下的配置。
auto eth0:1iface eth0:1 inet staticaddress 192.168.0.8netmask 255.255.255.0network 192.168.0.0broadcast 192.168.0.255auto eth0:2iface eth0:2 inet staticaddress 192.168.0.9netmask 255.255.255.0network 192.168.0.0broadcast 192.168.0.255(3) 使用如下命令重新启动网络服务。
Linux大作业(计算机14-3)
Linux实用操作系统大作业(上机实践):(要求将实现过程截屏并配有文字说明)1、以root身份登录Linux系统,添加两个用户账户(一个账号名为:xxxy,另一个账号名为:你名字的拼音缩写),分别修改登录密码,然后在tty2和tty3上登录。
显示在线用户登录情况,然后将登陆情况保存在文件中,让两个用户互发消息。
useradd xxxy;passwd xxxyuseradd hhypasswd xxxyctrl+alt+f2;ctrl+alt+f3;who |cat>lscat $mail username$mailwho/who am i2、进入root的主目录,显示该目录中的所有内容(包含隐含文件),并显示当前目录中的所有文件的详细信息,并说出每一列代表的含义。
统计该目录中所有的文件数目,并对该目录中的文件按大小进行排序(升序和降序)ls -lls -l|sort -hk 53、Linux系统有几种基本文件类型?在系统中找出每一种文件类型的文件,并显示该文件的位置。
1普通文件2目录文件3字符设备或块设备文件4套接口文件5符号链接文件4、创建一个目录树,进入目录/xju/xxxy/jsj143,使用cat建立小型文本文件ex1和ex2,内容自定,查看文件ex1和ex2文件内容,并显示行号。
把ex1和ex2合并成一个新文件ex。
mkdir /xju/xxxy/jsj143 -p5、创建一个目录树/cmd/cbin和/cmd/dbin,把/bin下以c开头的文件复制到/cmd/cbin,把/bin下以d开头的文件复制到下/cmd/dbin。
修改目录/cmd/cbin的名字为/cmd/bin,并删除/cmd/dbin目录。
然后,复制/cmd目录到/xju/xxxy/jsj143目录下。
6、进入目录/xju/xxxy/jsj143,查看文件ex1,ex2的属性,注意文件的属主和属组。
把文件ex1的属主和属组分别改成xxxy,把文件ex2的属主和属组分别改成你的账户。
linux大作业
学号:姓名:班级:
大作业任务要求:
一、Shell编程要求:写出两个Shell程序,每个程序不少于十五行;说明程序主要功能;每行给出注释。
二、Linux操作系统配置实例要求:查阅资料结合实际使用情况,写出Linux操作系统使用中的一个配置的详细过程;具体配置目标不限(自选)。
三、Linux操作系统应用开发实例要求:编写Linux下的一个应用程序。
开发语言和工具不限;给出源代码和运行结果。
关键代码部分要给出注释。
四、Linux内核源码解读
要求:任选Linux内核源码,写出该模块运行过程;在每行内核源码后注释说明;解读源码不少于三十行。
收到的大作业内容不能雷同。
Linux大作业 (2)
目录一、Shell编程 (2)1.1判断是否为自己的名字 (2)1.2 U盘的卸载与挂载 (2)二、Linux操作系统配置实例 (4)2.1 NFS服务配置 (4)2.1.1 服务器端 (4)2.1.2 客户端 (5)2.2 Samba服务配置 (7)2.2.1Samba服务器配置 (7)2.2.2 配置客户端,测试Samba服务器 (8)2.2.4 为一个组配置Samba共享 (8)2.2.5 关于Samba服务器的其它命令 (9)三、Linux操作系统应用开发实例 (9)3.1 计算学生的总成绩和平均成绩 (9)3.1.1 功能 (9)3.1.2 代码 (10)四、Linux内核源码解读 (11)4.1 sys.c 程序 (11)4.1.1 功能描述 (11)4.1.2 代码注释 (11)4.2 sys.h文件 (12)4.2.1 功能描述 (12)4.2.2 代码注释 (12)一、Shell编程要求:写出两个Shell程序,每个程序不少于十五行;说明程序主要功能;每行给出注释。
1.1判断是否为自己的名字#!/bin/shyes_or_no() { //定义一个判断函数echo “Is your name $* ?” //输出提示*是否为你的名字while true //while do 循环doecho -n “Enter yes or no: “ //输出提示回答是或者不是read x //读取所输入的数据case “$x” in//case语法选择y | yes ) return 0;; //输入y 或者yes 返回n | no ) return 1;; //输入n 或者no 返回x的值*) echo “Answer yes or no”;; //如果输入的不是以上几项就提示esac done} echo “Original parameters are $*” //输出if yes_or_nothen echo “Hi $1, nice name” //输出经过判断的名字,是你的名字else echo “Never mind” //不是你的名字fiexit 0 //退出1.2 U盘的卸载与挂载#!/bin/sh#mountusb.shquit(){clear //退出程序函数echo“*******************************************************************”echo“*** thank you to use,Good bye! ****”exit 0}mountusb(){ //加载U盘函数clearmkdir /mnt/usb //在/mnt下创建usb目录/sbin/fdisk –l | grep /dev/sd //查看U盘设备名称echo –e “Please Enter the device name of usb as shown above:\c”read PARAMETER mount /dev/$PARAMETER /mnt/usb}umountusb()//卸载U盘函数{clearls -la /mnt/usb}display() //显示U盘信息函数{clearumount /mnt/usb}cpdisktousb() //拷贝硬盘文件到U盘函数{clearecho –e “Please Enter the filename to be Copide (under Current directory):\c”read FILEecho “Copying,please wait!...”cp $FILE /mnt/usb}cpusbtodisk() //拷贝U盘函数到硬盘文件{clearecho -e “Please Enter the filename to be Copide in USB:\c”read FILEecho “Copying ,Please wait!...”cp /mnt/usb/$FILE . //点(.)表示当前路径}clearwhile truedoecho“=====================================================================”echo “*** LINUX USB MANAGE PROGRAM ***” echo “ 1-MOUNT USB ”echo “ 2-UNMOUNT USB ”echo “ 3-DISPLAY USB INFORMA TION ”echo “ 4-COPY FILE IN DISK TO USB ”echo “ 5-COPY FILE IN USB TO DISK ”echo “ 0-EXIT ”echo“=====================================================================”echo –e “Please Enter a Choice(0-5):\c”read CHOICE //读取输入数据case $CHOICE in //case条件跳转1)mountusb ;;2)unmountusb ;;3)display ;;4)cpdisktousb ;;5)cpusbtodisk ;;0)quit ;;*) e cho “Invalid Choice!Corrent Choice is (0-5)”sleep 4clear;;esacdone二、Linux操作系统配置实例要求:查阅资料结合实际使用情况,写出Linux操作系统使用中的一个配置的详细过程;具体配置目标不限(自选)。
linux操作系统大作业2
武汉理工大学华夏学院Linux 操作系统大作业专业软件工程班级软件1111姓名董丽敏成绩指导教师凌伟Linux 操作系统大作业一、VI编辑器的操作1请在 /root 这个目录下建立一个名为 vitest 的目录;2进入 vitest 这个目录当中;3将 /etc/man.config 拷贝到本目录底下;4使用 vi 开启本目录下的 man.config 这个档案;5在 vi 中设定一下行号;6移动到第58 行,向右移动 40 个字符,请问您看到的双引号内是什么目录?7移动到第一行,并且向下搜寻一下『MAN』这个字符串,请问他在第几行?8接着下来,我要将 50 到 100 行之间的 man 改为 MAN ,并且一个一个挑选是否需要修改,如何下达指令?9修改完之后,突然反悔了,要全部复原,有哪些方法?10我要复制 51 到 60 行这十行的内容,并且贴到最后一行之后;11删除 11 到 30 行之间的 20 行;12将这个档案另存成一个 man.test.config 的檔名;13去到第 29 行,并且删除 15 个字符;14请问目前的档案有多少行与多少字符?15储存后离开吧!步骤如下显示1. mkdir vitest2. cd vitest3. cp /etc/man.config .4. vi man.config5. 『:set nu』然后你会在画面中看到左侧出现数字即为行号。
6. 先按下『58G』再按下『40→』会看到『/dir/bin/foo』这个字样在双引号内;7. 先执行『1G』或『gg』后,直接输入『/MAN』,则会去到第11行!8. 直接下达『:50,100s/man/MAN/gc 』命令!若一直按『y』最终会出现『在23 行内置换25 个字符串』的说明。
9.一直按『u 』回复到原始状态。
10. 『51G』然后再『10yy 』最后一行会出现『复制十行』类的说明字样。
按下『G 』到最1后一行,再给他『p 』贴上10行!11. 因为11~30 20 行,因此『11G 』→『20dd 』就能删除20行12. 『:w man.test.config 』,最后一行出现"man.test.config" [New].. 的字样。
Linux大作业
目录1. Linux 的概述 (1)2.学习Linux操作系统的目的和要求 (1)3.基本网络命令的使用 (2)3.1 ping 命令 (2)3.2 ifconfig命令 (2)3.3 netstat命令 (3)4.Linux系统的管理与配置 (4)4.1 网络文件配置 (4)4.3 NFS 文件远程挂载 (6)4.3.1配置NFS服务器 (6)4.3.2 实现远程挂载 (6)4.4 Samba (7)4.4.1 Samba服务器的配置 (7)4.4.2 Samba共享 (7)5.Shell编程 (8)5.1 编写Shell脚本程序 (8)5.2 编写Shell弹出式菜单程序 (9)5.3 编写乘法表 (10)6.gcc 编程的使用 (11)6.1 用递归求阶乘 (11)6.2编写累加程序 (12)6.3 求奇数程序 (14)总结 (15)参考文献: (15)Linux 基础与应用前言Linux操作系统是多用户、多任务的操作系统,具有强大的可移植性,良好地编程环境和强大的网络功能。
Linux 操作系统是一个免费的操作系统,Linux 的内核是Linux的主体,内核负责控制硬件设备、文件系统和程序任务调度等工作,但不包括用户应用程序。
Linux操作系统以它的高效性和灵活性著称,Linux 模块化的设计结构,使得它既能在价格昂贵的工作站上运行,也能够在廉价的PC机上实现全部的Unix特性,具有多任务、多用户的能力,所以得到很广泛的应用。
我们这学期学习的Linux是RED HAT Linux系统,学习Linux的常用命令、Linux的常用工具、Linux系统管理和配置、Linux常用应用程序、Linux下的Shell编程、gcc编程等Linux系统下的操作。
Linux作为一个日渐流行的多用户、多任务操作系统,有着开放、稳定、安全、费用低廉等许多其它操作系统无可比拟的优势,具有越来越广泛的应用前景。
在网络技术迅速发展的今天,网络操作系统是网络中的核心技术,所以本课程是计算机科学与技术专业学生的一门必修专业课。
LinuxC编程大作业
LinuxC编程大作业
1.内容(二选一)
A.字符界面的挖雷游戏
●参考windows操作系统下的挖雷游戏,字符界面下实现其基本的挖雷游戏功
能,雷区小,中,大可选,难度(布雷树木)可选。
●具备用户登录功能,能保存浏览该用户的前20次游戏成绩,用户数据和游戏
数据保存为记录文件。
●实现游戏成绩排行榜功能(即统计所有游戏用户的游戏成绩,按时间排雷时间
的多少列出前十)。
B.学生管理信息系统
●参考12章综合练习的学生管理程序,字符界面下实现一个功能简单的学生管
理信息系统,至少具备学生信息的增删改和浏览,按条件查询,统计功能;
●提高功能:学生课程管理模块,选课,录成绩及其查询统计功能。
●所有的信息采用记录文件作持久化保存。
2.要求
A.独立完成大作业,严禁抄袭,雷同者全部不及格。
B.提交内容:大作业报告(格式参考学院的格式文档)和源代码(学号+姓名),全部
提交给班长统一刻盘。
C.提交截至时间:17周周四。
linux编程大作业题目
linux编程大作业题目第一部分简述题目要求:这部分题目必做,要详细回答,最好用自己理解的语言回答,有些题目可用图形和举例等阐述问题。
1、makefile文件的作用是什么,makefile文件中有一种变量,其值是根据具体的规则来确定的,称为自动变量,其中代表所有依赖文件列表的是哪个;举例说明make命令的工作流程。
2、什么是进程,什么是线程,它们之间有何差别,请编程说明。
3、简述Linu某文件系统通过i节点把文件的逻辑结构和物理结构转换的工作过程。
解释i节点在文件系统中的作用。
4、文件指针FILE某与文件描述符是一个什么样的关系,请画图说明。
5、简述与window的文件系统相比,linu某文件系统有什么特点,并用图详细描述。
6、Linu某创始人是谁,Linu某操作系统的诞生、发展和成长过程始终依赖着的重要支柱有哪些,并描述Linu某的特点。
7、为什么要学习Linu某开源技术。
8、Linu某的主要组成包括什么。
9、什么是Linu某内核,它的作用是什么。
什么是Linu某的内核版本和发行版本?10、什么是符号链接,什么是硬链接?符号链接与硬链接的区别是什么?第二程序设计题目要求:Shell程序设计部分、文件和目录部分、进程和信号部分、网络编程部分则必做(其中前3部分选作5道题目,网络编程为自学部分,选作2道题目)。
若做综合设计题目或自拟综合设计题目,则Shell程序设计部分、文件和目录部分、进程和信号部分、网络编程部分可不做。
Shell程序设计部分1、设计hell脚本程序,运行结果如下:----------------Linu某13/06/11----------------A:查看进程信息B:查看用户信息C:显示当前目录信息D:退出---------------当用户输入相应的数字执行相应的功能。
2、设计hell脚本程序,在屏幕上输出操作系统的信息,包括计算机名、Linu某分发版本名称、Linu某内核版本和当前的IP地址。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
武汉轻工大学
数学与计算机学院
2019-2020学年第一学期
Linux大作业
指导老师: **
专业:信息管理与信息系统
班级:信管1601班
学号: ***********
姓名: **
2019年10月29 日
历史
1991年,还在芬兰赫尔辛基大学上学的Linus Torvalds在自己的Intel 386计算机上开发了属于他自己的第一个程序,并利用Internet发布了他开发的源代码,将其命名为Linux,从而创建了Linux操作系统,并在同年公开了Linux的代码,从而开启了一个伟大的时代。
在之后的将近30年的时间里,越来越多的工程师投入到Linux,帮助不断完善Linux的功能。
现在的Linux系统架构凭借优秀的分层和模块化的设计,融合了大量的设备和不同的物理架构。
这篇文章,也是对Linux系统的一个非常简单的介绍,主要讲解Linux的进程调度、内存管理、设备驱动、文件系统、网络模块。
Linux内核架构图
上图就是Linux内核的架构图,从硬件层--->操作系统内核--->应用层,这套系统架构的设计应用于各类软硬件结合的系统上,比如物联网系统,单片机系统、机器人等领域。
进程调度
进程在Linux系统中称为process或task。
操作系统中进程的数据结构包含很多元素,诸如:地址空间、进程优先级、进程状态、信号量、占用的文件等,往往用链表链接。
CPU在每个系统滴答(Tick)中断产生的时候检查就绪队列里边的进程(遍历链表中的进程结构体),如有符合调度算法的新进程需要切换,保存当前运行的进程的信息(包括栈、地址等)后挂起当前进程,然后运行新的进程,这就是进程调度。
CPU调度的基本依据是进程的优先级。
调度的终极目标是让高优先级的进程能及时得到CPU的资源,低优先级的任务也能公平的分配到CPU资源。
不过因为保存当前进程的信息所以进程的切换本身是有成本的,调度算法同样需要考虑效率。
在早期Linux内核中,就是采用轮询算法来实现的,内核在就绪的进程队列中选择高优先级的进程执行,每次运行相等时间,该算法简单直观,但仍然会导致一些低优先级的进程长时间不能执行。
为了提高调度的公平性,在后来Linux内核(2.6)中,引入了CFS调度器算法。
CFS引入虚拟运行时间的概念,虚拟运行时间用task_struct->se.vruntime表示,通过它来记录和度量进程应该获得的CPU运行时间。
在理想的调度情况下,任何时候所有的进程都应该有相同的task_struct->se.vruntime值。
因为每个进程都是并发执行,没有进程会超过理想状态下应该占有的CPU时间。
CFS选择需要运行的进程的逻辑基于task_struct->se.vruntime值,它总是选择task_struct->se.vruntime值最小的进程来运行(为了公平)。
CFS使用基于时间排序的红黑树来为将来进程的执行时间线。
所有的进程按task_struct->se.vruntime关键字排序。
CFS从树中选择最左边的任务执行。
随着系统运行,执行过的进程会被放到树的右侧,逐步让每个任务都有机会成为最左边的进程,从而让每个进程都能获取CPU资源。
总的来说,CFS算法首先选一个进程,当进程切换时,该进程使用的CPU时间会加到该进程task_struct->se.vruntime里,当task_struct->se.vruntime的值逐渐增大到别的进程变成了红黑树最左边的进程时,最左边的进程被选中执行,当前的进程被抢占。
内存管理
内存,一种硬件设备,操作系统对其寻址,找到对应的内存单元,然后对其操作。
CPU 的字节长度决定了最大的可寻址空间,32位机器最大寻址空间是4G Bytes,64位机器最大寻址空间是2^64 Bytes。
最大寻址空间和物理内存大小无关,称之为虚拟地址空间。
Linux内核把虚拟地址空间分为内核空间和用户空间。
每个用户进程的虚拟地址空间范围是0~TASK_SIZE。
从TASK_SIZE~2^32或2^64的区域保留给内核,不能被用户进程访问。
虚拟地址空间与物理内存的映射
绝大多数情况下,虚拟地址空间比实际物理内存大,操作系统需要考虑如何将实际可用的物理内存映射到虚拟地址空间。
Linux内核采用页表(page table)将虚拟地址映射到物理地址。
虚拟地址和进程使用的用户&内核地址有关,物理地址用来寻址实际使用的内存。
上图所示,A和B进程的虚拟地址空间被分为大小相等的等份,称为页(page)。
物理内存同样被分割为大小相等的页(page frame)。
进程A第1个内存页映射到物理内存(RAM)的第4页;进程B第1个内存页映射到物理内存第5页。
进程A第5个内存页和进程B第1个内存页都映射到物理内存的第5页(内核可决定哪些内存空间被不同进程共享)。
页表将虚拟地址空间映射到物理地址空间。
inode 结构
inode并不是组织文件的唯一方式,最简单的组织文件的方式,是把文件依次顺序的放入存储设备,但如果有删除操作的话,删除造成的空余空间夹杂在正常文件之间,很难利用和管理;复杂方式可以用来链表来做,每个数据块有个指针,指向属于同一文件的下一个数据块,这样的好处是可以利用零散的空余空间,坏处是对文件的操作必须按照线性方式进行,如果随机读取就必须要遍历链表,直到目标位置。
由于这一遍历不是在内存进行,所以速度很慢。
inode既可以充分利用空间,在内存占据空间不与存储设备相关,解决了上面的问题。
但inode也有自己的问题。
每个inode能够存储的数据块指针总数是固定的。
如果一个文件需要的数据块超过这一总数,inode需要额外的空间来存储多出来的指针。
网络模型
Host-to-Host层:相当于OSI模型的物理层和数据链路层,负责将数据从一个计算机传输到另一个计算机。
在Linux内核的角度来看,这一层是通过网卡的设备驱动程序实现的。
Internet层:相当于OSI模型的网络层,负责让网络中的计算机可以交换数据(这些计算机并不一定是直连的)。
该层同时负责传输的包分成指定的大小,因为包在传输路径上每个计算机支持的最大网络包的大小不一样,在传输时数据被分割成不同的包,在接收端再组合。
该层为网络中的计算机分配唯一的网络地址。
Transport层:相当于OSI模型的传输层,负责让两个连接的计算机上运行的应用程序之间的数据传输。
比如,两台计算机上的客户端和服务端程序,通过端口号来识别通信的应用程序。
App层:相当于OSI模型的会话层、表示层、应用层,网络中不同计算机的两个应用程序建立连接后,这一层负责实际内容的传输。
Linux内核子系统的实现通过C代码实现,每个层只能和它上下层通信。
设备通信
内核访问外设主要有两种方式:I/O端口和I/O内存映射。
具体不展开介绍了。
内核动态接收外设发来的请求(数据)主要通过两种方式:轮询和中断。
轮询:周期性的访问查询设备是否有数据,如果有,便获取数据。
这种方法比较浪费CPU 资源。
中断:核心思想是外设有请求时主动通知CPU,中断的优先级最高,会中断CPU的当前进程运行,每个CPU都提供了中断线,每个中断由唯一的中断号识别,内核为每个应用的中断提供一个中断处理方法。
当有数据已准备好可以给内核或者间接被一个应用程序使用的时候,外设出发一个中断。
使用中断确保系统只有在外设需要处理器介入的时候才会通知CPU,提高了效率。
PS:块和扇区的概念:块是一个指定大小的字节序列,用于保存在内核和设备间传输的数据,块的大小可以被设置,默认是4096 bytes,扇区是存储设备操作的最小单元,默认是512 Bytes,块是一段连续的扇区。
与外设的交互
说白了就是输入(input)、操作(operate)、输出(ouput)的操作。
内核需要完成三件事情:
1. 针对不同的设备类型实现不同的方法来寻址硬件。
2. 必须为用户空间提供操作不同硬件设备的方法,且需要一个统一的机制来确保尽量有限的编程工作。
3. 让用户空间知道在内核中有哪些设备。