当前位置:首页 » 操作系统 » minix源码

minix源码

发布时间: 2023-06-09 21:43:46

⑴ UNIX 1.0 源代码谁有啊,不胜感激,有的话发[email protected]

你好,嵌入式linux系统的设计与应用

摘要:随着嵌入式Linux系统的迅速发展,嵌入式Linux已发展成为嵌入式操作系统的一个重要分支。本文介绍了嵌入式Linux的设计和几种流行的嵌入式Linux系统。

关键词:嵌入式Linux

一、引言

嵌入式系统(Embedded Systems)是根据应用的要求,将操作系统和功能软件集成于计算机硬件系统之中,从而实现软件与硬件一体化的计算机系统。嵌入式系统出现于60年代晚期,它最初被用于控制机电电话交换机,如今已被广泛的应用于工业制造、过程控制、通讯、仪器、仪表、汽车、船舶、航空、航天、军事装备、消费类产品等众多领域。嵌入式系统在数量上远远超过了各种通用计算机系统:计算机系统核心CPU,每年在全球范围内的产量大概在二十亿颗左右,其中超过80%应用于各类专用性很强的嵌入式系统。

一般的说,凡是带有微处理器的专用软硬件系统都可以称为嵌入式系统。和通用的计算平台相比,嵌入式系统往往具有功能单一、体积小、功耗低、可靠性高、剪裁性好、软硬件集成度高、计算能力相对较低等特点。多年来,嵌入式设备中没有操作系统,其主要原因有二:首先,诸如洗衣机、微波炉、电冰箱这样的设备仅仅需要一道简单的控制程序,以管理数量有限的按钮和指示灯,没有使用操作系统的必要;其次,它往往只具有有限的硬件资源,不足以支持一个操作系统。

然而,随着硬件的发展,嵌入式系统变得越来越复杂,最初的控制程序中逐步的加入了许多功能,而这些功能中有很多可以由操作系统提供。于是,在70年代末期出现了嵌入式操作系统(Embedded Operating Systems),它的出现大大简化了应用程序设计,并可以有效的保障软件质量和缩短开发周期。简单的ES一般并不使用操作系统,只包含一些控制流程,但是随着嵌入式操作系统在复杂性上的增长,简单的流程控制就不能满足系统的要求,这是就必须考虑使用操作系统做系统软件。因此,嵌入式操作系统就应运而生。

随着EOS的广泛应用,业界已推出一些应用比较成功的EOS产品。归纳起来EOS应该具有以下几个特点:小巧、实时性、可装卸、固化代码、弱交互性、强稳定性和统一的接口。目前使用最多的EOS产品包括有:Vxwork、QNX、PalmOS、WindowsCE、pSOS、Hopen OS(国内凯思集团公司自主研制开发)等。其中,Vxwork使用最为广泛、市场占有率最高,其突出特点是实时性强(采用优先级抢占和轮转调度等机制),除此之外,其可靠性和可剪裁性也相当不错。QNX是一种伸缩性极佳的系统,其核心加上实时POSIX环境和一个完整的窗口系统还不到一兆。相比之下,Microsoft WinCE的核心体积庞大,实时性能也差强人意,但由于Windows系列友好的用户界面和为程序员所熟悉的API,并捆绑IE、Office等应用程序,正逐渐获得更大的市场份额。而与这些商业化的操作系统相比,Linux已经越来越受到人们的注意。

二、嵌入式Linux概述

Linux是一个成熟而稳定的网络操作系统。将Linux植入嵌入式设备具有众多的优点。首先,Linux的源代码是开放的,任何人都可以获取并修改,用之开发自己的产品。其次,Lirmx是可以定制的,其系统内核最小只有约134kB。一个带有中文系统和图形用户界面的核心程序也可以做到不足1MB,并且同样稳定。另外,它和多数Unix系统兼容,应用程序的开发和移植相当容易。同时,由于具有良好的可移植性,人们已成功使Linux运行于数百种硬件平台之上。

然而,Linux并非专门为实时性应用而设计,因此如果想在对实时性要求较高的嵌入式系统中运行Linux,就必须为之添加实时软件模块。这些模块运行的内核空间正是操作系统实现进程调度、中断处理和程序执行的部分,因此错误的代码可能会破坏操作系统,进而影响整个系统的可靠性和稳定性。Linux的众多优点还是使它在嵌入式领域获得了广泛的应用,并出现了数量可观的嵌入式Linux系统。其中有代表性的包括:uClinux、ETLinux、ThinLinux、LOAF等。ETLinux通常用于在小型工业计算机,尤其是PC/104模块。ThinLinux面向专用的照相机服务器、X-10控制器、MP3播放器和其它类似的嵌入式应用。LOAF是Linux On A Floppy的缩略语,它运行在386平台上。

三、Linux作为嵌入式操作系统的优势

Linux作为嵌入式操作系统的优势主要有以下几点:

1、 可应用于多种硬件平台。Linux已经被移植到多种硬件平台,这对于经费,时间受限制的研究与开发项目是很有吸引力的。原型可以在标准平台上开发后移植到具体的硬件上,加快了软件与硬件的开发过程。Linux采用一个统一的框架对硬件进行管理,从一个硬件平台到另一个硬件平台的改动与上层应用无关。Linux可以随意地配置,不需要任何的许可证或商家的合作关系,源代码可以免费得到。这使得采用Linux作为操作系统不会遇到任何关于版权的纠纷。毫无疑问,这会节省大量的开发费用。本身内置网络支持,而目前嵌入式系统对网络支持要求越来越高。Linux的高度模块化使添加部件非常容易。

