Linux范文10篇

时间:2023-03-26 22:53:52

Linux范文篇1

关键词:Linux操作系统;多元化教学;线上教学;线下指导;项目实践

0引言

Linux操作系统在许多领域具有广泛应用,比如服务器、个人电脑以及嵌入式系统等。作为知名的开源操作系统,Linux具有强大的网络功能,支持全部因特网协议,以及较强的可移植性[1]。Linux操作系统作为计算机专业基础课程,教学目标是使学生学会使用Linux系统调用,使用glibc的库进行程序设计,以及熟练掌握Linux基本操作。针对Linux教学过程中存在的诸多问题,采用多元化教学方式提升教学质量,是课程教学改革的有效途径[1,2]。

1研究现状及存在的问题

近年来,部分高校率先对Linux操作系统的教学模式进行了探索及改进。然而在课程建设方面,仍处于探索、积累的阶段,学生对于Linux的掌握水平参差不齐。与Windows操作系统良好的图形界面相比,多数学生在学习初期不习惯使用Linux操作系统。此外,Linux操作系统的培养目标、课程大纲、实践教学体系、电子课件和视频资源等不够完善,教学模式不够成熟,教学方法单一,主要表现在以下几方面。

1.1课程建设不完善

目前Linux操作系统教学大纲、教学计划以及电子课件均与其他课程相似,课程建设采用“趋同管理”模式,没有明显的课程特色。Linux操作系统采用命令行的方式进行常规操作,命令参数较多,具有较强的实践操作性。因此,Linux课程的教学方式应符合课程特色,不能简单套用传统的教学方式,而应采用符合课程特色的多元化教学手段。

1.2课程教学方式落后

当前,Linux操作系统教学仍然是按照传统的教学方式进行,教学内容简单,教学方法单一,以教师为主体,按照课件上的内容进行单方向授课。在实践教学环节上,由于课时有限,学生人数多,教师不能对所以学生进行单独辅导,学生短期内不能熟练掌握Linux操作系统的更多指令操作。表1列举了Linux常用命令。

1.3优秀教学资源匮乏

Linux操作系统的发展迅速,对教师的专业技能水平要求较高,而教学知识相对成熟滞后,很多老师没有受过专业的培训,因此,Linux教学过程中就存在教学知识与实践相脱节的现象,课程内容缺乏最新的知识,学生就业时缺乏竞争优势[3,4]。

1.4课程考核方式单一

目前Linux操作系统的考核方式与本课程的培养目标不相符,仅仅采用传统的百分制试卷考试,无法衡量学生的真实学习水平,不利于培养学生实践能力。实际上,要想熟练地掌握Linux操作系统就需要大量的编程和实践,因而应采用多样化的灵活考核形式,才能真正考核学生的实践能力水平。

2Linux多元化教改方案

针对当前Linux操作系统课程教学过程中存在的问题,本文以“线上教学+线下指导+项目实践”的方式进行课程改革探索,采用多元化的教学方案,加深学生对Linux操作系统的理解程度,提升学生的思维能力,强化课上课下的动手实践能力,进而提升教学质量[5-7],具体包括以下几个方面:

2.1优化课程教学资源

2.1.1更新教学目标

围绕Linux操作系统课程的培养目标和毕业要求,及时更新修订课程教学内容,改进教学大纲的教学目标,做到与时俱进。整合优势教学资源,根据最新的教学目标,对现有教学大纲进行研究讨论,及时补充完善,制定科学合理的Linux操作系统教学计划。

2.1.2优化教学内容

根据Linux操作系统最新版本,对原电子课件、教学计划进行及时更新,制定符合学生需求的教学内容。充分利用网络资源及技术,比如MOOC,视频,课件等,灵活采用线上授课模式,课后采用实践练习的强化方式,以提升教学效果。建设完善的线上线下教学资源库,从多种渠道收集教学资源和素材,比如网络视频,课件,文档等,便于学生通过多种方式进行学习。

2.2采用多元化教学模式

为实现Linux操作系统教学目标,需要灵活运行多种教学方式,将传统课堂与信息技术相结合,采用“线上教学+线下指导+项目实践”多元化教学模式,突破传统教学模式的局限。充分利用网络资源,可以使学生掌握Linux操作系统的最新进展,拓展知识深度,延伸课堂广度。这种“线上教学+线下指导+项目实践”多元化的教学方法,能够很好地平衡Linux线上与线下的教学模式利弊,提高教学效果。通过多元化教学模式+考试强化过程,形成完整的Linux课程教学和评价机制。图1为Linux多元化教学模式。

2.2.1线上教学

线上教学形式灵活,利用网络视频资源、MOOC资源等,实现课堂教学、课堂签到、作业测试,以及教学管理等。学生可在自己的电脑上安装Linux操作系统,根据老师的讲授内容,同步进行实践操作,大大节约教学成本,同时做到学以致用[8]。

2.2.2线下指导

线下教学则直接使用Linux操作系统完成各种任务。教师进行现场指导,理论与实践相结合,锻炼学生操作及动手能力。学生通过阅读Linux内核代码,深入了解Linux内核的原理,反复研习,重点突破,操作使用各种命令,并能够进行程序设计,提升学习效果。

2.2.3项目实践

Linux项目实践面向应用场景的开发,提高学生的能力水平。从读程序代码,到上手修改代码,要求学生学以致用,这是一个很大的进步。例如,学生可以自己实现一个Linux文件系统,实现一个系统调用,或者编写一个设备驱动程序等。

2.3完善课程考评机制

Linux操作系统课程的综合考核应结合线上理论测试以及编程实践作业,建立以实践为导向的多元化考评机制,综合考察学生的学习水平和实践能力,主要包括理论、实践和应用等三个方面;同时,设置合理的教学评价机制,学生可以通过该机制对教师的教学模式进行评价打分,促使教师改进教学模式,提升教学效果。

3Linux多元化教改效果分析

图2为教改效果分析图,从图2中可见,通过教学改革,学生基础理论成绩平均提高了15.3%,实践操作成绩平均提高了25.0%,综合能力平均提高了20.5%,达到了预期效果。以下给出Linux采用多元化教学模式后两个真实案例分析。案例1:学生A通过课程学习,经过多次实践练习,成功搭建了网站服务器架构LNMP(Linux+Nginx+MySQL+PHP)。案例2:学生B通过课程学习,成功搭建了Linux平台虚拟化环境Docker。

4结束语

Linux范文篇2

关键词:Linux系统;嵌入式;数控系统;实现路径

装备制造业对数控机床的要求逐渐提高,设备总体功能和性能离不开高效的数控系统,嵌入式系统具备小型化、低功耗、稳定可靠等优势,应用在数控系统中,可根据实际需要对计算机控制系统进行配置,实现智能控制、远程控制、故障检测等功能,作为数控机床的控制中枢,目前主流数控系统多采用单核ARM平台,数控系统性能的提升受到单核处理器自身不足的限制,因此对于多核平台的应用成为优化嵌入式数控系统的有效手段。

1现状分析

数控系统的硬件平台的构建目前多通过上位机同下位机协调工作的方式实现,上位机的主要功能在于代码解释、数据处理等,控制具体的运动以及采集信号则由下位机负责完成,但这种方式存在开发周期过长、成本较高,难以满足经济型数控系统的控制需求,随着嵌入式微处理器的发展与完善,可在同一个处理器上完成所有的数控任务,同时通过接口电路的设计,显著简化了数控系统的规范化研发过程,使系统具备较高的拓展性和稳定性[1]。

2系统设计

2.1系统硬件设计。在嵌入式数控系统中使用了S3C2440A,基于ARM920T核的S3C2440A嵌入式微处理器提供完整的通用系统外设,无需配置额外组件,能够降低整体系统成本,该芯片上集成了丰富的资源,系统硬件设计具体如图1所示。操作系统及软件程序都运行在S3C2440A上,系统总线上挂接存储设备(NANDFLASH,256M),用于存贮各数控程序、文件系统等,采用同步动态随机存储器(SDRAM,64M)作为内存,开机后,操作系统及数控程序在开机后会被依次装入SDRAM中运行,前期硬件可通过JTAG接口实现在线调试,对伺服电动机的控制则通过滤波处理4路PWM(分别控制x,y,z轴及主轴转速)实现,PWM信号经反相器转换成两路差分信号后再通过运算放大器电路得到具有负极性幅值的PWM信号,经滤波放大得到模拟量电压信号[-10V,10V],从而实现对驱动器转矩指令的控制(电动机在PWM输出占空比超过一半时正转)。采用FPGA进行扩展,转换编码器信号(相差90°相位)为计数脉冲信号和方向信号后,经过FPGA的双向计数器输出后得到当前编码器的计数值,控制单元通过读取相应地址即可完成编码器信号的采集,从而实现了闭环控制[2]。2.2软件平台的建立。软件平台是数控系统运行的基础,搭建工作在PC机上完成,采用Fedora9系统(RedHat公司)作为交叉开发环境,编译工作通过在PC机上指定的交叉编译器(arm-l4inux-gcc工具)完成,使其可在ARM处理器中运行,在此基础上即可完成Bootloader、Linux内核和文件系统的移植过程,系统的软件平台如图2所示。主要由引导装载程序、Linux内核、GUI(图形用户接口)等构成,作为软件平台的核心Linux内核的功能在于调度进程、内存管理及通信等;系统运行所需的文件和数控软件都包含在文件系统内;引导装载程序(u-boot)的作用功能在于硬件设备的初始化处理、内存空间映射表的建立等,以便于操作系统的后续运行;GUI提供了丰富的接口,显著降低了软件实现的难度[3]。2.3实时性改进的实现。由于Linux内核时钟粒度较为粗糙且不支持完全的抢占,且IRQ中断需经常关闭,导致Linux的实时性较差,为满足实时多任务控制要求需对其进行改进,本文采用双内核法对Linux进行实时扩展,将一个硬件抽象层加入到Linux内核与硬件间(使系统有两个内核),负责系统所有的硬件中断,根据进程对实时性的要求分配给实时内核或Linux内核进行处理和调度,采用该方法的Xenomai专注于实时性,兼容性较好可支持多平台使用,采用基于ADEOS的Xenomai使linux更好的满足工业实时性的需求,同时使操作系统建的灵活性和可扩展性得以提升,各操作系统运行于独立的域中,重点在于重新编译Linux内核及制作Xenomai库,具体的实时扩展工作流程为:先下载好Xenomai源代码,在Xe-nomai_root中执行scripts(脚本子目录)中prepare-kernel.sh,为linux内核源代码(位于linux_tree目录中)打上Xeno-mai补丁,指定目标平台为ARM架构,在此基础上完成Linux内核的配置及相关所需Xenomai选项的选取(如是否关闭FPU或开启n-ativeAPI等),makebzImage命令在获取正确的config文件后即可执行,通过编译实现最终嵌入式实时Linux内核(支持enomai)的获取,通过对Xenomai源码进行编译即可使用其API编写实时任务,从而得到相应的实时库文件,再将库文件拷贝到/lib目录中(位于目标平台文件系统),从而完成了数控系统实时化改造过程[4]。

3数控系统的实现

数控系统软件结构如图3所示。控制部分负责完成对实时性要求较高的相关数控加工任务,管理部分负责提供实时性要求低的支持。3.1控制模块的实现。该模块决定着系统的加工性能,需在读取相应数控程序代码的基础上完成一系列的处理,伺服电动机的驱动器接收到最终数据后,对电动机运转过程进行控制完成加工任务,其中位置控制对实时性的要求最高,可采用Xenomai提供的API编写实现,以位置控制模块为例具体实现过程如下[5]。(1)首先调用实时任务创建函数(位于XenomaiAPI中),函数在线程创建成功后返回0,具体的函数表达式如下:rt_task_create(task,constchar*name,intstksize,intprio,mode);(2)位置控制的处理函数表示如下:voidcontrol_process(void){/*程周期设为1000μs*/rt_task_set_periodic(NULL,TM_NOW,1000000);while(1)/*处理位置控制的代码*/……}(3)运行位置控制线程所调用的函数表示如下:rt_task_start((void*)control_process,void*arg);接下来开始运行control_process()函数,利用Xenomai的实时管道实现各控制模块的数据通信(实时性要求高),创建如下:intrt_pipe_create(constchar*name,intminor,pool-size)读写管道数据时实施层调用函数如下:ssize_trt_pipe_read(void*buf,size_tsize,timeout);ssize_trt_pipe_write(constvoid*buf,size_tsize,intmode);3.2管理模块的实现。采用Linux提供的系统调用API实现管理任务的处理,各管理模块的连接通过友好的交互界面实现以便于用户操作,本文采用Qt/Embedded实现,具体结构如图4所示。嵌入式领域的开源GUI项目中的Qt/Em-bedded支持多平台,基于C++面向对象,提供各种图形用户界面所需元素,窗口间相互依存关系在编程时可通过C++的继承来实现,能够使界面程序代码的重复部分得以有效降低;窗口中各控件间的通信则可使用Qt中的信号槽机制实现,简化界面程序编写过程[6]。

4系统测试

为检测本文所设计系统的有效性,对系统各模块的功能进行检测,检测结果表明系统具备友好的人机界面,在PC机上搭建的软件平台能够根据实际需要调度进程、管理内存等保证了通信质量,系统运行所需的文件和数控软件都包含在文件系统内,结合提供丰富接口的GUI,使数控系统调度任务的实时性得以有效提高,为缩短插补周期、提高加工效率打下基础,通过Xenomai提供的API编写可有效实现代码解释、刀具补偿、速度规划、逻辑运算及位置控制等子模块的功能,具备较高的实用性和稳定性。

5总结

Linux范文篇3

关键词:自由软件

《赞自由软件》的第一集发表于《工程地质计算机应用》创刊之初的1996第3期(总第3期)。当时主要是受国内外正在兴起的自由软件思想的影响,站在工程地质应用软件交流的角度,希望通过自由软件理念的探讨,使专业性应用软件走出自我封闭的误区,更好地服务于学科专业的发展和工程建设的实际需要。确立了这样的基本方针,我们的实际行动就是创造交流的环境,搭建沟通的平台,这是工程地质计算机应用技术协作网的主要任务之一。

自由软件、自由软件思想和“自由”这个名词本身,都是舶来品,这一点笔者已经在《赞自由软件》的前五集和《论软件思想》(共四集)等文章中作了考证性阐述和一定深度的探讨。前不久,一位在美国研究法律的访问学者,从网上提取了笔者关于自由软件的系列文章,通过电子邮件与笔者探讨自由软件的法律问题,这可是把我给难住了。但读了该学者从网上发来的关于自由软件的法学问题的研究文章,倒是又获得了新的启迪。在《赞自由软件》第一集“自由软件的存在基础”一节中笔者已有明确提示:“如果有人能从社会科学、人文科学、政治经济学、市场经济学、心理学、人性的本能等多学科广角度全方位去研究这一问题,肯定会有惊人发现,说不定能获得诺贝尔奖”。果不然,这些年来理论界和学术界对自由软件存在基础的研究,不但涵盖了以上学科,甚至已经扩展到了哲学、法学等领域,可喜可贺!

自由软件与自由软件思想的诱人魅力、研究意义及社会价值,引起了理论界和学术界的探索与争鸣,这不难理解。媒体对自由软件炒作热烈,也是可以理解的。而全世界除了微软之外的几乎所有IT大公司都跟着起哄,并投入巨资支持自由软件,这就令许多人难以理解。因为人们的固有概念中已经将企业厂商定位于惟利是图的范畴,而自由软件与商业软件在利益上是矛盾的,自由软件如何获利的问题没有解决,就相当于哲学的基本问题没有解决,其他一切问题都失去了探索的根基。因此,本集《赞自由软件》的立论就从这里开始。

1自由软件的最新动态

为了便于立论,我们还是先来回味一番近一年来自由软件的精彩表演。

自由软件在计算机业界的火爆程度逐年升温,开放源代码运动从民间自发状态转化到由各国政府大力支持的社会形态,大有世界软件一体化的阵势。自由软件的典型代表Linux将成为操作系统的事实标准,以替代多年来微软垄断下强加给广大用户的封闭的Windows系统,这已经不再仅仅是软件理想主义者们的追求目标,而是实实在在的软件发展趋势。政府、企业、研究、应用等等方面对Linux投入的激情和寄予的希望,可以从如下事实获得确认。

在政府支持方面,2002年底媒体报道支持Linux的有20多个国家(包括中国、美国、印度、德国、法国、芬兰、韩国、巴西、澳大利亚等),2003年又新增加了以南非为首的非洲国家。日本政府紧跟其后并付之实际行动,宣布采用Linux系统来管理中央政府80万雇员的工资和其他个人数据。

