《Linux系统与应用》课程论文 20xx年06月07日
Linux内核新版本的特点
摘要:操作系统是一个用来和硬件打交道并为用户程序提供一个有限服务集得支撑软件。在Linux的术语中被称为“内核”,也可以称为核心。Linux内核的主要模块主要有存储管理、CPU和进程管理、文件系统、设备管理和驱动、网络通信,以及系统的引导、系统调用等。 关键词:Linux内核;Linux2.6;Linux2.6.31;特性。
一. Linux版本的介绍
Linux版本有发行版本和内核版本之分。一般的,可以从Linux内核版本号来区分系统是Linux稳定版还是测试版。以版本2.4.0为例,2代表主版本号,4代表次版本号,0代表改动较小的末版本号。在版本号中,序号的第二位为偶数的版本表明这是一个可以使用的稳定版本,如2.2.5。而序号的第二位为奇数的版本一般有一些新的东西加入,是个不一定很稳定的测试版本,如2.3.1。这样稳定版本来源于上一个测试版升级版本号,而一个稳定版本发展到完全成熟后就不再发展了。目前内核最新版本为2.6.31,因为掌握的资料有限,下面主要谈谈2.6版本的特点。
二. Linux2.6内核的新特性介绍
1. 使用了新的调度算法,称为0/1算法。在高负载的情况下执行非常出色,并且在很多处理器上可以很好的扩展,而2.4内核使用的是时间片重算法,严重影响系统的效率。
2. 采用抢占式内核,使交互式操作、多媒体应用程序的响应速度大大提高。
3. 改进了虚拟内存。
4. 修改了I/O子系统部分,保证在各种工作负荷下I/O都有很好的响应速度。
5. 大量改进了文件系统,比如支持Windows的逻辑卷管理器、重写对NTFS文件系统的支持、改进HPFS等。
6. 改进和部分重写了Modules功能,使之更稳定。
7. 改进对USB的支持,使之能够支持当前多数主流的USB设备。
8. 加强对无线设备的支持。
9. 支持更多种类和型号的多媒体设备。
实际上2.6版本的很多新特性都是针对企业应用的改进,比如最大支持64个CPU、64GB内存、支持非一般存储访问等。对于普通用户,从2.6内核版本中感受到得将是USB的支持、响应时间、音频、无线设备等方面的提高。
三. Linux2.6内核版本对嵌入式开发的特性
Linux是一种低成本和开放性的操作系统,由于体积小、可裁剪、运行速度高、良好的网络性能等优点,可以作为嵌入式操作系统。实施可靠性是嵌入式应用较为普遍的要求,Linux2.6经过改进后能满足响应需求。其中最主要的改进如下:
1. 可抢占内核
在先前的内核版本中不允许抢占以和心态运行的任务(包括通过系统调用进入
1
《Linux系统与应用》课程论文 20xx年06月07日
内核模式的用户任务),只能等待它们自己主动释放CPU。这样必然导致一些重要任务延时以等待系统调用结束。
一个内核任务可以被抢占,为的是让重要的用户应用程序可以继续运行。这样做最主要的优势是极大地增强了系统的用户交互性。通过在2. 6的内核代码中插入抢占点,允许调度程序中止当前进程而调用更高优先级的进程,通过对抢占点的测试避免不合理的系统调用延时。2.6内核在一定程度上市可抢占的,比2.4内核具备更好的响应性。但也不是所有的内核代码段都可以被抢占的,可以锁定内核代码的关键部分,确保CPU的数据结构和状态始终受到保护而不被抢占。
软件需要满足最终时间限制与虚拟内存请求页面调度之间是相互矛盾的。慢速的页错误处理将会破坏系统的实时响应性,而2.6内核可以编译无虚拟内存系统避免这个问题,这是解决问题的关键,但要求软件设计者有足够的内存来保证任务的执行。
2. 有效的调度程序
Linux2.6内核使用了新的调度算法,成为0(1)算法。它在高负载情况下执行的极其出色,并且当有很多处理器并行时也可以很好的扩展。过去的调度程序需要查找整个就绪队列,并且计算它们的重要性以决定下一步调用的任务,需要的时间随任务数量而改变。0(1)算法则不再每次扫描所有的任务,当任务就绪时被放入一个活动队列中,调度程序每次从中调度适合的任务,因而每次调度都是一个固定的时间。任务运行时分配一个时间片,当时间片结束,该任务就放弃处理器并根据其优先级转到过期队列中。活动队列中任务全部调度结束后,两个队列的指针呼唤,过期队列成为当前队列,调度程序继续以简单的算法调度当前队列的任务。这在多处理器的情况下更能提高系统的效率,平衡处理器的负载,避免进程在处理器间的跳跃。
3. 同步原型与共享内存
多进程应用程序需要共享内存和外设资源,为避免竞争采用了互斥的方法保证资源在同一时刻只被一个任务访问。Linux内核用一个系统调用来决定一个线程阻塞或是继续执行来实现互斥,在线程继续执行时,这个费时的系统调用就没有必要了。Linux2.6可以从用户控件检测是不是需要阻塞线程,只在需要时执行系统调用中止线程。它同样采用调度优先级来确定将要执行的进程。多处理器嵌入式系统各处理器之间需要共享内存,堆成多处理技术对内存访问采用同等优先级,在很大程度上限制了系统的可量测性和处理效率、Linux2.6则提供了新的管理方法,这种方法根据处理器和内存的拓扑布局,在发生内存竞争时,给予不同处理器不同级别权限以解决内存抢占瓶颈,提高吞吐量。
4. 微控制器的支持
Linux2.6内核加入了多种微控制器的支持,无MMU的处理器以前只能利用一些改进的分之版本,而2.6内核已经将其整合进了新的内核之中,开始支持多种流行的无MMU微控制器。Linux在无MMU控制器上仍旧支持多任务处理,但没有内存保护功能,同时也加入了许多流行的控制器的支持。
5. 面向应用
嵌入式应用有用户定制的特点,硬件设计都针对特定应用开发,这个系统带来
2
《Linux系统与应用》课程论文 20xx年06月07日
了非标准化设计支持的问题。为了更好的实现,可以采用部件化得操作系统。Linux2.6采用了子系统架构将功能模块化,可以定制而对其他部分影响最小。同时
2.6提供了多种新技术的支持以实现各种应用开发。对USB2.0的支持,提供更高速的传输,增加蓝牙无线接口、音频数据链接和面向链接的数据传输,满足短距离的无线连接的需要,而且在2.6内核中还可以配置成无输入和显示的纯粹无用户接口系统。
四. Linux2.6和Linux2.4两个突出方面比较
1. 服务器领域
在大型服务器领域,Unix一直独占鳌头。Linux2.6内核增加了对安全性的改进和支持,从而使Linux具备了与Unix在这一领域抗衡的基础。
Linux的稳定性和安全性一直都是商家青睐它的主要原因,大型服务器更是Linux在商业领域发展的顶梁柱。2.6版内核对更多新硬件类型的支持中也包含了对大型服务器更多的支持。这些服务器既有运行i386处理器的,也有运行其它处理器的。这些特性是新近加入Linux的,还有许多优化工作需要完成。但这是Linux发展相当迅速的一个领域,预计在不久的将来,Linux将成为服务器领域更有力的竞争者。
在Linux 2.6内核中,整个基于核心的安全体系,即类Unix操作系统中的超级用户权限,已经被划分成一些可以被替换的安全模块。不过,目前提供的安全模块只有一个缺省的,仅仅当作一个向我们展示如何自定义安全模块的例子。作为这个变化的一部分,核心的所有部分都被更新,以具有更细粒度的用户访问控制,而不是像以前那样的“超级用户”系统。虽然几乎所有的Linux系统将仍然存在具有完全访问权限的root用户,但上述改变使得类Linux系统可以不再必须如此。
另一个与安全相关的变化是一些二进制模块不能再重载系统调用,也不能看到及修改系统调用表。这极大地限制了非开放源码模块在核心中的访问,同时也修补了GPL版权协议在这方面可能存在的漏洞。
2. 文件系统
相对于Linux 2.4而言,2.6版内核对于文件系统的支持在很多方面都有大的改进。
日志文件系统的最大优点是它的容错能力。一个设计精良的日志文件系统在损坏恢复方面,比传统的日志文件实现起来更容易、时间更短、返回服务功能更快。
2.6版内核增加了对日志文件系统功能的支持,解决了2.4版在这方面的不足。
2.6版内核在文件系统上的关键变化还包括对扩展属性及POSIX标准访问控制的支持。ext2/ext3作为大多数Linux系统缺省安装的文件系统,在2.6版内核中是改进最大的一个。最主要的变化是对扩展属性的支持,即给指定的文件在文件系统中嵌入一些元数据。很多其它操作系统,如Windows已经大量地使用了这种扩展属性。但Unix系的操作系统一般都还不能很好地支持扩展属性,很多用户级程序需要进行更新才能保存和转储这些扩展属性信息。
五. Linux2.6.31的特性
3
《Linux系统与应用》课程论文 20xx年06月07日
1. 增加了对USB3.0的支持。
2. 新增一个字符设备,这个设备相当于使用户空间文件系统使OSS音频与高级Linux声音架构相兼容的工具。
3. 改进了内存管理以在桌面应用中优化交互性。
4. 改进预先读取。
5. 支持Intel Wireless Multicomm 3200 Wifi设备;
6. 新增一个内存漏洞探测工具;
7. 增加一个在新的文件系统通知结构之上的inotify与dnotify的重新导入机制
8. 其他一些修正和改进。
六. 学习Linux的感受
学习Linux需要学习一些操作系统的理论知识,比如:进程、线程、内存管理、设备管理等。我们大多数同学在学习这门课之前都没有上过《计算机操作系统》这门课,所以我们在学习的过程中感觉找不到方向。
一定要记住一些常用的命令,这是学习Linux的基础,使用Linux系统命令时非常非常重要的。Linux的内核空间和用户空间是分离开的,它们通过一些函数调用来交换数据,所以命令就显得格外重要了。
在实验过程中,肯定会遇到很多问题,我自己认为先回到课本上,回头看看那些基础知识,才会有一种收获的感觉。每当完成一次实验时都会很开心,但是当没有按时完成实验时会特别的沮丧,这种心态是需要改变的。
保持虚心的学习态度,这点不光在学习Linux时,在学习任何东西中都应该保持这种态度。在Linux世界里,水平越高,就越谦虚。保持虚心的态度可以让我学到更多的知识,还会得到别人的尊重。路漫漫其修远兮,吾将上下而求索。
参考文献:
1.
2.
3.
4. 王小英.[Linux系统与应用].中国电力大学出版社.20xx年1月. 陈莉君.[Linux操作系统内核分析].人民邮电出版社.20xx年3月. 陈莉君.[Linux内核设计与实现].机械工业出版社.20xx年10月. 百度文库
4
第二篇:培训第一周Linux课程总结
一周Linux课程总结
⑴ Linux系统介绍
操作系统的定义,操作系统的主要的基本服务程序。
UNIX的发展历程,经历的几个阶段,19xx年UNIX开始向厂商提供商用的OEM许可证
UNIX主要的几个发行版本,IBM的AIX、HP的HP-UX、Sun的solaris等等 UNIX系统特点是与硬件绑定,而且价格昂贵,一般大型的公司、银行、政府等是其主要的用户群。
Linux出现在19xx年,是由芬兰一位大学生莱纳斯和后来陆续加入的爱好者一起开发的
Linux的定义,和编制的目的,还兼容UNIX产品,几乎拥有UNIX全部功能 Linux主要的发行版本,Redhat、Ubuntu、OpenSusud等等,中国的最著名的是红旗Linux
Linux的优点、系统结构
内核的定义与作用
Shell的定义与作用
X Window
UNIX CDE通用桌面环境
Linux Gnome GNU网络对象模型环境 KDE键盘数据环境 Others Xfce、qvwm、fvwm等等
UNIX的应用领域,各环境的要求
管理员的职责
⑵ Linux分区
设备管理、分区数量,各分区的作用,分区的指标
各分区的作用
/boot
/usr
/home
/var/log
/tmp
/bin
/dev
/sbin
一般装一个Linux系统至少需要2个分区,一个SWPA分区、一个根分区, 根分区下一般有/boot、/sur、/home、/var/log等等
故障与修复
GRUB
Init 1
Init 3
Init 5
⑶ Linux常用命令
命令格式、相对路径、绝对路径
通配符
*
?
[…]
登陆,帐号,密码
退出系统exit或者ctrl+D
常见命令
ls
touch
cd
pwd
cp
rm
mv
cat
more
head
tail
Ln
mkdir
chmod
chown
chgrp
umask
whereis
find
locate
updatedb
man
info
whatis
tar
write
wall
mesg
ping
ifconfig
shutdown
⑷ Vi 文本编辑器
Vi的介绍,Vi没有菜单只有命令
Vi三种工作模式,插入、命令、编辑
Vi插入命令
A a I i O o
定位命令
上下左右 kjhl
S O回车健H M L
设置行号命令 set nu 取消set nonu
删除命令 x X dd dG D :n1,n2d
复制命令 yy y nyy ny p
替换和取消 r R s S u U
保存与退出命令 :w :w [新文件名] :wq ZZ :q! :wq!
搜索与替换命令 /string ?string n N :%s/old/new/g
其他应用
导入文件 :r 文件名
Vi编辑器中执行命令 :!命令
等等
⑸ Linux用户管理
Linux三类用户
超级用户root UID=0
普通拥护 UID500~6000
伪用户 UID1~499
用户帐户文件 /etc/passwd 格式
vipw=vi /etc/passwd
用户空令文件 /etc/shadow 格式
创建用户 useradd [用户] 设置密码passwd [用户] 删除用户 userdel [用户] 删除用户同时删除用户主目录 userdel –r [用户]
改变用户帐号名 usermod –l [新用户] [老用户]
锁定用户 usermod –L [用户]
解锁用户 usermod –U [用户]
useradd命令默认值 useradd –D /etc/default/useradd
停用用户帐号 vi /etc/passwd 用停用的帐号前加#
锁定帐号口令 passwd –l [用户]
解锁帐号口令 passwd –U [用户]
组的管理 /etc/group
创建组 groupadd [组名] 删除用户 groupdel [组名]
改变组名 groupmod –l [新组名] [老组名]
添加用户到组 gpasswd –a 用户 组
从组中删除用户 gpasswd –d用户 组
id命令 查看用户的 UID GID
finger命令查看用户相关信息
切换管理员 su –
切换普通用户 su [用户]
只允许root登陆,在/etc建立一个nologin文件