2、 Linux是一个和Unix相似、以内核为基础的、具有完全的内存访问控制,支持大量硬件(包括X86,Alpha、ARM和Motorola等现有的大部分芯片)等特性的一种通用操作系统。其程序源码全部公开,任何人可以修改并在GUN通用公共许可证(GNU General Public License)下发行。这样,开发人员可以对操作系统进行定制,适应其特殊需要。

3、 Linux带有Unix用户熟悉的完善的开发工具,几乎所有的Unix系统的应用软件都已移植到了Linux上。Linux还提供了强大的网络功能,有多种可选择窗口管理器(X Windows)。其强大的语言编译器GCC,C++等也可以很容易得到,不但成熟完善,而且使用方便。

四、嵌入式Linux的建立

完整的嵌入式Linux解决方案应包括嵌入式Linux操作系统内核、运行环境、图形化界面和应用软件等。由于嵌入式设备的特殊要求,嵌入式Linux解决方案中的内核、环境、GUI等都与标准Linux有很大不同,其主要挑战是如何在狭小的FLASH、ROM和内存中实现高质量的任务实时调度、图形化显示、网络通信等功能。

1、 精简内核

Linux内核有自己的结构体系,其中进程管理、内存管理和文件系统是其最基本的3个子系统。图1简单表示了它的框架。用户进程可直接通过系统调用或者函数库来访问内核资源。正因为Linux内核具有这样的结构,因此修改内核时必须注意各个子系统之间的协调。

嵌入式Linux内核一般由标准Linux内核裁剪而来。用户可根据需求配置系统,剔除不需的服务功能、文件系统和设备驱动。经过裁剪、压缩后的系统内核一般只有300k左右,十分适合嵌入式设备。同标准Linux不同的是嵌入式Linux必须要实现从FLASH或ROM的启动。标准Linux启动代码实现了系统初始化和从软盘、硬盘O盘区引导内核。嵌入式Linux一般保存在FLASH或ROM中,标准LILO无法引导。在支持直接从FLASH设备引导的系统中,如华恒公司的uClinux,引导程序主要完成对硬件系统的初始化工作和操作系统的解压、移位工作。在不支持直接从FLASH引导的系统中,FLASH设备只能作为非引导磁盘使用。此时,可采用先从硬盘或软盘加载一个小操作系统,如嵌入式DOS,然后再执行"Loadlin"加载程序从FLASH引导嵌入式Linux。

对标准Linux的修改主要是虚拟内存和调度程序部分的改动。因为标准Linux系统使用虚拟内存管理的目的是为了能同时运行多个进程,但是这样每个待运行的进程所能分配的CPU时间片就受限制,资源的使用效率就低。这样对于实时性要求较高的嵌入式系统来说,实时任务往往要求CPU具有很高的突发处理能力,即在有些时候需要极高的处理效率,因此需要屏蔽内核的虚拟内存管理机制。对于无硬盘设备的嵌入式系统,不必采用虚存管理。强实时需求的嵌入式应用可以通过修改任务调度模块实现,主要是在内核和设备驱动程序中加入了许多切换点。在该点处,系统检测是否存在未处理的紧急中断,有则剥夺内核的运行,及时处理中断。实现实时性服务的一个较好的方法是在标准的Linux内核上增加一个实时内核,标准Linux内核作为一个任务运行于实时内核上,强实时性任务也直接运行在实时内核上,如RT-Linux等。

文件系统是嵌入式Linux操作系统必不可少的。但标准Linux支持大量的文件系统,因此除了满足系统的正常运行需要而保留一种外,其它的全部可以删除,利用原有的设置选项可以移除。一般嵌入式设备文件系统主要使用RamDisk技术和网络文件系统技术。RamDisk可驻留于Flash,运行时加载到内存中。

2、 精简运行环境

Linux通常的运行环境指用户运行任何应用的基础设施,主要包括函数库和基本命令集等。标准Linux系统同时向用户提供了静态和动态函数库。静态函数库在生成应用时直接链接到用户应用中。动态库在应用运行时才链接。由于嵌入式系统应用一般都是在开发平台上预先生成的,因此嵌入式系统只需向应用提供动态函数库。Linux应用运行所需的函数库主要有C库、数学库、线程库、加密库、网络通信库等。其中最基本的是C语言的运行库glib。这个库主要完成基本的输入输出,内存访问,文件处理。一个标准的glib库大约要1200kB存储空间,考虑到嵌入式Linux内核往往很小,这种运行库实在太大,我们做了一些精简的工作,方法有两种:(1)、使用静态连接的方法,完全不使用运行库动态连接;(2)、对这个库的函数进行精简。

在一个桌面系统上,使用动态连接可以带来许多好处。使用动态连接库,可以让应用程序跟函数库的更新、升级分离,便于维护,可以让同时运行的多个程序共享一段代码。但是,在嵌入式系统中,很少有多个程序并行的可能,程序的维护,尤其是库函数的维护更新是不常见的。这时,使用静态连接的优势就极为明显。因为静态连接可以只将库中用到的部分连接进程序。在应用程序较少(小于5)的情况下,静态连接可以达到较好的结果。为了便于将来扩充的需要,我们也采用第二种方法,针对我们的需要,对库函数的内容进行精简,只保留一些基本功能,还有一种方法是采用其它的C语言运行库。但是这些库对兼容性影响很大。