在自由软件开放源代码运动中,政府出面影响最大的,是中、日、韩三国为共同推进开放源代码软件而开展的合作。2004年4月3日至4日,中、日、韩三国IT局长OSS(开放源代码软件)会议在北京召开,三国签署了《开放源代码软件合作备忘录》,决定以Linux等开放源代码软件开发为基础,在标准制定、软件开发、推广应用、认证服务、人才培养、知识产权等方面开展交流与合作。备忘录还指出,OSS是软件未来发展的大趋势,使用开放源代码的操作系统,有利于信息交换、信息共享和软件的开发与应用。作为OSS典型代表的Linux,在全球得到快速发展,也为中、日、韩三国的软件产业带来了难得的机遇。

中国政府对Linux的支持力度,我们还可以信手拈来更多的公开信息请读者自己判断。2003年11月,信息产业部科技司组织召开软件产业研讨会,以企业为主体,开放式组成Linux标准工作组,通过联合国内产、学、研、用等企事业单位和高校等各方力量,进行有关Linux的标准研究和编制修订工作,以确定Linux产业的发展方向,推动Linux在我国的应用。Linux国家标准工作组目前已经完成了对Linux应用编程界面(API)规范、Linux桌面操作系统技术规范、Linux服务器操作系统技术规范、Linux用户界面等四个方面规范草案的编写,并进入社会意见征求阶段。这在国内软件业是前所未有的。

2003年春惊心动魄的SARS疫情战役,北京市政府为了不使病毒由城市扩散到农村,迅速搭建了京郊农村SARS疫病防控信息平台,选用的是红旗Linux系统。中国石化、中央电视台、中国邮政等都是Turbolinux的重要客户。北京、海南等省市政府与IBM签定了共同发展Linux的备忘录。广东省财政厅的全省决算中心系统覆盖广东全省1300多个乡镇和城市,采用IBMDB2forLinux平台。IBMLinux高性能群集技术为打造超级计算机显露优势,南开大学的“南开之星”被称为目前国内最快的超级计算机,操作系统是Linux。2004年3月,信息产业部与惠普公司宣布共建国家软件公共服务平台的Linux软件实验室(MII-HPLinux软件实验室)。惠普承诺,将在未来三年内为Linux服务平台提供价值2亿元人民币的软件和硬件设备,以及技术支持和人才培训,共同推动Linux的产业化进程。

业界应用方面的信息,更为全面地勾画出了开放源代码的自由软件在各行各业中的地位。当前正在热炒的网格计算(GirdComputing),选择Linux为网格计算业界标准。中国教育科研网格被称为迄今为止世界上规模最大的网格计算工程之一,服务器操作系统也是Linux。中国电子信息产业发展研究院(CCID)申报的“Linux软件产业发展战略和政策支撑体系研究”项目获国家支持。HP与红旗软件缔结Linux战略联盟,HP宣布与拓林思签订协议,在整个亚洲地区销售LinuxPC。据IDG报道,开放源码数据库系统功能正在增加,Linux在服务器市场的销售额2003年比2002年增长49.8%。AMR公司预计,从2006年起,开放源码数据库将被用来实现“关键任务系统中的路由选择”。

IBM对Linux的支持与贡献在业界是有目共睹的。最近,IBM要在中国举办全国高校Linux设计大赛,2004年4月15日开始网上报名(网址:)。在国际上,IMB从1997年起就开始赞助世界计算机协作会的国际大专编程竞赛(ICPC),2003年和2004年均采用开放源代码的Liunx竞赛环境。

Linux操作系统的核心是被称之为Linux内核的那一部分,其他所有Linux应用都是在此内核的基础上各自尽情发挥的。在Linux2.4内核基础上作了许多重大修改后,于2003年底了Linux2.6内核,业内人士认为它能使Linux更好地应用于PC和服务器。2004年3月,Novell推出基于Linux2.6内核的SUSELinux9.1个人版和专业版;拓林思业界首款采用Linux2.6内核的最新桌面产品Turbolinux10Desktop。足以可见业界对Linux2.6内核应用反应之快,有力地支持着信息社会快鱼吃慢鱼的宏论!

Novell是世界知名网络软件厂商,也是最后一个站出来支持Linux的知名世界级企业。在全世界网络系统领域,许多重要的关键系统的用户都是采用Novell的NetWare网络系统。笔者至今还保存着一件圆领短袖白汗衫,是好几年以前应邀参加Novell的网络研讨会时获赠的礼品。汗衫背上的图案是两个脑袋很小的时髦男女用一根网络线连接在一起后就成了大脑共享器,很有创意的网络广告衫。近年来在世界各大软件硬件和网络厂商都纷纷宣布支持Linux的时候,Novell一直没有表态。可是到了2004年2月,Novell的惊人之举是收购了Linux厂商SUSELINUX,一跃而成为Linux世界中最有实力的厂商,就连IBM的服务器也将捆绑Novell的Linux软件产品。2004年3月,Novell与IBM、惠普签订对Linux系统的支持协议,宣布正在开发一套完整的Linux桌面系统,以取代Windows系统。

2微软对自由软件的恐慌性表演

自从2003年初微软在开放源代码的重压之下,不得已而宣布向十几个国家的政府部门和国际组织公开Windows操作系统的源代码之后,最近也有一些新举动。2004年4月6日,微软在网站上了WindowsXML(WiX)安装工具包的XML源代码,并声明WiX的使用的是“通用公共许可”(CPL),开发人员能够修改源代码,并在商业性产品中使用这些源代码。

请读者注意,微软同时还指出:“许多在SourceForge上的项目都是基于Windows操作系统建立的,WiX技术的开放将能够使开发者们开发出更好的Windows软件”。广大追求自由的程序员同志们该清醒了吧!微软开放源代码的目的仍然是让更多的程序员写出“更好的Windows软件”。请注意!用微软的源代码永远也写不出能跨出Windows系统束缚的应用软件!由此可见,即使微软开放所有的源代码,仍然是对自身系统的开放式保护和美丽外衣下的进一步垄断!因为Windows应用软件越多,越能巩固Windows的阵地。

微软在神秘的计算机走进千家万户的过程中是立了大功的,视窗系统使计算机操作简单化可视化。微软在市场运作中的成功案例,也许永远都值得MBA教师和学员们研究。微软通过市场垄断挣了许多钱,但世界首富比尔·盖茨却宣布只为后代留下2000万美元,其余数百亿美元全部回报社会!这样的境界在我们身边的富翁中是很难找到的。然而,微软的Windows通吃了PC操作系统,形成了事实垄断,这对计算机技术的发展起到了刹车的作用。因此,我们不得不承认美国的反垄断法律体系的科学性和先进性;全世界针对微软垄断的自由软件开放源代码运动,其实也不可能将微软置于死地,也没有这个必要。科学技术是属于全人类的,这是最为冠冕堂皇的理念。

进入2004年后,微软还爆出了一个震惊世界的重大行动。4月2日,微软与SUN公司宣布双方达成广泛技术合作协议,为此微软向SUN支付高达19.5亿美元的巨额补赏,以解决有关反垄断和专利诉讼以及技术许可费等问题。评论家认为,这种所谓的Unix与Windows的强强联合,目的只有一个,对付日益强大的Linux。SUN本身是支持Linux的,但同时拥有自己的Unix产品市场和著名的Java发明权,早在20世纪90年代,SUN与微软在Java技术和开放Windows接口问题上就成为“宿敌”,一直官司不断。本次联合表明,微软虽然被孤立于Linux世界之外,但瘦死的骆驼比马大,出重金分化瓦解Linux阵容,正应了中国那句俗语:有钱能使鬼推磨。而令Linux阵容担心的是,SUN如果成了Linux的叛徒,会带来什么样的后果?其实不必多虑!SUN的品牌在国际上与IBM、HP等企业是齐名的,为私利而出卖朋友否定自己一直倡导的开放源代码理念,SUN决不会做此等势利小人。比较可能的结局是,SUN在金钱面前会脚踏两只船,暂时放弃对正义的主持,做八面玲珑的和事老。

微软的策略是很明显的,一方面开放Windows源代码吸引更多的程序员开发Windows应用软件,确保Windows市场。另一方面,与SUN的合作免去了在Java技术上的纠纷,因为Java语言开发出来的应用软件,是Windows、Unix和Linux都可以兼容的跨平台软件,微软并不吃亏,可见微软之高瞻远瞩。不过用户是不会过多地关心这种合作与不合作的,开放源代码和跨平台的应用系统,对用户来说总还是有好处的嘛。

微软分化瓦解Linux阵容还使出了常规性的小动作。据报道,微软最近从SUSELinux挖走一个Linux业绩突出的销售大腕Aigner。类似行动也许还会继续,这将是对Linux阵容的进一步考验。

3自由软件目前最为激烈的争议

2003年在全球Linux业界影响最大的事件莫过于SCO就Linux向美国犹它州法院提出的法律诉讼,SCO集团状告IBM将Unix的源代码用于Linux,并向全世界采用Linux的用户提出了一些威胁性警告。但SCO的行为私毫没有影响到Linux的发展趋势,反而有点偷鸡不成反蚀米的味道。SCO是世界知名Unix厂商,也是Linux厂商之一,其产品是SCOLinux。大家知道,Linux起源于Unix,许多Unix的源代码可以很容易地移植到Linux。SCO与IBM有合作关系,它当然不能容忍IMB单独在Linux领域比自己更为风光。

SCO的法律诉讼令人感到有些无聊。既然SCO也是Linux厂商,SCOLinux系统就应该遵守GPL协议条款开放源代码,但他却反而去状告和威胁Linux用户,当然就激起了全世界Linux厂商和用户的反感。据最新消息,美国法律不一定支持SCO的诉讼。

SCO的法律诉讼还让我们想到另一些有趣的事。例如某些人某些作品在没有出名的时候,什么都不是,一旦出名了,动不动就要找人打官司。Windows在不出名时对盗版采取的是低调处理,等你用得像吸毒一样上了瘾之后,你就只有主动掏腰包的命。因此,SCO诉讼的一个重大嫌疑是垄断Linux!这一点虽然值得业界警惕,但SCO也只不过是异想天开地自作多情罢了,Linux是全世界的,谁也垄断不了。

Linux在应用方面的最大争议和软处是支持他的桌面系统尚还达不到微软Office那样的普及程度,但其发展前景是乐观的。国内的永中Office、WPSforLinux和其他桌面系统正在雄起,替代MSOffice也就是早迟而已的事。永中Office采用Java语言开发,是真正的跨平台办公系统,数据集成是她的创新点。可怕的是微软正在模仿永中Office的数据集成思想,将在微软下一代Office中有所表现。微软模仿和吸收他人原创技术的能力是全世界水平最高的,真正的炉火纯青!盖茨赖以扬名并发家致富的Basic语言是20世纪60年代特默斯学院的两位教授创造的;微软起飞的翅膀DOS,是从西雅图计算机公司购买的;Windows用的jXerox和Apple的技术;Excel是Lotus1-2-3的复制品;word纯粹是wordStar、WordPerfect的跟风,IE更是Navigator的翻版。因此,微软的模仿,最令人担忧的是挤垮永中Office。

国内自由软件的最大反对派是某些并不是安全专家的媒体评论家!2004年初在《软件报》上发表的《砸烂Linux桌面》的评论文章,言辞凶狠,危言耸听!理由是开放了源代码的操作系统,谁都可以任意攻击,似乎采用了这样的操作系统,敌人随时都可以打进来,我们就要“亡党亡国”了!也难怪,中国的封闭思想在社会生活的方方面面都有充分表现。别人的政府大楼、国会大厦、高等院校都是开放的,咱们的一个小小的区乡政府也要戒备森严,更是少有无围墙的学校和机关!思想的封闭就更不用说了。改革开放20多年来“封闭就会落后,落后就要挨打”的教育看来并没有把某些人唤醒,教育的失败是最大的失败!

4自由软件的市场操作

本文开篇提出要回答“自由软件如何获利”的问题,其实市场常识就已经回答了,只不过我们并不很清楚厂商们是怎样获利的。有一点可以肯定,凡是基于Linux平台的应用软件,也许都是利用网上的开放源码组装而成。所以,在全世界,开放源码软件已经形成了一个尚无法探知的巨大市场,中国也不例外,请看以下报道。

某老板的底气来自于“开放源代码”,这也是他死活也不愿透露自己真实公司的原因。“说起来还是有点丢脸,”他告诉记者,“其实国内许多企业,甚至包括IBM、HP这样的大公司也不例外地利用开放源代码软件。在网上,任何人都可以找到几乎任何领域的软件源码,下载下来,然后按照用户的要求进行重新编写、汉化之后,就可以使用了。整个过程对于熟悉Linux的人士而言,三个月足够了。剩下的时间就是不断地应用,不断地完善软件功能。之所以不张扬,是利用了不要钱的源代码自己总有一种‘占便宜’的犯罪感”。可见,表面上看自由软件开放源代码好像缺市场缺用户,但却有许多偷着乐的毫不张扬的精明企业,正在利用网上免费的源代码资源为自己赢得第一桶金。

上面这个应用的成功案例很精彩吧!市场是什么?市场就是用户!用户追求的是应用,是能为用户带来效益的解决方案。对于你采用什么样的技术,是网上来的还是其他途径来的,用户并不是很清楚,也不一定很关注。例如你的网络系统是选Unix、Linux还是Windows,是网络决策者的事,是网络管理员的技术专长,终端用户根本不用关心。又如一些专门的应用系统,你可以选跨平台应用的Java编程,也可以用微软的VC或VB编程,也可以用其他编程语言或工具;你的数据库系统可以是微软的、Oracl的或IBM的,而与用户见面的都是通用的窗口形式,对终端用户来说都没有任何关系!

最近,有IT评论家又在误导用户:“Linux不乏技术,就缺市场包装和宣传”。笔者同意此评论的前半句,将后半句中的“包装和宣传”去掉后基本上可以站住脚。大家不会怀疑,吹牛最没有底的就是IT包装和宣传。2000年微软在中国搞了一个“维纳斯”风暴,其包装和宣传可是舍得花钱的,再凭微软在市场中的巨无霸地位,蒙倒一大批用户那还不简单。可这个“维纳斯”的确也没有什么实质性的意义,用户对其不予认可,结果当然可想而知了。Linux之所以缺市场,其实也不全是包装和宣传的问题,而是“先入为主”的人性习惯。Windows先入PC应用,占尽了先机,要由新的系统来替代人们已经熟悉了的系统,难!问题就是如此之简单!我们只要处于清醒状态,就不会被复杂化了的简单问题所蒙骗。

既然人们普遍存在从众心理,Linux真正缺的是领头羊!就像股市一样,有了领头羊,就不愁走不出牛市行情。Linux还缺突破口,只要在某一领域某一行业应用中撕开了口子,Linux就可以像洪水猛兽,风卷残云般地迅速挤占Windows市场。Linux在中国乃至全世界,都不缺政府的支持,也不缺知名企业的支持(联想是国内知名IT企业,但一年前却在Linux问题上打了退堂鼓,有釜底抽薪之嫌疑!不过最近有报道说联想也在讨好用户和政府采购,在两款商用电脑中预装中科红旗Linux),缺的是应用支持,观念支持。

所以,对于那些应用软件开发商,单一地将自己企业的前途和命运完全地挂在微软战车上是很危险的!如果你选用跨平台的开放源代码的编程语言,你的应用系统就是通用型的,既可以在Windows平台上运行,也可以在Linux平台上奔驰,为什么还不行动?好好学习一下上例中的这位小老板,也好好学习一下连微软都要模仿的永中Office。

文章写到这里,读者已经不难理解本文的立论:软件企业是如何利用自由软件赚钱的。

5结语

据笔者所知,目前国内乃至全世界,至今还没有一家以工程技术应用软件为主业的Linux公司,这是一个冷门。想想看,国家建设哪一项不需要工程技术?这是多么巨大的一个应用市场。而优秀的工程技术应用软件,比尔·盖茨是编不出来!

因此笔者顺便建议那些认可Linux理念的有点小胆量的投资者,远见卓识的企业家,欢迎与笔者联系,咱们合伙来搞一个立足于行业应用和工程技术专业应用的Linux软件股份有限公司如何?具体事项可电邮或面议。

自由软件是人性的,人性是自由的。倡导自由,倡导人性,是社会永恒的话题。自由软件是人类智慧的结晶,全球共享的知识财富,Linux风光无限。

Linux范文篇4

关键词:Linux;实时性;调度策略;抢占

1引言

目前,无论是在日常生活,还是在工业控制,航空航天,军事等方面,嵌入式系统都有着非常广泛的应用。嵌入式系统目前主要有:WindowsCE、VxWorks、QNX等,它们都具有较好的实时性、系统可靠性、任务处理随机性等优点,但是它们的价格普遍偏高。而嵌入式Linux以其非常低廉的价格,可以大大的降低成本,逐渐成为嵌入式操作系统的首选。但是,作为通用操作系统的Linux,由于其在实时应用领域的技术障碍,要应用在嵌入式领域,还必须对Linux内核作必要的改进。许多嵌入式设备都要求与外部环境有硬实时的交互能力,将最初按照分时系统目标设计的Linux改造成能支持硬实时性的操作系统显得十分重要。幸运的是,Linux及其相关项目的开放源码特征为深入研究其内核并加以改造提供了可行性,可以修改Linux内核中的各个模块以达到满足嵌入式应用的需求,提高软件方面的开发速度。目前,改善Linux内核的设计与实现,使其适用于实时领域吸引了许多研究和开发人员的注意力[1-4]。常用的实时性改造方法是采用双核方法,这种方法的弊端在于实时任务的开发是直接面向提供精确实时服务的小实时核心的,而不是功能强大的常规Linux核心。基于此,近年来修改核的方法越来越受到科研人员的重视,这种方法是基于已有Linux系统对于软件开发的支持,进行源代码级修改而使Linux变成一个真正的实时操作系统。本文分析了标准Linux在实时应用中的技术障碍,参考了修改核方法的思想,从内核时钟管理、内核的抢占性、内核调度算法三方面论述了改善标准Linux实时性能的方法。

