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

linux

linux
linux

基于虚拟内存技术的程序执行两次映射:

1.应用程序向虚拟内存映射:用虚拟地址为程序编址,映射到虚拟内存空间;确定其代码段、数据段和堆栈段的地址空间,系统以逻辑地址访问虚拟内存中的某个程序段;

2.把要运行的程序段复制到物理内存,映射到物理内存空间,确定程序的物理地址。虚拟内存逻辑地址与物理地址的对应记录表;系统自物理内存地址读取所需数据

针对Linux内核,如下机制严重地影响了实时性:

1 Linux调度及其抢占

第一,虽然Linux2.6中代码被设置了抢占点,内核已经可以抢占,因而实时性得到了加强。但是内核中仍有大量的不可抢占区域,如由自旋锁(spinlock)保护的临界区,以及一些显式使用preempt_disable失效抢占的临界区。还包括核心进程是不能被抢先的,即如果有Linux的核心态进程在运行时,其他进程不管其优先级多高都必须等待。

2 Linux的中断

中断总是最高优先级的,在系统调用中为了保护临界区资源,Linux会长时间关掉中断。Linux在一些同步操作中使用了中断关闭指令,中断关闭将增大中断延迟,降低系统的实时性。这种情况在实时系统中是不允许发生的。

连续的低优先的中断可能持续占有CPU,而高优先的某些进程则无法获得CPU。在Linux中,中断(包括软中断)是最高优先级的,不论在任何时刻,只要产生中断事件,内核将立即执行相应的中断处理函数以及软中断,等到所有挂起的中断和软中断处理完毕有才执行正常的任务。因此在标准的Linux系统上,实时任务根本不可能得到实时性保证。例如,假设在一个标准Linux系统上运行了一个实时任务(即使用了SCHED_FIFO调度策略并且设定了最高的实时优先级),但是该系统有非常繁重的网络负载和I/O负载,那么系统可能一直处在中断处理状态而没有机会运行任何任务,这样实时任务将永远无法运行,抢占延迟将是无穷大。因此,如果这种机制不改,实时Linux将永远无法实现。

3 linux的时钟粒度

操作系统必须对时间精度和时钟中断处理的时间开销进行折中考虑,时间精度越高,意味着时钟中断越频繁。Linux通过对硬件时钟编程产生周期为100hz的时钟,中断任务调度的时间精度最高能达到10ms。这无法满足一些对时间精度要求苛刻的实时应用.

在Linux 2.6内核中还是允许在编译内核时选定不同的Hz值。在Linux2.6版本内核中,时钟中断发生的频率范围为50~1200Hz,周期不小于0.8ms,而工业上很多的中断周期都在几十us之内,这无法满足一些对时间精度要求苛刻的实时应用。

4 Linux的虚拟内存

Linux采取了虚拟内存的内存管理方式,即Linux利用交换空间让进程运行在一个比实际内存大的虚拟内存空间里。它使得操作花费的时间具有不可预测性在实时系统中是不允许的。

安装RT-Linux的方法和步骤

RT-Linux是针对Linux官方原版内核发布的,因此在RT-Linux官方网站上给出的安装方法只适用于Linux原版内核,在Red Hat Linux 9(内核版本2.4.20-8)环境下安装RT-Linux3.1,实践表明是成功的。

1.下载RT-Linux完整的源代码tar包,存放在/usr/src目录下。RT-Linux的免费版本可以从http://https://www.wendangku.net/doc/677709707.html,上获得,文件名为rtlinux-3.1.tar.gz;

2. 下载完整的与Red Hat Linux 9版本相应的官方内核,存放在/usr/src目录下。2.4.版本的内核源代码tar包可以从http://https://www.wendangku.net/doc/677709707.html, 获得,文件名为linux-2.4.20.tar. gz。

3.将Linux源代码右键解压至/usr/src目录,解压后会出现/usr/src/linux-2.4.20

目录;

tar xvfz linux-2.4.20.tar.gz /usr/src

4.在Shell终端中输入命令,切换至src目录:

#cd/usr/src

建立指向文件夹linux 2.4.20的符号连接,以简化后续命令输入:

ln -S linux-2.4.20 linux

5.解压rtlinux-3.1.tar.gz至/usr/src目录,

tar xvfz rtlinux-3.1.tar.gz /usr/src

解压后会出现/src/usr/rtlinux3.1目录下,在patches目录下找到与内核版本相对应的patch 文件,如kernel_patch-2.4.20-rtl,并将其拷贝至/usr/src目录下,为简化后续命令输入,可将其改名为rtlinux-patch;

6。在Shell终端中输入命令,切换至linux源代码目录,并patch内核:

#cd/usr/src/linux

#patch –pl <../rtlinux-patch

7.配置内核:

#make config或make menuconfig或make xconfig

此步骤中配置的是RT-Linux系统的子内核,Linux提供给RT-Linux的所有支持必须在此步骤中进行配置。其中,make config是传统的以字符提示模式进行内核配置的命令,make menuconfig是菜单形式进行内核配置的交互式命令,make xconfig是在X Window下以窗口形式进行内核配置的命令,这里推荐采用make xconfig,其操作简洁易懂,配置界面如图3-8所示。

8.建立依赖关系:

#make dep

9编译内核及内核模块,并进行安装:

#make bzlmage

#make modules

#make modules_install

10.安装新内核,将/arch/i386/boot目录下刚编译得到的bzlmage文件拷贝至/boot 目录下,并更名至rtlinuz:

#cp arch/i386/boot/zlmage boot/rtlinuz

11.配置Grub,编辑/boot/grub/grub conf加上RT Linux启动选项.例如:

title RT_Linux //设置RT-Linux系统启动时的提示字符

root (hd l,5) //设置RT-Linux启动时挂载位置