基本命令集同样是运行用户应用的基础,主要包括初始化进程init,终端获取getty、Shell和基本命令等。嵌入式系统的启动过程可能与标准Linux不同,例如跳过登录过程直接启动GUI等。这就要求修改init,getty等。标准Linux命令集同样由于体积问题无法直接应用于嵌入式环境。目前,小命令集的解决方法主要有集成方法和汇编方法两种。集成方法采用集成公共部分减少命令集整体体积,用C实现,有较好的平台移植性;汇编方法则采用汇编编程减少每个命令的体积.这样可使体积很小但其平台移植性较差。

3、 嵌入式Linux下的GUI

GUI在嵌入式系统或者实时系统中的地位越来越重要,比如PDA、DVD播放机、WAP手机等,都需要一个完整.漂亮的图形用户界面。这些系统对GUI的基本要求包括:(1)、轻型、占用资源少;(2)、高性能;(3)、高可靠性;(4)、可配置。这些也成为评价嵌入式系统的重要指标。目前,嵌入式Linux上的GUI主要有winCE、Micro Window、紧缩的X Window、MiniGUI(国内做得较好的自由软件之一)。标准Linux的Xfree86由于体积庞大,运行环境要求高,无法运行于嵌入式环境。嵌入式GUI主要通过削减功能,降低性能来实现体积小和占用资源少。目前嵌入式Linux上的GUI环境主要有两类:X类和win32类。X类GUI分为服务方和客户方两方。服务器方提供鼠标、键盘处理和显示功能,客户方是用户应用,服务方和客户方通过socket接口和X协议通信。采用该方式十分有利于远程网络图形化服务,客户方和服务方可通过网络实现X协议和图形显示。典型的X类GUI有Micro Window、紧缩的X Window等。win32类的GUI不存在客户方和服务方,每个任务都自成一体,任何任务间的切换、事件分发由专门的管理任务负责。如wiCE、MiniGUI就是类似于win32类的GUI。

五、当前流行的几种嵌入式Linux系统

除了智能数字终端领域以外,Linux在移动计算平台、智能工业控制、金融业终端系统,甚至军事领域都有着广泛的应用前景。这些Linux被统称为"嵌入式Linux"。

1、RT-Linux

这是由美国墨西哥理工学院开发的嵌入式Linux操作系统。到目前为止,RT-Linux已经成功地应用于航天飞机的空间数据采集、科学仪器测控和电影特技图像处理等广泛领域。RT-Linux开发者并没有针对实时操作系统的特性而重写Linux的内核,因为这样做的工作量非常大,而且要保证兼容性也非常困难。为此,RT-Linux提出了精巧的内核,并把标准的Linux核心作为实时核心的一个进程,同用户的实时进程一起调度。这样对Linux内核的改动非常小,并且充分利用了Linux下现有的丰富的软件资源。

2、uClinux

uCLinux是Lineo公司的主打产品,同时也是开放源码的嵌入式Linux的典范之作。uCLinux主要是针对目标处理器没有存储管理单元MMU(Memory Management Unit) 的嵌入式系统而设计的。它已经被成功地移植到了很多平台上。由于没有MMU,其多任务的实现需要一定技巧。uCLinux是一种优秀的嵌入式Linux版本,是micro-Conrol-Linux的缩写。它秉承了标准Linux的优良特性,经过各方面的小型化改造,形成了一个高度优化的、代码紧凑的嵌入式Linux。虽然它的体积很小,却仍然保留了Linux的大多数的优点:稳定、良好的移植性、优秀的网络功能、对各种文件系统完备的支持和标准丰富的API。它专为嵌入式系统做了许多小型化的工作,目前已支持多款CPU。其编译后目标文件可控制在几百KB数量级,并已经被成功地移植到很多平台上。

3、Embedix

Embedix是由嵌入式Linux行业主要厂商之一Luneo推出的,是根据嵌入式应用系统的特点重新设计的Linux发行版本。Embedix提供了超过25种的Linux系统服务,包括Web服务器等。系统需要最小8MB内存,3MB ROM或快速闪存。Embedix基于Linux 2.2内核,并已经成功地移植到了Intel x86和PowerPC处理器系列上。像其它的Linux版本一样,Embedix可以免费获得。Luneo还发布了另一个重要的软件产品,它可以让在Windows CE上运行的程序能够在Embedix上运行。Luneo还将计划推出Embedix的开发调试工具包、基于图形界面的浏览器等。可以说,Embedix是一种完整的嵌入式Linux解决方案。

4、Xlinux

XLinux是由美国网虎公司推出,主要开发者是陈盈豪。他在加盟网虎几个月后便开发出了基于XLinux的、号称是世界上最小的嵌入式Linux系统,内核只有143KB,而且还在不断减小。XLinux核心采用了"超字符集"专利技术,让Linux核心不仅可能与标准字符集相容,还含盖了1 2个国家和地区的字符集。因此,XLinux在推广Linux的国际应用方面有独特的优势。

5、PoketLinux

由Agenda公司采用、作为其新产品"VR3PDA"的嵌入式Linux操作系统。它可以提供跨操作系统构造统一的、标准化的和开放的信息通信基础结构,在此结构上实现端到端方案的完整平台。PoketLinux资源框架开放,使普通的软件结构可以为所有用户提供一致的服务。PoketLinux平台使用户的视线从设备、平台和网络上移开,由此引发了信息技术新时代的产生。在PoketLinux中,称之为用户化信息交换(CIE),也就是提供和访问为每个用户需求而定制的"主题"信息的能力,而不管正在使用的设备是什么。