2Linux在实时应用中的技术障碍

2.1Linux的实时性分析

Linux作为一个通用操作系统,主要考虑的是调度的公平性和吞吐量等指标。然而,在实时方面它还不能很好地满足实时系统方面的需要,其本身仅仅提供了一些实时处理的支持,这包括支持大部分POSIX标准中的实时功能,支持多任务、多线程,具有丰富的通信机制等;同时也提供了符合POSIX标准的调度策略,包括FIFO调度策略、时间片轮转调度策略和静态优先级抢占式调度策略。Linux区分实时进程和普通进程,并采用不同的调度策略。

为了同时支持实时和非实时两种进程,Linux的调度策略简单讲就是优先级加上时间片。当系统中有实时进程到来时,系统赋予它最高的优先级。体现在实时性上,Linux采用了两种简单的调度策略,即先来先服务调度(SCHED-FIFO)和时间片轮转调度(SCHED-RR)。具体是将所有处于运行状态的任务挂接在一个run-queue队列中,并将任务分成实时和非实时任务,对不同的任务,在其任务控制块task-struct中用一个policy属性来确定其调度策略。对实时性要求较严的硬实时任务采用SCHED-FIFO调度,使之在一次调度后运行完毕。对普通非实时进程,Linux采用基于优先级的轮转策略。

2.2Linux在实时应用中的技术障碍

尽管Linux本身提供了一些支持实时性的机制,然而,由于Linux系统是以高的吞吐量和公平性为追求目标,基本上没有考虑实时应用所要满足的时间约束,它只是提供了一些相对简单的任务调度策略。因此,实时性问题是将Linux应用于嵌入式系统开发的一大障碍,无法在硬实时系统中得到应用。Linux在实时应用中的技术障碍具体表现在:

(1)Linux系统时钟精度太过粗糙,时钟中断周期为10ms,使得其时间粒度过大,加大了任务响应延迟。

(2)Linux的内核是不可抢占的,当一个任务通过系统调用进入内核态运行时,一个具有更高优先级的进程,只有等待处于核心态的系统调用返回后方能执行,这将导致优先级逆转。实时任务执行时间的不确定性,显然不能满足硬实时应用的要求。

(3)Linux采用对临界区操作时屏蔽中断的方式,在中断处理中是不允许进行任务调度的,从而抑制了系统及时响应外部操作的能力。

(4)缺乏有效的实时任务调度机制和调度算法。

针对这些问题,利用Linux作为底层操作系统,必须增强其内核的实时性能,从而构建出一个具有实时处理能力的嵌入式系统,适应嵌入式领域应用的需要。

2.3当前增强Linux内核实时性的主流技术

近年来,人们对于Linux内核实时性改造提出了一些方法和设想,它们采用了不同的思路和技术方案。归纳总结,支持Linux的硬实时性一般有两种策略[5]:一种是直接修改Linux内核,重新编写一个由优先级驱动的实时调度器(Real-timeScheduler),替换原有内核中的进程调度器sched.c,KURT是采用这一方案较为成功的实时Linux操作系统;另外一种是在Linux内核之外,以可加载内核模块(LoadableKernelModule)的形式添加实时内核,确保其高响应特性,实时内核接管来自硬件的所有中断,并依据是否是实时任务决定是否直接响应。新墨西哥科技大学的RT-Linux,就是基于这种策略而开发的。以上两种策略有其借鉴之处,但如果综合考虑任务响应、内核抢占性、实时调度策略等几个影响操作系统实时性能的重要方面,它们还不能很好的满足实时性问题。为了增强嵌入式Linux实时性能,下文将就内核时钟精度、内核的抢占性以及内核调度算法等相关问题重点研究相应的解决方法。

3改善嵌入式Linux实时性能的方法

针对Linux在实时应用中的技术障碍,将Linux改造成为支持实时任务的嵌入式操作系统,主要从下面三个方面进行着手。

3.1细化时钟粒度

精确的计时是实时调度器正确操作所必须的,调度器通常要求在一个特定的时刻进行任务切换,计时的错误将导致背离计划的调度,引起任务释放抖动。标准Linux系统时钟精度太过粗糙,时钟中断周期为10ms,不能满足特定嵌入式应用领域中对于响应时间精度的要求。因此,在实时Linux应用中,需要细化其时钟粒度,具体有两种方式可以解决时钟粒度问题:一是通过直接修改内核定时参数HZ的初值来细化时钟粒度,如将标准Linux中内核定时参数HZ改为10000,则时钟粒度可以达到100us,这种方式虽然会增加一些系统开销,但在强周期性环境下,对定时器的设置只需初始化一次,在一定程度上保证了处理效率;二是通过对可编程中断定时器8254或先进的可编程中断控制器进行编程来改进Linux时钟机制,以提高其时钟的分辨率,使毫秒级的粗粒度定时器变成微秒级的细粒度定时器。

3.2增强Linux内核的抢占性

标准Linux内核是不可抢占的,导致较大的延迟,增强内核的可抢占性能,可提高系统内核对实时任务的响应能力。目前,有两种方法修改Linux内核以提高实时任务抢占非实时任务的能力:一是在内核中增加抢占点的方法;二是直接将Linux内核改造成可抢占式内核。插入抢占点方法是在Linux内核中插入一些抢占点,当一个系统调用执行到抢占点时,如果有更高优先级的实时进程正在等待运行,那么正在执行系统调用的内核进程将会把CPU的控制权转交给等待运行的实时进程;如果没有更高优先级的实时进程等待,则当前进程将继续执行,此时系统增加的开销仅仅是检测一下调度标志。将Linux内核改造成可抢占式内核方法的基本思想是产生运行调度器的机会,缩短任务发生到调度函数运行的时间间隔。这种方法修改了Linux源代码中的自旋锁宏以避免竞争,并在其中引入一个称作抢占锁计数器(PLC)的新的计数信号允许内核代码抢占,当它为0时,允许抢占;当其为大于0的任何值时,禁止抢占。目前,针对这两种修改Linux内核的方法,已经有两种比较成熟的Linux内核补丁被研制出来:抢占式补丁和低时延补丁。其中,抢占式补丁是MontaVista开发的,它修改了内核代码中的spinlock宏和中断返回代码,使得当前进程可被安全抢占,当自旋锁释放或者中断线程完成时,调度器就有机会执行调度;低时延补丁是由IngoMalnor提出,该方法只是在执行时间长的代码块上抢占,不采用强制式抢占,因此,如何找到延时长的代码块是解决问题的关键。

3.3改善Linux内核实时调度器的调度策略

将进入系统的所有任务按实时性分成三类:硬实时、软实时、非实时任务[6]。硬实时要求系统确保任务执行最坏情况下的执行时间,即必须满足实时事件的响应时间的截止期限,否则,将引发致命的错误;软实时是指统计意义上的实时,一般整体吞吐量大或整体响应速度快,但不能保证特定任务在指定时期内完成。针对不同的实时性任务,分别采用不同的调度方法进行处理。

为了严格保证硬实时任务的时限要求,改善的Linux内核实时调度器采用了优先级调度算法,目前最小松弛时间优先调度算法MLF(Minimum-Laxity-FirstSchedulingAlgorithm)是动态优先级调度最常见的实时调度策略。它在系统中为每一个任务设定松弛时间(任务的松弛时间等于任务的截止期减去任务执行时间、当前时间)即:laxity=deadline―current_time―CPU_time_needed,系统优先执行具有最小松弛时间的任务。根据就绪队列的各任务的松弛时间来分配优先级,松弛时间最小的任务具有最高的优先级。为了提高Linux的实时性,我们设计了MLF调度器,并把它作为可加载模块加入Linux内核中,在实现中需对内核进行相应的修改。为了区分任务的类型,对基本Linux的task_struct属性进行改进,在其中增加SCHED_MLF调度策略,并按task_struct中的policy的取值来进行区分,分别用SCHED_MLF,SCHED_RR,SCHED_OTHER来标识硬实时、软实时、非实时任务。将处于运行状态的三类任务放入两个队列,硬实时任务放入hard_real_queue队列,采用MLF调度算法,软实时和非实时任务放入non_real_queue队列(空闲任务也在其中),沿用原内核的RR调度算法。这两个队列可以用一个run_queue[2]的指针数组来指向,如图1所示。

图1双对列任务运行

双队列任务运行过程与原内核的单运行队列执行流程的主要区别在:首先,各硬实时任务采用了MLF调度算法代替原内核的FIFO调度,提高了Linux系统的实时性能。其次,在判断是否有软中断需要处理之前需判断硬实时任务队列是否为空,如果不为空,即使存在中断的后半部分需要处理,也要先调度硬实时任务投入运行,在硬实时队列为空的条件下才去处理中断的后半部分(因为中断的后半部分没有硬实时任务紧急)。最后,如果没有硬实时任务存在,则说明只有run_queue[1]队列中有软实时或非实时任务存在,这时的处理方法和原内核对单运行队列的处理方法相同。这样改进后,可以明显提高硬实时任务的调度效率,而在没有硬实时任务时,系统性能没有变化。

4结束语

嵌入式技术具有广阔的应用前景,渗透于社会生活的诸多领域,把Linux应用于嵌入式系统,把Linux自身固有的优越性融入嵌入式技术,是嵌入式技术发展的一个重要方向。然而,由于Linux在实时应用领域的技术障碍,要将其应用在嵌入式领域还必须修改Linux内核中的各个模块以达到满足嵌入式实时应用的需求。本文在分析Linux实时性的同时,探讨了其本身提供的一些支持实时性的机制以及在实时应用中的技术障碍。而后,基于增强Linux内核实时性的主流技术,从细化时钟粒度、增强内核抢占性及实时调度策略三方面入手,提出了改善Linux实时性能的优化方法。

参考文献:

[1]赵慧斌,李小群,孙玉芳.改善Linux核心可抢占性方法的研究与实现.计算机学报,2004,27(2):244-251

[2]蒋溢,李琳皓,陈龙.Linux系统实时性探讨.重庆大学学报,2005,28(3):61-64

[3]董晓峰,顾新.关于Linux内核可抢占性的研究.计算机工程,2005,31(1):82-84

[4]陈敏,周兴社.基于嵌入式Linux的实时优化方案.计算机应用研究,2005,22(3):235-237

Linux范文篇5

关键词:自由软件Linux源代码计算机操作系统网络

笔者在《赞自由软件》一文中,将软件按商业性质进行了分类,阐述了自由软件的世界潮流,浅析了自由软件的存在基础,界定了水利水电系统内的专业软件是“还没有成为商品软件的转让软件”,极力倡导自由软件的广泛交流。接着在《再赞自由软件》中,介绍了自由软件的起源、自由软件的国际国内组织、Internet上的自由软件资源,对自由软件的意义、自由软件的思想、自由软件的情怀等等,进行了一些浪漫式的理想主义的探讨。本文《还赞自由软件》,对自由软件的崇拜已经到了极其疯狂的程度。

是笔者的神经质?还是业界正在超越社会发展的历史阶段?在市场经济形势下,自由软件真的就如此美妙绝伦,如此魅力无穷,如此的值得我们一赞、再赞仍不过瘾,乃至今天还要大张旗鼓地赞之又赞?这里请读者随着神经质的诱导,让我们先看看Linux后再说吧。

1Linux是什么

Linux是什么?首先,她是一个软件,一个优秀的自由软件!一个被称之为自由软件的典型代表作,被封为软件业界的自由女神,目前敢与微软叫板的操作系统。看过《泰坦尼克号》吗?这部1998年轰动全球的巨片,制作时,数百台计算机上动画翻滚的工作平台就是在Linux系统上完成的。Linux是千真万确名副其实的自由软件,是1998年软件技术的最大热点,这是圈内业界无人不知,没人不晓的。《计算机世界》列出的1998年国际IT业界十大新闻中,将Linux誉为“明日之星”。笔者在这里先卖弄一番,从各类报刊杂志甚至Internet之类的时髦媒体上东摘西录一些关于Linux的出身、成长、成熟、壮大、出名、流行和火爆的精彩片断,供圈外朋友们过把瘾。

Linux的原作者Linus(LinusTorvalds),是芬兰赫尔辛基大学的学生,一个不甘于寂寞不守秩序的人。在学习Unix课程的时候,Linus发现排队等待上机是如此的漫长和无聊,干脆自己掏钱买了一台PC机,开始编写程序。最先写的程序只有两个进程,在以后的六个月里,他修修补补,不断添加新东西,命名为Linux,并将源代码上载赫尔辛基大学的FTP服务器。至此,Linux像只丑小鸭在网络上轻轻松松地诞生了。Linux后来成长为白天鹅则更是得益于网络的奇妙。在网络上,一些思想自由,类同于Linus的电脑迷程序狂网络疯子们为Linux的完善提出了大量的建议,甚至为其插入自己编写的程序代码段,当然,所有的代码都是公开上载的。后来证明,这样的在线洗礼终于使Linux从一开始就不同凡响。

Linux在Internet上行走如飞,迅速成长壮大闻名天下。1991年,Linus(当年仅19岁)发表了Linux的正式版本V0.0.2,1994年发表了Linux内核的1.0版本。经过世界各地软件高手们的精心培育,博览众家之长,综合了最先进的编程技术,凝聚了最丰富的软件智慧,Linux逐渐集成为一个有机的整体。在当今的计算机业界,Linux高质量的性能和高透明度的技术光辉逐渐变得无可争议。最新版本的Linux内核是1999年1月的V2.2.0。Linux摆脱了王牌Unix的阳春白雪,走进了大众化的个人电脑,使PC机具有工作站的性能。从技术角度来讲,Linux几乎覆盖了所有其它版本的Unix系统。今天,Linux的内核已经经过了重大改进,成为386、486及Pentium系列机器上的一个真正32位多任务、多用户的Unix操作系统,并且已经移植到多种硬件平台。

Linux的用户群如何?看看媒界的报道您会惊呼:在全美的ISP的服务器中,有26%是使用的Linux;美国普林斯顿大学开发的超级计算机使用的操作系统是Linux;中国自由软件库120GB自由软件的服务器操作系统是Linux……;Linux建立用户群所花费的时间只是其他操作系统达到同样数目用户的一半。Linux是免费的,一张光盘可以在若干用户中流传,因而在全世界广为流行,增长速度十分惊人,1997年至1998年,Linux交货份数增长了3倍,目前用户达到700-1000万。众多软件厂商加盟Linux之后,其用户群的剧增将是毫无疑问的。据此,有人认为Linux最终将会取代Windows。

2Linux的自由思想与奉献精神

Linux的思想是自由,Linux的精神是奉献。自由,人类梦寂以求的美好向往。对于程序员来说,自由支配自己的想象力去写程序,这是多么美妙的工作!多么诱人的乐趣!Linux是一个自由软件,她的成长历程又是一个宣扬自由思想和奉献精神的以Internet作为人类协作基础进行伟大创造的动人故事。Linux背后的力量是知识的力量,是精神的支撑,她所面对的是商业的力量,是金钱的诱惑。知识的本质在自由,人类追求的最高境界在精神,而商业的本质和追求都在金钱。金钱可以战胜一切,但不能战胜自由和精神。

Linux对IT业界的最大贡献正是她的自由思想。这种思想最大限度地解放了程序员的思想,完全抛弃了电脑狂的包袱,根本解除了对计算机疯子的束缚,给了这些疯子和狂徒们最大的思想活动空间,使得他们在毫无顾忌的环境下肆无忌惮地自由狂奔,风驰电掣般地高速运转,昼夜兼程地编写程序,并将他们的辛勤劳动无私奉献给全人类。可见,Linux自由思想直接产生的是Linux奉献精神,这种精神始终支撑着Linux的发展,激励着程序员的不断创新。“在Linux社区里,存在着一群永远值得敬仰的自由英雄。我们无数有着相同信仰的朋友,一击之遥,一屏之隔,为了一个共同的追求而亲密相连。智慧、友谊、支持、还有Linux!是我们的全部语言。无私地奉献,无偿地帮助,是我们的为友准则。倘若换成商业软件商,可能吗?微软,可能吗?”这就是一位Linux的自由开发者发自肺腑的呼唤(参考文献14)。著名的自由软件联盟的宗旨是:每一个人都可以在前人工作的基础上奉献自己的思想;每个人的贡献必须公开源代码,允许其他人在此基础上继续工作。维系Linux社区的也就是这样的宗旨。“人人为我,我为人人”是Linux社区的道德准则。