kernel/boot/rtlinuz ro root=/dev/hdb6 //设置RT-Linux系统引导时所使用的内核

12.重新启动计算机:

#reboot或shutdown-r now

13.计算机重新启动后,在Grub启动菜单中选择"RT-Linux”,回车后进入RT-Linux 系统:

14.在Shell终端中输入命令,进入RT-Linux源代码包所在目录:

#cd/usr/src/rtlinux_3.1

15.配置RT-Linux:

#make config或make menuconfig或make xconfig

此处可按缺省配置即可:

16.建立依赖关系(可选,如跳过则后面的make命令会自动建立依赖关系):

#make dep

17 编译RT-Linux内核及实时模块,并进行安装:

#make

#make install

该命令会在/usr目录下创建RT Linux-xx(xx指RTLinux的版本号)目录,其中包括RT-Linux运行所需的头文件及相关文档等;

18.测试RT-Linux内核及实时模块是否能正常工作(可选):

#make regression

如果RT-Linux没有正确配置和编译,运行此命令会令系统挂起,正常的情况下会输出测试通过的“ok"信息;

19.最后,启动RT-Linux内核模块。

Linux实时调度策略

Linux提供了两种实时调度策略: SCHED_FIFO和SCHED_RR。而普通的、非实时的调度策略是SCHED_NORMAL。

SCHED_FIFO

SCHED_FIFO实现了一种简单的、先入先出的调度算法,它不使用时间片。SCHED_FIFO 级的进程回比任何SCHED_NORMAL级的进程都先得到调度。一旦一个SCHED_FIFO级进程处于可执行状态,就会一直执行,直到它自己阻塞或者显式地释放处理器为止;它不基于时间片,可以一直执行下去。只有较高优先级的SCHED_FIFO或者SCHED_RR任务才能抢占SCHED_FIFO任务。如果有两个或者更多的SCHED_FIFO级进程,它们会轮流执行,但是在它们愿意让出处理器时会再次让出。只要有SCHED_FIFO级进程在执行,其他级别较低的进程就只能等待它结束后才有机会执行。

SCHED_RR

SCHED_RR与SCHED_FIFO大体相同,只是SCHED_RR级的进程在耗尽事先分配给它的时间片后就能再接着执行了。也就是说,SCHED_RR是带有时间片的SCHED_FIFO -- 这是一种实时轮流调度算法。当SCHED_RR任务耗尽它的时间片,在同一优先级的其他实时进程被轮流调度。时间片只能用来重新调度同一优先级的进程。对于SCHED_FIFO进程,高优先级总是立刻抢占地优先级,但是低优先级进程决不能抢占SCHED_RR任务,即使它的时间片耗尽。

这两种实时调度算法实现的都是静态优先级。内核不为实时进程计算动态优先级。这能保证给定优先级别的实时进程总能抢占优先级比它低的进程。

工作队列(work queue)API:

1、INIT_WORK(_work, _func, _data);初始化指定工作,目的是把用户指定的函数_func及_func需要的参数_data赋给work_struct的func及data变量。

2、schedule_work(struct work_struct *work)对工作进行调度,即把给定工作的处理函数提交给缺省的工作队列和工作者线程。工作者线程本质上是一个普通的内核线程,在默认情况下,每个CPU均有一个类型为“events”的工作者线程,当调用schedule_work时,这个工作者线程会被唤醒去执行工作链表上的所有工作。

3、schedule_delayed_work(struct work_struct *work, unsigned long delay);

延迟执行工作,与schedule_work类似。

4、flush_scheduled_work(void);刷新缺省工作队列。此函数会一直等待,直到队列中的所有工作都被执行。

5、cancel_delayed_work(struct work_struct *work);并不取消任何延迟执行的工作,因此,如果要取消延迟工作,应该调用cancel_delayed_work。

#include

#include

int main()

{

int n,fd[2]; // 这里的fd是文件描述符的数组,用于创建管道做准备的

pid_t pid;

char line[100];

if(pipe(fd)<0) // 创建管道

printf("pipe create error/n");

if((pid=fork())<0) //利用fork()创建新进程

printf("fork error/n");

else if(pid>0){ //这里是父进程,先关闭管道的读出端,然后在管道的写端写入“hello world"

close(fd[0]);

write(fd[1],"hello word/n",11);

}

else{

close(fd[1]); //这里是子进程,先关闭管道的写入端,然后在管道的读出端读出数据n= read(fd[0],line,100);

write(STDOUT_FILENO,line,n);

}

exit(0);

}

《中文Linux应用编程界面(API)规范》

《中文Linux应用编程界面(API)规范》 编制说明 一、任务来源 根据国家863计划信息技术领域,软件重大专项,中文Linux和办公软件相关标准与规范课题研究开发任务的规定,和根据国家质检总局和信息产业部2003年放国家标准和行业标准制、修订计划安排,制订《中文Linux应用编程界面(API)规范》。该项目由中软网络技术股份有限公司负责起草,项目计划代号为 二、工作过程 在国家任务下达后,中软网络技术股份有限公司就组织了工作组,在前期工作的基础上,收集与翻译了国际上有关Linux的主要标准的最新版本LSB 1.3(目前的最新版本为 LSB 2.0)和OpenI13N 1.3。总结了多年来在Linux开发工作和标准制订工作的经验。在“非典”肆虐期间,编写了制订《中文Linux应用编程界面(API)规范》的计划和大纲。 在“四所”的组织下成立了“中文Linux标准”工作组。在工作组的统一安排下,确定了编写工作的计划与大纲。于2003年9月初,编写了《中文Linux 应用编程界面(API)规范》初稿,提交工作组讨论。工作组前后经过了近10次讨论,几经修改,先后提交了三次修改稿,才形成了《征求意见稿》。《征求意见稿》通过在网上和有关单位广泛征求意见,收集了许多很好的意见。工作组又组织了有FSG和OpenI18N有关人员和国内的Linux厂商、专家及有关人员参加的“Linux标准研讨会”。 2004年4月信息产业部成立Linux标准工作组,组织更大范围的企业参与标准的制定工作。在此基础上工作组对“意见汇众”进行了深入的整理、分析和讨论,确定了修改意见。根据这些意见,经过修改,我们提交了《中文Linux 应用编程界面(API)规范》的《送审稿》。 2006年在发展基金及国家十五项目的支持下,中国电子技术标准化研究所组织国内主要Linux操作系统发布商,对标准的符合性测试展开研究,并根据测试研究的结果对标准做中描述不够严谨的地方做出相应调整。 三、主要说明 1、标准的目的