6、MidoriLinux

由Transmeta公司推出的MidoriLinux操作系统代码开放,在GUN普通公共许可(GPL)下发布,可以在http://midori.transmeta.com上立即获得。该公司有个名为"MidoriLinux计划"。"MidoriLinux"这个名字来源于日本的"绿色"---Midori,用来反映其Linux操作系统的环保外观。

7、红旗嵌入式Linux

由北京中科院红旗软件公司推出的嵌入式Linux是国内做得较好的一款嵌入式操作系统。目前,中科院计算所自行开发的开放源码的嵌入式操作系统---Easy Embedded OS(EEOS)也已经开始进入实用阶段了。该款嵌入式操作系统重点支持p-Java。系统目标一方面是小型化,另一方面能重用Linux的驱动和其它模块。由于有中科院计算所的强大科研力量做后盾,EEOS有望发展成为功能完善、稳定、可靠的国产嵌入式操作系统平台。

六、结束语

由于Linux是一个内核源代码开放、具备一整套工具链、有强大的网络支持及成本低廉的操作系统,因此嵌入式Linux自诞生起就秉承了这众多独特优势,这使它正在并越来越多地受到人们的关注。据Even Data数据显示,期望使用嵌入式Linux的用户从2001年的11%增到2002年27%,而同期Vxwork只是从16%到18%,Win CE从9%到14%。另外,在嵌入式Linux的各种应用市场中,通信(语音和数据)名列第一,2000年的销售额是1300万美元,而2005年预计将达到1.26亿美元,可以预见,嵌入式Linux将在未来的通信用嵌入式操作系统中占据强有力的地位

Linux是目前十分火爆的操作系统。它是由芬兰赫尔辛基大学的一个大学生Linus B. Torvolds在1991年首次编写的。标志性图标是一个可爱的小企鹅。

Linux是一种类Unix系统,Linus当时编写它的目的是为了替代一种名叫Minix的操作系统。Minix是由一个名叫Andrew Tannebaum的计算机教授编写的,当时由于Unix是一个商业软件,其源代码是不能拿来进行教学的,Andrew教授就自己编写了一个系统用于教学。最

初的Minix用一张软盘就能装下,麻雀虽小、五脏俱全,Minix具有一般操作系统的特征,它同时兼容Unix系统。

Linux是一个免费的操作系统,用户可以免费获得其源代码,并能够随意修改。它是在共用许可证GPL(General Public License)保护下的自由软件,也有好几种版本,如Red Hat Linux、Slackware,以及国内的Xteam Linux等。

Linux具有许多Unix系统的功能和特点,能够兼容Unix,但无需支付Unix高额的费用。比如一个Unix程序员在单位可以在Unix系统上进行工作,回到家里在Linux系统上也能完成同样的工作,而不必重新购买Unix。要知道Unix的价格比常见的Windows要高出若干倍,和Linux的低廉更是相距甚远。

Linux的应用也十分广泛。Sony最新的PS2游戏机就采用了Linux作为系统软件,使PS2摇身一变,成为了一台Linux工作站。着名的电影《泰坦尼克号》的数字技术合成工作就是利用100多台Linux服务器来完成的。

2001年8月17日,Linux发布了最新的Linux 2.4.9版,它也已经十岁了。

Linux的优点

Linux的流行是因为它具有许多诱人之处。

1、完全免费

Linux是一款免费的操作系统,用户可以通过网络或其他途径免费获得,并可以任意修改其源代码。这是其他的操作系统所做不到的。正是由于这一点,来自全世界的无数程序员参与了Linux的修改、编写工作,程序员可以根据自己的兴趣和灵感对其进行改变。这让Linux吸收了无数程序员的精华,不断壮大。

2、完全兼容POSIX 1.0标准

这使得可以在Linux下通过相应的模拟器运行常见的DOS、Windows的程序。这为用户从Windows转到Linux奠定了基础。许多用户在考虑使用Linux时,就想到以前在Windows下常见的程序是否能正常运行,这一点就消除了他们的疑虑。

3、多用户、多任务

Linux支持多用户,各个用户对于自己的文件设备有自己特殊的权利,保证了各用户之间互不影响。多任务则是现在电脑最主要的一个特点,Linux可以使多个程序同时并独立地运行。

4、良好的界面

Linux同时具有字符界面和图形界面。在字符界面用户可以通过键盘输入相应的指令来进行操作。它同时也提供了类似Windows图形界面的X-Windows系统,用户可以使用鼠标对其进行操作。在X-Windows环境中就和在Windows中相似,可以说是一个Linux版的Windows。

5、丰富的网络功能

互联网是在Unix的基础上繁荣起来的,Linux的网络功能当然不会逊色。它的网络功能和其内核紧密相连,在这方面Linux要优于其他操作系统。在Linux中,用户可以轻松实现网页浏览、文件传输、远程登陆等网络工作。并且可以作为服务器提供WWW、FTP、E-Mail等服务。

6、可靠的安全、稳定性能

Linux采取了许多安全技术措施,其中有对读、写进行权限控制、审计跟踪、核心授权等技术,这些都为安全提供了保障。Linux由于需要应用到网络服务器,这对稳定性也有比较高的要求,实际上Linux在这方面也十分出色。

7、支持多种平台