正是Linux的自由思想和奉献精神,才使得她的发展如此迅猛,功能如此丰富而强大,生命力如此顽强和茂盛。从自由者们的高级需求来议,那些软件高手和计算机狂热者,谁不希望自己使用的操作系统中的某些东西是自己开发的?!自己编写的程序被他人使用,得到社会的认可,这是多么风光荣耀和欣慰自豪的报酬!这种精神的获得,灵魂的升华,不是金钱胜似金钱。再说,有机会能自由,全身心地投入到自己喜欢的编程工作之中,更是一种真实的快乐。只有那些感到自由、心甘情愿地工作并认为工作得有价值的人,才能在工作中创意迭出,锐意进取,充分发挥自己的创造性。有人称软件人才都是些怪才,此话一点不假,不信请您注意一下周围的计算机疯子,循规蹈矩者是成不了电脑高手的!

自由思想是软件业界的最高境界,也是软件开发的基本环境。业界举世公认的麻省理工学院多媒体实验室,体现的更是软件科研机构的时间、空间和研究思想的自由支配。《数字化生存》和《数字世界与数字中国》,让尼葛洛庞帝的大名蜚声全球,他创建的多媒体实验室成果频出,人才辈出。尼葛洛庞帝不但数字化思想十分自由,他的人才思想则更为自由:不招收成绩全优的大学毕业生,而只吸纳那些个性与众不同,不循规蹈矩的学生或其他人才加盟。他说:“我们对这些人从不管理,他们想干什么就干什么,也不给任何压力,不仅不管这些人是在家里上班还是在实验室里上班,甚至不管他们一年到底出不出成果,没有任何业绩考评”。可见,尼葛洛庞帝的自由已经疯狂到了什么程度。

最能体现出挥洒自由的企业文化氛围的微软公司,员工的办公室是绝对的个性化展示,有淡雅的闺房,也有摇滚的乐室,顶尖的程序高手不修边幅,穿背心、拖鞋上班的员工没人对他们产生异议。有人下定理:各路软件高手在一起聚会,穿着最随便最自由散漫者一定是微软的员工。难怪《计算机世界》刘九如总编,在去西雅图微软公司总部参观后感慨万千,思绪万千:正是这些自由的思想空间和激发知识创新的环境,源源不断地涌现出最新的产品,一次又一次地在市场掀起新的波澜,非常敏锐地拨动着全球信息技术业界的每一根神经。

学术界呼唤学术民主和学术自由,计算机业界倡导自由思想和冲破封闭。这是科学的总结,也是知识的根基。

3Linux的特征—公开源代码

自由软件进一步细分为公开源代码和不公开源代码的自由软件。Linux属于前者。许多应用程序和工具软件尽管也是无偿提供给用户使用,也属于自由软件之列,但并不公开源代码,仅提供编译后的可执行程序。对于一般用户来说,是否拥有源码并不重要,但是对于政府部门、军事科学机构来说,必须要求公开源码以保证其没有“后门”或漏洞。我国从国家安全的角度考虑,一直没有放弃过自主版权操作系统的研究。Linux从诞生之日起就是公开全部源代码的自由软件,任何用户都有权使用、拷贝、扩散和修改源代码,同时有义务对自己所做的修改发表声明。

人们希望Linux最终能成为一个跨时代的标准平台,正如同是普遍公用版权成员的TCP/IP一样。这样,软件的开发不再依赖于某一种平台,更不必因此而跟着类似Windows这样的操作系统不得不拼力追赶却又望尘莫及。开放的平台、开放的软件、自由的竞争,IT业界为之梦寐以求的理想王国,所看中Linux的还是它的源码开放。

Linux公开源代码的自由成长过程,为软件开发方式提供了一个崭新的思路。自由软件有很强的个性化色彩,Linux这个诞生于网络、成长于网络且成熟于网络的奇特操作系统,使正统的软件工程学这种以往一直被人们认为是不可逾越的软件开发金科玉律,受到了以Linux为代表的独特的“集市中心”式软件开发方式的挑战。Linux向人们展示了一种全新的软件开发模式:一群自由软件爱好者以松散的形式,在网络上形成了一个软件集市中心。他们互相讨论,共同努力,创造了Linux的辉煌。Linux不是哪一个人的成就,它包含了太多人的智慧与辛勤劳动,它是Internet发烧友们的宠儿。

Linux为网络操作系统吹来一阵清风,不但自己公开源代码,同时也为业界带来了一股源代码大公开的热潮。Novell公司宣布将公布部分Netware核心源代码,Netscape的浏览器源代码已然公开,Java更不用说了,而大家最关心的Windows,据最新消息微软已经公开了部分NT源代码。也许未来的软件世界将会由此打破封闭的传统,进入一个开放的世界。

之所以业界一片公开源代码的呼声,是因为大家都明白封闭没有出路的这样一个简单道理。开放是必由之路,公开是明智选择。有人预言,源码开放将在1999年成为一种流行,并将成为全球软件业的趋势。

4巨星捧月Linux

1998年是Linux年,Linux在学术界之外赢得了尊重,一大批知名厂商支持Linux这种源代码公开的Unix的免费版本。Intel、IBM、HP、Sun、Informix、Oracle、Sybase、CA、Netscape、Compaq、Dell等著名软件和硬件公司都在支持Linux,中国的四通公司也决定投资5000万元人民币开发以Linux为平台的应用系统。众星捧月,并不仅仅因为Linux是源代码公开的自由软件,它有许多引人之处,例如配置灵活、强大的多机种联网功能、可以运行许多其它操作系统的应用软件且速度快,以及其它操作系统达不到的功能等等。Linux的内核非常稳定可靠,效率很高,集成什么软件进来,它就能做什么事,自由软件和商业软件都可以方便地集成进来。Linux在功能和稳定性方面已经完全成熟了。

Linux既然是自由软件,众多以盈利为目的的厂商加盟予以支持,还收钱吗?收钱后还叫自由软件吗?有人提出了这样的质疑。笔者的回答是:质疑者没有搞清楚操作系统与应用软件之间的关系。前者是一个基础平台,例如Windows操作系统;后者是应用系统,例如在Windows上运行的字处理软件WORD和电子表格EXCEL等等。Windows之所以占了PC机操作系统90%以上的装机量,也就是有众多的应用软件厂商的支持,应用软件十分丰富。而另一个技术先进,功能和稳定性均强于Windows的32位操作系统IBMOS/2,则由于应用软件不多,结果就十分凄凉。Linux是免费的操作系统,Windows是要钱的操作系统;Linux是商业开发区不收钱的地皮,Windows的地皮费却十分昂贵。商家和用户将选择谁?已经很清楚了。不过软件业界的市场惯性也会阻碍技术进步,例如,一些优秀的汉字输入法比流行的五笔字型要先进,就是推广不开;OS/2比Windows先进但却没有市场。因此,并非所有用户一见免费晚餐都会蜂涌而至,就象Windows替代DOS一样,九十年代初就开始炒作,快十年了,Windows从3.0升级到了Windows98甚至已经了测试版的Windows2000,也没见彻底取代DOS,许多用户至今对DOS仍然恋恋不舍,只不过今天的市场上的确很少能见到DOS的应用软件了。如果有一天,到处都是Linux应用软件而少有Windows应用软件,软件巨无霸Microsoft就该退居二线,Windows也就寿终正寝了。

另一个需要搞清楚的概念是Linux的发行版本,这要从自由软件的“根”GPL(GeneralPublicLicense,普遍公用版权协议或译为通用公共许可证)说起。GPL是美国人R·Stallman发起的自由软件基金会和自由软件联盟创建的保护自由软件的条款。GPL条款规定从Internet下载自由软件是免费的,其它形式(光盘、磁盘)获得时只收费用,这就使得Linux的发行费用十分低廉。GPL条款对推动自由软件的发展起了重要作用。Linux置于GPL的保护之下后,多家技术力量雄厚且善于市场运作的商业软件公司也加入了原先完全由业余爱好者和网络精英所参与的这场自由软件运动。商家将Linux系统的内核与应用软件和文档包装起来,并提供系统安装界面和系统设置管理工具,这样就构成了一个发行版本。Linux的发行版本,增加了更易于使用的图形界面和众多的软件开发工具,极大地拓展了Linux的应用。最常见的发行版本有:Slackware、RedHat、Debian、OpenLinux、SuSE等等。中国国家信息中心自由软件库freesoft站点就是使用RedHat发行版本搭建的,不比商业系统软件差。Linux商业版仅售50美元,而WindowsNTServer4.0的50个用户版本则高达4700多美元,其中Linux包括的内容比NT丰富得多。注意,发行版的Linux从Internet下载仍然是一分钱不花。

5自由软件在科学研究上的重大贡献

Internet得以将全世界一网打尽,其技术基础是TCP/IP协议,这是众所周知的。但知道TCP/IP是自由软件的经典之作的人可能就不多了。而另一个科学研究上的世界性重大突破也要功归于自由软件,也许知道的人就更少了,她就是Internet梅森素数大寻找。

1996年初,美国数学家乔治·沃特曼在Internet上创建了GIMPS(GreatInternetMersennePrimesSearch,Internet梅森素数大寻找),公开了自已编写的测试梅森素数的专用程序和梅森素数专用数据库,当然是一个可以任意拷贝任意使用的自由软件。该软件可以适用于各种档次、各种型号的PC机,而且既可以在前台也可以在后台运行,还可以随时终断和重启。GIMPS吸引了成千上万的数学爱好者,他们联合起来用联网的个人电脑进行对梅森素数的探索,形成了一支蔚为壮观的科研大军。

所谓梅森素数是形如2n-1的数,n也是一个素数。这是17世纪法国数学家马林·梅森提出的猜想。随着n的增大,2n-1也变得非常大,要验证它是否是素数就十分困难。在数学难题中,梅森素数是古典的数论难题之一。梅森本人生前只发现了12个这样的素数,其中还有5个是错误的,而这5个错误又是在梅森去逝后的300年间经数学家们的艰苦劳动才发现的,可见在计算机出现之前发现一个梅森素数是多么的困难,纠正一个错误的发现又是多么困难。计算机出现之前,人们知道的梅森素数只有12个,即n=1,2,3,5,7,17,19,31,61,89,107,127,最大的一个是2127-1,这是一个39位数,已经是一个天文数字了。1953年6月,美国数学家利用SWAC计算机,一下发现了n=521,607,1279,2203,2281这样5个新的梅森素数,成为当时的爆炸性新闻。随后的42年间,即1995年止,人们通过计算机只进一步发现了17个梅森素数,这就是说,即使是利用超级巨型计算机,平均也还要用2年半的时间才能发现一个新的梅森素数。

利用Internet寻找梅森素数却获得了巨大成功。GIMPS在短短的两年中就发现了3个梅森素数,即n=1398269,2976221和98年2月美国加州州立大学一名19岁的学生发现的3021377,显然,GIMPS大大加快了发现梅森素数的步代。Internet梅森素数大寻找的网址::/prime.htm,有兴趣者可以一试。

TCP/IP和梅森素数大寻找的成功,奠定了自由软件在科学研究方面的重大价值。在计算机业界当然就更不用说了。我们完全可以毫不夸张地说,没有自由软件就没有今天的计算机世界。

6技术封锁的尴尬

千错万错,有一点没有错,那就是批判“知识私有”。知识属于全人类,科学技术属于全人类。然而,这些任何人都提不出反对意见的大道理,在现实社会中却经常撞车。

计算机业界的技术封锁是有惨痛教训的。首先发明Windows的苹果公司,因不愿将自己的科技成果与别人分享而痛失了巨大市场,现在已经猛醒,走上了开放之路;IBM在PC的发展道路上也吃过同样的大亏。

近来喜闻一家广播电台设立了一个咨询热线,向公众提供大量过期专利技术。据说申请了专利还要交钱给专利局以便将你的专利管起来,多少年后没人要则过期作废,这不白交了多年的冤枉钱吗?也许不去申请专利而一开始就公开那点雕虫小技,别人学去或投入生产,赚钱了给点回报,不给也无所谓,既然是有用的发明,何必又要将它关起来呢?放了多少年后,技术进步了,自己的发明也落后了,送都送不出去,真是冤得慌。

这种情况不是没有的,例如,那些早期卖数千元一块的汉卡、前两年还十分火爆的解压卡、红火天下的流行软件,现在你就是好话说尽硬要送人,没人要!我就遇到过这样的软件开发者,用Foxbase编的管理系统,又是设密码防拷贝又是价格数千元居高不下,实际上没几个人用,很快新的系统出来了,开发者再言不收钱也要将自己的软件推出去时,也就落到了昨日黄花无人问津的凄凉境地。

《中国计算机报》1999年第6期有一条200来字的消息报道:16岁的爱尔兰少女SarahFlannery开发出了一种Email安全加密技术,其加密方法的速度要比现在广泛使用的RSA加密方法快10倍,在爱尔兰科学家及技术展览会上轻易地摘取了冠军。许多人建议她为这项技术申请专利,但她却不愿用这项技术去挣钱,打算公开发表源代码。

技术上的完全公开是自由精神的基础,不计名利的创造激情则是自由精神的灵魂。Linus没有将自己开发的Linux拿去卖钱,爱尔兰少女不为金钱所诱惑,美国人R·Stallman倡导全球性的自由软件,众多的程序高手参加自由软件的开发,Internet和各类计算机媒体经常有公开发表的自由软件和源程序代码,所有这些,得到了人们的敬佩,社会的公认。比尔·盖茨搞软件垄断,挣钱不少却官司缠身,反托拉斯和反Windows联盟再加上Linux浪潮,使得他挣钱越多日子越难过。

7万岁!自由软件

自由软件的思想,自由软件的精神,自由软件的情怀,自由软件的魅力,……,自由软件的一切,充满着激情与希望,散发出诱人的清香,展示出时代的风采,预示着人类的未来。人类社会步入高级阶段,自由软件成为必然。

我崇尚自由软件,欢呼源代码公开,因为我就是自由软件的受益者,也是自由软件的提供者。早年曾经从专业的需要编过一些小程序在有关专业杂志上公开发表过源代码,同时我又从公开的源代码中汲取了养分。在研究运输问题的多重最优解、线性规划的多重最优解和应用系统工程的理论研究边坡加固等课题时,参考了若干求解类似问题的自由软件源代码,才编写出了这些特殊问题的求解程序。就连我提供的自由软件“韦港字典”,也是得益于别人公开的菜单源代码。可以毫不隐瞒地说,没有众多公开的源代码,我是不可能完成这些研究课题和自由软件的,至少要走许多弯路。