常用linux命令(面试常用)

date显示系统日期 cd.. 返回上级目录 pwd 显示当前路径 ls 查看目录中的文件 ls -F 查看目录中的文件 ls -l 显示文件和目录的详细资料 ls -a显示隐藏文件 ls -lh 显示权限 tree 显示文件和目录由根目录开始的树形结构 shutdown -h now 关闭系统 mkdir dir1 创建目录 rm -f file1 删除文件 rmdir 删除目录 cp 复制文件 find /-name file1 从/开始进入根文件系统搜索文件和目录 groupadd group_name 创建一个新用户组 groupdel group_name 删除一个用户组 useradd user1 创建一个新用户 userdel -r user1 删除一个用户 passwd 修改口令 passwd user1 修改一个用户的口令 gunzip file1.gz 解压一个file1.gz的文件 gzip file1 压缩文件 cat file1 从第一个字节开始查看文件 grep Aug /log/massages 在 massage文件中查找关键字Aug grep ^Aug /log/massages 在 massage文件中查找以Aug开头的词汇df 查看磁盘空间占用情况,使用权是所有用户 free 查看内存的使用情况 quota 显示磁盘使用情况和限制情况,使用权是超级用户 lp 打印文件 ifconfig 查看和更改网络接口的地址和参数 ping检测主机网络接口状态,使用权限是所有用户 Telnet 远程登录 ftp 文件传输 more一页一页显示档案内容 who 查看目前谁在线 finger 查看关于系统用户的信息 clear 清除屏幕

《Linux系统应用与开发教程》所有课后习题和答案

《Linux系统应用与开发教程》所有课后习题和答案 第1章Linux概述 (1) 第2章shell及常用命令 (4) 第3章vi编辑器的使用 (7) 第4章X Window系统的使用 (9) 第5章Linux系统的常用软件 (11) 第6章硬件管理 (11) 第7章网络基本配置 (12) 第8章常用网络服务的配置和使用 (15) 第9章系统管理与监控 (19) 第10章Linux系统的安全管理 (21) 第11章shell程序设计 (24) 第12章gcc的使用与开发 (26) 第13章gtk+图形界面程序设计 (27) 第14章Qt图形界面程序设计 (28) 第15章集成开发环境KDevelop的使用 (31) 第1章 Linux概述 1.什么是Linux? Linux是一套免费使用和自由传播的类UNIX操作系统,源代码开放,能运行于各类硬件平台,包括Intel x86系列和RISC处理器。这个系统是由世界各地成千上万的程序员设计和实现的。其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的UNIX兼容产品。 2.Linux有哪些特性? (1)开放性 (2)多用户 (3)多任务 (4)良好的用户界面 (5)设备独立性 (6)丰富的网络功能

(7)可靠的系统安全 (8)良好的可移植性 3.Linux与Windows操作系统的主要区别是什么? (1)从发展的背景看,Linux是从一个比较成熟的操作系统发展而来的,而其他操作系统,如Windows等,都是自成体系,无对应的相依托的操作系统 (2)从使用费用上看,Linux是一种开放、免费的操作系统,Windows是封闭的系统,需要有偿使用。 (3)Linux上丰富的应用软件也是自由的,而在Windows下,几乎所有的软件都有独立的版权,需要购买使用,即使某些软件可以免费使用,也一般不提供其源代码,更不用说由用户修改扩充其功能了。 (4)Windows对硬件配置要求高,而Linux在低端PC系统上仍然可以流畅运行4.Linux与Unix的共同点与不同点是什么? 共同点:由于Linux是从Unix发展来到,它遵循Unix开放标准,基本支持同样的软件、程序设计环境和网络特性,可以说Linux是UNIX的PC版本,Linux在PC机上提供了相当于UNIX工作站的性能。 与商用Unix的不同点有:1)Linux是免费软件,用户可以从网上下载,而商用的UNIX除了软件本身的价格外,用户还需支付文档、售后服务费用;2)Linux拥有GNU软件支持,Linux能够运行GNU计划的大量免费软件,这些软件包括应用程序开发、文字处理、游戏等方面的内容;3)Linux的开发是开放的,任何志愿者都可以对开发过程做出贡献;而商用UNIX则是由专门的软件公司进行开发的。 与自由Unix的不同点: 1)在组织方式上,FreeBSD由它的核心团队(core team)的领导,他们负责原始程序的开发与维护。有core team的优点是原始程序会有一致性,会有组织的被更新,但是整个系统的活力操纵在core team手中,缺乏活力。Linux没有核心团队,在Linus的主导下来自世界各地的爱好者都可以发布自己的patch,缺点是源代码杂乱无章且可能会相互冲突。 2)在发展方向上,FreeBSD的核心团队将主要精力投入在UNIX自身的风格和特点上。Lin ux通常会首先加入商品化系统上的各种东西,比如新的硬件驱动、samba等。因此,从易用和可用上讲,Linux更容易上手和使用。 3)在系统核心功能上二者区别不大,但在Linux系统上,几乎可是找到任何需要的功能 4)在系统的性能上,据专家分析,FreeBSD在网络性能、软件移植性和系统规范化上略胜一畴,而在硬件支持、磁盘IO操作等方面Linux略强一些。 5.什么是GNU软件,什么是GPL和LGPL? GUN项目主要由自由软件基金资助的一个项目,目标是开发一个自由的、UNIX类型的操作系统,称为GNU系统。GNU是―GNU’s Not UNIX‖的首字母的递归缩写,目前使用Linux内

