时间:2023-05-30 10:17:22

【关键词】linux操作系统 网络操作系统 内核
一、linux的产生
linux是一种计算机操作系统,通常被称为类unix系统,这是因为linux和unix有着很深的渊源。
在计算机非常昂贵的年代,只有在大学或大型企业中才能够接触到计算机,人们非常希望多个用户能同时连接到一台计算机并同时使用它。于是,计算机科学家开始研究分时系统。分时系统是将cpu的运行时间分为很小的时间片,多个用户任务可以通过交替占有时间片的方式实现快速交互使用cpu。由于时间片是很短的一段时间,以至于每个用户任务、每个用户好像在独占cpu,独占整个计算机系统。在研究人员的不懈努力下,1969年,at&t公司贝尔实验室开发出了unix系统。
1986年,芬兰赫尔辛基大学的andrew tanenbaum教授为了给学生讲授《计算机操作系统》课程,开发出了minix系统,这是unix的一个变体。1991年,andrew tanenbaum教授的学生linus torvalds,由于对课堂上使用的minix系统不太满意,于是开始在386 pc机上试着改进minix系统。
1991年8月,linus torvalds在comp.os.minix新闻组贴上了以下这段话:“你好,所有使用minix的人,我正在为386(486)at做一个免费的操作系统,只是为了爱好,……”
linus最初为自己的这套系统取名为freax,他将源代码放在了芬兰的一个ftp站点上供大家下载。该站点的管理员认为这个系统是linus的minix系统,因此建立了一个名为linux的文件夹来存放它。于是,linus的“爱好”就成了今天微软的头号对手,功能强大且价格低廉的linux操作系统。
1993年底94年初,linux 1.0终于诞生了!
linux1.0已经是一个功能完备的操作系统,而且内核写得紧凑高效,可以充分发挥硬件的性能,在4m内存的80386机器上也表现得非常好,至今人们还在津津乐道于此。
linux的 和 是一只名字叫做 的 ,linux的是linus torvalds所有的。这是由于在 ,一个名字叫做william r. della croce的律师开始向各个linux商发信,声明他拥有linux 的所有权,并且要求各个商支付版税,这些发行商集体进行上诉,要求将该注册商标重新分配给linus torvalds。
二、linux的开发模式
linus于1991年10月5日了linux的第一个版本linux 0.0.2,并在网络上公布了linux核心程序的源代码,同时决定以gpl(大众所有版权,又称gun通用公共许可证)的方式来发行传播,也就是说这个软件允许任何人以任何形式进行修改和传播。
随着网络的日益盛行,越来越多的技术高超的程序员加入到linux的开发与完善中来。在这个过程中,无数的富有个性和开创性的程序员在没有计较任何酬劳的前提下,完全自发的加入到开发行列中来。一旦一个程序员完成了其中的部分程序,他便会立即将这个程序发表,并免费将它发给任何一个需要的人,而其他的一些程序员研究它后将会对它修正和改良,然后将它发表。这个过程周而复始,因此linux的改进速度是最快的,同时它的稳定性也是非常高的。
所以,linux并非仅由linus一人开发,而是由全世界几百个程序员共同开发的,当然linus为内核定了调子。这种集市型的开发模式促成了linux系统的繁荣。可以说,linux完全是一个热情、自由、开放的网络产物。
三、linux的发展
linux具有良好的兼容性和可移植性。大约在1.3版本之后,linux开始向其他硬件平台上移植,包括号称最快的cpu——digital alpha。所以不要总把linux与低档硬件平系到一块,linux只是将硬件的性能充分发挥出来而已。linux必将从低端应用横扫到高端应用!
为了使linux变的容易使用,linux也有了许多版本,版实际上就是一整套完整的程序组合。现在已经有许多不同的linux发行版和各自的版本号,为了不产生混淆,我们先解释一些常提到的术语。当我们提到的linux时,一般是指“real linux”,即内核,是所有unix操作系统的“心脏”。但光有linux并不能成为一个可用的操作系统,还需要许多软件包,编译器、程序库文件、xwindow系统等等。因为组合方式不同,面向用户对象不同,所以就有了许多不同的linux发行版。
越来越多的公司在linux上开发商业软件或把其他unix平台的软件移植到linux上来。如今很多it业界的大腕ibm、intel、oracle、infomix、sysbase、corel、netscape、ca、novell等都宣布支持 linux。商家的加盟弥补了纯自由软件的不足和发展障碍,linux迅速普及到广大计算机爱好者,并且进入商业应用,成为打破某些公司垄断文化圈的希望所在。
linux是爱好者们通过internet协同开发出来的,当然它的网络功能十分强大。比如你可以通过ftp、nfs等来安装linux,用它来做网关等等。随着linux的发展,衍生出来的应用恐怕出乎linus本人最初的预料。如有人用它来做路由器,有人来做嵌入式系统,有人来做实时性系统……。常有新手问linux能做什么?其实它不象那些中看不中用的操作系统,不在于你用它能干什么,而在于你想干什么。
linux是一个在pc机上运行的unix系统。linux系统具有最新 unix的全部功能,包括真正的多任务、虚拟存储、共享库函数、即时负载、优越的存储管理和tcp/ip、uucp网络工具等。linux系统及其发展均符合posix标准,其内核支持ethernet、ppp、slip、nfs、ax.25、ipx/spx(novell)、ncp(novell)等。系统应用包括tellnet、rlogin、ftp、mail、gopher、talk、term、news(tin、trn、nn)等全套unix工具包。x图形库,包括xterm、fvwm、xxgdb、mosaic、xv、gs、xman等全部x-win应用工具。商业软件有motif、wordperfect。中文工具已有cxterm、celvis、cemasc、cless、hztty、cytalk、ctalk、cmail等,可以处理gb、big5、hz文件。此外还有dos模拟软件,可以运行dos/win下的软件。
在开始的时候,linux只是个人狂热爱好的一种产物。但是现在,linux已经成为了一种受到广泛关注和支持的一种操作系统。和其他的商用unix系统以及 相比,作为自由软件的linux具有低成本,安全性高,更加可信赖的优势。直到今天,linux已经成为一个功能完善的主流网络操作系统。
关键词:Linux系统;文件系统;VFS
中图分类号:TP316 文献标识码:A 文章编号:1007-9599 (2012) 15-0000-01
1 引言
Linux是一个免费的操作系统,用户免费获得其源代码,而且允许随意修改。它是在共用许可证GPL保护下的自由软件,也有几种版本,如Red Hat Linux、Slackware,以及国内的Xteam Linux等。Linux具有许多Unix系统的功能和特点,能够兼容Unix,但无需支付Unix高额的费用。
目前,Linux技术已经成为IT技术发展的热点,从事Linux技术研究的社区、研究机构和软件企业逐年增多,支持Linux的软件、硬件制造商和解决方案提供商也快速增加,Linux在信息化建设中的应用范围也越来越广。随着整个Linux产业的发展,Linux技术也处在快速的发展过程中,形成了若干技术热点。由于任何一个操作系统都必须提价有效手段来管理外存及其上的数据,而这些功能主要由操作系统的文件系统功能来完成的,因此深入理解linux的文件系统装载过程对提高linux系统的应用水平有重要的意义。
2 Linux系统的文件与虚拟文件系统VFS
“一切皆是文件”是Unix/Linux的基本哲学之一[1]。不仅普通的文件,目录、字符设备、块设备等在Unix/Linux中都是以文件被对待;即使类型不同,仍然可以在同一套操作界面运行。Linux中允许不同的文件系统共存。如图1所示,我们可以使用cp命令从vfat文件系统格式的硬盘拷贝数据到ext3文件系统格式的硬盘;而这样的操作涉及到两个不同的文件系统。
而虚拟文件系统正是实现上述两点Linux特性的关键所在。虚拟文件系统(Virtual File System,简称VFS),是Linux内核中的一个软件层,用于给用户空间的程序提供文件系统接口;同时,它也提供了内核中的一个抽象功能,允许不同的文件系统共存[2]。系统中所有的文件系统在VFS和VFS中工作。为了能够支持各种实际文件系统,VFS定义了所有文件系统都支持的基本的、概念上的接口和数据结构;同时也提供VFS所期望的抽象接口和数据结构,将自身的诸如文件、目录等概念在形式上与VFS的定义保持一致。实际文件系统在统一的接口和数据结构下隐藏了具体的实现细节,所以在VFS层和内核的其他部分看来,所有文件系统都是一样的。图2显示了VFS在内核中与实际的文件系统的协同关系。
这里要特别注意有关文件系统的三个重要概念:即(1)创建。以某种方式格式化磁盘的过程就是在其之上建立一个文件系统的过程。创建文现系统时,会在磁盘的特定位置写入关于该文件系统的控制信息。(2)注册。向内核报到,声明自己能被内核支持。一般在编译内核的时候注册;也可以加载模块的方式手动注册。注册过程实际上是将表示各实际文件系统的数据结构struct file_system_type实例化。(3)安装。也就是我们熟悉的mount操作,将文件系统加入到Linux的根文件系统的目录树结构上;这样文件系统才能被访问。
3 Linux文件系统装载过程
Linux以一组通用对象的角度看待所有文件系统。这些对象是超级块、inode、dentry和文件。文件系统中管理的每个对象在Linux中表示为一个inode。inode包含管理文件系统中的对象所需的所有元数据。另一组结构称为dentry,它们用来实现名称和inode之间的映射,有一个目录缓存用来保存最近使用的dentry。dentry还维护目录和文件之间的关系,从而支持在文件系统中移动。最后,VFS文件表示一个打开的文件。安装linux文件系统的过程就是创建VFS超级块的过程,也就是在VFS的目录树中向其中某个目录上挂载一个文件系统的过程。
安装初始过程由sys_mount()系统调用函数发起,该函数原型声明如下:asmlinkage long sys_mount(char*dev_name,char*dir_name,char*type,unsigned long flags,void*data);例如:我们准备将来自主硬盘第2分区(hda2)上的ext2文件系统安装到前面创建的"/dev"目录中。那么对于sys_mount()函数的调用便具体为:sys_mount("hda2","/dev","ext2",…);在新的文件系统加载之后,内核链表file_systems及相关数据结构会有相应变化,有关内容限于篇幅在此不一一详述。读者可参考文献[3]。
4 结束语
本文针对Linux系统在应用领域的扩张趋势,分析了Linux文件系统的创建,注册及安装的全过程,从内核上深入剖析Linux文件系统的含义,解释了虚拟文件系统VFS在linux文件系统安装及文件管理中的重要作用,它保证了linux系统中“一切皆是文件”的实现,同时由于Linux系统文件安装过程伴随着内存上各类数据结构的及链表的相应变化,因此,分析linux文件系统的安装还有助于加深对编程类课程及数据结构类课程重要性的认识。
参考文献:
[1]周巍松.Linux系统分析与高级编程技术[M].北京:机械工业出版社,1999
[2]Warren W.Gay.Linux Programming in 24 Hours[M].北京:机械工业出版社,2000
随着Internet/Intranet网络的日益普及,采用Linux网络操作系统作为服务器的用户也越来越多,这一方面是因为Linux是开放源代码的免费正版软件,另一方面也是因为较之微软的WindowsNT网络操作系统而言,Linux系统具有更好的稳定性、效率性和安全性。在Internet/Intranet的大量应用中,网络本身的安全面临着重大的挑战,随之而来的信息安全问题也日益突出。以美国为例,据美国联邦调查局(FBI)公布的统计数据,美国每年因网络安全问题所造成的经济损失高达75亿美元,而全球平均每20秒钟就发生一起Internet计算机黑客侵入事件。一般认为,计算机网络系统的安全威胁主要来自黑客攻击和计算机病毒2个方面。那么黑客攻击为什么能够经常得逞呢?主要原因是很多人,尤其是很多网络管理员没有起码的网络安全防范意识,没有针对所用的网络操作系统,采取有效的安全策略和安全机制,给黑客以可乘之机。在我国,由于网络安全研究起步较晚,因此网络安全技术和网络安全人才还有待整体的提高和发展,本文希望就这一问题进行有益的分析和探讨。
我们知道,网络操作系统是用于管理计算机网络中的各种软硬件资源,实现资源共享,并为整个网络中的用户提供服务,保证网络系统正常运行的一种系统软件。如何确保网络操作系统的安全,是网络安全的根本所在。只有网络操作系统安全可靠,才能保证整个网络的安全。因此,详细分析Linux系统的安全机制,找出它可能存在的安全隐患,给出相应的安全策略和保护措施是十分必要的。
2Linux网络操作系统的基本安全机制
Linux网络操作系统提供了用户帐号、文件系统权限和系统日志文件等基本安全机制,如果这些安全机制配置不当,就会使系统存在一定的安全隐患。因此,网络系统管理员必须小心地设置这些安全机制。
2.1Linux系统的用户帐号
在Linux系统中,用户帐号是用户的身份标志,它由用户名和用户口令组成。在Linux系统中,系统将输入的用户名存放在/etc/passwd文件中,而将输入的口令以加密的形式存放在/etc/shadow文件中。在正常情况下,这些口令和其他信息由操作系统保护,能够对其进行访问的只能是超级用户(root)和操作系统的一些应用程序。但是如果配置不当或在一些系统运行出错的情况下,这些信息可以被普通用户得到。进而,不怀好意的用户就可以使用一类被称为“口令破解”的工具去得到加密前的口令。
2.2Linux的文件系统权限
Linux文件系统的安全主要是通过设置文件的权限来实现的。每一个Linux的文件或目录,都有3组属性,分别定义文件或目录的所有者,用户组和其他人的使用权限(只读、可写、可执行、允许SUID、允许SGID等)。特别注意,权限为SUID和SGID的可执行文件,在程序运行过程中,会给进程赋予所有者的权限,如果被黑客发现并利用就会给系统造成危害。
2.3合理利用Linux的日志文件
Linux的日志文件用来记录整个操作系统使用状况。作为一个Linux网络系统管理员要充分用好以下几个日志文件。
2.3.1/var/log/lastlog文件
记录最后进入系统的用户的信息,包括登录的时间、登录是否成功等信息。这样用户登录后只要用lastlog命令查看一下/var/log/lastlog文件中记录的所用帐号的最后登录时间,再与自己的用机记录对比一下就可以发现该帐号是否被黑客盗用。
2.3.2/var/log/secure文件
记录系统自开通以来所有用户的登录时间和地点,可以给系统管理员提供更多的参考。
2.3.3/var/log/wtmp文件
记录当前和历史上登录到系统的用户的登录时间、地点和注销时间等信息。可以用last命令查看,若想清除系统登录信息,只需删除这个文件,系统会生成新的登录信息。
3Linux网络系统可能受到的攻击和安全防范策略
Linux操作系统是一种公开源码的操作系统,因此比较容易受到来自底层的攻击,系统管理员一定要有安全防范意识,对系统采取一定的安全措施,这样才能提高Linux系统的安全性。对于系统管理员来讲特别是要搞清楚对Linux网络系统可能的攻击方法,并采取必要的措施保护自己的系统。
3.1Linux网络系统可能受到的攻击类型
3.1.1“拒绝服务”攻击
所谓“拒绝服务”攻击是指黑客采取具有破坏性的方法阻塞目标网络的资源,使网络暂时或永久瘫痪,从而使Linux网络服务器无法为正常的用户提供服务。例如黑客可以利用伪造的源地址或受控的其他地方的多台计算机同时向目标计算机发出大量、连续的TCP/IP请求,从而使目标服务器系统瘫痪。
3.1.2“口令破解”攻击
口令安全是保卫自己系统安全的第一道防线。“口令破解”攻击的目的是为了破解用户的口令,从而可以取得已经加密的信息资源。例如黑客可以利用一台高速计算机,配合一个字典库,尝试各种口令组合,直到最终找到能够进入系统的口令,打开网络资源。
3.1.3“欺骗用户”攻击
“欺骗用户”攻击是指网络黑客伪装成网络公司或计算机服务商的工程技术人员,向用户发出呼叫,并在适当的时候要求用户输入口令,这是用户最难对付的一种攻击方式,一旦用户口令失密,黑客就可以利用该用户的帐号进入系统。
3.1.4“扫描程序和网络监听”攻击
许多网络入侵是从扫描开始的,利用扫描工具黑客能找出目标主机上各种各样的漏洞,并利用之对系统实施攻击。
网络监听也是黑客们常用的一种方法,当成功地登录到一台网络上的主机,并取得了这台主机的超级用户控制权之后,黑客可以利用网络监听收集敏感数据或者认证信息,以便日后夺取网络中其他主机的控制权。
3.2Linux网络安全防范策略
纵观网络的发展历史,可以看出,对网络的攻击可能来自非法用户,也可能来自合法的用户。因此作为Linux网络系统的管理员,既要时刻警惕来自外部的黑客攻击,又要加强对内部网络用户的管理和教育,具体可以采用以下的安全策略。
3.2.1仔细设置每个内部用户的权限
为了保护Linux网络系统的资源,在给内部网络用户开设帐号时,要仔细设置每个内部用户的权限,一般应遵循“最小权限”原则,也就是仅给每个用户授予完成他们特定任务所必须的服务器访问权限。这样做会大大加重系统管理员的管理工作量,但为了整个网络系统的安全还是应该坚持这个原则。
2.确保用户口令文件/etc/shadow的安全
对于网络系统而言,口令是比较容易出问题的地方,作为系统管理员应告诉用户在设置口令时要使用安全口令(在口令序列中使用非字母,非数字等特殊字符)并适当增加口令的长度(大于6个字符)。系统管理员要保护好/etc/passwd和/etc/shadow这两个文件的安全,不让无关的人员获得这两个文件,这样黑客利用John等程序对/etc/passwd和/etc/shadow文件进行了字典攻击获取用户口令的企图就无法进行。系统管理员要定期用John等程序对本系统的/etc/passwd和/etc/shadow文件进行模拟字典攻击,一旦发现有不安全的用户口令,要强制用户立即修改。
3.2.3加强对系统运行的监控和记录
Linux网络系统管理员,应对整个网络系统的运行状况进行监控和记录,这样通过分析记录数据,可以发现可疑的网络活动,并采取措施预先阻止今后可能发生的入侵行为。如果进攻行为已经实施,则可以利用记录数据跟踪和识别侵入系统的黑客。
3.2.4合理划分子网和设置防火墙
如果内部网络要进入Internet,必须在内部网络与外部网络的接口处设置防火墙,以确保内部网络中的数据安全。对于内部网络本身,为了便于管理,合理分配IP地址资源,应该将内部网络划分为多个子网,这样做也可以阻止或延缓黑客对整个内部网络的入侵。
3.2.5定期对Linux网络进行安全检查
Linux网络系统的运转是动态变化的,因此对它的安全管理也是变化的,没有固定的模式,作为Linux网络系统的管理员,在为系统设置了安全防范策略后,应定期对系统进行安全检查,并尝试对自己管理的服务器进行攻击,如果发现安全机制中的漏洞应立即采取措施补救,不给黑客以可乘之机。
3.2.6制定适当的数据备份计划确保系统万无一失
没有一种操作系统的运转是百分之百可靠的,也没有一种安全策略是万无一失的,因此作为Linux系统管理员,必须为系统制定适当的数据备份计划,充分利用磁带机、光盘刻录机、双机热备份等技术手段为系统保存数据备份,使系统一旦遭到破坏或黑客攻击而发生瘫痪时,能迅速恢复工作,把损失减少到最小。
4加强对Linux网络服务器的管理,合理使用各种工具
4.1利用记录工具,记录对Linux系统的访问
Linux系统管理员可以利用前面所述的记录文件和记录工具记录事件,可以每天查看或扫描记录文件,这些文件记录了系统运行的所有信息。如果需要,还可以把高优先级的事件提取出来传送给相关人员处理,如果发现异常可以立即采取措施。
4.2慎用Telnet服务
在Linux下,用Telnet进行远程登录时,用户名和用户密码是明文传输的,这就有可能被在网上监听的其他用户截获。另一个危险是黑客可以利用Telnet登入系统,如果他又获取了超级用户密码,则对系统的危害将是灾难性的。因此,如果不是特别需要,不要开放Telnet服务。如果一定要开放Telnet服务,应该要求用户用特殊的工具软件进行远程登录,这样就可以在网上传送加密过的用户密码,以免密码在传输过程中被黑客截获。
【关键词】Linux辅助教学 JSP SQL Server 2000
1 概述
Linux作为日渐流行的多用户、多任务的网络操作系统,有着开放、稳定、安全、费用低廉等许多其它操作系统无可比拟的优势,具有越来越广泛的应用前景。Linux操作系统课程越来越受到重视,然而在教学过程中,往往存在教学内容和教学资源不统一等问题,教师和学生在学习的过程中又无法及时沟通,不能达到良好的教学效果,而Linux辅助教学系统,立足于解决在教学过程中遇到的问题,为学生提供与教学内容相符的教学资源,为学生和教师提供良好的沟通和学习平台,提高教学的质量和效果,从而达到良好的教学目的[1]。
2 开发工具的选择
2.1 B/S体系结构
在B/S体系结构的系统中,用户通过浏览器向服务器发出请求,服务器对浏览器的请求进行处理,将用户所需信息返回到浏览器。B/S结构简化了客户机的工作,客户机上只需配置少量的客户端软件。服务器将负担更多的工作,对数据库的访问和应用程序的执行将在服务器上完成。鉴于B/S结构模式在可扩展性、平台无关性等优势,此次设计系统采用B/S结构模式进行开发。
2.2 JSP技术简介
JSP是一种基于Java的脚本语言。JSP文件中可嵌入HTML、Java程序代码与XML标记,首次执行JSP程序时,服务器应用程序将JSP文件转换为Servlet程序代码,然后编译成为可执行的Servlet,若没有任何变动,以后就会直接执行Servlet程序,减少在服务器端处理的时间,提高了开发的效率[2]。
2.3 SQL Server 2000
SQL Server 2000是一个关系数据库管理系统,具有易于安装和使用等优点。JSP可以通过Sun公司自行研发的JDBC驱动程序与数据库连接,建立可用于在线学习的教学网站[3]。
3 系统需求分析
3.1 用户需求分析
本系统可作为教学环节的指导和补充,为学生提供学习的平台。系统内容主要包括Linux操作系统课程相关的学习资源和内容,如Linux各种操作指令、shell脚本和编程等。
3.2 系统设计目标分析
本设计是一套基于Web的网络教学系统。该系统设置3种不同用户权限,教师可以方便的上传课件、学习资料、添加习题等,学生可以根据自身情况自主选择学习内容,下载学习资源、提交作业、参加练习测试、进行相互讨论交流等,系统管理员主要进行系统维护、管理。
4 系统的模块实现
本设计的主要用户分为教师和学生、管理员,教师的操作包括教学内容和资料的管理。学生的操作包括下载相关教学资料,提交作业,在线练习及测试等[4]。
4.1 新闻及公告
教师可以教学相关的公告信息,对公告或教学新闻的内容进行管理。学生能够浏览新闻,并可以看到最新的公告信息。
4.2 课程介绍
课程所学内容的相关介绍,有助于学生对Linux课程有一个整体的认识。教师可以对介绍的课程信息内容进行添加、修改及删除操作。
4.3 教学文档资料
电子课件存放课程教学的相关信息,教师通过网络将电子课件到网上,在课堂上没能够及时准确理解相关内容的学生,可以下载课件,进一步加强理论内容的理解和掌握。上机实验是Linux课程的重要内容,教师可上传实验内容并做详细说明,学生下载并理解实验内容、步骤及方法,学生通过提前预习教学内容,能够加快上机实验的速度和效率,提高教学质量和效果。教师布置并作业,可以针对不同班级的布置相应作业信息,学生可以下载查看,完成作业后提交。教师可查看学生完成情况。
4.4 习题解答
习题解答模块主要解答一些有代表性的题型、学生留言请教的难题、多数学生容易犯错的题目,教师提供习题答案供学生参考学习,方便众多学生查看。
4.5 练习与测试
为进一步巩固课堂上的理论教学成果,加强学习上重点难点等知识点的理解和掌握,教师可添加练习试题,检验学生知识掌握的程度。在数据库知识的基础上建立试题库,即将题目和答案信息保存在数据库中,学生进行答题,可随时查看答题结果的正确性。学生通过自我测试认识到自己的不足,并努力加以改善。
4.6 答疑与讨论
答疑与讨论模块为学生和教师提供了相互交流的平台,学生可将发表疑问,等待其它用户答复或由教师给予解答。问题和答案的内容都是公开的,大家可以互相浏览或讨论。
5 结论
本文主要阐述了Linux辅助教学系统的设计与实现,利用网络环境进行linux课程的学习和辅导,实现了新闻及公告、教学文档下载、习题练习与自测、答疑与讨论等功能。为学生的课下学习提供了有效的学习环境和途径,同时一定程度上也为一些自学者解决了求学难,解惑难的问题。
参考文献
[1]唐晓军.linux系统及编程基础[M].北京:清华大学出版社,2012.
[2]张跃平,耿祥义.JSP程序设计[M].北京:清华大学出版社,2009.
[3]苗雪兰,刘瑞新,宋歌.数据库系统原理与应用教程(第3版)[M].北京:机械工业出版社,2007.
[4]刘乃琦,王冲.JSP应用开发与实践[M].北京:人民邮电出版社,2012.
作者简介
杜丽英 (1969-),女,吉林省长春市人。硕士学位。现为吉林建筑大学计算机科学与工程学院讲师,主要从事计算机应用方面的研究。
作者单位
1、方法1
对于linux系统而已,成上千个发行版。对于发行版的版本号查看方法。
如以centos为例。输入lsb_release-a即可。该命令适用于所有的linux,包括Redhat、SuSE、Debian等发行版。
2、方法2
可以通过查看Cat/etc/xxx-releaseXX为发行版名称。如centos-release。
3、方法3.
9、也可以通过查看/etc/issue文件查看发行版版本号。
(来源:文章屋网 )
关键词:网络计算机;嵌入式;Linux操作系统;系统开发
中图分类号:TP316 文献标识码:A 文章编号:1009-3044(2016)03-0040-02
近年来我国经济与科技高速发展,推进信息化网络时代的到来。目前计算机技术被广泛应用于各行业领域中,对人们的工作和生活起到了重要的影响作用。针对现阶段网络计算机应用趋势以及应用需求来看,应用质量要求不断提升,以嵌入式Linux操作系统来看,对其应用性能、接口管理以及扩展功能等提出了更高的挑战。下面本文以网络计算机发展背景为切入点,对网络计算机中嵌入式Linux操作系统展开系统研究。
1 网络计算机发展背景
随着计算机技术在各行业领域中的广泛普及应用,我国已步入网络计算机时代,人们工作、生活都与计算机紧密联系在一起。在这一趋势背景对网络应用技术提出了更高的要求和应用标准,以满足人们需求。也正是在设备、服务器等质量逐渐提升的过程中,使技术的应用与引导促进网络计算机概念具象化。
网络计算机及技术的普及发展有着一定必然性和必要性:
现阶段我国网络技术的研发应用日趋成熟,目前局域网已经成为人们生活工作的常规配置。与过去我国网络计算机的应用对比来看,大部分影响因素已得到有效解决,使网络相关技术更高效、快速普及应用。
目前我国关于网络计算机技术的相关理论研究已初步形成一定系统。计算机在市场应用中随着人们需求的不断提升其应用不断改革创新,网络技术、网络用户等概念日趋具象化、理性化。同时网络技术越来越体现服务于人民需求的研发理念,而网络用户对其技术应用的需求也日趋真实性。
另外,加强网络技术应用是我国经济与科技发展的必要环节。我国网络技术应用起步相对较晚,且主要以引进国外为主,这也造成网络技术自主性相对较差。在经济与科技不断发展过程中,相关技术研发手段不断革新,以及外国引进内部技术存在一定应用安全隐患,这些都使得我国网络计算机技术实现自主研发成为必然性,以保护信息安全,维护国家及人民利益。
2 嵌入式Linux操作系统概述
现阶段嵌入式技术为应用广泛、效率较高的技术工艺,嵌入式系统应用对计算机硬件要求较为严格,这直接造成其投入相对较高。在科技手段不断创新,网络技术应用不断完善的过程中,计算机软件系统的投入比例逐渐增多,越来越关注技术的改进与完善。
从实践应用需求角度出发,嵌入式技术的选择与应用为软件技术开发提供前提保障,改善技术开发环境。嵌入式技术应用能够使系统运行更加稳定,软件运营与维护更加高效。
嵌入式Linux系统是最常见的嵌入式操作系统,被行业内部广泛研究与应用。嵌入式Linux操作系统具有明显的操作优势,例如免许可证费用,在较多商业操作系统中通常要求较高的许可证费用,而该软件源代码为开放性,为用户大大节省了费用支出。嵌入式Linux的网络支持功能十分强大,具有Unix特性,在运行与应用过程中支持全部互联网协议。基于嵌入式Linux公开源代码,同时具备清晰文档与注释,在应用过程中出现相关问题可及时进行有效处理,保障了其应用可靠性和稳定性,这也是嵌入式Linux操作系统广泛应用的重要优势之一。
嵌入式Linux与其他相关嵌入式操作系统相比具有开发工具丰富的优势。大多数开发嵌入式操作系统的程序调试主要是以仿真器进行操作,但嵌入式Linux的操作则可以避免应用仿真器,通过内核调试器进行完整操作。
嵌入式Linux操作系统在应用过程中尚存在一定不完善之处,主要包括三个方面。其一,嵌入式Linux操作系统在运行应用过程中尚不具备硬实施进程处理机制;其二,嵌入式Linux操作系统受到最大进程数限制,以及受到最小内存控制;其三,嵌入式Linux操作系统的基于模块机制的内核剪裁灵活性相对较差。
3 嵌入式Linux操作系统设计
以Linux操作系统结构相关理论为基础,充分结合网络计算机应用需求及用户要求,进行网络计算机中的嵌入式Linux操作系统设计。系统设计主要分为五个方面,如下所示:
3.1 系统引导
系统引导主要是系统BIOS将系统内核可执行代码按照不同层级需求进行内存引入,结合操作系统引导进行执行,以系统控制台显示“login:”为提示参考,以完成操纵系统内核加载。通常在网络计算机中的嵌入式Linux操作系统中应用启动引导程序LILO完成系统引导。
3.2 内核定制修改
嵌入式Linux操作系统的设计过程中Linux内核定制修改是重要构成部分,主要目的是完成内核配置和调整,目的在于使其性能更优,满足网络计算机实际应用需求。在Linux内核配置过程中要科学进行网络计算机中嵌入式系统内核编译配置的设置,进行内核编译的重新定义。另外,还要以网络计算实际需求进行内核源代码的修改。其中编译命令如下:
#make clean
完成删除前面步骤留下的文件,以避免出现错误。
#make mrproper
使系统内核的配置文件恢复到默认值。
#make menuconFig
用来配置内核编译选项。
#make dep
读取配置过程生成的配置文件,创建对应于配置的依赖关系树,从而决定哪些需要编译。
#make bzImage
开始编译内核。
#make modules
编译内核可加载模块。
#make modules_install
把可加载模块拷贝到需要的目录中。
3.3 根文件系统
该系统是Linux系统中不可或缺的组件,在内核系统操作最后一步即实现根文件系统挂载。基于嵌入式Linux系统体积相对较小,因此无法应用大的存储器,因此根据系统实际需求情况选择与构建根文件系统至关重要。
3.4 图形用户接口
在本次研究中以网络计算机中嵌入式Linux操作系统为核心,需要明确的是系统要为用户提供清晰图像界面,现阶段GUI为图形用户接口设计中的主要系统。由于Linux系统缺乏内核系统支持,因此在设计过程要通过基础程序满足这一需求。从图形用户接口构成角度来看,主要包括窗口系统、窗口管理器、工具包、界面行为与风格。根据实践应用可知,X-windows凭借其良好的扩展性以及良好的可移植性等优势,作为嵌入式Linux操作系统的GUI。
3.5 应用软件
用户客户端在进行网络计算机应用的过程中要保证其具备浏览器登录、文档浏览、媒体播放等功能,因此在Linux操作系统设计中要包括各类型开源软件,本文研究中主要列举一下几类:
1)mozilla
mozilla 是 Linux 环境下免费的跨平台的功能强大的浏览器。该软件支持HTML4.0,VB Script,Java Script,JPG、GIF 等常用图像,声音,Flash 动画,cookie,通信录,网页编辑等功能,适用于 Windows,Linux 和 MacOS、AIX、HPUX、Irix、OpenVMS、OS/2、Solaris SPARC、Solaris x86、Tru64 Unix 等平台。
2)mplayer
mplayer 是 Linux 的开源媒体播放器,支持多种媒体格式。该软件支持 MPEG, VOB, AVI,OGG/OGM,VIVO,ASF/WMA/WMV,QT/MOV/MP4, FLI,RM,Nuppel Video, YUV4MPEG,FILM,RoQ,PVA 等格式的媒体。
3)xpdf
Linux 环境下开源的 PDF 文档阅读器。
4 嵌入式Linux操作系统其他相关问题
网络计算机的普及应用,成为人们生活与工作的必备工具,在应用过程中要满足客户对系统稳定性与安全性需求,避免出现突然中止问题,给客户带来损失。就现阶段网络计算机中嵌入式Linux操作系统的应用来看,针对计算机突然中断问题尚未形成有效解决方案。
用户操作过程中若出现中途断电问题将直接给系统运行造成阻碍影响,并对文件系统带来一定影响,文件系统中受影响的位置即故障点。在实践应用及经验总结中了解到,出现类似问题通常是由于保护措施不够,当无法对故障点有效控制时将会进一步影响整个系统。因此,嵌入式Linux操作系统应针对类似问题设计出具有针对性的保护程序,即内存读写过程中的预防机制,通过有效设置保障用户文件安全。
将嵌入式Linux操作系统应用于其他硬件平台开发中,并对其系统操作进行性能测试,通过实践检验证明网络计算机中嵌入式Linux操作系统在运行过程中性能稳定,同时服务器资源消耗、流量消耗等相对合理,将网络资源存储于服务器内,使得资源存储得到优化,为客户端运行有效减少了负担。在今后系统及技术研究中要进一步加强对网络计算机中嵌入式Linux操作系统的研究,以促进嵌入式Linux技术的进一步完善,促进计算机系统的优化,为用户提供更稳定、高效、优质的服务。
5 结束语
综上所述,针对网络计算机中嵌入式Linux操作系统的研究,能够促进该系统整体性能有效提升,进一步满足用户需求。在今后研究中要对嵌入式Linux操作系统的设计研究进一步深入和细化,旨在实现该系统功能优化,促进嵌入式Linux操作系统在网络计算机更稳定运行,优化其整体结构,使用户应用更加高效、稳定、安全,充分发挥其应用价值。
参考文献:
[1] 张宇超.网络计算机中嵌入式Linux操作系统体系结构及相关技术研究[D].重庆: 重庆大学,2004.
[2] 杨丽萍,王自力.基于嵌入式Linux的网络操作系统设计[J].微计算机信息,2009(17):120-121+157.
[3] 陈蜀宇,曹俊勇,于渤.网络计算机中嵌入式Linux体系结构的研究[J].计算机工程,2007(6):74-76.
[4] 周慧英.基于ARM920T和Linux操作系统的嵌入式多媒体视频网络平台的研究和设计[D]. 杭州: 浙江大学,2007.
[5] 杨延庆.基于8086单芯片计算机的嵌入式Linux操作系统移植[J].西安工程大学学报,2015(4):452-456,461.
[6] 宋杰,程家兴.基于ARM的嵌入式操作系统的分析和选择[C]// 安徽省科学技术协会、安徽省信息产业厅.2005年“数字安徽”博士科技论坛论文集. 安徽省科学技术协会、安徽省信息产业厅, 2005:4.
Abstract: Linux is a kind of "Free Software", so-called free means that the user can freely access to source code, and can freely modify or copy them. Because it is a product of the Internet age, a large number of technical staff together to complete the research and development through the Internet, and through numerous users to participate in testing and debugging to add the prepared expansion function of themselves. In this paper, the application and development prospect of Linux system are researched and analyzed.
关键词: Linux系统;应用;发展;研究;网络
Key words: Linux system;application;development;research;network
中图分类号:TP3 文献标识码:A 文章编号:1006-4311(2015)05-0198-02
1 概述
自Linux在九十年代初出现后,Linux技术首先在个人爱好者的圈子里迅速发展起来;之后,随着Internet的迅速发展,以及在RedHat、Suse等主要Linux发行商的努力和IBM、英特尔等的大力支持下,Linux在服务器端得到了长足的发展,其中Unix和WindowsNT在中、低端服务器市场中已经成为强有力的竞争对手,在高端应用的某些方面,如SMP、Cluster集群等,已经动摇了传统高级的Unix的统治地位。近两年,随着政府上网工程、电子政务、电子商务等的不断发展,Linux桌面技术受到越来越多的用户和厂家的重视。而国内的,中标软件、红旗等相继推出了多款的Linux桌面产品,这些产品在政府采购以及OEM等领域占据了十分重要的地位。因此,Linux桌面技术也得到了长足的发展。Linux是一种适用于PC机的计算机操作系统,它适合于多种平台,是目前唯一免费的非商品化操作系统。由于有结构清晰、功能强大等特点,它很快成为许多院校学生和科研机构的研究人员学习和研究的对象。在他们的热心努力下,Linux渐渐成为一个稳定可靠、功能完善的操作系统。Linux是由UNIX发展来的,它不仅继承了UNIX操作系统的特征,而且许多方面还超过了UNIX系统。另外它还有许多UNIX所不具有的优点和特征。它的源代码是开放的,可运行于许多硬件平台,支持多达32种文件,支持大量的外部设备等。
2 Linux的特点
①开放性,开放性是指系统遵循世界标准规范,特别是遵循开放系统互连(OSI)国际标准。②多用户,多用户是指系统资源可以被不同用户各自拥有使用,即每个用户对自己的资源(例如:文件、设备)有特定的权限,互不影响。Linux和Unix都具有多用户的特性。③多任务,多任务是现代计算机最主要的一个特点。它是指计算机同时执行多个程序,而且各个程序的运行互相独立。④良好的用户界面,Linux向用户提供了两种界面:用户界面和系统调用。Linux的传统用户界面是基于文本的命令行界面,即shell,它既可以联机使用,又可存在文件上脱机使用。⑤设备独立性,设备独立性是指操作系统把所有外部设备统一当作成文件来看待,只要安装它们的驱动程序,任何用户都可以象使用文件一样,操纵、使用这些设备,而不必知道它们的具体存在形式。Linux具有设备独立性的操作系统,通过把每一个设备看作一个独立文件来简化增加新设备的工作。⑥提供了丰富的网络功能完善的内置网络是Linux的一大特点。⑦可靠的系统安全,Linux采取了许多安全技术措施,包括对读、写进行权限控制、带保护的子系统、审计跟踪、核心授权等,这为网络多用户环境中的用户提供了必要的安全保障。⑧良好的可移植性,可移植性是指将操作系统从一个平台转移到另一个平台使它仍然能按其自身的方式运行的能力。Linux是一种可移植的操作系统,能够在从微型计算机到大型计算机的任何环境中和任何平台上运行。
3 Linux的主要应用领域
随着开源软件在世界范围内影响力的日益增强,Linux在服务器、桌面、行业定制等领域获得了长足的发展,尤其是在服务器领域,Linux已经获得了令人瞩目的成就。目前,由于中国通信行业所应用的软件操作平台多部分都是基于Unix的。所以Linux的推广能不能给通信产业带来影响?而且与现在的应用程序相比较的话,它存在哪些的优势?为什么很多人都看好它?如果Linux能在短期内证实自身所特有的优越性,这就注定能够打破Unix在电信业的垄断地位。而与Unix相比较的话,Linux的优势就在于源代码的开放性,这使得Linux的程序开发人员遍布全球,这对基于Linux系统的应用程序支持力度非常强大。Linux系统的应用程序能够真正做到一次开发,多处使用。另外,Linux系统不需要特别的硬件,经济上也节省了大量金钱。而面向运营商的电信级Linux系统具备和UNIX系统相同的稳定性和可靠性,同时具有更强大的性能。
如果Linux能够完全达到现有Unix的性能,则运营商在硬件的选择上将会灵活起来,主要由于Linux对硬件的要求不高,这样,将相应减少业界的投资成本,在竞争日趋激烈的环境中,这有助于迅速推出新的业务。可靠的电信级Linux连同模块化通信平台在中国通信行业的推广,会对通信设备研发周期的缩短、研发成本的降低、采购以及运作开销的下降将起到巨大的正面促进作用。同现有的Unix应用程序相比,它的主要优势在于开放的源代码,可扩展性、可移植性强,用户选择性大,安全易控制等。运行在基于Intel架构的模块化通信平台上,用户更能获得最大的性价比。Linux有广泛的用处,它可用于:个人UNIX工作站、终端用户和应用服务器、UNIX开发平台、商业开发、网络服务器、Internet服务器、终端服务器、传真服务器、Modem服务器。
4 Linux的发展前景
Linux是一个技术快速更新的操作系统,并且Linux具有卓越的计算能力、可移动性和适应性强,Linux具有先进的图形用户界面,良好的系统开发平台,很多优秀的系统开发平台、友好的编程语言及编程工具都免费包含在操作系统里面。编程者常常要阅读操作系统的源代码。Linux自带的C语言编译器的兼容性和适应性比其它平台要好得多。Perl、eython、Guide、Tcl、Rubv和功能强大的shell脚本,甚至连汇编程序的编译器也包含在标准的Linux里面。
目前国外服务器厂商使用的服务器操作系统主要包括SUN的SOLARIS、IBM的AIX、HP的HP-UX,其中UMIX系列的产品几乎占据了大部分的高端服务器市场和部分中低端服务市场,而WINDOWS系统主要占据的是中低端服务器市场,Linux由于其成本优势也在中低端市场有着良好的表现,并且其市场份额上升幅度较大。目前,国内的服务器操作系统情况基本类似于国外,高端服务器操作系统市场基本被UNIX平台所占据,但是由于国内中低端服务器的市场保有量较大,所以WINDOWS系列产品的实际市场占有率相对国外而言较高,市场份额能够占到总量的40%,Linux由于成本较低的特点,也能够取得大约35%的市场份额。从2001年以来,基于Linux的服务器操作系统逐步发展壮大。国内几个主要的Linux厂商和科研机构,国防科技大学、中标软件、中科红旗等先后推出了Linux服务器操作系统产品,并且已经被政府和企业等领域广泛应用。从系统的整体水平不难看出,Linux服务器操作系统与高端Unix系列相比差距越来越小,在很多领域已经实现了共存的局面。
参考文献:
[1]David Lee, Dong luo Chen, Ruibing Hao, Raymond E.,Miller Jianping Wu,Xia work Protocol System Monitoring――A Formal Approach with passive Testing.IEEE/ACM Transaetions on Networking,2006,2(14).
参考文献:
[1]刘晓洁,黄永佳.基于Linux的双机热备系统的实现技术[J].计算机应用研究,2007,24(4).
[2]张立航,陈大勇.基于Linux的双机热备系统设计[J].计算机安全,2011,(10).
[3]张永立,胡杰,张根宝.Linux集群心跳检测方法的研究与实现[J].化工自动化及仪表,2010,37(6).
[4]岳宝华.基于嵌入式Linux的多线程远程监控系统设计与实现[J].信阳农业高等专科学校学报,2009(01):54-56.
[5]黄照鹤,马玉军.基于Linux平台的SSH在网络安全中的应用[J].科技信息(学术研究),2010(29):78.
[6]买尔旦阿不拉.基于Linux操作系统的网络安全策略[J].科技信息(学术研究),2010(27):89.
参考文献:
[1]谢川.嵌入式Liunx开发基础[M].北京:中国铁道出版社,2011.
[2]陈周国,王胜银,付国晴,邓赟.基于LinuxQT技术的远程监控GUI设计[J].通信技术,2009,42(12):234-236.
[3]赵祖龙.基于Qt/Embedded的嵌入式跨平台聊天系统设计[J].信息技术,2010(12):144-147.
[4]何进,谢松巍.基于Socket的TCP/IP网络通讯模式研究[J].计算机应用研究,2001,18(8).
[5]李扬,耿昌宇,张丽芬.基于socket通讯模式下的跨平台数据平台[J].北京理工大学学报,2002,22(1):81-84.
参考文献:
[1]李俊玲.浅谈Linux操作系统下的C程序开发[J].中国科技财富,2012,5(5):314.
[2]杨海峰,席振元,曹立硕.基于Linux的防火墙系统的研究与开发[J].科技风,2014,6(6):32-33.
[3]王亚平.基于Linux管道技术的编程方法研究[J].科技资讯,2012,13(13):46.
[4]李斌.基于ARM-Linux的可编程自动化控制器的研究与开发[D].2012.
[5]夏凡,陈蜀宇,龙昌生.基于Framebuffer的嵌入式Linux图形库设计[J].计算机系统应用,2012,21(5):122-125.
[6]王晓明.计算机C语言编辑程序探讨[J].长春教育学院学报,2014,30(5):145-146.
[7]余勍,王捷.浅谈C语言编程技巧在C语言学习中的应用[J].信息通信,2013,7(7):108.
[8]韩伟,宋明伟,魏志强,等.基于Windows的华中世纪星数控系统PLC编程系统设计[J].机床与液压,2011,14(14):214-216.
参考文献
[1]刘忆智,余柏山,李天峰.等编著.《Linux从入门到精通》.清华大学出版社.
[2]张鸿恺,伍超.智能家居及其发展研究[J].黑龙江科技信息,2008(32):266.
[3]KINNEYPatrick.ZigBeetechnologywirelesscontrolthatsimplyworks[C].[S.l.]:CommunicationsDesignConference,2003.
[4]陈林星.无线传感器网络技术与应用[M].北京:电子工业出版社,2009.
[5]陈章龙,余厚全.基于ZigBee的信息家电远程监控方案设计[J].现代计算机,2007(11):121-123.
[6]黄磊,付菲,闵华松.基于ZigBee技术的智能家居方案研究[J].嵌入式网络技术应用,2009(14):71-73.
[7]刘承龙,凌志浩.基于AT91SAM9260的ZigBee多功能网关设计[J].自动化仪表,2009(12):30-33.
[8]于德会,王华新,孙敬.基于单片机和GPRS远程监控系统的设计[J].科技创新导报,2011(3):48.
[9]王军阵,王建斌.基于ARM和Linux的超声导波管道检测系统[J].仪表技术与传感器,2011(4):51-52.
[10]李胜琴,张国容,许岩.基于ARM的交叉编译工具的制作[J].太原师范学院学报:自然科学版,2010(2):56-59.
参考文献
[1]胡耀民,厉伟.Linux系统及网络管理[M].北京:人民邮电出版社,2012.
[2]陈勇勋.Linux网络安全技术与实现[M].北京:清华大学出版社,2012.
[3]范鲁娜.基于Linux操作系统的网络服务器安全管理[J].科技创新导报,2011(10):17.
[4]李洋.Linux安全技术内幕[M].北京:清华大学出版社,2010.
>> 基于linux系统集群的架构与实现 基于Linux的计算机集群系统的设计与实现 基于Linux系统的软件技术应用研究 通过虚拟化技术在Linux系统下搭建Hadoop集群的研究与实现 基于ARM的Linux系统移植研究与实现 基于Linux嵌入式系统的研究与分析 基于linux集群系统负载平衡下的作业管理策略 基于ARM与Linux的嵌入式系统教学项目的研究与探索 基于Linux操作系统教学设计的应用分析 基于Linux的实时操作系统的研究 基于Linux系统的机房温度监控报警平台的研究与实现 基于PDA的linux文件系统裁剪问题研究 基于Linux系统的远程控制技术研究 基于Linux智能DNS系统的研究和实现 基于Linux的文件系统监控技术研究 基于Linux内核的文件系统监控研究 基于Linux系统调用的反跟踪技术研究 基于Linux操作系统的网络编程方法研究 Linux环境下集群系统的资源管理 基于Linux的嵌入式监控系统软件平台研究与设计 常见问题解答 当前所在位置:l
# service httpd restart
(3)测试RS
访问192.168.122.10,网页中就会出现web1。
4.2 调度器配置Haproxy(主/备)
(1)安装Haproxy
# yum -y install haproxy
# cp -rf /etc/haproxy/haproxy.cfg{,bak}
(2)配置Haproxy
(3)启动haproxy
# service haproxy start
# chkconfig haproxy on
4.3 测试主备调度器
访问192.168.122.2,不断刷新,页面中会随机出现web1、web2和web3。输入用户名和密码之后,显示的界面;网页中勾选http2――Soft Stop――Apply,访问192.168.122.2,不断的刷新,页面中会出现web1和web3,但是不会出现web2,将http2Soft Start之后,又恢复正常。使用命令行的方式将web3的httpd的服务停掉,访问192.168.122.2,不断刷新页面,页面中会出现web1和web2,但是不会出现web3,而且192.168.122.2:1314/haproxystats页面中http3变成红色。在命令行中重新启动web3的httpd服务,页面中红色的http3又变回绿色,重新访问192.168.122.2的网站,又恢复正常。
5 结束语
集群并不是一个全新的概念,早在七十年代的时候,计算机厂商和一些研究机构就开始对集群系统进行研究和开发,对集群的研究源于集群系统性能的良好的可扩展性。文章以Haproxy LB集群为例进行集群应用的实施,使用Haproxy+Keepalived两种软件,实现了Linux系统下创建低成本、高性能、高可用的集群系统的效果,旨在为集群的发展与成熟提供参考和建议。
参考文献
[1]王国明.集群计算系统的分析与研究[J].电脑知识与技术,2006(32).
[2]孟相武,等.基于Linux的高可用集群系统的设计及实现[J].电子科技大学学报,2005.
关键词:Linux;操作系统;网络编程
中图分类号:TP311.11 文献标识码:A文章编号:1007-9599 (2011) 12-0000-01
Network Programming Research under the Linux Operating System
Yin Xiaohui
(Software Engineering Institute,Tongji University,Yinchuan750000,China)
Abstract:Linux operating system is a multi-user,multitasking operating system,it has a powerful information processing capabilities.With Linux network insecurity,describes several common network programming mode.Embedded systems is the advanced computer technology,semiconductor technology and electronics technology and practical applications in various industries with the product.
Keywords:Linux;Operating system;Network programming
一、Linux操作系统的特点
嵌入式系统定义:嵌入式系统是将先进的计算机技术,半导体技术和电子技术与各个行业的具体应用相结合的产物。与其它操作系统相比,Linux的特点如下:
1.Linux操作系统能够与UNIX系统相互兼容。Linux系统几乎具有全部UNIX系统特征,而且能够适合POSIX国际标准的系统。2.Linux系统有自由的软件和开放的源代码特征。Linux项目一开始就与GNU项目紧密联系起来,它的许多重要组成部分直接来自GNU项目,只要遵从GPL条款,任何人就可以自由使用Linux源代码。3.Linux操作系统具有网络性能高和安全性强的特点。Linux支持所有标准因特网协议和提供各种高性能服务。Linux操作系统包含了大量网络管理、网络服务等工具,利用它可以建立起高效的防火墙、路由器、工作站等功能。4.Linux系统支持多样化的硬件平台。例如RISC、CISC、32位、64位等各种处理器,Linux操作系统都能支持它们运行。
二、Linux操作系统的实时性不足
Linux系统调度CPU的时间是通过调度固定的时间片(time slices)来实现的。例如最开始进程赋予一个高的优先级,在某个进程的时间片内,这个进程如果放弃CPU,它的优先级将不会变,或者变的更高。基于以上特征,Linux操作系统的实时性不足主要体现在几个方面:
1.Linux操作系统内核是非抢占式的。比如当普通进程运行在核心态时,实时进程优先级低于普通进程。2.由于实时调度策略中的RR和FIFO算法存在,无法严格保证具有高优先级的实时进程总是优先于普通进程执行。3.Linux操作系统的平均响应时间最少为数十毫秒,对响应时间要求更严的实时系统无能为力。4.Linux操作系统内核的进程经常关闭中断。如果低优先级的进程关闭了中断,即使有高优先级实时进程的中断发生,导致系统最终也无法响应。
三、Linux的网络编程
(一)Linux操作系统的网络功能。Linux操作系统在通讯和网络功能方面都优于绝大多数操作系统。Linux的网络功能主要有以下几点:1.Linux操作系统支持TCP/IP协议。任何系统必须遵循的网络协议是TCP/IP,TCP/IP对建网提出了统一的规范的要求。2.Linux支持多样的网络数据库。数据库是信息资源的重要来源,Linux对数据库支持也不例外。而且Linux支持的大型数据库很多,如ORACEL、SQLSERvER等。3.Linux系统拥有丰富的网络服务功能。Linux提供了丰富的网络服务,如电子邮件、文件传输、网络新闻等。
(二)Linux网络不安全的因素。绝大多数计算机安全问题是由于管理不当造成,而不是系统软件本身的漏洞。因此严格的管理会极大程度地降低系统被非法入侵的风险,下面是几种常见的安全漏洞。1.特权软件的安全漏洞。特权软件的一种攻击的方法是通过IFS(Input Files Separator,输入字段分隔符)shell变量来实现的。例如,一个程序如果调用函数system()或popen()执行一个shell命令,那么该命令首先由shell来分析,如果执行的用户可以控制IFS环境变量,就可能会导致不可预测的结果。另一个攻击方法是通过使用HOME环境变量。2.特洛伊木马程序。它与一般用户想要执行的程序从外观上(如文件名)看很相似,例如编辑器、登录程序或者游戏程序等。特洛伊木马程序与一般用户想要执行的程序表面上很相似,执行的却是其它的操作,等到用户发现,却为时已晚。例如删除文件、窃取密码和格式化磁盘等。3.研究源代码的漏洞。许多入侵者是通过研究一些程序的源代码而成功的攻击系统的。4.网络监听及数据截取。威胁计算机网络安全的一个重要因素是计算机之间传输的数据可以很容易的被截取。其原因在于异种机的互联,敏感数据的传输往往不在系统的控制之下,有许多现成的软件可以监视网络上传输的数据。
(三)Linux网络遵守的安全性准则。几乎所有的安全漏洞都是由此而来的,黑客高手可以透过buffer塞爆,然后塞进他自己的程序进来,因此一定要杜绝这种使用方式。
(四)Linux网络编程的模式。在Linux网络操作系统中,网络数据传输需要经历四个层次:用户进程、socket、网络协议、网络设备。网络编程模式有以下三种:1.客户机/服务器模式。客户机/服务器模式在操作过程中采取的是主动请示方式,首先服务器方要先启动,并根据请示提供相应服务。网络编程的基本模式是client/serve:模式,该模式的建立基于以下两点:一、非对等作用;二、通信完全是异步的。2.面向连接协议的字节流套接字编程。字节流套接字编程socket采用的是传输控制协议TCP。TCP提供面向连接的流传输,面向连接对可靠性的保证首先是它在进行数据传输前,必须在信源端和信宿端建立互相的连接。3.非连接协议的数据报套接字编程。数据报式socket采用的是用户数据报协议UDP,提供无连接数据报传输,主要应用在高可靠性、低延迟的局域网上。它的优点是高效率低开销,不用建立连接和撤销连接,缺点是不可靠,报文丢失后需重发。
四、结语
Linux操作系统支持多种类型的套接字地址簇并将其抽象为统一的套接字接口socket,这样方便了互联网应用程序的编程,而且也为网络应用程序之间的数据通信提供了便利。
参考文献:
关键字: 操作系统;Linux;发展
操作系统统一管理计算机软、硬件资源,合理组织计算机的工作流程,协调系统部件之间,系统与用户之间、用户与用户之间的关系。操作系统是计算机系统的软件部分,具有并发、共享、随机、虚拟四个主要特征。操作系统是统一管理计算机软、硬件资源,合理组织计算机的工作流程,协调系统部件之间,系统与用户之间、用户与用户之间的关系。操作系统是一个庞大的管理控制程序,大致包括5个方面的管理功能:进程管理、存储管理、文件管理、设备管理。操作系统的型态非常多样,不同机器安装的OS可从简单到复杂,可从手机的嵌入式系统到超级电脑的大型操作系统。
操作系统的发展首先经历的是手工操作阶段,在这个阶段的计算机,主要元器件是电子管,运算速度慢,没有任何软件,更没有操作系统。用户直接使用机器语言编写程序,上机时完全手工操作,首先将预先准备好的程序纸带装入输入机,然后启动输入机把程序和数据送入计算机,接着通过开关启动程序运行,计算完成后,打印机输出结果。其次经历了监控程序阶段,计算机的主要元器件由晶体管取代,运行速度有了很大的提高,这时软件也开始迅速发展,出现了早期的操作系统,这就是早期的对用户提交的程序进行管理的监控程序和批处理软件。然后经历的是多道批处理系统阶段,统称为传统操作系统。
(一)Linux是目前应用最广泛的操作系统之一,Linux内核实现了很多重要的体系结构属性。在或高或低的层次上,内核被划分为多个子系统。Linux也可以看作是一个整体,因为它会将所有这些基本服务都集成到内核中。这与微内核的体系结构不同,后者会提供一些基本的服务,例如通信、I/O、内存和进程管理,更具体的服务都是插入到微内核层中的。随着时间的流逝,Linux内核在内存和CPU使用方面具有较高的效率,并且非常稳定。但是对于Linux来说,最为有趣的是在这种大小和复杂性的前提下,依然具有良好的可移植性。Linux编译后可在大量处理器和具有不同体系结构约束和需求的平台上运行。一个例子是Linux可以在一个具有内存管理单元的处理器上运行,也可以在那些不提供MMU的处理器上运行。Linux内核uClinux移植提供了对非MMU的支持。
(二)Linux是一个开放式系统,可以在网络上找到许多现成的程序和工具,这既方便了用户,也方便了黑客,因为他们也能很容易地找到程序和工具来潜入Linux系统,或者盗取Linux系统上的重要信息。因此,详细分析Linux系统的安全机制,找出它可能存在的安全隐患,给出相应的安全策略和保护措施是十分必要的。
(三)Linux是一种“自由(Free)软件”:所谓自由,是指用户可以自由地获取程序及其源代码,并能自由地使用他们,包括修改或拷贝等。它是网络时代的产物,众多的技术人员通过Internet共同完成它的研究和开发,无数用户参与了测试和除错,并可方便地加上用户自己编制的扩充功能。作为自由软件中最为出色的一个,Linux完全遵循POSLX标准,并扩展支持所有AT&T和BSDUnix特性的网络操作系统。由于继承了Unix优秀的设计思想,且拥有干净、健壮、高效且稳定的内核,其所有核心代码都是由LinusTorvalds以及其他优秀的程序员们完成,没有AT&T或伯克利的任何Unix代码,所以Linux不是Unix,但Linux与Unix完全兼容。真正的多任务、多用户系统,内置网络支持,能与NetWare、WindowsNT、OS/2、Unix等无缝连接。网络效能在各种Unix测试评比中速度最快。同时支持FAT16、FAT32、NTFS、Ext2FS、ISO9600等多种文件系统。Linux真正的多任务、多用户系统,内置网络支持,能与NetWare、WindowsNT、OS/2、Unix等无缝连接。网络效能在各种Unix测试评比中速度最快。同时支持FAT16、FAT32、NTFS、Ext2FS、ISO9600等多种文件系统。Linux对硬件要求较低,可在较低档的机器上获得很好的性能,特别值得一提的是Linux出色的稳定性,其运行时间往往可以“年”计。而且Linux具有庞大且素质较高的用户群,其中不乏优秀的编程人员和发烧“hacker”,他们提供商业支持之外的广泛的技术支持。正是因为以上这些特点,Linux在个人和商业应用领域中的应用都获得了飞速的发展,据国际数据公司(IDC)的调查显示,Linux操作系统的市场份额在1998年激增了212%,其增长速度远远超过了WindowsNT、NetWare、Unix和其他所有的服务器软件。
(四)Linux的安全问题也逐渐受到人们的重视。管理员的工作中,相当重要的一环就是管理账号。在管理Linux主机的账号时,一个最重要的方面就是确保每一个UID仅仅使用一次。另外就是设置有限的登陆次数来预防无休止的登陆攻击,通过编辑/etc/pam.d/system-auth,添加下面两句可以设置账户最多连续登陆5次,超过5次账户将被锁定,只有管理员才能帮助解锁。其次,口令时效和口令长度是一种系统机制,用于强制口令在特定的时间长度后失效。对用户来说,这可能带来了一些麻烦,但是它确保了口令会定期进行更改,是一项很好的安全措施。默认情况下,绝大多数的Linux版本并没有打开口令时效,不过要想打开却非常简单。通过编辑/etc/login.defs,可以指定几个参数,来设置口令实效和口令长度的默认设定。控制适度的密码重用频率,也可以为密码的安全策略提供良好的保护。Linux中每一个文件都具有特定的属性,主要包括文件类型和文件权限两个方面。可以分为5种不同的类型:普通文件、目录文件、链接文件、设备文件和管道文件。所谓的文件权限,是指对文件的访问权限,包括对文件的读、写、删除、执行。
无论是从硬件还是软件来讲,Linux都已经是一个成熟的操作系统。免费与开源的特性使得Linux对Windows的威胁也越来越大。在服务器和嵌入式系统市场上,Linux已经是主流的操作系统之一。Linux现正稳步拓展桌面操作系统市场。随着Linux的流行,越来越大的厂商开始在其销售的计算机上预装linux。
参考文献:
[1]RobertLoveLinux内核设计与实现[M].北京:机械工业出版社.2004
[2]LindaTorczonLinux安全:入侵防范、检测、恢复[M].机械工业出版社.2002
[3]许宏松Linux应用程序开发指南:使用Gtk+/Gnome库[M].北京:机械工业出版社.2000
关键词:VFS;Ext2;B+树
中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)31-1000-01
A Research on the optimization of Linux File System's Cutting
JIANG Chun-mao, GAO Yuan, ZHANG Li-jun
(Department of Computer Science and Information Engieer, HarbinNormal University, Harbin 150050, China)
Abstract: This paper expatiate embed-Linux on a basic and the file system's cutting express the concrete ideas, abolition of pre-allocation strategy and the use of B+tree to find algorithms to improve file system performance.
Key words: VFS; Ext2; B+tree
1 引言
随着嵌入式技术的日益发展,Linux作为嵌入式操作系统越来越广泛的使用着,由于Linux是开发源代码,内核功能强大,稳定,支持多任务等与生俱来的特点,使用Linux作为嵌入式OS的PDA,手机等设备越来越多了,针对特定的硬件设备,我们要将Linux进行裁剪,移植,Linux自身具备一整套工具链,容易建立交叉开发环境和运行环境,在目前常用的嵌入式开发技术中,基于Linux的移植技术已经得到了长足的进展。
Linux的文件系统广泛使用Ext2,Ext3等文件格式,在使用的过程中由于限于硬件环境,或多或少的不相适应,因此出现了很多嵌入式的文件系统,但是,Linux通用的文件系统还是具有通用性,精巧性等特点,因此对于它们的优化也是很重要的问题。
2 Linux裁剪的基本思路
Linux的裁剪目前主要手段集中在基于源代码分析上,有采用图调用的方式来辅助进行,但是从根本上来讲还是要从代码本身下手,通过内核配置工具生成描述内核功能选项的配置文件,然后再根据该配置文件编译生成定制的内核目标文件,即通过内核代码中的条件编译,裁剪掉内核中不必要的功能部分从而获得面向特定应用需求、体积较小的嵌入式Linux内核。
目前的裁剪主要在内核裁剪,函数库裁剪,文件系统裁剪几个方面进行,下面做简要的阐述:
1)内核的裁剪
对内核的裁剪主要集中在利用Linux本身的配置工具,使用make xconfig或者make menuconfig来进行选择,选择以后进行编译,编译内核需要3个步骤,分别是创建内核依赖关系,创建内核映像文件和创建内核模块。用以下几条命令对内核进行编译,之后生成我们所需要的映像文件。
make dep
make bzImage
make modules
make modules_install
通过这种方式,可以对于特定硬件不需要的功能进行删除,达到体积较小,操作比较简单,但是缺点也很明显,粒度过大,精度较小。况且未必所有的硬件都支持,在这种情况下,就需要对Linux的底层进行分析和裁剪,这些工作都需要对Linux系统的功能模块和底层硬件比较熟悉。
2)函数库的裁剪
由于Linux是由C的大量函数库组成,存在一些共享库可能根本就没有被调用,也存在一些库中的函数从未被使用过,然后对此进行处理是一件非常烦琐的事情,一般可以采用源代码分析,确定函数间的调用关系,确定程序和函数之间的关系,对于那些从未使用过的进行剪掉。我们也可以在编译目标应用程序的时候,使用静态连接的方法,这样效果较好,但是随之带来的是重复的连接占据内存空间太大。另外,在编写应用程序时可以调用任意需要的库函数,应用程序编写好后,根据应用程序的需求,分析库中应该提供的函数,然后形成新的链接脚本,最终重新编译链接库文件源代码,将所有没有调用到的库函数从库中删除。当然目前有很多成品的替代库,如uclbic等可以直接为我们使用。
3)文件系统的裁剪
目前Linux在嵌入式设备上有很多成型的文件系统,比如JFFS2,tmpfs等,对于通用Linux的Ext2,Ext3等文件系统一般也可以使用在嵌入式设备上。JFFS2系统在文件系统接近满的时候速度变慢。Linux采用VFS(虚拟文件系统),这样可以支持多个不同的文件系统,VFS是一组标准抽象的文件操作构成,可以使用系统调用的形式加载。因此,可以对VFS的数据结构和系统调用两个方面进行简化,比如可以对struct super_lock ,inode进行简化,使得VFS更加简单。当然,busybox提供了一个很好的工具集,为文件系统的裁剪提供了简单的方式。
3 Linux文件系统裁剪的优化
在文件系统的格式的各个要素中,主要关心的参数是:磁盘块的大小,块的分片,索引节点的个数和保留空间大小。磁盘块无论过大或者过小都不好,过小,一个文件将占用过多块,读取时间变长,过大,空间利用率降低。具体的应用不同,磁盘块的大小选择不同,有时候1k的大小其值恰好,有时,4k的大小利用率更高。而索引节点的个数和磁盘块的大小又密切相关的,磁盘块过多,将导致索引项目占空间增加。
另外,也可以对文件系统进行不完全解压来实现系统性能的折中。
Linux广泛采用Ext2作为它的文件系统,但是针对嵌入式的设备需要进行一些改造,数据块的预分配机制能有效的减少文件扩展所造成的文件系统碎片,并且提高分配效率。在存储资源足够的情况下,可以采用预先分配的机制。对于PDA这类设备,取消预分配的机制可能会提高系统性能,降低文件操作时间。
■
由此图可以看出,有预先分配和取消预先分配时间上差别不大,但是从空间角度来看,取消预先分配却节省了很多的空间。
B+树是一种平衡多路查找树,能够很好的应用到文件系统中,在B+树中,每一个非终端结点的结构中I节点号,即关键字用来进行查询。首先从根节点出发,根据根节点指针找到其所指的节点,然后根据此节点的关键字判断是否与指定值相等,依次递推。利用B+树改造文件系统的索引方法,根据B+树的特点,可以从最小关键字顺序查找,也可以从根节点随机查找。
4 总结
Linux的裁剪是一个理论和实践并重的课题,在理论上,建立一个通用的裁剪模型,多目标的裁剪研究。在实践上,Linux在嵌入式设备上的开发和应用前景广阔。本文给出了Linux裁剪的一般方法和文件系统裁剪的研究,今后还要对Linux嵌入式缓冲机制等进行深入的研究。
参考文献:
[1] RussellKing.KernelMemoryLayoutonAMRLinux[EB/OL].[2003-05-29]..uk/develPer.
[2] 彭小明,王强.Linux核心源代码分析[M].北京:人民邮电出版社.