Linux可以运行在多种硬件平台上,如具有x86、680x0、SPARC、Alpha等处理器的平台。此外Linux还是一种嵌入式操作系统,可以运行在掌上电脑、机顶盒或游戏机上。2001年1月份发布的Linux 2.4版内核已经能够完全支持Intel 64位芯片架构。同时Linux也支持多处理器技术。多个处理器同时工作,使系统性能大大提高。

Linux的不足

由于在现在的个人电脑操作系统行业中,微软的Windows系统仍然占有大部分的份额,绝大多数的软件公司都支持Windows。这使得Windows上的应用软件应有尽有,而其他的操作系统就要少一些。许多用户在换操作系统的时候都会考虑以前的软件能否继续使用,换了操作系统后是否会不方便。虽然Linux具有DOS、Windows模拟器,可以运行一些Windows程序,但Windows系统极其复杂,模拟器所模拟的运行环境不可能完全与真实的Windows环境一模一样,这就使得一些软件无法正常运行。

许多硬件设备面对Linux的驱动程序也不足,不少硬件厂商是在推出Windows版本的驱动程序后才编写Linux版的。但一些大硬件厂商在这方面做得还不错,他们的Linux版驱动程序一般都推出得比较及时。

软件支持的不足是Linux最大的缺憾,但随着Linux的发展,越来越多的软件厂商会支持Linux,它应用的范围也越来越广。这只小企鹅的前景是十分光明的。

回答者: 280258962 - 助理 三级 12-15 09:44

Linux系统介绍

--------------------------------------------------------------------------------

简单地说,Linux是一套免费使用和自由传播的类Unix**作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的**作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络**作系统。它主要用于基于Intel x86系列CPU的计算机上。这个系统是由全世界各地的成千上万的程序员设计和实现的。其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的Unix兼容产品 !

Linux以它的高效性和灵活性着称。Linux模块化的设计结构,使得它既能在价格昂贵的工作站上运行,也能够在廉价的PC机上实现全部的Unix特性,具有多任务、多用户的能力。Linux是在GNU公共许可权限下免费获得的,是一个符合POSIX标准的**作系统。Linux**作系统软件包不仅包括完整的Linux**作系统,而且还包括了文本编辑器、高级语言编译器等应用软件。它还包括带有多个窗口管理器的X-Windows图形用户界面,如同我们使用Windows NT一样,允许我们使用窗口、图标和菜单对系统进行**作。

Linux具有Unix的优点:稳定、可靠、安全,有强大的网络功能。在相关软件的支持下,可实现WWW、FTP、DNS、DHCP、E-mail等服务,还可作为路由器使用,利用ipchains/iptables可构建NAT及功能全面的防火墙。

Linux有很多发行版本,较流行的有:RedHat Linux、Debian Linux、RedFlag Linux等。

RedHat Linux,支持Intel,Alpha和SPARC平台,具有丰富的软件包。可以说,RedHat Linux是Linux世界中非常容易使用的版本,它**作简单,配置快捷,独有的RPM模块功能使得软件的安装非常方便。

Debian Linux基于标准LINUX内核,包含了数百软件包,如GNU软件,TeX,X Windows系统等。每一个软件包均为独立的模块单元,不依赖于任何特定的系统版本,每个人都能创建自己的软件包。Debian Linux是一套非商业化的由众多志愿者共同努力而成的LINUX.

RedFlag Linux(红旗Linux)是Linux的一个发展产品,由中科红旗软件技术有限公司开发研制的以 Intel和Alpha芯片为CPU构成的服务器平台上第一个国产的**作系统版本。它标志着我国在发展国产**作系统的道路上迈出了坚实的一步。 相对于Windows**作系统及Unix**作系统来讲,Linux凭借其开放性及低成本,已 经在服务器**作系统市场获得了巨大发展。但由于其**作界面复杂,一时难以让普通 PC用户接受。GNOME是GNU组织中专门开发桌面环境的项目。GNOME作为开放源代码的 软件开发成果,基于兼容性良好的CORBA技术,与Linux系统相辅相成,带给用户更加 友好的界面,更多的使用、检查、修改及分发自由。与同是开放源代码图形用户界面 的KDE相比较,GNOME表现得更能减轻其他公司创建Linux桌面应用的劳动。GNOME已经 成为业内人士普遍看好的一个趋势性软件。继服务器版1.0、桌面版2.0、嵌入式Linux之后,红旗最近又推出了新产品--红 旗服务器2.0和红旗网络商务通等多种发行版本和相 21765希望对你有帮助!

⑵ 怎样看minix3的源代码

Netbook上网本在08年火了,在09年这火烧得更大,就连不少国内知名板卡厂商也迫不及待的要杀入这个市场,而先冠电子就是其中一个。先冠是一个以代工为主的板卡厂商,国内外许多品牌的部分产品都是出自其手。此番,先冠毅然推出了旗下第一个笔记本品牌MINIX,主打笔记本电脑及上网本领域,而MINIX的第一款产品MINIX M1000系列目前已经率先上市,近日进入了我们评测室。

据悉,MINIX M1000系列只是其全面进军笔记本领域的一个开源基石,很快MINIX的一系列10-15英寸笔记本新品将大规模上市,MINIX能否在中国乃至国际舞台上夺取一片江山,我们拭目以待。回到产品本身,究竟一个板卡厂商的笔记本电脑会是怎么样的呢?今天我们先来全面了解一下这款MINIX M1000上网本。


一、MINIX M1000可以做什么?