Linux桌面Ubuntu图文安装教程

Ubuntu随着微软的步步紧逼,包括早先的Windows黑屏计划、实施,逮捕番茄花园作者并判刑,种种迹象表明,中国用户免费使用盗版Windows的日子将不会太长久了,那么这个世界上有没有即免费又易用的操作系统呢?答案是有,那就是Ubuntu操作系统。Ubuntu 被授予PC World 2006 World Class Award,证明了Ubuntu成为世界最好的100个产品之一。Ubuntu是一个流行的Linux操作系统,基于Debian发行版和GNOME桌面环境,和其他Linux 发行版相比,Ubuntu非常易用,和Windows相容性很好,非常适合Windows用户的迁移,预装了大量常用软件,中文版的功能也较全,支持拼音输入法,预装了Firefox、Open Office、多媒体播放、图像处理等大多数常用软件,一般会自动安装网卡、音效卡等设备的驱动,对于不打游戏不用网银的用户来说,基本上能用的功能都有了,在Windows操作系统下不用分区即可安装使用,就如同安装一个应用软件那么容易,整个Ubuntu操作系统在Windows下就如同一个大文件一样,很容易卸载掉。下面我就介绍一下Ubuntu操作系统安装使用的方法,供Ubuntu新手参考,希望能起到Linux扫盲的作用。 一、什么是Ubuntu? Ubuntu 是一个南非的民族观念,着眼于人们之间的忠诚和联系。该词来自于祖鲁语和科萨语。Ubuntu(发音"oo-BOON-too"——“乌班图”)被视为非洲人的传统理念,也是建立新南非共和国的基本原则之一,与非洲复兴的理想密切相关。Ubuntu 精神的大意是“人道待人”(对他人仁慈)。另一种翻译可以是:“天下共享的信念,连接起每个人”。“具有ubuntu 精神的人心胸开阔,乐于助人,见贤思齐而不忌妒贤能,因为他/她拥有适度的自信,而这源自如下认识:自己乃是属于一个更大的整体,当他人受到伤害或死去时,当他人受到折磨或压迫时,这个整体就会消失。”——大主教 Desmond Tutu。作为一个基于 GNU/Linux 的平台,Ubuntu 操作系统将 ubuntu 精神带到了软件世界。 Ubuntu 是一个完全基于 Linux 的操作系统,它不但免费,而且有专业人员和业余爱好者共同为其提供技术支持。Ubuntu 爱好者社群背后的理念是“Ubuntu 哲学”:软件应该是免费的,世界各地的用户都应能够用上以他们自己的语言为界面语言的软件,他们能力上的缺失也不应该成为使用软件的障碍。此外,他们也应该拥有按照个人需要任意定制和修改软件的自由。 二、下载Ubuntu Ubuntu有三个版本,分别是桌面版(Desktop Edition),服务器版(Server Edition),上网本版(Netbook Remix),普通桌面电脑使用桌面版即可,下载地址请点这里,32位CPU 请选择32bit version,上网本则可下载Netbook Remix,目前Ubuntu已经占据三分之一的上网本市场,仅次于WIndows XP系统。Google的Chrome操作系统强有力的对手就是Ubuntu Netbook Remix。 按照电脑种类,安装方式,以及下载方式选择。 1.电脑种类 PC (Intel x86) - 一般 Intel 系列电脑 Mac (Power PC) - Power PC 系列电脑 64-bit PC (AMD 64) - AMD 64 位处理器 2.安装方式

linux常用命令

新手刚刚接触Linux的时候可能处处感到不便,不过没有关系,接触新的事物都有这样的一个过程,在你用过Linux一段时间后,你就会逐渐了解Linux其实和Windows一样容易掌握。 由于操作和使用环境的陌生,如果要完全熟悉Linux的应用我们首先要解决的问题就是对Linux常用命令的熟练掌握。本章我们就来介绍Linux的常用基本命令。 Linux常用命令 1.Linux命令基础 Linux区分大小写。在命令行(shell)中,可以使用TAB键来自动补全命令。即可以输入命令的前几个字母,然后按TAB键,系统自动补全命令,若不止一个,则显示出所有和输入字母相匹配的命令。 按TAB键时,如果系统只找到一个和输入相匹配的目录或文件,则自动补全;若没有匹配的内容或有多个相匹配的名字,系统将发出警鸣声,再按一下TAB键将列出所有相匹配的内容(如果有的话)以供用户选择。 首先启动Linux。启动完毕后需要进行用户的登录,选择登陆的用户不同自然权限也不一样,其中―系统管理员‖拥有最高权限。 在启动Linux后屏幕出现如下界面显示:Red Hat Linux release 9 (Shrike) Kernel 2.4.20.8 on an i686

login: 输入:root(管理员名)后,计算机显示输口令(password:),输入你的口令即可。当计算机出现一个―#‖提示符时,表明你登录成功! 屏幕显示Linux提示符:[root@localhost root]#_ 这里需要说明的是―Red Hat Linux release 9 (Shrike)‖表示当前使用的操作系统的名称及版本。―2.4.20.8‖表示Linux操作系统的核心版本编号。―i686‖表示该台电脑使用的CPU的等级。 下面我们来介绍常用基本命令 一,注销,关机,重启 注销系统的logout命令 1,Logout 注销是登陆的相对操作,登陆系统后,若要离开系统,用户只要直接下达logout命令即可: [root@localhost root]#logout