我经常在思考这样一个问题,工程地质计算机应用软件到底向何处去?如何使我们的专业软件走上良性循环的健康轨道?我曾经梦想,组建一个工程地质软件研究机构,把一大批技术和管理精英聚集到充满活力的环境中来,建立类似Intel公司的企业'''');">企业文化,无拘无束、开放自由的研究气氛,协同作战的团队精神,同舟共济、默契配合、优势互补,充分施展各自的才华,建立行业软件标准,开发出各类优秀工程地质软件。但是可能吗?Intel有这样的团队,中国这样的团队却很困难。北大方正,联想集团这样的少数成了气候的公司,有气质非凡的领导人,在计算机发展初期,通过艰苦创业度过了资本积累的原始阶段。中关村的其它许多公司就不行了,合作几天即散伙,多数公司成不了气候。

我们这几年写了大量发展专业软件的探讨性文章,也通过各种途径利用各种机会不遗余力地八方奔走争取有关领导和单位对专业软件的重视和投入,但效果并不理想。为什么?道理很简单,这就是中国IT业界的一句行话:决策者不明白,明白者不决策。许多基层工作的地质计算机专家告诉我,他们所处的环境基本如此。社会实践提示我们,较为可取的是走自由软件之路,步Linux之后尘。我坚信这条路是对的,这也是我热心于自由软件的根本动力。

网络就是计算机的理念已经被人们广泛接受,全国范围内的“政府上网工程”已经启动,各单位建立自己的Intranet并与Internet互联势在必然早迟而已。在一片网络声中,到处都要建网,需要大量的工作站和操作系统。既然自由软件Linux是优秀的网络操作系统,发展前景看好,我们没有理由不选择她。报载一个外国人的经验:要建一个Intranet,如果用市场上提供的软件,即使只支持少量的用户,也要花成千上万的美元,但采用Linux平台,任何人只要有一台旧的486,几块网卡,业余时间花几个小时就可以建起一个Intranet。这当然要计算机网络高手才行,只要我们有信心,也可以成为这样的网络高手。

自由软件代表着技术上的趋势和潮流,自由软件的追随者们将开发自由软件当成自我发挥、自我发展、自我实现的崇高追求。Linux是软件业的自由女神,她所代表的是自由软件文化:自由;网络是全人类的自由女神,网络文化倡导的是:互不相识而互相帮助,互不相识而团结协作。

自由软件思想与知识产权意识的对立,合作发展互利与集成先进效益的统一,开放源代码与技术封锁的冲突,公开交流与闭门造车的矛盾,对立统一冲突矛盾,网络文化是开启这些传统锁链的金钥匙。

带上网络文化金钥匙,搭乘自由软件免费快车,飞驶在Internet信息高速公路上,奔向新的自由!

Internet上的Linux站点:

Linux新闻中文版:.hk/~voidoo/ulinux/lugnews.html

香港Linux协会:

中文Linux计划:/linux

将你的PC变成Linux工作站:http:/202.96.140.52/personal/peng/

Linux软件集萃:/lsm

最好的Linux和Unix信息:168.160.224.35/gjwzxy/linux.html

中国自由软件库:/freeware

Linux在线:

Linux焦点(或称Linux中心,为国际性Linux网站):

台湾交大工资LinuxWWW资讯系统:linux.csie.nctu.edu.tw

太阳城软件资源:

红帽子公司Linux站点:

主要参考文献:

(1)张鹿《Linux的发行版本及其他》,计算机世界报1998年11有30日G1版

(2)陈一飞编译《不花钱建内联网何乐不为--推荐一种Linux建网方案》,计算机世界

报1998.12.7E15版。

(3)高丽华《成长的秘密》,计算机世界报,1998年10月5日A3版

(4)毛永捷《Linux自由飞》,每周电脑报,1998年第31期。

(5)叶勇等《99产品前瞻(一)》,每周电脑报,1999年第1期。

(6)纳兰《Linux故事》,软件世界,1998年12期。

(7)《软件综述》,中国计算机报,1999年第1期。

(8)曹建《Linux兼容并包挑战Windows》,软件报,1998.12.12。

(9)姜奇平《经理人的两难处境》,计算机世界报,1997年11月17日。

(10)吴鹤龄《“梅森素数大寻找”带来的启示》,计算机世界报1998年5月25日。

(11)世超《自由软件时代即将来临》,中国计算机用户,1998年第21期。

(12)刘九如《挥洒自由》,计算机世界报,1998年11月30日B4版。

(13)郑雅心《尼葛洛庞帝哗啦啦地狂》,计算机世界报,1999年1月18日A17版。

(14)姜奇平《知识的力量VS商业的力量》,互联网周刊,1998年10月19日。

Linux范文篇6

就象UNIX,Linux支持的网卡主要是以太网卡。如3COM、ACCTON、AT&T、IBM、CRYSTAL、D-LINK等众多品牌的以太网卡只要安装配置正确,都可以得到你所期望的效果。

一、Linux中网卡的工作原理

为了将这个问题说明的更清楚一些,不妨先简要地剖析一下Linux是如何让网卡工作的。一般来说,Linux核心已经实现了OSI参考模型的网络层及更上层部分。网络层的实现依赖于数据链路层的有效工作。网卡的驱动程序就是数据链路层与物理层的接口。通过调用驱动程序的发送例程向物理端口发送数据,调用驱动程序的接收例程从物理端口接收数据。

1.网卡驱动程序

简单地说,要将你手中的网卡利用起来,你唯一要做的是得到这块网卡的驱动程序。驱动程序提供了面向操作系统核心的接口和面向物理层的接口。

驱动程序的操作系统接口是一些用于发现网卡、检测网卡参数以及发送接收数据的例程。当驱动程序开始运作时,操作系统首先调用检测例程以发现系统中安装的网卡。如果该网卡支持即插即用,那么检测例程应该可以自动发现网卡的各种参数;否则你就要在驱动程序运作前,设置好网卡的参数供驱动程序使用。当核心要发送数据时,它调用驱动程序的发送例程。发送例程将数据写入正确的空间,然后激活物理发送过程。

驱动程序面向物理层的接口是中断处理例程。当网卡接收到数据、发送过程结束,或者发现错误时,网卡产生一个中断,然后核心调用该中断的处理例程。中断处理例程判断中断发生的原因,并进行响应的处理。比如当网卡接收到数据而发生中断时,中断处理例程调用接收例程进行接收。

2.驱动程序工作参数

驱动程序的工作参数因网卡性质的不同而不同,大致包括I/O端口号、中断号、DMA通道、共享存储区等。输入输出端口号又被称为输入输出基地址,当网卡工作于端口输入输出模式时被使用。端口输入输出模式需要CPU的全程干预,但所需硬件及存储空间要求较低。CPU通过端口号指定的空间与网卡交换数据。中断号是网卡的中断序号,只要不与其它设备冲突即可。当网卡使用DMA方式时,它要使用DMA通道批量传输数据而不需要CPU的干预。

对于一块具体的网卡,如果网卡支持完全自动检测,那么一个参数也不用指定,驱动程序的检测例程会自动设定所需参数。一般情况,你需要人工设定这些参数的一部分。如果你的网卡使用端口输入输出模式,你要设定端口号和中断号。如果你的网卡使用DMA模式,你要设定DMA通道和中断号。如果你的网卡使用共享存储区的模式,那你就得设定共享存储区的地址范围。

3.驱动程序的使用方式

有了网卡的驱动程序后,你可以选择是把驱动程序加入到Linux核心之中还是把驱动程序加工成独立模块。Linux系统一个引人入胜的长处就是可以定制系统的核心。把需要频繁调用的功能加入系统核心,可以大大提高系统的效率。在这种情况下系统启动时,系统核心自动加载网卡的驱动程序。驱动程序的参数可以通过LILO命令参数加以指定。系统启动后驱动程序永久驻留核心,不能用常规的方法将其卸载。至于定制的系统核心,是通过重新编译得到的;如何编译核心将在后文叙及。

如果把驱动程序编译成可装载模块,就可以用系统提供的命令在系统启动后随时加载。随时加载的好处是减少内存开销,易于管理,但同时也牺牲了一点网络传输的效率。驱动程序的参数是在命令行中直接输入或通过配置文件指定。二、网卡安装前的准备在安装网卡前,务必检查是否具备下列条件:

1.硬件方面

●以太网卡

●网络连接线及连接头,如10base-T一般为8芯双绞线配RJ-45接口

2.软件方面

●Linux操作系统

●网卡驱动程序(目标码或源代码)

●*网卡配置程序

●*软件开发工具,如GNU工具包(包括编译器gcc、make等)

3.系统配置信息

●可用的端口地址

●可用的中断号

以上不带星号标记的是必要条件,带星号的是视情况不同而要求的条件。具体情况在下面进一步说明。

三、网卡的安装及配置

第一步:配置以太网卡的工作参数

配置网卡就是配置网卡的工作参数,如端口地址、中断号等。网卡的缺省参数一般存储于网卡内部的EEPROM,这是网卡出厂前设置好的。缺省参数在大多数情况下是可行的,但如果这些参数与你的系统有冲突并且网卡又不支持软件动态设置,那么你就要使用网卡的设置程序。并不是所有的网卡都要经过这一步,因为有些网卡支持通过驱动软件及其输入参数来确定网卡的工作参数。可以通过查阅网卡使用说明书来确定这一点。

网卡的设置程序与驱动程序不同,设置程序仅仅用来对网卡EEPROM中的设置进行修改。网卡程序本身可能运行在其它操作系统下,如WINDOWS95/98、OS/2、DOS等。如果是非Linux平台,那你就先在适合设置程序运行的系统中安装网卡,按设置程序说明设置网卡参数。然后再在Linux系统下安装该网卡。

第二步:安装Linux系统

假如你将要安装以太网卡的Linux系统本身还未安装,那么可以先试着在安装Linux的同时安装网卡。这一步成功的前提是你的Linux发行版本包含将要安装的网卡的驱动程序。

运行Linux的安装程序,按提示进行操作,别忘了安装核心的网络部分。当进行到LAN配置时,安装程序会列出它支持的所有网卡的类型。看看你的网卡是否榜上有名。随着Linux发行版本的不断升级,目前RedHat6.0已经覆盖了常用的网卡类型。如果很幸运地你的网卡恰好在其中,那么下文讨论的很多步骤都可以不必考虑了,安装程序会自动完成网卡的安装与驱动。但如果没找到适用于你的网卡类型,也不必担心,继续下一步。

第三步:手工安装网卡

安装网卡也就是安装网卡的驱动程序。网卡要工作必须要有驱动程序,并且驱动程序越成熟越好。驱动程序一般由网卡的生产或供应商提供。由于Linux是一个起步不久的新兴操作系统,网卡的生产商并不一定提供Linux环境下的驱动程序。这时候你就得从其它途径想办法了,比如到INTERNET上专门提供硬件驱动程序的网站查找一下,也可以在新闻组上贴个求助信息。总之,只有得到网卡的驱动程序后,方可进行下一步。

网卡的驱动程序有两种类型。一是可直接使用的二进制代码;另一种是驱动程序的源代码。二进制代码一般是预先编译好的可装载模块。源代码可以编译成可装载模块,也可以编译成系统核心的一部分。如何把源代码编译成可装载模块不在本文讨论之列,具体可以查阅驱动程序的说明书。

1.可装载模块的使用

系统提供了一组命令用于将驱动程序模块载入内存执行。这些命令包括modprobe、insmod、Ismod、rmmod。modprobe与insmod命令功能相似,但是方式各异。

●modprobe命令使用配置文件/erc/config.modules来加载可执行模块。要用modprobe命令加载以太网卡的驱动程序,可以在config.modules文件中加入:

aliaseth0drivermodule(drivermodule是驱动程序模块的名称)

这行配置信息把以太网卡的设备名与驱动程序模块联系起来。modprobe命令依据这条信息,自动加载存放于/lib/library/xxxx/net目录下名为drivermodule.o的模块。因此要使modprobe命令找到驱动程序模块,必须将该模块放在/lib/library/xxxx/net目录下。

那么驱动程序的参数如何指定呢?还是使用conf.modules文件。方法是在接着上述配置信息的后面加入下行信息:

optionsdrivermoduleparml=valuel,parm2=value2,……

这里parm1是驱动程序可以接受的参数名,valuel是该参数值;依次类推。

比如optionscs89x0io=0x200irq=0xAmedia=aui

●insmod命令直接通过命令行参数将驱动程序模块载入内存,并可以在命令中指定驱动程序参数。例如:

insmoddrivermodule.oparml=valuel,parm2=value2,……

以上两个命令中可以使用驱动程序参数要依据具体的网卡及其驱动程序而定,要仔细阅读网卡及驱动程序的说明书。有的网卡驱动程序可以用这些参数覆盖网卡本身EEPROM中存储的参数。有的则必须使用EEPROM中的参数。有的因为驱动程序不自动检测网卡使用的参数,所以还得把网卡使用的EEPROM中的参数传给驱动程序。

卸载驱动程序模块使用rmmod命令:

rmmoddrivermodule.o

2.把驱动程序编译入系统核心

除了以可装载模块的形式使用驱动程序,还可以把驱动程序编译进Linux核心,以获取更高的效率。这种方式需要驱动程序的源代码、Linux核心源代码及其编译工具。Linux核心的编译过程包括配置核心、重建依赖关系、生成核心代码等步骤。配置核心的过程是用系统提供的配置工具(makeconfig或makemenuconfig)重新生成用来编译核心的众多make文件的过程。为了让核心的配置工具了解你的网卡驱动程序,你需要修改一些核心的配置文件。

(1)修改配置文件:主要修改核心源代码目录下的四个文件,即drivers/net/CONFIG文件、drivers/net/Config.in文件、drivers/net/Makefile文件和drivers/net/Space.c文件。CONFIG和Config.in文件用于控制核心配置工具(makeconfig或makemenuconfig)的运行,主要是加入关于是否包括该网卡的支持提示。Makefile和Space.c文件用于编译核心代码并说明面向核心的接口。详细语句参见下面例子。

(2)运行核心配置工具:在核心源代码目录下执行makeconfig或makemenuconfig命令。makeconfig是面向命令行的,通过逐句回答提问来配置核心。由于其在配置过程中不可改变或撤消以前的回答,故多有不便。makemenuconfig则是通过窗口菜单方式,使用起来很方便。就本文而言,你只要在上一步中正确修改了配置文件,那么在config中会出现是否需要该网卡支持的提问,你选择‘y’。或者在menuconfig中的network菜单中出现表示该网卡的菜单项,把它选上即可。

(3)重建依赖关系:很简单,执行makedep和makeclean命令。

(4)生成核心代码:执行makezImage命令。这个命令开始真正编译核心代码,并把核心代码存放为arch/i386/boot目录下的zImage。

(5)为了使用新的核心代码,你需要用新的核心代码替换原有的。原有的核心代码一般存放在/boot目录下,文件名称类似于vmlinuz-v.s.r-m(v.s.r-m)表示核心的版本号)。如vmlinuz-2.0.34-1。执行下列命令:

cparch/i386/boot/zImage/boot/vmlinuz-v.s.r-m

为了安全起见,可以先把原有的核心代码做个备份,以便发生错误时恢复。

至此,你可以重新引导系统以使用新的带有正确网卡驱动支持的Linux核心。唯一剩下未解决的是驱动程序的参数问题。有些网卡驱动程序如果不输入参数,那它工作就会不正常,甚至根本不工作。由于现在网卡的驱动程序是系统启动时由核心载入运行的,系统启动之后用户就很难改变这些参数了,所以你必须在系统启动时告诉Linux核心网卡驱动程序使用的参数。具体方法有两种:

(1)在系统引导程序LILO中输入。

在LILO开始引导系统时,用ether子命令设定以太网卡驱动程序的参数。ether命令的使用方式为:

LILO:linuxether=IRO.BASE_ADDR,NAME

这里带下划线的是要输入的部分,IRQ表示中断号,BASE_ADDR表示端口号,NAME表示网卡的设备名。例如:linuxether=15,0x320,eth0

(2)在LILO配置文件中设定。

每次在系统启动时再输入驱动程序参数似乎有点过于麻烦。幸好系统提供了LILO的配置文件可以用来永久性的设置Linux系统启动时的子命令。方法是在/etc/lilo.conf文件中的适当位置加入以下一行:

append=“ether=IRQ,BASE_ADDR,NAME”

这里带下划线部分的意义同上。加入这一行后,还需要用/sbin/lilo命令把这个配置写入引导程序。

第四步:网络配置及测试

安装完网卡就可以配置网络通信了。配置网络简单地就是使用ifconfig命令,

例如:

ifconfigeth01.2.3.4netmask255.0.0.0up

最后ping一下网上其它机器的ip地址,检查网络是否连通。

五、一个以太网卡安装实例

下面以Cirrus公司生产的CrystalCS8920以太网卡为例,详细说明上述安装配置过程。本例中,有些命令参数,如核心源代码目录等,是以我使用的系统环境为出发点。具体应用中还要加以本地化。为了更接近实际,例子中也包括了对安装中碰到的问题的描述。

1.此网卡是IBMPC机的内置式网卡,机器只提供了Windows95/98环境下的驱动程序。由于RedHat5.0发行版本尚未提供对此网卡的直接支持,所以从Cirrus的站点上找到并下载了该网卡驱动程序的Linux版本,是一个名为Linux102_tar.gz的压缩文件。

2.文件Linux102_tar.gz解压后包括五个文件。包括源代码,仅适用于Linux2.0版本的目标模块以及readme文件。

3.查阅readme文件后,了解到这个驱动程序只能使用网卡EEPROM中设定的端口号(I/O基地址)、中断号。为了知道网卡EEPROM的设置,又从Cirrus站点下载了该网卡DOS版本的设置程序setup.exe

4.在DOS中运行setup.exe,发现网卡的起始端口号为0x360,中断号为10,与别的设备有冲突。选择setup.exe程序的相应菜单,把中断号改成5。另外,此驱动程序不支持plugandPlay,故也在setup.exe中将网卡的PnP功能屏蔽掉。

5.我所使用的RedHat5.0的Linux核心版本为2.0.34,所以不能用现成的驱动程序目标模块,需要自己动手编译。如上文所述,有两种方式使用此驱动程序。

6.如果要编译成独立模块,执行下列命令:

gcc-D_KERNEL_-I/usr/src/linux/include-I/usr/src/linux/net/inet-Wall-Wstrictprototypes-02-fomit-frame-pointer-DMODULE-DCONFIG_MODVERSIONS-ccs89x0.c

编译结果是名为cs89x0.o的驱动程序目标模块。要装载此驱动程序,输入下列命令:insmodcs89x0.oio=0x360irq=10

要卸载此驱动程序,用rmmod命令:

rmmodcs89x0.o

7.如果要将驱动程序编进系统核心,

修改/usr/src/linux/drivers/net/CONFIG,加入:

CS89x0_OPTS=

修改/usr/src/linux/drivers/net/Config.in,加入:

tristate‘CS8920Support’CONFIG_CS8920

以上两行是为了让makeconfig在配置过程中询问是否增加CS8920网卡的支持。修改/usr/src/linux/drivers/net/Makefile加入:

ifeq((CONFIG_CS8920),y)

L_OBJS+=cs89x0.o

endif

修改/usr/src/linux/drivers/net/Space.c,加入:

externintcs89x0_probe(structdevice*dev);

……

#ifdefCONFIG_CS8920

&&cs89x0_probe(dev);

#endif

以上两段是为了编译并输出网卡驱动程序及其例程。

把驱动程序源代码拷到/usr/src/linux/drivers/net目录下。

在/usr/src/linux目录下执行makeconfig或makemenuconfig,选择核心CS8920网卡支持。

执行makedep、makeclean命令。最后用makezImage编译Linux核心。

如何设置核心驱动程序参数,上节已有说明,不再赘述。

Linux范文篇7

关键词:定制LFSBinutilsGccGlibc

一、引言

Linux是和Unix很相似的一种操作系统,具有Unix的全部特征,并和POSIX兼容。它是一个真正的多用户多任务操作系统,是一个优秀的应用软件开发平台。Linux最大的特点是它是自由的,这种自由有双重含义。一方面,Linux的自由的意义是它是免费的,不必花费成本就可以得到它。Linux自由还有另一个重要的体现,那就是Linux可以提供无限宽广的技术发挥的自由空间。在购买到Linux之后得到的不仅仅是一个操作系统,还得到了系统的源代码。这样如果不喜欢Linux的工作方式,就可以改变它(不仅仅是做微小的改动,你甚至可以安装你的需求去改动整个操作系统)。只要按照通用公共许可证(GeneralPublicLicense)的要求,即可以无偿地自由采用,改进,发展。这也正是Linux发展如此迅速的一个原因。

开放源代码,也使越来越多的人不甘于使用现成的发行版,要想对Linux完全满意,必须从头构建自己的系统。本文的LFS正是构造Linux的一个方法。

二、LFS及其特点

LFS是LinuxFromScratch的缩写。"FromScratch"是一个词组,它的意思是"从零做起,白手起家,从无到有"的意思,因此"LinuxFromScratch"本质上不应当理解为一个Linux发行版名称。它最贴切的含义应当是一种"方法/思想":一切从源代码开始的方法/思想。如果把LFS比作建筑房子,那么LFS提供房子的框架蓝图,但是需要你自己建造它。

使用现有的Linux系统来开发自己定制的系统,这个"完美的"Linux系统将拥有各种发行版的优点而没有它们的缺点。用户可以控制系统的所有特征,包括目录布局、脚本设置和安全设置等等。最终的系统将从源代码直接编译生成,用户可以指定在哪里安装、为什么安装以及怎样安装每一个程序。可完全按照自己的需求定制Linux系统,而且对系统有更多的控制权。

三、LFS的好处

LFS存在的一个重要原因是可以帮助人们学习Linux系统内部是如何工作的。构建一个LFS系统会帮助演示是什么使Linux运转,各种组件如何在一起互相依赖的工作。最好的事情是通过这种学习可以获得完全根据自己的需求定制Linux系统的能力。

LFS的一个关键的好处是它让用户对于系统有更多的控制,而不是依赖于他人的Linux实现。在LFS的世界里,你自己坐在司机的位置,掌控系统的每一个细节。

LFS的另一个好处是可以创建一个非常小巧的Linux系统。当安装一个常规的发行版时,人们经常要被迫安装一些可能永远不会用到的程序。这些程序浪费宝贵的磁盘空间,更糟的是占用CPU资源。自己定制Linux系统的另一个好处是安全性。通过从源码编译整个系统,你能够审查任何东西,打上所有的安全补丁,而不需要等待别人编译好修补安全漏洞的二进制包。除非是你发现并制作补丁,否则你无法确保新的二进制包被正确编译并修正了问题。

四、LFS的构造原理

要基于源代码的方式来编译整个系统,那首先要解决的就是工具链的问题,即需要一个编译环境。所以构造LFS系统分两大步:一是构造一个临时的编译环境;二是构建LFS系统。

临时编译环境其实也相当于一个小的Linux系统。只不过这个系统将仅包含必要的工具,能够构建最终的LFS系统。构建这个小系统分两步进行,第一步是构建一个新的不依赖于宿主系统的工具链(编译器、汇编器、连接器、库文件以及一些有用的软件),第二个步骤是利用这个工具链去构建其它基本的工具。

在工具链中最基本的是:Binutils、GCC和Glibc。Binutils是一组开发工具,包括连接器,汇编器和其它用于目标文件和档案的工具。GCC软件包包含GNU编译器,其中有C和C++编译器。Glibc包含了主要的C库。这个库提供了基本的例程,用于分配内存、搜索目录、打开关闭文件、读写文件、字串处理、模式匹配、数学计算等等。其它的工具必须在他们的基础上建立。所以在下面讲解的过程主要围绕着这三个工具的安装,以及工具链的调整为主。那么如何来创建一个这样的编译环境呢?那就需要一个现成的系统,称它为宿主系统。现在总体的思路就是在宿主系统创建一个临时的环境,可以chroot到这个环境,在该环境的基础上构建一个干净、没有问题的LFS系统。为了尽量的与宿主系统分开,所以要创建一个自包含、自依赖的工具链。由于这里的工具链只起临时作用,在完成LFS后可以将其剥离,所以可将编译的所有文件都放在同一个文件中($LFS/tools)。在构建过程中应注意以下几点:

1.这个过程在原理上与交叉编译类似,通过把工具安装在同一个目录(使用相同的“prefix”)中以便协同工作,还利用了一点GNU的“magic”。

2.小心处理标准连接器的库文件搜索路径,确保程序仅连接到指定的库上。

3.小心处理Gcc的specs文件,告诉编译器要使用哪个动态连接器。

下面看看具体时如何实现的。

为了创建一个干净的工作环境,在宿主系统中新创建一个lfs用户组,并添加了lfs用户,在安装过程中将一直使用该用户。

首先编译Binutils,这时是使用宿主系统的环境。毫无疑问现在利用Binutils生成的程序会受到宿主系统的影响。例如:使用生成的ld(标准连接器)程序将会连接到默认的/lib目录(宿主系统)下的二进制文件。

然后编译Gcc,仍然需要宿主系统的环境。显然Gcc也受宿主系统的影响,这可以从它的编译来看,它依赖的是宿主的Glibc,而Binutils可以使用刚生成的。Glibc提供了动态连接器,用来找到并加载一个程序运行时所需的共享库,在做好程序运行的准备之后,运行这个程序。此时生成的Gcc会使用/lib(宿主系统)下的动态连接器,而不是$LFS/tools/lib下的。

通过上面两步,我们就可以使用刚生成的bintuils和Gcc来编译Glibc了。现在我们将bintuils、Gcc和Glibc都重新编译了一次。接下来就要通过调整工具链来解决刚提到的两个问题。一是重新编译ld,将ld连接到$LFS/tools/lib下的函数库。二是调整动态连接器,修改Gcc的SPEC文件,将动态连接器连接到/tools/lib/ld-Linux.so.2(ld-Linux.so.2是动态连接器的名字)。

到这里看似可以编译其它的工具了,但是接下来的工作并不是如此,而是再次编译了bintuils和Gcc,然后用第一次生成的Glibc和现在生成的bintuils、Gcc来编译其它的工具,整个临时环境才搭建成功。

这里有个问题是为什么要将Bintuils和Gcc编译两次,可以直接用宿主系统?第一次编译bintuils和Gcc的目的一方面是为了编译Glibc;另一方面是为了能自己编译出第二遍的Gcc,即使得Gcc是自我编译的。如果直接使用宿主系统可以满足编译Glibc的要求,但是Gcc就不是自我编译了。这里为了保证制造的正确性以及使Gcc是自我编译,所以Binutils和Gcc比其它的工具都多编译一次。

接下面其它工具的编译都是使用第二次编译的Binutils和Gcc以及第一次编译的Glibc。至此,工具链就准备好了,我们可以利用这些工具生成最终的系统。同样最先生成的软件还是Binutils和Gcc,不过在编译它们之前,我们先编译出Glibc,它也是我们最终需要的C库。再次调整工具链,让随后编译的工具都连接到这个库上。不难理解,在前面的调整中我们将工具链使用的库从宿主系统转向新安装的库目录。同样,现在将工具链所使用的库从临时的库转向LFS系统最终的库目录。

系统中的其它软件都是由最新编译的Binutils、Gcc和Glibc编译的。最后就是经过配置一些简单的系统启动脚本、创建fstab文件、编译内核并安装引导程序,最终的LFS系统就可以启动了。

五、LFS的扩展

通过上面的分析总结大致的过程:通过宿主系统搭建了临时的工具链,然后通过工具链构建了最终的目标系统LFS。将LFS建成以后,就可以脱离临时编译环境。本文所说的编译都是相同的平台,前面也提到构造临时编译环境的原理与交叉编译环境相似,结合我们搭建交叉编译环境的过程,如果我们搭建的临时工具链是一个交叉编译环境,最终就应该可以实现一个跨平台的目标系统。当然具体的细节问题还需要进一步探讨。

六、小结

直接从源代码构建Linux操作系统,不仅能够定制自己理想的操作系统,更重要的通过构造LFS能够加强我们了解Linux内部是如何工作。对于有志研究Linux系统的人,学习这个构造方法很有必要。同时,我们应该抓住开放源代码的机遇,认真研究,同时做出自己的贡献,推进其发展。

参考文献

[1]王景中.Linux安全最大化.电子工业出版社.2000.5.P3.

[2]GerardBeekmans..

Linux范文篇8

关键词:用电信息管理MIS系统存在

1传统用电MIS系统存在的问题

(1)成本高:

现在绝大部分地区使用的是基于WindowsNT的操作系统。数据库系统往往采用MSSQL,ORACEL,DB3等系统,仅上述两类软件,单点成本就已经超过了万元,而且由于供电企业网点分散,所以往往在每处都必须安装上述两类软件。以一个县局而言,在系统软件投资上就将花费30万元左右。

但是与此形成鲜明对比的是,真正用户需要的模块(用电MIS),由于技术准入门槛低,市场上产品良莠不齐,软件厂商竞相压价,整套产品往往只能买到几千元/单点。由于软件厂商获利不足,就无法继续投入人力、财力进行系统的进一步开发和售后服务工作。

我个人认为以上因素在根本上造成了现在用电MIS系统市场非常混乱的情况。

(2)难以维护:

因为供电企业的网点分散,而基于WindowsNT的系统缺乏对低带宽数据链路(比如载波、电话线路等)的通信支持,所以现在用电MIS多是分散运行的(即在每一点都有整套的系统在运行)。所谓联网也是指在局域网中的联网。由于分散运行,就必然导致分散维护。在现实工作中,维护工作一直是困扰用电MIS推广的关键障碍。

(3)大范围联网困难:

这里指出的联网功能,包含两层含义:一是指供电企业内部信息传递困难,原因可参照第(2)条。二是由于银行、邮电等部门采用的主系统都是基于UNIX的,所以系统之间的互操作性能较差。

2基于LINUX平台的用电MIS系统

基于上述原因,我详细对比了目前主流的操作系统及其应用软件的优劣,认为LINUX系统有可能在今后的3~5年内,取代WindowsNT,成为电力系统的首选操作系统。

以下是两种操作系统在关键环节上的对比说明。

(1)成本:

①购买成本。

仅就操作系统而言,目前可以适应用电MIS应用需求的Windows系列包括WindowsNT40和Windows2000,其价格随应用复杂性和健壮性有很大差别,数千至数万元不等。LONUX是完全免费的操作系统,每个人都可以自由获取。因此不存在购买成本,而且现在LINXUE已经实现了从嵌入式设备到超大型企业应用的全系列支持。

在WindowsNT上运行的SQL支持系统,随数据库容量支持、检索效率等因素不同,价格在几万至几十万不等,没有免费的SQL系统。在LINUX上,应用最广泛的是MySQL数据库,它曾经有上亿条记录连续运行数月的记录,所以在软件功能上完全不比NT操作系统下的任何SQL系统差,而且目前为止仍然是完全免费。

现在互联网上有数百万站点都是采用的LINUX+MYSQL数据库的方式构建的。

②管理、维护成本。

由于LINUX脱胎于UNIX,在设计之初就对远程接入提供了良好的支持,现在每天都有上百万名维护人员通过电话线远程管理、维护自己的系统。而WindowsNT在远程维护领域几乎一无建树,这也正是Microsoft公司花大价钱购买PCAnywhere软件的原因。但是由于PCAnywhere并非是内嵌的操作系统中的,所以软件的可用性在某些方面仍显不足。

由于LINUX可以建立基于低带宽数据链路的网络结构,所以可以实现中心主机+远程终端的联网模式,这样只需要管理中心主机即可实现全网的管理。进一步降低了管理成本。

(2)开放性:

LINUX可以说是目前最为开放的系统,所有源代码都可以免费得到,即使操作系统不支持的功能,也可以通过修改、扩充系统源代码方便实现。而对于WindowsNT而言,这是不可想象的。最近有消息称,迫于开放源码运动带来的市场压力,微软打算对美国1000家大企业开放Windows2000的部分源码。

(3)互联能力:

①乡站联网。如果采用WindowsNT实现乡站实时联网运行,则必须在县局到乡站之间建立宽带数据链路(比如光纤),目前在很多地方还不现实,甚至永远不可能实现。但是如果采用LINUX系统,乡站就可以通过远程接入到局中心计算机,在窄带和宽带环境下均可实现。这种大范围的联网运行模式实际上银行系统在很多年前已经实现了。

②智能设备联网。由于数据可以通过载波或电话线接入局中心计算机,所以在智能设备联网方面,LINUX的系统优势也是不言而喻的。而且在嵌入式LINUX的系统低层就已经支持了此种应用。

③与其他单位联网。由于银行、电信等行业采用UNIX作为主要的操作系统,而LINUX和UNIX本是一脉同根,所以在互联方面的支持要好于同WindowsNT系统互联。

(4)稳定性、安全性:

LINUX的稳定性一直倍受赞赏,连续运行数月也毫无问题,而WindowsNT的稳定性则不敢于恭维,很多人在这方面都吃尽了苦头,所以人们往往在微软公司的产品正式推出一年以后,才将其应用到关键任务中,以免成为稳定性测试的牺牲品。

由于LINUX是基于代码开放体系的,所以历来都是黑客攻击的热点,但是我们通过分布式运行的方式,即可解决安全问题,而且可以极大的提高系统的安全性和可用性。比如在局中心设置2~3台主机,互为备份且采用不同的安全策略,这样一方面避免单台主机运行时的意外发生(包括黑客攻击),另外可以分散处理访问请求,缩短系统反应时间。公务员之家

(5)易操作性:

WindowsNT系统基于图形界面,熟悉Windows操作界面的人很容易学会,在整体系统使用的难易程度上,LINUX要逊色很多(大部分LINUX应用是字符界面)。

但是,具体到某项应用,情形或许有些不同。比如在电费电量处理过程中,如果将所有的操作都命令化,只需要30~40条命令,对于微机操作人员而言,记忆这些命令并不困难,而且在应用效率上,也要好于图形界面的操作方式。

(6)市场影响:

由于LINUX不如WindowsNT平台上的开发工具丰富多彩,所以开发难度要远大于在NT平台上进行的开发。这也是LINUX最大的劣式所在。

Linux范文篇9

关键词:自由软件

《赞自由软件》于2000年初即本世纪一开头写完前四集就暂停了。原因是这两年业界不景气,遭遇到自IT产业诞生以来的最为严重的打击,泡泡终于被吹爆了。面对如此严峻的局势,笔者也生怕这自由软件经一赞再赞还赞且赞的平方之后,也被赞成了泡泡,偏离了自由软件自由发展的航向,那一定不是《赞自由软件》的本意。故暂且封笔《赞自由软件》,换笔疯侃了一阵《论软件思想》,但骨子里还是《赞自由软件》。刚刚进入到2003年,IT业大有回归理性反转向上之势,专家们又开始大胆预测,经历了严冬后的IT业界,将在2003年全面复苏,并带动狂跌了两年的股票市场,走出一波牛市行情。既然如此,《赞自由软件》也要与时俱进,跟风IT和股市的主流板块,把自由软件赞上一个新台阶。

1微软下嫁自由软件开放Windows源代码

众所周知,微软对自由软件从来就是不屑一顾的。进入2003年后,微软的态度突然来了个180度大转弯。2003年1月4日,IT巨无霸作出了史无前例的决定,向十几个国家的政府部门和国际组织公开Windows操作系统的源代码。2003年2月27~28日,比尔盖茨第8次中国之行,向江主席汇报开放源代码问题,并立即与代表中国政府的“中国信息安全产品测评认证中心”正式签署“政府源代码备案计划协议”,向中国政府100%地公开Windows源代码。微软的这项决定,也许与微软与日俱增的霸道作风和垄断行为是一脉相承的,但却仍然具有其理性进步与顺应潮流的一面。毕竟开放源代码运动和自由软件运动不是少数几个人神经质的狂热与冲动,星星之火已燎原到足以威胁微软统治地位的灼热大火。微软是惧怕?妥协?认可开放?权宜之计?请看如下事实。

2001年初,微软的操作系统部门执行长JimAllchin公开指责自由软件:“到处散布软件程序源代码,将会扼杀了软件开发的创意,压抑了创新。OpenSource(开放源代码)运动将会终结智慧财产权以及研发的动机,是智慧财产权的摧毁者”。可见,当时的微软正迫不及待地歇斯底里地为OpenSource社群贴上法西斯的标签。

2002年3月在澳大利亚Adelaide市举行的2002信息技术全球大会(WCIT)上,微软首席技术官(CTO)CraigMundie重申软件产业保护知识产权的重要性,强烈反驳公开软件源代码的观点:“那些自由软件的鼓吹者的问题在于他们并不清楚人们更加需要商业化的软件”。Mundie对自由软件联盟(LibertyAlliance)(由美国SunMicrosystems等33家企业和团体设立)大为不满,因为自由软件联盟的宗旨是“以用户为第一目标,开发普及与因特网用户认证相关的开放且独立的标准技术”,这是反微软垄断的有力措施。

为什么在不到一年时间内,微软就从深恶痛绝OpenSource到自己也加入了OpenSource队伍呢?请继续往下看。

微软以做PC操作系统起家,早先对互联网不以为然,直到人人都用Navigator浏览器在Internet上狂游时才猛醒过来,立即投入巨资开发IE浏览器,并立即将IE免费赠送全世界网民,还含冤叫屈地声称是新一代Windows操作系统不可分割的一部分,自然立即就把Navigator挤出了市场。微软免费IE这一事例其实也表明了一个极其简单的道理,没有Navigator等其它敢与微软叫板的优秀软件,微软的IE还不知道要宰用户多少银子呢。微软的垄断是明摆着的,向全世界用户提供了优秀软件也是实情,用户获得了实惠更是事实,因此微软就死死咬住为用户着想的理由,终于打平了业界强烈关注的垄断官司。

喜欢在网上玩QQ的朋友们也许已经发现,越来越多的网恋正在微软免费的MSNMessenger软件中进行;许多网上免费邮箱被改为收费邮箱后,微软的hotmail仍然没有任何收费的迹象,且极易申请成功,邮箱基本上不会出现什么服务器连接不上等问题(笔者也是hotmail的用户,欢迎使用hotmail的朋友们随时与wgang299@玩QQ)。

如果说微软赠送IE挤垮了Navigator,免费的MSN和hotmail与许多收费邮箱和国产QQ叫真,这些我们都可以当成垄断来看待;而开放Windows源代码也是垄断?理解起来似乎就有些困难了。

纵观微软的发展史,值得借鉴和学习的地方颇多。例如微软的忧患意识:虽然强大,但离破产永远只有18个月(比尔盖茨原话)。微软还有一个最大的优点,发现了自己的错误之后不怕丢面子很快改正。例如微软早先对Internet的漠视,但很快用IE来改正了错误,后来推出的.net概念,更是对Internet的进一步发挥;在一片反垄断的呼声中,微软很快就给人们送来了MSN这一类的免费套餐。反差最大的是,刚才还在对OpenSource横加指责,但立即又宣布开放Windows源代码……。

其实,明白人很清楚,微软开放Windows源代码,完全是被自由软件Linux逼出来的,或者说是微软对Linux的恐惧。当然,如此举措之后,微软是不是也会象免费赠送IE挤垮Navigator一样挤垮Linux?很难!理由如下。

2自由软件Linux乘势发展面向政府应用

Linux的开放性有目共睹,并且将永远是开放的。近几年来的某些网站,先用免费Email把你圈进去,等激情有余的众多网友们共同把这些网站捧红之后,免费Email就被毫无信用的商家们无情地取消了。Linux决不会误入先跑马圈地后强人所难的歧途,因为她从诞生之日起就从来没有打过这种商人短视的主意,后来为了防止被一些惟利是图者所利用,Linux加入了GPL,受到GPL开放源代码协议条款的保护。Linux在功能性、安全性、稳定性等等方面的优势,笔者在前两集《赞自由软件》中已经有过详细阐述,计算机类的各大媒体和网站对此也有大量解释,虽然最近有研究报告得出了相反的结论,就当是百花齐放百家争鸣吧。然而,看了以下各国政府和世界知名IT企业对Linux的态度,我们恐怕就不能视而不见了。

2002年6月,德国政府宣布,德国联邦、州和地方政府采用开放源代码的Linux操作系统。此后,英国政府宣布在政府机构中采用开放源代码的软件。此前,芬兰、法国等国家政府已经宣布支持Linux。美国国家航空和宇宙航行局(NASA)以及美国海军也同其他政府或民营部门一样,已经采用自由软件来完成某些任务。西班牙西部地区的教育与科技长官正在进行一项反对操作系统垄断的事业。巴西政府和墨西哥政府也开始向自由软件大规模移植。韩国政府更是强令使用本国办公套件及相应的开放源码系统。

2002年底媒体报导:到目前为止,包括中国、美国、印度、德国、法国、芬兰、韩国、巴西、澳大利亚等近20多个国家制定了Linux发展计划,接近70部正在制定中的法规将强制或至少是鼓励政府应用开放源码软件。这些国家政府认为,采用Linux会促进一个国家软件产业的发展,最重要的一点是在事关国家生存与发展的专有信息技术和新产品方面不能受制于人。2003年2月24日,北京市科委、北京市信息办和IMB中国公司共同宣布,“中国—IBMLinux解决方案合作中心”正式成立。这标志着Linux应用将走向更为全面的政府和企业市场。

关注IT业的人士都知道,微软2001年新推出的WindowsXP,其中颇受关注的“锁机”、“激活”、“订阅”等功能都有可能威胁到信息安全。在此之前的Windows2000就有隐藏秘密后门收集用户资料的劣迹,引起了业界震动。实际上,即便是在欧美国家,微软的Windows操作系统也只能运行在家庭、游戏等无关紧要的场所,关键性业务则必须由Unix来处理。

中国政府大力支持Linux的态度是坚决的。国家计委、科技部、信息产业部都已立项支持开放源码系统产品的研发与产业化。专家们认为,公开的免费的Linux将是中国掌握计算机核心技术的一条捷径,是中国软件业开发自主产品和技术的良机。在2001年底和2002年底北京市政府采购正版软件公开招标中,中科红旗的Linux操作系统和中文2000公司的RedOffice都得以中标,就是得益于是基于Linux系统的。金山wps在2001年北京市政府采购中获胜,于2002年败北,原因是WpsforLinux一再拖延不能出手,不支持Linux的Office系统自然惨遭淘汰。

除此之外,政府以12亿资金启动的NC(网络计算机)已进入政府采购。国内做NC的主要有两个企业联合体,一个是采用方舟CPU、Linux架构的NC,另一个是采用龙芯CPU、Linux架构的NC。NC的Linux基本上和桌面Linux的要求相近,这对于Linux将是一个极大的支持。2003年1月1日正式实施的我国第一部《政府采购法》大力提倡“优先购买本国产品”,充分体现了政府采购的社会经济调控职能。

3Linux面向行业应用为不同用户提供更多选择

行业应用将是Linux与微软NT竞争的焦点。由于行业不同用户各异,在应用系统的选择上虽然各有所好,但是其追求目标都是一致的,都需要从系统的稳定性、安全性、功能性、开放性、可扩展性、经济合理性等通用因素去考虑。开展信息化建设较早的行业或企业,越来越感到早期开发的那些专用系统成了信息孤岛,成了食之无味弃之可惜的鸡肋。因为那些在封闭的没有提供源代码的支撑平台上开发的应用软件,就象被死死地捆绑在封闭的Windows战车上一样,推倒重来或兼容利用都将是痛苦的选择。

之所以人们还在惯性热恋Windows,主要是在桌面系统方面,应用软件多是Windows系统的,另外就是习惯问题。而行业应用和企业应用,是有可能发生根本性变化的。理由是,行业和企业应用多以网络为主,网络操作系统的选择对一般终端用户没有多大关系。另外,办公软件大家比较熟悉的是微软Office系统,随着WTO的规则落实,微软可以手持这把“尚方宝剑”通过各种技术或市场手段严查政府和企业使用Office软件的授权情况,就会导致更多的类似于北京市政府软件采购抛弃微软的实例发生。其次,现在用户的应用水平都提高了,应用软件基本上也都是图形界面鼠标操作,其它Office系列软件的操作习惯和使用方法也都与微软的Office系列软件大同小异,Linux应用软件也在迅速丰富,如果有一天行业主管一声令下,或企业老板断然宣布,更换操作系统和应用软件,那些习惯问题马上就可以改过来。因为让大家去改变一个完全可以改变的习惯,立即就可以省下大把的银子,当然值得一试。

Linux行业应用和企业应用的更大优势还在于,世界知名IT企业Intel、Sun、Informix、Oracle、Sybase等等都支持Linux。IBM投入25亿美元支持Linux,IBM的大型主机、商用机、RISC服务器以及PC服务器系列,一律采用Linux,核心业务系统正运行在Linux系统上。Turbolinux是进入中国市场的Linux厂家之一,2002年一举拿下中石化大单,为行业应用打开了局面。“中国芯”与Linux整合后的NC应用,更多低端Linux嵌入式产品的市场占有,Linux服务器领域市场份额的迅速扩大……,最最重要的是各国政府和广大用户的日益觉醒,微软是没有能力来左右这一世界潮流的。正如Turbolinux中国总裁潘迪所言:“作为一种开放的技术,Linux永远不会死,这也是Linux与微软的区别,谁也不能保证微软永远不死”。

4水利行业选择Linux是明智之举且前景看好

水利行业信息化建设已经开始热身。任何一个水利信息化建设项目的投入资金都在数十万或数百万元量级,有的项目可达千万甚至上亿元数量级,都要进行公开招投标。如果有一家高科技企业率先推出Linux解决方案,一定可以在投标中占领先机。

Linux应用于水利行业的优势在于:开放性技术的率先应用,水利信息化的核心技术不会受制于人;行业应用标准尚未建立,谁先应用成功并得以推广,谁就可以成为事实标准,这是业界惯例。事实也是如此,绝大多数软件核心技术掌握在少数大公司手里,业界标准也是在这些大公司的倡导下建立的,其它应用则处于“跟随”地位。开放源码的广泛采用给各行各业都带来了新的机会,大家在同一起跑线上,在一个公开、公平的环境下参与竞争,都有“领跑”和制定标准的机会。更重要的是,互联网的普遍使用使更多的开发人员能加入其中,“涓涓细流可以汇成大海”。

水利信息化市场巨大,经费有限,采用Linux系统可以节省项目建设资金;Linux将最终成为主流操作系统之一,谁先开发应用,谁就可以占领水利行业的应用市场。

早在一年前就有IT媒体分析,全国PC如果全部采用Linux产品而不是Windows以及微软的Office,一年将因此而节省近200亿美元的软件进口费用,即便是20%选用Linux产品,也可以节省40亿美元。这还仅仅是对PC而言,如果算上网络操作系统,其节省资金的数目可想而知。水利信息化建设每年在操作系统和Office应用软件方面的投入,真要细算下来,估计也要以亿元人民币计算。

水利信息化建设的目标之一,必须形成国家控制下的全国各大江河流域以及各地区水系能够满足各类应用,便于调度管理的计算机网络系统,这是十分复杂的系统工程。目前各流域或各省、市、地区级的规划以及实施中的具体项目,实际上都是部级控制网络的组成部份或基础信息点源。全国成千上万座水库大坝和灌溉工程,数十万公里堤防工程,成百上千座重点城市防洪工程,还有庞大的跨流域调水工程、供水工程、生态用水工程等等,哪一项都需要建设信息采集、传输、接收、分析整理、决策支持、调度管理等一系列充分利用信息技术组成的信息化系统。其中要求可靠性高、稳定性好、具有开放性和扩展性的网络操作系统,可以说只有Linux才能胜任。不相信不认识不考虑不研究不应用这一前景看好的可靠技术,简直就是不可思议!

5工程地质自由软件增长迅速交流自由

我们早在1995年武汉“全国第二次水利水水电工程地质计算机应用技术交流会”上就首次提出了“工程地质自由软件交流”的倡议,并立即在会议期间进行了自由软件交流。协作网随后的发展进程中,每时每刻都在进行自由软件的宣传。工程地质计算机应用网站()上的自由软件交流栏目(软件园地),是本网站访问量最大的栏目。许多素不相识的朋友将他们的劳动结晶上载geocom网站供大家自由下载,协作网的铁杆骨干们早已认可自由软件的理念,带头上传自由软件。更为可贵的是,一些非协作网的正式网员朋友们,也在为这个网站贡献他们的自由软件作品。协作网感谢这些朋友们。

Linux范文篇10

关键词:自由软件

赞自由软件2,读作:赞自由软件的平方。赞自由软件前三集的题目顺理成章,先是“赞”,后“再赞”,继而有“还赞”,这第四集的题目就不好取了,叫“四赞”或“赞”的第四集,都太俗气,来它个“平方”,既有“四”的含义,又不落俗套地将阿拉伯数码的“2”这一颇具“双”、“重”、“偶”的吉详意思表示出来了,并且符合笔者神吹调侃喜异善奇的写作风格,自然是要自恋一番的了。但话又说回来,这种风格的文章也只有在我们自己倾注了许多心血花了大量时间费了多少精力而编辑的刊物上才可以与读者见面,若投去他刊,也许早就被那些正规而古板的大编辑们卡死在摇篮里了!

言规正题。我们对自由软件的赞美到了写连续剧的程度,一是自由软件自身的优势所在,二是表明了笔者对软件未来的展望。赞美当然就有夸张的描述和浪漫的遐想,但也还是要讲出道理来的。再说,遐想、梦想、幻想甚至虚幻,在科学道路上永远是创新的原动力。遐想能出思路,梦想可以成真,科学需要幻想,现实也有虚幻。虚拟现实、虚拟世界、虚拟空间、虚拟硬盘、虚拟光驱……,业界很时髦的虚拟概念,就看我们的理解能力了。

关于自由软件的思想、自由软件的精神、自由软件与商业软件的本质区别、自由软件与知识产权的对立、我们如何利用自由软件来发展专业应用软件等等问题,我想仍然有一直探讨下去的必要。既然是探讨,也欢迎大家争论。

1自由软件Linux是网络操作系统的首选

1999年是政府上网年,2000年是企业'''');">企业上网年,2001年将是家庭上网年。