首批上市的MINIX M1000系列包括M1000 10和M1000 11两款,前者售价1999元,相比后者只缺少了无线网卡和摄像头。今天进入评测室的是M1000 11白色版本,它拥有Atom N270处理器、1GB内存和160GB硬盘的主流配置,并标配130万像素摄像头和802.11b/g无线网卡,公开报价2999元,看来诱惑力不小喔。不过该机只标配了三芯电池而且没有六芯可选,续航能力有待考验。

MINIX M1000的基本硬件配置表
处理器 Intel Atom N270 @1.6GHz
缓存 512KB L2 Cache
前端总线 533MHz FSB
主芯片组 Intel Calistoga i945GSE+ICH7M
内存 1GB DDR2内存,667MHz
显卡 Intel GMA950
显存 共享显存128M(1GB内存)
显示器 10.2"宽屏非镜面LCD液晶显示器
最高分辨率1024×576
声卡 Realtek ALC662 HD Audio
摄像头 130万像素摄像头
硬盘 日立160GB(5400转 SATA-II接口 8MB缓存)
型号:Hitachi HTS543216L9A300
光驱 无
无线网络 Atheros AR5006X Wireless Network
蓝牙 无
网卡 千兆网卡
Modem 无
电池 三芯11.1V 2400Wh锂电池
重量 整机带电池重量:1.095 kg,旅行重量:1.5415 kg
适配器重量:446g
2月份价格 2999元
预装系统 Free DOS
售后服务 整机一年有限保修,电池半年保修

很多网友都十分关心,像MINIX M1000这样的上网本公版配置都可以做些什么东西呢?事实上经我们的测试经验来看,采用Atom N270处理器及其平台的上网本可以进行许多操作,包括浏览网页、移动博客、网络视频、影音播放、QQ聊天、网络游戏、收发邮件、WORD/PPT/EXCEL办公、PDF及图片查看、甚至是炒股等,这些应用都很基本但也是绝大多数用户最常用的一些操作。

二、MINIX M1000的做工设计与接口

相信不少网友已经看出来,MINIX M1000外观酷似微星Wind U100,事实上该模具是由MINIX自主研发设计和生产的。据透露,MINIX的设计团队由日、韩、德三国共12名国际设计工程师组建而成,他们花了将近一年的时间来精心打造MINIX,力求把其独有的“简约时尚 高雅如你”的品牌理念传递下去,展现亚欧文化碰撞结晶“自由随性”的精神内涵。

MINIX M1000拥有银河黑和璀璨白两个版本,“小黑”和“小白”适合不同个性需求的用户。其A面顶盖采用了高端主流的钢琴铐漆镜面镀漾膜技术,触感不错,整体纯素淡雅却不失沉稳庄重。平滑的圆角设计也令操作更加舒适。

采用美观而人性化的下沉式转轴设计,可开启角度较大,满足用户的多类型应用。不过其B面屏幕边框还是稍显偏大了点,同时白色键盘也较容易沾染污垢,不过爱美的用户不用着急,MINIX随机包装内赠送了一块键盘膜,贴心喔。

130万像素摄像头的实际效果,很不理想

接口方面,MINIX M1000提供了3个USB接口、一个网卡接口、一个VGA接口、音频输入/输出接口、以及MMC/MS/SD读卡器,这也是上网本的实用型主流设计了,让人满意。

三、MINIX M1000的操作体验及影音&散热

相当不错的键盘设计

与微星等绝大多数国际一线品牌一样,MINIX M1000的键盘也采用了超窄边框设计,92%尺寸键盘提供了更舒适的操作体验,键深、键程、键距和键盘的反弹力度都恰到好处,即使是男士们的手指在 MINIX M1000的键盘上也能运指如飞。唯一不太爽的是“<”和“>”键盘设计较拥挤容易产生误操作,用惯了大键盘的朋友需要一段时间去适应。

键盘Fn功能键提供了众多实用的操作,如Fn+F3锁定触摸板、Fn+F6关闭摄像头、Fn+F10一键打开电源模式等,这些功能在许多其它大品牌的同类机器中都不多见,值得表扬。

另外,MINIX M1000拥有超大触摸板设计,实际操作灵活流畅让人满意。下面的七个指示灯分别是硬盘状态、电池、休眠(休眠时闪烁)、蓝牙(本机无效)、无线、数字键锁定、大写字母锁定。

10.2英寸非镜面LCD屏幕,采用16:9宽屏标准

影音方面,MINIX M1000采用10.2英寸非镜面LCD屏幕,采用16:9宽屏标准,最大分辨率锁定在1024×576。实际观察其屏幕亮度处于主流水平,提供了5级亮度调节,可调范围较广满足了用户的不同应用需求。同时M1000提供了四级电源模式管理切换,分别是 Power Saving省电模式、Normal Performance普通性能模式、Super Performance最高性能模式以及Auto自动模式。

三种模式下屏幕亮度会跟着变化

MINIX M1000的音量相对算是比较响亮的了,但自然也谈不上什么音质的了,想要欣赏音乐电影的话还得外接耳机或音箱才行。另外散热方面MINIX M1000也与其它上网本一样表现出色,自然也是归功于超低功耗及散热的CPU及相应平台了。

四、MINIX M1000的简单性能测试

最后当然不忘进行常规的性能测试,我们安装了XP专业版,关闭所有更新及提醒功能,电源设置调成最高性能模式。CINEBENCH R10测试结果显示,853的得分处于同类ATOM N270处理器的中上水平(Atom N270在Cinebench R10的测试平均得分在830分左右),让人满意。