中文版Linux 桌面操作系统初级教程

《中文版Linux 桌面操作系统初级教程》郭守华宋雪娇编著 Linux操作系统支持多种安装方式。本章将讨论从硬盘安装对红旗Linux、共创Linux等各种版本的Linux都适用的通用方法。从硬盘安装Linux操作系统,首先要准备安装包,Linux操作系统的安 装包通常是一个或多个ISO镜像文件(一般通过网络下载就可以得到);其次,要通过某种手段启动镜像 文件中的系统安装程序;接下来,按照安装程序的提示信息进行安装就可以了。安装过程中,需要指 定Linux操作系统的安装位置,这主要涉及硬盘分区的一些知识。 综合来看,学习Linux操作系统的安装,关键要学会两点:第一、如何Linux操作系统准备硬盘 空间?第二、如何启动ISO镜像文件中的安装程序。 硬盘分区 通常,在使用硬盘时,都要进行分区。如果把未分区的硬盘比做一张大白纸,那么分区后的硬 盘就相当于这张大白纸被画上了几个大方框。一块硬盘被分成多个分区之后,各分区之间是相对独立 的,每个分区都可以有自己的文件格式,例如FAT16、FAT32、NTFS等等。 Linux操作系统需要的硬盘分区 要安装一个操作系统,一般来讲都要为它准备专门的分区。专门,意味着不能与其他操作系统 合用一个分区,也意味着不要与用户自己的数据文件合用一个分区,前者是因为不同的操作系统可能 需要不同格式的磁盘分区,后者则更多地出于用户数据安全和系统维护方便的考虑。从最低配置角度 讲,Linux 操作系统需要一个EXT2或EXT3格式的硬盘分区作为根分区,大小在2~5G就可以。另外还 需要一个SWAP 格式的交换分区,大小与内存有关:如果内存在256M以下,交换分区的大小应该是内存 的两倍;如果内存在256M以上,交换分区的大小等于内存大小即可。 Windows硬盘分区管理工具 管理硬盘分区的工具有很多,在网上也可以找到详细的使用指导。为了方便读者,本书整理收 录了Windows 环境下运行的PQMagic4.0 的使用方法,其它版本的PQMagic的使用方法也基本相同。

Linux基础及应用习题解析

1、Linux是所谓的“Free Software”,这个“Free”的含义是什么?() A、Linux不需要付费 B、Linux发行商不能向用户收费 C、Linux可自由修改和发布 D、只有Linux的作者才能向用户收费 2、Linux系统各组成部分中哪一项是基础?() A、内核 B、X Window C、Shell D、GONME 3、Linux内核管理系统不包括的子系统是哪个?()还包括设备管理系统 A、进程管理系统 B、内存管理系统 C、文件管理系统 D、硬件管理系统 4、下面关于Shell的说法,不正确的是哪个?() A、操作系统的外壳 B、用户与Linux内核之间的接口 C、一种和C类似的高级程序设计语言 D、一个命令语言解释器 5、以下哪种Shell类型在Linux环境下不能使用?() A、B Shell B、K Shell C、R Shell D、Bash 6、安装Linux至少需要几个分区?() A、2 B、3l C、4 D、5 7、RHEL Server 5系统启动时默认由以下哪个系统引导程序实施系统加载?() A、GRUB B、LILOl C、KDE D、GNOME 8、/dev/hda5 在Linux中表示什么?() A、IDE0接口上从盘 B、IDE0接口上主盘的逻辑分区 C、IDE0接口上主盘的第五个分区 D、IDE0接口上从盘的扩展分区 9、系统引导的过程一般包括如下几步:(1)MBR中的引导装载程序启动;(2)用户登录;(3)Linux内核运行;(4)BIOS自检。以下哪个顺序是正确的?()A、(4) (2) (3) (1) B、(4) (1) (3) (2) C、(2) (4) (3) (1) D、(1) (4) (3) (2) 10、KDE中要调整桌面墙纸及字体需要打开哪个组件?() A、文件管理器 B、我的电脑 C、控制中心 D、屏幕保护程序 11、Linux有几个虚拟终端?() A 、5 B、6 C、7 D、8 12、输入命令的时候,选项和参数之间可以用什么符号隔开?() A、% B、! C、空格 D、~ 13、pwd命令的功能是什么?() A、设置用户的口令 B、显示用户的口令 C、显示当前目录的绝对路径 D、查看当前目录的文件 14、输入“cd”命令并按【Enter】键后,将有什么结果?() A、从当前目录切换到根目录 B、屏幕显示当前目录 C、从当前目录切换到用户主目录 D、从当前目录切换为上一级目录

LINUX常用数据结构

/* * List definitions. */ #define LIST_HEAD(name, type) \ struct name { \ struct type *lh_first; /* first element */ \ } #define LIST_ENTRY(type) \ struct { \ struct type *le_next; /* next element */ \ struct type **le_prev; /* address of previous next element */ \ } /* * List functions. */ #define LIST_INIT(head) { \ (head)->lh_first = NULL; \ } #define LIST_INSERT_AFTER(listelm, elm, field) { \ if (((elm)->field.le_next = (listelm)->field.le_next) != NULL) \ (listelm)->field.le_next->field.le_prev = \ &(elm)->field.le_next; \ (listelm)->field.le_next = (elm); \ (elm)->field.le_prev = &(listelm)->field.le_next; \ } #define LIST_INSERT_HEAD(head, elm, field) { \ if (((elm)->field.le_next = (head)->lh_first) != NULL) \