新世纪刚开头,企业信息化就奏出了时代强音。1月26日,由国家经贸委、信息产业部和科学技术部共同主持,在北京友谊宾馆召开了“企业信息化推进大会”。全国520家重点企业参与,强力推进企业信息化。“企业信息化工程”业已启动。

信息化的基础设施是计算机网络,网络的关键技术是网络操作系统。一般用户对网络操作系统并不很清楚,也不必搞清楚。可是对于网络管理员和网络决策者来说,他们必需关心网络建设的成本、安全性、可扩展性、先进性与可靠性等等,至少要知道目前的流行产品是什么,未来的潮流方向如何,否则随时都有被“奸商”蒙的危险。对于网络管理员,当然更关心的是网络的稳定性,三天两头宕机的系统,非把网管员整成精神病患者不可。那么可以同时满足决策者和网管员,又完全能够满足实际应用的网络操作系统有没有呢?当然有,那就是当今最“牛”的自由软件Linux。

Linux被称为软件自由女神,在业界媒体上具有很高的出现频率。我们只要任意翻开一本计算机类报刊杂志或刊载有计算机内容的报刊,都可以见到Linux的身影。可以说没有Linux露脸的业界媒体,那一定不能代表业界的声音和潮流。

1998年是Linux年,1999年Linux继续走红。称1999年为中文Linux年也决不为过。3-4月间,TurboLinux3.02、XteamLinux两种中文Linux发行版本相继亮相,掀开了中文Linux从无到有的新篇章;8月,TurboLinux4.0和红旗Linux简体中文版,预装TurboLinux4.0中文版的长城电脑开始出售;9-10月,TomLinux、COSIXLinux中文版问世;12月,TurboCluster集群服务器中文版本在中国上市;……;目前已经有七种以上的中文Linux版本在国内市场流行;红旗Linux被中国科学家们称为新时期的“两弹一星工程”。