CINEBENCH R10测试
375KB/s的压缩速度也是个相当不错的成绩了,对于ATOM来说

硬盘表现中规中矩,稳定性不错

最后我们也关心一下MINIX M1000影音播放和游戏方面的表现,我们使用了一段1920×816准高清的《功夫熊猫》进行测试,CPU软解码播放十分顺畅,平均占用率仅在63%左右;而在更小规格的640×360《冰河世纪2》测试中,占用率更是降低到19%左右,让人相当满意。

同样能够顺畅的运行大家非常熟悉的CS游戏,最高帧速去到60FPS

五、评测室总结

先冠电子推出全新MINIX品牌的笔记本电脑产品,吹响了DIY厂商全面进军笔记本领域的号角,MINIX也成为了其中的领军人物之一。作为媒体我们也希望MINIX和其它DIY厂商能够在笔记本领域迅速成长,毕竟有更多的新鲜血液注入,市场也会跟着变得异常活跃,相应的降价、促销等竞争之下最终得益的是咱们消费者。

回到产品本身,作为完全自主设计的MINIX M1000,通过整个评测我们发现其在做工设计上与国内一些二三线甚至是一线品牌的同类上网本产品有得一拼,拥有着上佳的操作体验,而且配置上也相当的可观,至少相比2999元的报价来看是极具诱惑力的。如果你不是一个对大品牌有着执着追求的用户(MINIX在笔记本领域有没有可能迅速挤身大品牌行列呢?),那么这款MINIX M1000应该是个相当不错的选择之一。

优点:设计做工出色、配置高性价比高、操作体验好;

不足:电池续航偏低、品牌形象及影响力有待深化。

⑶ 开发linux的人免费把源码开放给全世界吗

Linux是使用GPL授权的,也就是公开源代码,任何人可以免费使用,也可以分发、修改、甚至出售卖钱。GPL只有一个限制,就是如果你的产品包含Linux或者是其衍生物,比如修改过代码,你的产品也必须公开源代码。只是使用,基本没有任何限制。

Linux内核最初是一个叫Linus Torvalds的人开发的,现在全世界有很多人都贡献过源代码,有义务的也有拿薪水的。基本上最新的开发分支上Linus现在仍然是主要维护者和最后拍板的人。老的内核维护由其他人在做。

⑷ 如何系统的学习Linux驱动开发

在学习之前一直对驱动开发非常的陌生,感觉有点神秘。不知道驱动开发和普通的程序开发究竟有什么不同;它的基本框架又是什么样的;他的开发环境有什么特殊的地方;以及怎么写编写一个简单的字符设备驱动前编译加载,下面我就对这些问题一个一个的介绍。

一、驱动的基本框架

1.那么究竟什么是驱动程序,它有什么用呢:

l驱动是硬件设备与应用程序之间的一个中间软件层

l它使得某个特定硬件能够响应一个定义良好的内部编程接口,同时完全隐蔽了设备的工作细节

l用户通过一组与具体设备无关的标准化的调用来完成相应的操作

l驱动程序的任务就是把这些标准化的系统调用映射到具体设备对于实际硬件的特定操作上

l驱动程序是内核的一部分,可以使用中断、DMA等操作

l驱动程序在用户态和内核态之间传递数据

2.Linux驱动的基本框架

3.Linux下设备驱动程序的一般可以分为以下三类

1)字符设备

a)所有能够象字节流一样访问的设备都通过字符设备来实现

b)它们被映射为文件系统中的节点,通常在/dev/目录下面

c)一般要包含open read write close等系统调用的实现

2)块设备

d)通常是指诸如磁盘、内存、Flash等可以容纳文件系统的存储设备。

e)块设备也是通过文件系统来访问,与字符设备的区别是:内核管理数据的方式不同

f)它允许象字符设备一样以字节流的方式来访问,也可一次传递任意多的字节。

3)网络接口设备

g)通常它指的是硬件设备,但有时也可能是一个软件设备(如回环接口loopback),它们由内核中网络子系统驱动,负责发送和接收数据包。

h)它们的数据传送往往不是面向流的,因此很难将它们映射到一个文件系统的节点上。

二、怎么搭建一个驱动的开发环境

因为驱动是要编译进内核,在启动内核时就会驱动此硬件设备;或者编译生成一个.o文件,当应用程序需要时再动态加载进内核空间运行。因此编译任何一个驱动程序都要链接到内核的源码树。所以搭建环境的第一步当然是建内核源码树

1.怎么建内核源码树

a)首先看你的系统有没有源码树,在你的/lib/ moles目录下会有内核信息,比如我当前的系统里有两个版本:

#ls /lib/ moles

2.6.15-rc72.6.21-1.3194.fc7

查看其源码位置:

## ll /lib/moles/2.6.15-rc7/build

lrwxrwxrwx 1 root root 27 2008-04-28 19:19 /lib/moles/2.6.15-rc7/build -> /root/xkli/linux-2.6.15-rc7

发现build是一个链接文件,其所对应的目录就是源码树的目录。但现在这里目标目录已经是无效的了。所以得自己重新下载

b)下载并编译源码树

有很多网站上可以下载,但官方网址是:

http://www.kernel.org/pub/linux/kernel/v2.6/

下载完后当然就是解压编译了

# tar –xzvf linux-2.6.16.54.tar.gz

#cd linux-2.6.16.54

## make menuconfig (配置内核各选项,如果没有配置就无法下一步编译,这里可以不要改任何东西)