Linux系统应用与开发教程第二版刘海燕等主编

习题和答案 第1 章Linux 概述..................................................................................................................... 第2 章shell 及常用命令......................................................................................................... 第3 章vi 编辑器的使用........................................................................................................... 第4 章X Window 系统的使用.................................................................................................. 第5 章Linux 系统的常用软件................................................................................................ 第6 章硬件管理........................................................................................................................ 第7 章网络基本配置 .............................................................................................................. 第8 章常用网络服务的配置和使用..................................................................................... 第9 章系统管理与监控.......................................................................................................... 第10 章Linux 系统的安全管理.............................................................................................. 第11 章shell 程序设计........................................................................................................... 第12 章gcc 的使用与开发....................................................................................................... 第13 章gtk+图形界面程序设计............................................................................................. 第14 章Qt 图形界面程序设计................................................................................................ 第15 章集成开发环境KDevelop 的使用............................................................................... 第 1 章Linux 概述 1.什么是Linux? Linux 是一套免费使用和自由传播的类UNIX 操作系统,源代码开放,能运行于各类硬件平台,包括Intel x86 系列和RISC 处理器。这个系统是由世界各地成千上万的程序员设计和实现的。其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的UNIX 兼容产品。 2.Linux 有哪些特性? (1)开放性 (2)多用户 (3)多任务 (4)良好的用户界面 (5)设备独立性 (6)丰富的网络功能 (7)可靠的系统安全 (8)良好的可移植性 3.Linux 与Windows 操作系统的主要区别是什么? (1)从发展的背景看,Linux 是从一个比较成熟的操作系统发展而来的,而其他操作系统,如Windows 等,都是自成体系,无对应的相依托的操作系统 (2)从使用费用上看,Linux 是一种开放、免费的操作系统,Windows 是封闭的系统,需要有偿使用。 (3)Linux 上丰富的应用软件也是自由的,而在Windows 下,几乎所有的软件都有独立的版权,需要购买使用,即使某些软件可以免费使用,也一般不提供其源代码,更不用说由用户修改扩充其功能了。 (4)Windows 对硬件配置要求高,而Linux 在低端PC 系统上仍然可以流畅运行4.Linux 与Unix 的共同点与不同点是什么? 共同点:由于Linux 是从Unix 发展来到,它遵循Unix 开放标准,基本支持同样的软

linux系统及编程基础课后答案

第1章习题答案 1. 什么是Linux? 答:Linux是一款优秀的操作系统,支持多用户、多进程、多线程,实时性好,功能强大且稳定。同时,它又具有良好的兼容性和可移植性,被广泛应用于各种计算机平台上。作为Internet的产物,Linux操作系统由全世界的许多计算机爱好者共同合作开发,是一个自由的操作系统。 2. Linux的主要特点是什么? 答:Linux具有UNIX的所有特性并且具有自己独特的魅力,主要表现在以下几个方面: 开放性 多用户 多任务 出色的稳定性能 良好的用户界面:Linux向用户提供了两种界面:用户界面和系统调用界面。 设备独立性:设备独立性是指操作系统把所有外部设备统一当作文件来看,只要安装它们的驱动程序,任何用户都可以像使用文件那样操作并使用这些设备,而不必知道它们的具体存在形式。 丰富的网络功能:完善的内置网络是Linux的一大特点,Linux在通信和网络 功能方面优于其他操作系统。其他操作系统不包含如此紧密的内核结合在一起的联接网络的能力,也没有内置这些联网特性的灵活性。而Linux为用户提供了完善的、强大的网络功能。

可靠的安全性 良好的可移植性:可移植性是指将操作系统从一个平台转移到另一个平台,使它仍然能按其自身的方式运行的能力。 3. Linux的主要组成包括什么? 答:Linux主要组成为: Linux内核(Kernel):内核(Kernel)是系统的心脏,是运行程序和管理硬件设备的内核程序,决定着系统的性能和稳定性,实现操作系统的基本功能。 Linux的Shell:Shell是系统的用户界面,提供用户与内核进行交互操作的一种接口。Shell是一个命令解释器,它解释由用户输入的命令并且把他们送到内核执行。Shell编程语言具有普通编程语言的很多特点,用这种编程语言编写shell程序与其他应用程序具有同样的效果。 Linux 文件系统:文件系统是文件存放在磁盘等存储设备上的组织方法。通常是按照目录层次的方式进行组织,用户能够从一个目录切换到另一个目录,而且可以设置目录和文件的权限、文件的共享程度。 Linux 实用程序(utilities)和应用程序(Applications):标准的Linux系统都有一套成为应用程序的程序集,包括文本编辑器、编程语言、X Window、办公套件、Internet工具、数据库等。 4. Linux与Windows的主要区别是什么? 答:主要区别: (1)Linux的应用目标是网络 Linux的设计定位于网络操作系统。虽然现在已经实现Linux操作系统的图形界面,但仍然没有舍弃文本命令行。由于纯文本可以非常好地跨越网络进行工作,所以Linux

ubuntu12.04安装与桌面配置过程详解

