基于Linux操作系统的网络编程方法研究
摘要 linux操作系统是一个多用户、多任务的操作系统,它具有强大的信息处理功能。本文简述了linux操作系统丰富的网络功能和linux内核中的实时性不足,结合linux网络不安全因素,介绍了常见的几种网络编程模式。 关键词 linux;操作系统;网络编程
中图分类号tp39 文献标识码a 文章编号 1674-6708(2011)46-0210-02
随着linux嵌入式系统技术的逐步发展,其应用领域和市场份额继续快速扩大。其主要应用领域是服务系统和嵌入式系统。 linux作为一种使用类的unix操作系统,不仅可以在intel,amd等系列个人计算机上运行,也可以在许多工作站级的电脑上面运行。
1 linux操作系统简介 嵌入式系统定义:
嵌入式系统是将先进的计算机技术,半导体技术和电子技术与各个行业的具体应用相结合的产物。其定义为:以应用为中心、以计算机技术为基础、软件硬件可剪裁、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。嵌入式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位、位等各种处理器,linux操作系统都能支持它们运行。 2 linux操作系统的实时性不足
linux系统调度cpu的时间是通过调度固定的时间片(time slices)来实现的。例如最开始进程赋予一个高的优先级,在某个进程的时间片内,这个进程如果放弃cpu,它的优先级将不会变,或者变的更高。如果一个进程使用完它的时间片,它的优先级将会变低。基于以上特征,linux操作系统的实时性不足主要体现在几个方面:
1)linux操作系统内核是非抢占式的。比如当普通进程运行在
核心态时,实时进程优先级低于普通进程;
2)linux操作系统的平均响应时间最少为数10ms,对响应时间要求更严的实时系统为力;
3)由于实时调度策略中的rr和fifo算法存在,无法严格保证具有高优先级的实时进程总是优先于普通进程执行;
4)linux操作系统内核的进程经常关闭中断。如果低优先级的进程关闭了中断,即使有高优先级实时进程的中断发生,导致系统最终也无法响应。 3 linux的网络编程
3.1 linux操作系统的网络功能
linux操作系统在通讯和网络功能方面都优于绝大多数操作系统。linux的网络功能主要有以下几点:
1)linux操作系统支持tcp/ip协议。任何系统必须遵循的网络协议是tcp/ip,tcp/ip对建网提出了统一的规范的要求。 2)linux支持多样的网络数据库。数据库是信息资源的重要来源,linux对数据库支持也不例外。而且linux支持的大型数据库很多,如oracel、 sqlserver等。
3)linux系统拥有丰富的网络服务功能。linux提供了丰富的网络服务,如电子邮件、文件传输、网络新闻等。 3.2 linux网络不安全的因素
绝大多数计算机安全问题是由于管理不当造成,而不是系统软
件本身的漏洞。因此严格的管理会极大程度地降低系统被非法入侵的风险,下面是几种常见的安全漏洞。
1)特权软件的安全漏洞。特权软件的一种攻击的方法是通过ifs(input files separator,输入字段分隔符) shell 变量来实现的。ifs变量用于决定传给shell 字符串的分隔符。例如,一个程序如果调用函数system()或popen()执行一个shell 命令,那么该命令首先由shell 来分析,如果执行的用户可以控制ifs 环境变量,就可能会导致不可预测的结果。另一个攻击方法是通过使用home环境变量;
2)特洛伊木马程序。它与一般用户想要执行的程序从外观上(如文件名)看很相似,例如编辑器、登录程序或者游戏程序等。特洛伊木马程序与一般用户想要执行的程序表面上很相似,执行的却是其它的操作,等到用户发现,却为时已晚。例如删除文件、窃取密码和格式化磁盘等;
3)研究源代码的漏洞。许多入侵者是通过研究一些程序的源代码而成功的攻击系统的;
4)网络监听及数据截取。威胁计算机网络安全的一个重要因素是计算机之间传输的数据可以很容易的被截取。其原因在于异种机的互联,敏感数据的传输往往不在系统的控制之下,有许多现成的软件可以监视网络上传输的数据。 3.3 linux网络遵守的安全性准则
在设计inetd 服务程序时,要特别注意buffer overflow(缓存区溢出)的问题,也就是以下这种状况: char
buffer_overflow[];fscanf(stdin,“%s”,buffer_overflow); 几乎所有的安全漏洞都是由此而来的,黑客高手可以透过buffer 塞爆,然后塞进他自己的程序进来,因此一定要杜绝这种使用方式。
3.4 linux网络编程的模式
在linux网络操作系统中,网络数据传输需要经历4个层次:用户进程、socket、网络协议、网络设备。它的网络编程是通过socket套接字接口来实现的,应用程序通过使用socket统一接口收发网络上的数据,网络的socket数据传输是一种特殊的i/o,socket好像通信线插口,只要通信双方都有插口,两个插口之间有通信线连接,就可以通信,这样方便了联网应用程序的编程,一个套字节是与网络的一个连接。应用程序中使用套接字来调用套接口,套接字可认为是指向套接口的指针,就像文件描述符是指向文件的指针一样。一个socket有3个特征:网域、类型、协议。网络编程基本模式有以下3种:
1)客户机/服务器模式。客户机/服务器模式在操作过程中采取的是主动请示方式,首先服务器方要先启动,并根据请示提供相应服务。网络编程的基本模式是client/serve:模式,该模式的建立基于以下两点:一、非对等作用;二、通信完全是异步的;
2)面向连接协议的字节流套接字编程。字节流套接字编程socket采用的是传输控制协议tcp。tcp提供面向连接的流传输,面向连接对可靠性的保证首先是它在进行数据传输前,必须在信源端和信宿端建立互相的连接;
3)非连接协议的数据报套接字编程。数据报式socket采用的是用户数据报协议udp,提供无连接数据报传输,主要应用在高可靠性、低延迟的局域网上。它的优点是高效率低开销,不用建立连接和撤销连接,缺点是不可靠,报文丢失后需重发。 4结论
linux操作系统完全tcp/ip协议簇,其内核结构在网络方面是非常完善的。linux操作系统支持多种类型的套接字地址簇并将其抽象为统一的套接字接口socket,这样方便了互联网应用程序的编程,而且也为网络应用程序之间的数据通信提供了便利。 参考文献
[1]孙琼.嵌入式linux应用程序开发详解[m].北京:人民邮电出版社,2006,7.
[2]张斌,高波,等.linux网络编程[m].北京:清华大学出版社,2000,1.
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- huatuo0.cn 版权所有 湘ICP备2023017654号-2
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务