#make

如果编译没有出错。那么恭喜你。你的开发环境已经搭建好了

三、了解驱动的基本知识

1.设备号

1)什么是设备号呢?我们进系统根据现有的设备来讲解就清楚了:

#ls -l /dev/

crwxrwxrwx 1 root root1,3 2009-05-11 16:36 null

crw------- 1 root root4,0 2009-05-11 16:35 systty

crw-rw-rw- 1 root tty5,0 2009-05-11 16:36 tty

crw-rw---- 1 root tty4,0 2009-05-11 16:35 tty0

在日期前面的两个数(如第一列就是1,3)就是表示的设备号,第一个是主设备号,第二个是从设备号

2)设备号有什么用呢?

l传统上,主编号标识设备相连的驱动.例如, /dev/null和/dev/zero都由驱动1来管理,而虚拟控制台和串口终端都由驱动4管理

l次编号被内核用来决定引用哪个设备.依据你的驱动是如何编写的自己区别

3)设备号结构类型以及申请方式

l在内核中, dev_t类型(在中定义)用来持有设备编号,对于2.6.0内核, dev_t是32位的量, 12位用作主编号, 20位用作次编号.

l能获得一个dev_t的主或者次编号方式:

MAJOR(dev_t dev); //主要

MINOR(dev_t dev);//次要

l但是如果你有主次编号,需要将其转换为一个dev_t,使用: MKDEV(int major, int minor);

4)怎么在程序中分配和释放设备号

在建立一个字符驱动时需要做的第一件事是获取一个或多个设备编号来使用.可以达到此功能的函数有两个:

l一个是你自己事先知道设备号的

register_chrdev_region,在中声明:

int register_chrdev_region(dev_t first, unsigned int count, char *name);

first是你要分配的起始设备编号. first的次编号部分常常是0,count是你请求的连续设备编号的总数. name是应当连接到这个编号范围的设备的名子;它会出现在/proc/devices和sysfs中.

l第二个是动态动态分配设备编号

int alloc_chrdev_region(dev_t *dev, unsigned int firstminor, unsigned int count, char *name);

使用这个函数, dev是一个只输出的参数,它在函数成功完成时持有你的分配范围的第一个数. fisetminor应当是请求的第一个要用的次编号;它常常是0. count和name参数如同给request_chrdev_region的一样.

5)设备编号的释放使用

不管你是采用哪些方式分配的设备号。使用之后肯定是要释放的,其方式如下:

void unregister_chrdev_region(dev_t first, unsigned int count);

6)

2.驱动程序的二个最重要数据结构

1)file_operation

倒如字符设备scull的一般定义如下:
struct file_operations scull_fops = {
.owner = THIS_MODULE,
.llseek = scull_llseek,
.read = scull_read,
.write = scull_write,
.ioctl = scull_ioctl,
.open = scull_open,
.release = scull_release,
};

file_operation也称为设备驱动程序接口

定义在,是一个函数指针的集合.每个打开文件(内部用一个file结构来代表)与它自身的函数集合相关连(通过包含一个称为f_op的成员,它指向一个file_operations结构).这些操作大部分负责实现系统调用,因此,命名为open, read,等等

2)File

定义位于include/fs.h

struct file结构与驱动相关的成员

lmode_t f_mode标识文件的读写权限

lloff_t f_pos当前读写位置

lunsigned int_f_flag文件标志,主要进行阻塞/非阻塞型操作时检查

lstruct file_operation * f_op文件操作的结构指针

lvoid * private_data驱动程序一般将它指向已经分配的数据

lstruct dentry* f_dentry文件对应的目录项结构

3.字符设备注册

1)内核在内部使用类型struct cdev的结构来代表字符设备.在内核调用你的设备操作前,必须编写分配并注册一个或几个这些结构.有2种方法来分配和初始化一个这些结构.

l如果你想在运行时获得一个独立的cdev结构,可以这样使用:

struct cdev *my_cdev = cdev_alloc();

my_cdev->ops = &my_fops;

l如果想将cdev结构嵌入一个你自己的设备特定的结构;你应当初始化你已经分配的结构,使用:

void cdev_init(struct cdev *cdev, struct file_operations *fops);

2)一旦cdev结构建立,最后的步骤是把它告诉内核,调用:

int cdev_add(struct cdev *dev, dev_t num, unsigned int count);

说明:dev是cdev结构, num是这个设备响应的第一个设备号, count是应当关联到设备的设备号的数目.常常count是1,但是有多个设备号对应于一个特定的设备的情形.

3)为从系统去除一个字符设备,调用:

void cdev_del(struct cdev *dev);

4.open和release

热点内容
大唐荣耀哪里可以缓存 发布:2025-04-09 07:41:38 浏览:882
阿里云领取服务器 发布:2025-04-09 07:25:27 浏览:888
算法的元运算 发布:2025-04-09 07:05:20 浏览:372
淘宝买的服务器怎么搭建网站 发布:2025-04-09 06:59:37 浏览:945
柳州压缩机厂 发布:2025-04-09 06:55:20 浏览:561
数据库方面的优化 发布:2025-04-09 06:55:20 浏览:334
excel表忘记密码怎么打开 发布:2025-04-09 06:49:45 浏览:447
linux下桌面 发布:2025-04-09 06:17:52 浏览:127
搜狗引擎算法 发布:2025-04-09 06:12:38 浏览:435
解压炸耳 发布:2025-04-09 06:10:56 浏览:546