UBUNTU安装与桌面配置过程详解 目录 写在前面--------------------------------------------------------------------------------------------------------------1-本文使用的安装环境----------------------------------------------------------------------------------------------1- 一、准备磁盘分区-------------------------------------------------------------------------------------------------2- 二、制作U盘启动盘---------------------------------------------------------------------------------------------3- (一)、在windows下制作启动盘---------------------------------------------------------------------3-(二)、在linux(ubuntu)下制作启动盘------------------------------------------------------------5- 三、安装UBUNTU------------------------------------------------------------------------------------------------8- 四、配置网络------------------------------------------------------------------------------------------------------16- (一)普通的网络配置-----------------------------------------------------------------------------------16-(二)锐捷认证客户端的安装和配置---------------------------------------------------------------18-五、桌面特效的设置--------------------------------------------------------------------------------------------21- (一)下载软件和附加组件----------------------------------------------------------------------------22-(二)开启特效--------------------------------------------------------------------------------------------24-(三)特效展示--------------------------------------------------------------------------------------------26-六、UBUNTU软件推荐----------------------------------------------------------------------------------------33- ☆SMPlayer--------------------------------------------------------------------------------------------33- ☆GIMP-------------------------------------------------------------------------------------------------34- ☆Chromium浏览器---------------------------------------------------------------------------------35- ☆永中Office------------------------------------------------------------------------------------------36- ☆Stellarium--------------------------------------------------------------------------------------------37- ☆Vim编辑器----------------------------------------------------------------------------------------38- 七、简单问题总结------------------------------------------------------------------------------------------------38- 1.乱码问题---------------------------------------------------------------------------------------------38- 2.软件中心的问题-----------------------------------------------------------------------------------39- 3、图形界面不稳定的问题-----------------------------------------------------------------------39- -39-结束语---------------------------------------------------------------------------------------------------------------

怎样执行在Linux上运行应用程序

如何执行在Linux上运行的应用程序 关键字:Linux 先决条件 要充分理解本文,必须具备Windows 环境下桌面应用程序的工作经验,我认为读者对如何使用Linux 桌面有一个基本的了解。使用一个运行的Linux 计算来机探讨本文的概念和示例是很有帮助的。 概述 有时候第一次在Linux 上运行一个应用程序需要一点额外工作。有些应用程序,比如服务器服务,可能无法安装为服务,因此您需要从命令行启动这些应用程序。对于启动这些应用程序的用户帐户而言,需要在应用程序文件中设置执行许可标志(x)。 运行用户空间应用程序 Linux 在内核空间或用户空间运行进程。用户空间是操作系统的区域,应用程序通常在此运行。简单地说,每个用户帐户有其自己的用户空间,应用程序在这个领域内运行。 默认情况下,只有root 用户有权访问内核空间。root 用户是Linux 中的超级用户,相当于Windows 中的管理员帐户。在root 用户帐户下运行应用程序可能会引起安全风险,是不可取的。 很多服务器服务需要root 权限启动服务。然而,服务启动后,root 帐户通常会将其移至服务帐户。严格地说,Linux 中的服务帐户才是标准的用户帐户。主要区别是服务帐户仅用于运行一个服务,而不是为任何实际登录的用户准备的。 设置权限 您可以使用chmod 命令在一个文件中设置执行权限。在Linux 中,umask 设置通常用来防止下载的文件被执行,也有充分的理由相信,因为它有助于维护Linux 计算机的安全性。 大多数Linux 发行版具有一个值为022 的umask 设置,这意味着,默认情况下一个新文件权限设置为644.权限的数字表示形式采用读(4)、写(2)、执行(1) 的格式。因此,默认权限为644 的应用程序下载意味着文件所有者有读写权限,而组用户和其他用户只有读权限。 例如,为每个人赋予一个文件的执行权限,使用chmod a+x 命令。a 表示所有人,加号(+) 表示添加,而x 表示执行。同样地,如果应用程序是一个服务器服务,您应该确保只有授权帐户才有权执行此服务。 如果一个应用程序能够在标准用户帐户权限下运行,但只有特定组中的用户才需要使用它,您可以将该组所有者权限设置为可执行,然后将这些用户添加到该组中。 更具体地说,您可以在一个可执行文件中设置访问控制列表(ACL) 权限,赋予特定用户或组权限来运行该应用程序。使用setfacl 实用工具设置ACL 权限。 对于这些需要以root 用户启动进程的应用程序,比如服务器服务,您有几个选择。总结了允许用户执行需要root 权限的服务器服务的各种选项。 选项描述 作为root 用户不推荐用于服务器服务。当用户已经知道root 密码而且应用程序泄露不是首要关注问题时,可用于应用程序。 SetUID 由于安全问题,不推荐使用。SetUID 允许标准用户以另一个用户方式,比如root 用户,执行一个文件。 sudo 很常用,并且被认为是一个很好的实践。sudo 授予一个用户或组成员权限以执行可能额外需要root 权限的文件。该用户不需要知道root 密码。 带有文件权限的标准用户帐户在一个文件上为用户所有者、组所有者或其他人(所有人)

《Linux操作系统及应用技术》习题参考答案

第4章习题 1.进入和退出vi 编辑器的方法有哪些? 参考答案: a.进入vi编辑器的方法:在系统提示符下,输入命令vi 和想要编 辑(建立)的文件名,便可进入vi。 a)退出vi编辑器的方法:“:wq”的功能是把编辑缓冲区的内容写到指定的 文件中,以退出编辑器,回到shell 状态下。 b)其操作过程是,先输入冒号(:),再输入命令wq,然后按Enter 键。以 下命令的操作方式均与其相同。 c)“:ZZ”的功能是仅当对所编辑的内容做过修改时,才将缓冲区的内容写 到指定文件上。 d)“:x”的功能与“:ZZ”相同。 e)“:q!”的功能是强行退出vi。感叹号(!)告诉vi,无条件退出,不把 缓冲区中的内容写到文件中。 2.vi 编辑器的工作方式有哪些?相互间如何转换? 参考答案:vi 编辑器有三种工作方式,即命令方式、输入方式及ex 转义方式。 当输入命令vi 后,进入vi 编辑器时,就处于vi 的命令方式。 通过输入vi 的插入命令(i)、附加命令(a)、打开命令(o)、替换命令(s)、修改命令(c)或取代命令(r)即可以从命令方式进入到输入方式。 为使用ex 转义方式,可输入一个冒号(:)。 3.建立一个文本文件,将光标移至第5 行。分别用c、C 和cc 命令进行修改。

