摘要Linux操作系统是一个多用户、多任务的操作系统,它具有强悍的信息处理功能。本文详述了Linux操作系统丰富的网路功能和Linux内核中的实时性不足,结合Linux网路不安全诱因,介绍了常见的几种网路编程模式。
关键词Linux;操作系统;网路编程
中图分类号TP39文献标示码A文章编号1674-6708(2011)46-0210-02
随着Linux嵌入式系统技术的逐渐发展,其应用领域和市场份额继续快速扩大。其主要应用领域是服务系统和嵌入式系统。Linux作为一种使用类的UNIX操作系统,除了可以在INTEL,AMD等系列个人计算机上运行,也可以在许多工作站级的笔记本里面运行。
1Linux操作系统简介
嵌入式系统定义:
嵌入式系统是将先进的计算机技术,半导体技术和电子技术与各个行业的具体应用相结合的产物。其定义为:以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。嵌入式Linux操作系统是指对Linux经过剪裁大型化后,可固化在储存器或单片机中,应用于特定嵌入式场合的专用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操作系统都能支持它们运行。
2Linux操作系统的实时性不足
Linux系统调度CPU的时间是通过调度固定的时间片(timeslices)来实现的。诸如最开始进程赋于一个高的优先级,在某个进程的时间片内,这个进程假如舍弃CPU,它的优先级将不会变,或则变的更高。假如一个进程使用完它的时间片,它的优先级将会变低。基于以上特点,linux操作系统的实时性不足主要彰显在几个方面:
1)Linux操作系统内核是非占据式的。例如当普通进程运行在核态度时,实时进程优先级高于普通进程;
2)Linux操作系统的平均响应时间最少为数10ms,对响应时间要求更严的实时系统无能为力;
3)因为实时调度策略中的RR和FIFO算法存在,未能严格保证具有高优先级的实时进程总是优先于普通进程执行;
4)Linux操作系统内核的进程常常关掉中断。假如低优先级的进程关掉了中断,虽然有高优先级实时进程的中断发生,造成系统最终也未能响应。
3Linux的网路编程
3.1Linux操作系统的网路功能
Linux操作系统在通信和网路功能方面都优于绝大多数操作系统。Linux的网路功能主要有以下几点:
1)Linux操作系统支持TCP/IP合同。任何系统必须遵守的网路合同是TCP/IP,TCP/IP对建网提出了统一的规范的要求。
2)Linux支持多样的网路数据库。数据库是信息资源的重要来源,Linux对数据库支持也不例外。并且Linux支持的小型数据库好多,如ORACEL、SQLSERvER等。
3)Linux系统拥有丰富的网路服务功能。Linux提供了丰富的网路服务,如电子电邮、文件传输、网络新闻等。
3.2Linux网路不安全的诱因
绝大多数计算机安全问题是因为管理不当导致,而不是系统软件本身的漏洞。为此严格的管理会极大程度地增加系统被非法入侵的风险,下边是几种常见的安全漏洞。
1)特权软件的安全漏洞。特权软件的一种功击的方式是通过IFS(InputFilesSeparatorlinux社区,输入数组分隔符)shell变量来实现的。IFS变量用于决定传给shell字符串的分隔符。比如,一个程序假如调用函数system()或popen()执行一个shell命令网络编程与分层协议设计:基于linux平台实现,这么该命令首先由shell来剖析,倘若执行的用户可以控制IFS环境变量,就可能会造成不可预测的结果。另一个功击方式是通过使用HOME环境变量;
2)特洛伊木马程序。它与通常用户想要执行的程序从外形上(如文件名)看很相像,比如编辑器、登录程序或则游戏程序等。特洛伊木马程序与通常用户想要执行的程序表面上很相像,执行的却是其它的操作,等到用户发觉,却为时已晚。诸如删掉文件、窃取密码和低格c盘等;
3)研究源代码的漏洞。许多入侵者是通过研究一些程序的源代码而成功的功击系统的;
4)网路窃听及数据截取。恐吓计算机网路安全的一个重要诱因是计算机之间传输的数据可以很容易的被截取。其缘由在于异种机的互联,敏感数据的传输常常不在系统的控制之下,有许多现成的软件可以监视网路上传输的数据。
3.3Linux网路遵循的安全性准则
在设计inetd服务程序时,要非常注意bufferoverflow(缓存区溢出)的问题,也就是以下这些状况:charbuffer_overflow[64];fscanf(stdin,“%s”,buffer_overflow);
几乎所有的安全漏洞都是由此而至的,黑客大神可以透过buffer塞爆,之后塞入他自己的程序进来,因而一定要避免这些使用方法。
3.4Linux网路编程的模式
在Linux网路操作系统中,网路数据传输须要经历4个层次:用户进程、socket、网络合同、网络设备。它的网路编程是通过socket套接字插口来实现的,应用程序通过使用socket统一插口收发网路上的数据,网路的socket数据传输是一种特殊的I/O,socket似乎通讯线接口,只要通讯双方都有接口,两个接口之间有通讯线联接,就可以通讯,这样便捷了联网应用程序的编程,一个套字节是与网路的一个联接。应用程序中使用套接字来调用套插口,套接字可觉得是指向套插口的表针linux 删除文件夹,如同文件描述符是指向文件的表针一样。一个Socket有3个特点:网域、类型、协议。网路编程基本模式有以下3种:
1)顾客机/服务器模式。顾客机/服务器模式在操作过程中采取的是主动请示方法,首先服务器方要先启动,并按照请示提供相应服务。网路编程的基本模式是client/serve:模式,该模式的构建基于以下两点:一、非对等作用;二、通信完全是异步的;
2)面向联接合同的字节流套接字编程。字节流套接字编程socket采用的是传输控制合同TCP。TCP提供面向联接的流传输,面向联接对可靠性的保证首先是它在进行数据传输前,必须在信源端和信宿端构建相互的联接;
3)非联接合同的数据报套接字编程。数据报式socket采用的是用户数据报合同UDP,提供无联接数据报传输网络编程与分层协议设计:基于linux平台实现,主要应用在高可靠性、低延后的局域网上。它的优点是高效率低开支,不用构建联接和撤消联接,缺点是不可靠,报文遗失后需重发。
4推论
Linux操作系统完全TCP/IP合同簇,其内核结构在网路方面是特别建立的。Linux操作系统支持多种类型的套接字地址簇并将其具象为统一的套接字插口socket,这样便捷了互联网应用程序的编程,并且也为网路应用程序之间的数据通讯提供了便利。
参考文献
[1]孙琼.嵌入式Linux应用程序开发解读[M].上海:人民邮电出版社,2006,7.
[2]张斌,高波,等.Linux网路编程[M].上海:复旦学院出版社,2000,1.