1999年的中国计算机世界展览会,为Linux开辟了专区。9月7日在北京召开了Linux开发者大会。Linux在国内已经火起来了。

1999年11月15日,在拉斯维加斯,有全世界2000家厂商参展的Comdex`99大会上,Linux攻势强劲,出尽风头。众多著名Linux厂商不仅阵容强大,而且推出了基于Linux的图形、多媒体、办公套件、电子商务应用解决方案、集群服务器系统等等应用软件,使Linux应用软件不多的状况成为历史。会上Corel公司推出的CorelLinuxOS是通向台式机操作系统市场的第一步,声称将在2000年第二季度推出Linux的办公应用软件,还将推出针对Linux的图形应用软件:无缝地接合Windows及MacOS平台。Linux进军台式机操作系统和应用软件,无疑是向Windows系统的公开挑战。

Linux在全球风行,近两年来增长速度惊人。据权威机构IDC预测,未来五年内Linux的平均增长率将超过其它操作系统增长的总和,成为21世纪前途无量的操作系统。

据国内建网单位介绍,选择Linux操作系统的网络,总体工程造价降低30%,系统运行速度提高一倍。Linux不仅让我们有了Windows之外的选择,也让我们看到了自由软件最美好的一面,又一次赋予了中国软件业的新生。

Linux被国内业界人士看作是开发自主操作系统的一个千载难逢的机遇。从国家主权和国家安全的角度考虑,中国从来没有放弃过对自主操作系统的开发,多年来国家投入了大量资金,但仍然是个薄弱环节。完全采用别人的操作系统是危险的!何况中国每年还要为Windows操作系统支付几百个亿的版权费。国家有以Linux为契机开发自主操作系统的行动,业界对此呼声强烈,媒体宣传态度中肯,用户们也应该有首选Linux的自觉性。

2自由软件的自由与免费

随着Linux的成功,自由软件的内涵进一步深化,外延更加扩展。以前我们对自由软件的理解与今天媒体和业界对自由软件的深层次探讨相比较,似乎显得有些肤浅了。三年前我在《赞自由软件》一文中,将自由软件定义为有版权的自由软件和没有版权的自由软件,并且还进一步分解为开放源代码的自由软件与不开放源代码的自由软件。但最根本的出入在于我们一直将自由软件理解成免费软件,因为FreeSoftware一词中的Free的确有自由和免费的双重含义,将她译成中文时在字面意义上也是这样理解的,而且从实际意义上看同样如此。近来一再有人撰文予以纠正,声明“Free”不是免费而是自由,并举出GPL((GeneralPublicLicense,通用公共许可证))中的解释:“Free”是自由而不是价格。对此我们没有更多的说法,因为GPL中的解释无疑更具权威性。

根据GPL的定义,自由软件要开放源代码。而广大计算机用户机器中的大量常用工具类软件,基本上是都是封装后的可执行程序,并没有提供源代码,只能归于免费软件之列。

其实,对自由软件的理解有误区也好,存在争议也罢,对于一般用户而言都没有实质性的意义,特别是从我们一直推崇的自由软件精神以及自由软件在行业专业计算机应用中所发挥的作用的角度来说,基本上无关紧要。因为广大用户更关心的是软件的功能和实用性,大多数用户也就是知道会用即可,并不去关怀源代码问题。可以并且能够折腾源代码的用户,属于高级用户。那些程序员,电脑疯子和计算机狂,去追寻、修改、编写和提供源代码,当然就比高级用户还要高级了,他们的动机和志趣已经远远在我们概念中的一般用户的思维范围之外,本文暂时停止对他们内心世界的探求。

需要强调的是,我们仍然完全可以将那些任意拷贝自由使用免费共享的软件当成我们早已形成了概念的自由软件,管他提供还是不供源代码,均不必下功夫去理论。有用能用就行。

3开放源代码由来已久势不可挡

开放源代码并不是今天的新生事物,应该说从计算机诞生之日起就是如此。Linux仅仅是开放源代码的典型代表,而决不是源代码开放运动的全部。

众所周知,在当今的计算机技术中,软件被称为计算机的“灵魂”。而在20世纪40年代计算机刚刚出世时,软件的地位则远不如硬件风光,程序员大多是女性就足已证明。到了20世纪70年代,计算机产品已经相当丰富,厂商在提供硬件的同时也是要提供软件的。直到今天,单独去购买计算机类的配件产品,如modem、打印机、扫描仪等等,厂商都要提供相应的驱动程序和(或)应用软件。

1968年ARPANET(Internet的前身)建立时即开始了验证开放源代码的可行性。1973年TCP/IP协议的产生,成为Internet的基础。1976年,比尔.盖茨发表了他那份“臭名昭著”的版权宣言《致电脑爱好者的公开信》才改变了软件的游戏规则。尽管如此,开放源代码也从来没有停止过,请读者继续观注下例事实:

1979年加州大学伯克利分校建立了BSDUnix,被称为开放源代码的先驱;1983年自由软件基金会(GNU)计划成立,并建立了GPL开放源代码协议;1987年Perl语言(一种用户群比Java更多的编程语言)诞生;1993年FreeBSD1.0;……。

从1998年起,全球范围内的开放源代码运动更是一浪高过一浪,势不可挡。先是Oracle、Informix等众多知名厂商纷纷推出了支持Linux的产品,接着是Netscape公司公开Communicutor5.0源代码,紧随其后的是Sun公司宣布向开发人员公布Java2的源代码,Novell公司公开Netware部分源代码,Apple公司宣布公开部分MacOSX的源代码,康柏(中国)向中软公司开放64位Unix源代码。在Internet上有许多专门公开源代码的网站,为程序员们提供了丰富多采的编程源代码资源。

1999年初有人预测,操作系统市场将会逐渐消亡,随着Linux和FreeBSD的发展,操作系统必将走向免费,仅仅是时间而已。新世纪新千年刚一开头,预言即变成了现实。2000年1月27日,SunMicrosystems公司在京举行新闻会,正式经过3年研究开发并投入大量研发经费的Solaris8操作系统,免费向任何人提供,源代码公开。Solaris8是当今业界领先的Unix操作系统。

从以上开放源代码的历史和众多源代码开放软件的亮象可以看出,自由软件和开放源代码的确“博大精深,Linux只是沧海一粟。”

盖茨将自由拷贝视为盗版,虽然维护了开发商的利益,但却从此埋下了隐患:产业垄断出现,产品质量低下,缺乏应用服务,发展到今天这样的程度已经开始阻碍软件的社会化。垄断所造成的产业畸形成为软件业最致命的障碍。越来越多的人认识到只提供编译后的可执行程序的软件后患无穷,这时重新倡导自由拷贝和源代码开放就成为社会发展的必然。

软件的老传统和发展潮流都是自由拷贝,源代码公开,用户可以修改和完善应用程序,其特色之一是保证了程序员之间的合作与交流。Novell公司头目认为:“开放源代码导致了高质量的代码产生”。这正是对源代码开放浪潮的权威性技术注解。

其实,最需要源代码的并不仅是那些软件开发商。中国这样的发展中国家,信息化的核心技术—操作系统,老是受制于人真不是个味。在国内广大计算机用户中占统治地位的Windows95/98系统,会悄悄向控制者发送机器中的信息,造成用户资料泄密。国家重要部门用Windows操作系统是很危险的,特别是网络应用。鉴于此,国内业界把Linux作为开发自主操作系统的一个千载难逢的契机,更有其深层次的含义。中国的软件产业对公开源代码的贡献并不多,但又是最需要公开源代码的,这是事实,当然就更应该积极加入到世界性的开放源代码行列中去。

操作系统开放源代码,应用软件也有开放源代码的。不过,用户多的软件开放源代码才有意义,专用系统源代码开放了也没几个人去理它。中国的问题在于,计划经济时代产生的科技成果难以转化成生产力,不能迅速变成商品,大多被束之高阁,久而久之就成了过时技术,可见专利保护也是有缺陷的。对于那些过时专利,如果早点将技术公开,谁都可以用自己的实力去将这些技术转化成商品,国家从这些赚了钱的商品中收税,再从税收中提出一部分直接奖给发明者,有可能比走阳春白雪式的专利技术更有实际意义。

4Internet是公开源代码的最佳媒体和途径

传统的源代码传播途径是以纸介质或磁盘为媒体的,其传播速度和范围都十分有限,不能及时反馈和公开程序高手们修改与补充的代码,讨论的范围就更狭窄了。Internet地球村的概念和实际功能,充分缩短了交流的时间和空间,不论您在哪里,也仅是一“屏”之隔,一“点”之差,您要是真把自己融入到这个虚拟的社区中,编程中的难题不愁没人解答。Linux就是借助于Internet发展壮大的,可以说没有Internet就没有Linux。流行编程语言VB、VC、Java、Perl等等,在Internet上都有应用程序公开源代码的网站。还有许多网上编程爱好者俱乐部式的“群众”组织,在Internet上交流源代码,探讨编程技巧,例如著名的VB联盟。最近媒体宣传的国信易博网站(),被誉为软件人员的好去处。该网站以丰富的软件源代码库、全面的软件专业资料和信息以及方便、有效的软件支持工具,吸引着软件工程师和中小型企业'''');">企业。

“工程地质计算机应用”主页中的“软件交流”栏目,有本行业本专业的共享软件,还准备将自由软件上载本栏目,并将新开辟公开“源代码”和“源代码讨论与交流”栏目。在这些栏目建成之前,类似的内容完全可以上载现在的“经验交流”栏目。

源代码开放需要大家共同遵守自由软件的基本准则,共同维护,并积极提供源代码。既从网上获得资源,也要为她作出贡献,提供信息。开放源代码的协议有GPL、BSD、Mozilla等,这些都是国际通用准则。对于我们本行业本专业的源代码开放,也可以考虑搞一个符合国情、适应现行体制、着眼于未来和促进发展的“协议”,以此来推广、应用和保护本专业的应用软件,使之走上正轨,发挥作用。

专业应用软件开放源代码问题,本身就是一个完全公开自由探讨的课题,大家都可以在《网刊》或“主页”上发表高见,展开讨论。赞成的、反对的、探讨的、顾虑的、提问题的等等,我们没有任何条条和框框。真理越辩越明,问题越论越清。请大家都来参与。

5自由软件运动与自由软件思想初探

自由软件对IT业界的影响构成了自由软件运动,开放源代码运动,很有些轰轰烈烈。“运动”一词对于国人来说是刻骨铭心的。笔者在媒体上初见“自由软件运动”和“源代码开放运动”这些很具有中国特色的词组时,还以为是我们自己发明的呢,后来在Internet上转了一圈才明白洋人也搞“运动”,他们发明的英文词组为:FreeSoftwareMovement和OpenSourceMovement。

“自由软件运动”或“源代码开放运动”,其影响是全球性的,不好与我们国内的历次“运动”相比较。这种全球性的运动也有针对性,运动的对象是诸如微软之类的软件巨无霸和行业垄断商;运动的发起者是美国自由软件基金会的创始人RichardStallman和芬兰Linux的作者LinusTorvalds等自由软件精神领袖;运动的参与者是全世界的软件精英程序高手;运动的支持者是众多的软件和硬件厂商;运动的拥护者和受益者是所有计算机用户。

“自由软件”这一专用名词早已蜚声业界,自然无可争议。然而,自由软件的自由思想、发展前途和未来定位,却是业界争论不休的议题。自由软件的知识共享源码公开、免费使用自由传播、共同维护能者为师、不得垄断谋取私利等等基本思想和理念,可以说是人类思想的最高境界—共产主义思想在社会现阶段中的提前反映。现实社会中IT业界的共产主义思想来自于发达的资本主义社会,并不奇怪,因为历史上的共产主义思想本来就是一百多年以前生活在资本主义社会中的马克思创立的,随后的列宁、等伟大的革命导师杰出的思想家们发展了马克思主义,丰富了共产主义思想。

计算机的发明与应用,也可以说又产生了一批思想家,最为典型的当然要数自由软件思想的创立者RichardStallman。至于自由软件的倡导者们,算不得思想家,称为自由软件思想家追随者还是可以的。当然,如果对自由软件思想有创新和发展,也可以升级为“思想家助理”或“助理思想家”,直到成为真正的自由软件思想家。思想家实在太伟大了,早有名人指出:一种能够被人们认同的“思想”的创立远比一项科学技术的发明更为困难更为重要。因而在几千年人类社会发展过程中,对社会有一定影响被人们认可的思想家屈指可数,而杰出的科学家却不在少数。

自由软件强调的是“自由”,这是符合人性特点的。Linux赖以生存的思想是“自由”,得以发展并成为自由软件运动的动力也是人们对自由的渴望。人性是自由的,而人类的知识财富应该为更多的人服务。软件业的自由更是每一个业内人士的希望与梦想。人性的自由激发人们的灵感,不断攀登高峰。软件的自由让我们更好地汲取人类的精华,创造出更加美好的软件生存环境。

自由软件提倡的是“开放”,没有开放也就不成其为自由。人类社会几千年的文明史又是一部开放的历史,科学技术、文学艺术都是开放才得以进步和发展的。开放的反义是封闭,社会封闭没有出路,软件封闭将被业界遗弃。

自由软件推崇的是“交流”,与商品的交流存在根本性区别。一件物理产品被转手之后你就没有了;思想和软件是逻辑产品,可以无限次地转手和复制,原版永远是自己的。逻辑产品交流的意义远比任何物理产品的交流都更为重大,更为深远。

自由软件对业界的贡献无可争议,自由软件对人类社会进步与发展的最大贡献是她的自由思想、开放思想和交流思想。倡导自由,探索人性,是社会永恒的课题。

自由软件的思想和理念与知识产权版权意识是背道而驰的,因而引来了一些人的忧虑:自由软件的发展前途如何?自由软件的未来定位在何处?特别对于Linux这一很有前途的操作系统,她的命运更为令人担忧。首先,Linux会不会走Unix的老路?Unix早先也是公开源代码的,后来才走向了分裂,被商家利用,形成了今天的多种互不兼容的Unix商品版本,认为不存在这个问题的理由是Linux有GPL的保护,尽管有人会专空子利用Linux沿袭Unix的做法封装赚钱,但不会有市场,因为明摆着有免费开放的Linux,只有白痴才去花钱买封闭的Linux。其次,Linux没有以赢利为目的商家进行技术创新和版本升级,就会象发动机没有持续供给的油料一样,如何持续运转?认为不必为此担忧的理由是Linux从诞生到成长壮大这一实践结果已经足以证明了她顽强活跃的生命力。

笔者对自由软件的发展持乐观态度,除了以上不必担忧的理由之外,认为顺其自然是最明智的选择。在吃饭都成问题的年代我们担心资本主义复辟不是多余的吗?人类社会的发展实际上也要遵循不以人们意志为转移的客观规律,自由软件的产生与发展正是人类社会进步的象征,规律的反映,除非社会倒退,自由软件才会灭亡。

自由软件之神RichardStallman对自由软件的信念异常坚定,宣称:没有任何世俗的力量可以强加在人类与CPU之间,垄断人类通向CPU之路并将其转化为巨大的经济强权。软件不但开放源代码,而且鼓励用户之间互相拷贝,在用户与CPU之间铺设一条自由之路。

当然,自由软件也并不是没有问题。尽管有GPL的保护,但GPL不是法律,仅仅是业界的一种道德准则。根据18世纪英国哲学家和历史学家休谟先生的“无赖原则”,结合人性的弱点与商战的残酷,道德往往就显得无能为力。业界需要充分考虑到一些惟利是图的“奸商”利用职业道德准则“无能”的弱点,去钻业界的空子,将自由软件引向歧途。因此,加大自由软件的宣传力度,让广大用户认识和了解自由软件,更好地利用自由软件为全人类服务,是业界不可推卸的义务和责任。

立志于软件开发事业的人士请注意,单纯为了赚钱绝对做不出好软件。软件是人生乐趣,梦想化身,软件业不以钱多钱少论英雄。最经典的例子是两个斯坦福大学的博士生,因为好玩做了一个名为YAHOO的搜索网站,结果在全世界获得了巨大成功,当然才赚了很多钱。这种例子还有许多。先做出好软件,把赚钱放在第二位,一定能够成功。如果反过来,多数是失败的。开放源代码的程序员们并不是非常在意他们所获得的报酬,更为关心的是尽早修补程序中的bug和赶紧处理故障,这种协作方式正是微软感到害怕的。

理想与现实之间,无奈的是现实,追求的是理想。在远大抱负和崇高理想的教育下,但愿中国软件业界也出现几个象RichardStallman和LinusTorvalds这样的理想主义者。

扯得太远了,大家快干活吧!

主要资料来源及参考文献:

(1)月生,Linux春潮涌动,《软件报》1999年8月28日;

(2)阿清,OS:世纪情怀—对自主操作系统的议论与思考,《软件世界》1999年12期;

(3)蔡君,Linux的冲击和操作系统的革命,《互联网世界》1999年第6期;

(4)薛启康,使用Linux的十大理由,《中国计算机报》1999年10月11日;

(5)马红静,OPENSOURCECODE开放没商量,《每周电脑报》1999年4月26日;

(6)李维,自由软件的版权问题浅析,《中国计算机报》1999年10月11日;

(7)曹开彬,Perl渐成气候,《中国计算机报》1999年9月6日;

(8)中国企业信息化特刊,《每周电脑报》2000年1月31日;

(9)Linux最新进展,《中国计算机报》1999年11月29日软件版;

(10)高丽华,想起了“无赖原则”,《计算机世界》报,1998年11月30日;

(11)韦港,赞自由软件,《工程地质计算机应用》1996年第3期;