参考答案:略。 4.在vi 编辑器之下,将光标上、下、左、右移动的方式有哪些? 参考答案:在键盘的右下方有 4 个表示方向的方向键,利用它们可以在输入方式下移动光标。每按一次“上”、“下”方向键,光标即相应地移动一行;每按一次“左”、“右”方向键,光标即在当前行上相应地移动一个字符位置。当光标位于行首(或行尾)时,又按下“左” 方向键(或“右”方向键),系统会发出“嘟嘟”声,并且返回到命令方式。 5.vi 编辑器中复制一行文字并粘贴到另一位置用什么命令? 参考答案:复制命令yy 或Y,然后用命令:p或shift+h。 6. 进入vi 编辑器时,如果希望进入后,光标位于文件中的第9 行上,应该输入什么命令? 参考答案:按8次j命令; 7.不管文件中的某一行被编辑了多少次,总能把它恢复成被编辑之前的样子,应使用什么命令? 参考答案:U 8.要将编辑文件中的所有的字符串s1 全部用字符串s2 替换,包括在一行多次出现的字符串,应使用的命令格式是什么? 参考答案:R 9.使用vi 编辑器在目录里创建一个文本文件,然后输入一篇英文文章,并练习使用各种编辑命令。 参考答案:略

LINUX桌面环境介绍

Linux桌面环境介绍 任务描述: XX公司架设了一台Linux服务器,安装操作系统后,派小王去检查系统的运行情况,要求如下: 1.使用管理员用户登录到服务器上。 2.更改桌面背景。 3.在桌面上创建一个文件,记录检查日期。 4.重新启动服务器。 任务目标: ●掌握桌面环境的更改设置 任务重点: ●了解桌面环境 任务难点: ●了解桌面环境 知识准备: 一、Linux系统的启动 系统安装好后,就可以进入到Linux系统中了,每次启动后会进入用户登录界面,在”用户名”文本框中输入需要登陆的用户名,回车后按照屏幕提示继续输入对应用户帐号的登陆口令。 输入正确的帐户名称和对应口令后,进入到Linux桌面环境。 二、桌面环境介绍 用户成功登陆系统后,进入Linux环境,在屏幕的最上方和最下方各看到一行面板,最上方看到一排系统菜单和快捷标,和windows的任务栏有些相似,不过位置不同,如图2-3所示,Linux的面板,面板左侧是系统菜单,右侧有时间和声音图标。 图2-3 Linux面板1 桌面环境的最下方也有一个面板,面板上是回收站和显示桌面图标。如图2-4所示。 图2-4 Linux面板2 在桌面环境中除了面板以外的其他面积都是桌面,可以看到计算机,root的主文件夹和回收站三个桌面图标。 1. 面板介绍 (1)应用程序菜单介绍 上方面板最左边是应用程序菜单,主要是Linux环境中安装的一些程序,被分类整理显示在菜单中。

●应用程序菜单中Internet子菜单中是Linux系统默认安装的一个Firefox火狐浏览器,点击可以上网。 ●应用程序菜单中办公子菜单中是办公软件openoffice,需要单独安装。 ●应用程序菜单中图像子菜单中是常用的图像浏览器,方便用户浏览图像。 ●应用程序中影音子菜单中是Linux中常用的影音播放器,满足用户视听需要。 ●应用程序中系统工具子菜单是常用的系统工具。 ●应用程序中附件子菜单是常用的工具,有字典、抓图工具、计算器和终端等。 ●附件子菜单中终端点击之后弹出终端输入窗口,终端输入窗口中可以输入Linux命令, 并快速执行命令。 ●应用程序菜单中的添加/删除软件子菜单可以打开软件包管理器,对Linux系统的系统 软件包进行添加删除等管理操作。 (2)位置菜单介绍 应用程序菜单右侧就是位置菜单,这个菜单中放置了用户经常用到的一些系统位置,可以快速访问文档、文件夹和网络位置,用户可以通过点击菜单中的菜单项,如主文件夹,快速打开主文件夹窗口进行操作。 (3)系统菜单介绍 在面板上还有一个系统菜单,通过系统菜单可以更改系统外观和行为,获得帮助和注销关闭系统。 (4)其他 在系统菜单右侧,有一个地球图标,这是系统默认的WEB浏览器,可以通过点击图标快速打开浏览器。 上方面板右侧有时间显示,点击时间,下方出现日期,可以查看当前年份和日期。(5)更改面板位置 Linux环境中的面板是放在桌面环境的最上方和最下方的,位置不集中,特别是应用程序和系统菜单,作为经常使用window界面的用户,一开始接触Linux环境往往会很不习惯,其实这些面板的位置可以移动,我们可以通过拖动将所有面板放置在桌面环境的最下方。 2. 桌面图标介绍 用户成功登陆系统后,进入Linux桌面环境,屏幕的中间位置会看到系统的桌面图标,默认情况下有计算机、root用户的主文件夹和回收站三个图标。 ●双击【计算机】图标,可以打开计算机窗口,对当前计算机的文件系统及光盘等进行操 作,如图2-23所示。在窗口中可以看到【CD-ROM/DVD/ROM驱动器】,也就是光盘驱动器的图标,光盘驱动器中如果放置有光盘或光盘镜像文件,双击该图标,可以打开光盘进行浏览,打开了visio2003的安装光盘。 ●双击【文件系统】图标,可以打开文件系统窗口,浏览Linux系统文件夹,也可以在此 新建文件和文件夹,在后续章节中会陆续介绍。如图2-25所示,打开文件系统。

相关文档
相关文档 最新文档