① linux cloop 文件系统的大概意思是什么
cloop是手稿燃一种设备——压缩的循环设备(Compressed Loopback Device )
它是linux内核的一个模块,可以通过它连接一个标准的文件系统,在敬知访问时透明地压缩和解压文件系统(如ISO-9660 cdrom文件系统等)。
cloop是将毕虚一个常规文件系统压缩到Live CD上的常用方法。
② 操作系统的内核与文件系统是什么关系
一、什么是文件系统
文件系统指文件存在的物理空间,linux系统中每个分区都是一个文件系统,都有自己的目录层次结构。
Linux文件系统中的文件是数据的集合,文件系统不仅包含着文件中的数据而且还有文件系统的结构,所有Linux 用户和程序看到的文件、目录、软连接及文件保护信息等都存储在其中。这种机制有利于用户和操作系统的交互。
每个实际文件系统从操作系统和系统服务中分离出来,它们之间通过一个接口层:虚拟文件系统或VFS来通讯。VFS使得Linux可以支持多个不同的文件系统,每个表示一个VFS 的通用接口。由于软件将Linux 文件系统的所有细节进行了转换,所以Linux核心的其它部分及系统中运行的程序将看到统一的文件系统。Linux 的虚拟文件系统允许用户同时能透明地安装许多不同的文卜亏闭件系统。
在Linux文件系统中,EXT2文件系统、虚拟文件系统、/proc文件系统是三个具有代表性的文件系统。
二、什么是根文件系统
根文件系统首先是一种文件系统,该文件系统不仅具有普通文件系统的存储数据文件的功能,但是相对于普通的文件系统,它的特殊之处在于,它是内核启动时所挂载(mount)的第一个文件系统,内核代码的映像文件保存在根文件系统中,系统引导启动程序会在根文件系统挂载之后从中把一些初始化脚本(如rcS,inittab)和服务加载到内存中去运行。我们要明白文件系统和内核是完全独立的两个部分。在嵌入式中移植的内核下载到开发板上,是没有办法真正的启动Linux操作系统的,会出现无法加载文件系统的错误。
那么根文件系统在系统启动中到底是什么时候空桥挂载的呢?先将型裂/dev/ram0挂载,而后执行/linuxrc.等其执行完后。切换根目录,再挂载具体的根文件系统.根文件系统执行完之后,也就是到了Start_kernel()函数的最后,执行init的进程,也就第一个用户进程。对系统进行各种初始化的操作。
根文件系统之所以在前面加一个”根“,说明它是加载其它文件系统的”根“,既然是根的话,那么如果没有这个根,其它的文件系统也就没有办法进行加载的。它包含系统引导和使其他文件系统得以挂载(mount)所必要的文件。根文件系统包括Linux启动时所必须的目录和关键性的文件,例如Linux启动时都需要有init目录下的相关文件,在 Linux挂载分区时Linux一定会找/etc/fstab这个挂载文件等,根文件系统中还包括了许多的应用程序bin目录等,任何包括这些Linux 系统启动所必须的文件都可以成为根文件系统。Linux启动时,第一个必须挂载的是根文件系统;若系统不能从指定设备上挂载根文件系统,则系统会出错而退出启动。成功之后可以自动或手动挂载其他的文件系统。因此,一个系统中可以同时存在不同的文件系统。在 Linux 中将一个文件系统与一个存储设备关联起来的过程称为挂载(mount)。使用 mount 命令将一个文件系统附着到当前文件系统层次结构中(根)。在执行挂装时,要提供文件系统类型、文件系统和一个挂装点。根文件系统被挂载到根目录下“/”上后,在根目录下就有根文件系统的各个目录,文件:/bin /sbin /mnt等,再将其他分区挂接到/mnt目录上,/mnt目录下就有这个分区的各个目录,文件。
三、什么是内核
Linux内核就像人的心脏,灵魂,指挥中心。内核是一个操作系统的核心,它负责管理系统的进程,内存,设备驱动程序,文件和网络系统,决定着系统的性能和稳定性。内核以独占的方式执行最底层任务,保证系统正常运行。协调多个并发进程,管理进程使用的内存,使它们相互之间不产生冲突,满足进程访问磁盘的请求等.
操作系统是一个用来和硬件打交道并为用户程序提供一个有限服务集的低级支撑软件。一个计算机系统是一个硬件和软件的共生体,它们互相依赖,不可分割。计算机的硬件,含有外围设备、处理器、内存、硬盘和其他的电子设备组成计算机的发动机。但是没有软件来操作和控制它,自身是不能工作的。完成这个控制工作的软件就称为操作系统,在Linux的术语中被称为“内核”,也可以称为“核心”。Linux内核的主要模块(或组件)分以下几个部分:存储管理、CPU和进程管理、文件系统、设备管理和驱动、网络通信,以及系统的初始化(引导)、系统调用等。
四.内核与文件系统的关系
技术上说Linux是一个内核。“内核”指的是一个提供硬件抽象层、磁盘及文件系统控制、多任务等功能的系统软件。一个内核不是一套完整的操作系统。一套基于Linux内核的完整操作系统叫作Linux操作系统,或是GNU/Linux。
文件系统是kernel的一部分。文件系统实现了系统上存储介质和其他资源的交互。kernel tree中的fs目录都是关于文件系统的,可以说它是kernel的一个大子系统。
嵌入式系统在flash中分配了存放内核、根文件系统的区域。bootloader加载了内核,内核启动,加载文件系统,进入Linux系统。
整个嵌入式系统而言,可以分为三个部分1.uboot 2.kernel 3.文件系统。其中kernel中以VFS去支持各种文件系统,如yaffs,ext3,cramfs等等。yaffs/yaffs2是专为嵌入式系统使用NAND型闪存而设计的一种日志型文件系统。在内核中以VFS来屏蔽各种文件系统的接口不同,以VFS向kernel提供一个统一的接口。如打开一个文件时统一使用open,写时采用write,而不用去考虑是那种文件系统,也不用去考虑文件系统是如何将数据写入物理介质的。其中 kernel中的配置,只是让VFS支持这种接口。
③ linux的内核是由bootloader装载到内存中的
linux的内核的确是由bootloader装载到内存中的。linux的bootloader有2个部分组成:bootstrap和uboot。所以更准确点的说法是:linux的内核是由uboot装载到内存中的。内核文件本身是存放在硬盘的文件系统中,这句话就是错的。内核和文件手旁系统是分开存储的。uboot读取kernel到内存是从kernel开始存储的地址开始读取的,而读取开始位置和读取大小,是由环境变量决定的。所以这个时候不需要文件系统的。
给你张图片,便于理解吧。这张图片毕团橡是bootstrap、uboot、环境变量、kernel、文件系统在nandflash里面的存储分布。
其中rootfs.jfss2就是文件系统或尺。
④ ramdisk 文件系统的解压与还原
1.通过file ramdisk.gz命令目信唤标文件是否为ramdisk文件系统查看如下:
或者通过mpimage -l rootfs.uimg
通过 file 命令查看是否还原正确,输出以下信息,可以看到文件已变成了gzip文件。
可知ramdisk.gz实际为ramdisk.img,且增加了u-boot头,64Bytes大小
此时已将ramdisk.gz文件解压为目录形式,可进行相应修改。
为方便使用制作成简易执行脚本,保存以滑喊凯下内容为unimage.sh 然渗慧后chmod 755 unimage.sh 添加可执行权限。
运行方法 unimage.sh rootfs.uimg
⑤ 内核WINDOWS系统
一、引言
内核系统(EmbeddedSystems)是根据应用的要求,将操作系统和功能软件集成于计算机硬件系统之中,从而实现软件与硬件一体化的计算机系统。内核系统出现于60年代晚期,它最初被用于控制机电电话交换机,如今已被广泛的应用于工业制造、过程控制、通讯、仪器、仪表、汽车、船舶、航空、航天、军事装备、消费类产品等众多领域。内核系统在数量上远远超过了各种通用计算机系统:计算机系统核心CPU,每年在全球范围内的产量大概在二十亿颗左右,其中超过80%应用于各类专用性很强的内核系统。
一般的说,凡是带有微处理器的专用软硬件系统都可以称为内核系统。和通用的计算平台相比,内核系统往往具有功能单一、体积小、功耗低、可靠性高、剪裁性好、软硬件集成度高、计算能力相对较低等特点。多年来,内核设备中没有操作系统,其主要原因有二:首先,诸如洗衣机、微波炉、电冰箱这样的设备仅仅需要一道简单的控制程序,以管理数量有限的按钮和指示灯,没有使用操作系统的必要;其次,它往往只具有有限的硬件资源,不足以支持一个操作系统。
然而,随着硬件的发展,内核系统变得越来越复杂,最初的控制程序中逐步的加入了许多功能,而这些功能中有很多可以由操作系统提供。于是,在70年代末期出现了内核操作系统(EmbeddedOperatingSystems),它的出现大大简化了应用程序设计,并可以有效的保障软件质量和缩短开发周期。简单的ES一般并不使用操作系统,只包含一些控制流程,但是随着内核操作系统在复杂性上的增长,简单的流程控制就不能满足系统的要求,这是就必须考虑使用操作系统做系统软件。因此,内核操作系统就应运而生。
随着EOS的广泛应用,业界已推出一些应用比较成功的EOS产品。归纳起来EOS应该具有以下几个特点:小巧、实时性、可装卸、固化代码、弱交互性、强稳定性和统一的接口。目前使用最多的EOS产品包括有:Vxwork、QNX、PalmOS、WindowsCE、pSOS、HopenOS(国内凯思集团公司自主研制开发)等。其中,Vxwork使用最为广泛、市场占有率最高,其突出特点是实时性强(采用优先级抢占和轮转调度等机制),除此之外,其可靠性和可剪裁性也相当不错。QNX是一种伸缩性极佳的系统,其核心加上实时POSIX环境和一个完整的窗口系统还不到一兆。相比之下,MicrosoftWinCE的核心体积庞大,实时性能也差强人意,但由于Windows系列友好的用户界面和为程序员所熟悉的API,并捆绑IE、Office等应用程序,正逐渐获得更大的市场份额。而与这些商业化的操作系统相比,WINDOWS已经越来越受到人们的注意。
二、内核WINDOWS概述
WINDOWS是一个成熟而稳定的网络操作系统。将WINDOWS植入内核设备具有众多的优点。首先,WINDOWS的源代码是开放的,任何卜盯唤人都可以获取并修改,用之开发自己的产品。其次,Lirmx是可以定制的,其系统内核最小只有约134kB。一个带有中文系统和图形用户界面的核心程序也可以做到不足1MB,并且同样稳定。另外,它和多数Unix系统兼容,应用程序的开发和移植相当容易。同时,由于具有良好的可移植性,人们已成功使WINDOWS运行于数百种硬件平台之上。
然而,WINDOWS并非专门为实时性应用而设计,因此如果想在对实时性要求较高的内核系统中运行WINDOWS,就必须为之添加实时软件模块。这些模块运行的内核空间正是操作系统实现进程调度、中断处理和程序执行型凯的部分,因此错误的代码可能会破坏操作系统,进而影响整个系统的可靠性和稳定性。WINDOWS的众多优点还是使它在内核领域获得了广泛的应用,并出现了数量可观的内核WINDOWS系统。其中有代表性的包括:uCWINDOWS、ETWINDOWS、ThinWINDOWS、LOAF等。ETWINDOWS通常用于在小型工业计算机,尤其是PC/104模块。ThinWINDOWS面向专用的照相机服务器、X-10控制器、MP3播放器和则耐其它类似的内核应用。LOAF是WINDOWSOnAFloppy的缩略语,它运行在386平台上。
三、WINDOWS作为内核操作系统的优势
WINDOWS作为内核操作系统的优势主要有以下几点:
1、可应用于多种硬件平台。WINDOWS已经被移植到多种硬件平台,这对于经费,时间受限制的研究与开发项目是很有吸引力的。原型可以在标准平台上开发后移植到具体的硬件上,加快了软件与硬件的开发过程。WINDOWS采用一个统一的框架对硬件进行管理,从一个硬件平台到另一个硬件平台的改动与上层应用无关。WINDOWS可以随意地配置,不需要任何的许可证或商家的合作关系,源代码可以免费得到。这使得采用WINDOWS作为操作系统不会遇到任何关于版权的纠纷。毫无疑问,这会节省大量的开发费用。本身内置网络支持,而目前内核系统对网络支持要求越来越高。WINDOWS的高度模块化使添加部件非常容易。
2、WINDOWS是一个和Unix相似、以内核为基础的、具有完全的内存访问控制,支持大量硬件(包括X86,Alpha、ARM和Motorola等现有的大部分芯片)等特性的一种通用操作系统。其程序源码全部公开,任何人可以修改并在GUN通用公共许可证(GNUGeneralPublicLicense)下发行。这样,开发人员可以对操作系统进行定制,适应其特殊需要。
3、WINDOWS带有Unix用户熟悉的完善的开发工具,几乎所有的Unix系统的应用软件都已移植到了WINDOWS上。WINDOWS还提供了强大的网络功能,有多种可选择窗口管理器(XWindows)。其强大的语言编译器GCC,C等也可以很容易得到,不但成熟完善,而且使用方便。
四、内核WINDOWS的建立
完整的内核WINDOWS解决方案应包括内核WINDOWS操作系统内核、运行环境、图形化界面和应用软件等。由于内核设备的特殊要求,内核WINDOWS解决方案中的内核、环境、GUI等都与标准WINDOWS有很大不同,其主要挑战是如何在狭小的FLASH、ROM和内存中实现高质量的任务实时调度、图形化显示、网络通信等功能。
1、精简内核
WINDOWS内核有自己的结构体系,其中进程管理、内存管理和文件系统是其最基本的3个子系统。图1简单表示了它的框架。用户进程可直接通过系统调用或者函数库来访问内核资源。正因为WINDOWS内核具有这样的结构,因此修改内核时必须注意各个子系统之间的协调。
内核WINDOWS内核一般由标准WINDOWS内核裁剪而来。用户可根据需求配置系统,剔除不需的服务功能、文件系统和设备驱动。经过裁剪、压缩后的系统内核一般只有300k左右,十分适合内核设备。同标准WINDOWS不同的是内核WINDOWS必须要实现从FLASH或ROM的启动。标准WINDOWS启动代码实现了系统初始化和从软盘、硬盘O盘区引导内核。内核WINDOWS一般保存在FLASH或ROM中,标准LILO无法引导。在支持直接从FLASH设备引导的系统中,如华恒公司的uCWINDOWS,引导程序主要完成对硬件系统的初始化工作和操作系统的解压、移位工作。在不支持直接从FLASH引导的系统中,FLASH设备只能作为非引导磁盘使用。此时,可采用先从硬盘或软盘加载一个小操作系统,如内核DOS,然后再执行"Loadlin"加载程序从FLASH引导内核WINDOWS。
对标准WINDOWS的修改主要是虚拟内存和调度程序部分的改动。因为标准WINDOWS系统使用虚拟内存管理的目的是为了能同时运行多个进程,但是这样每个待运行的进程所能分配的CPU时间片就受限制,资源的使用效率就低。这样对于实时性要求较高的内核系统来说,实时任务往往要求CPU具有很高的突发处理能力,即在有些时候需要极高的处理效率,因此需要屏蔽内核的虚拟内存管理机制。对于无硬盘设备的内核系统,不必采用虚存管理。强实时需求的内核应用可以通过修改任务调度模块实现,主要是在内核和设备驱动程序中加入了许多切换点。在该点处,系统检测是否存在未处理的紧急中断,有则剥夺内核的运行,及时处理中断。实现实时性服务的一个较好的方法是在标准的WINDOWS内核上增加一个实时内核,标准WINDOWS内核作为一个任务运行于实时内核上,强实时性任务也直接运行在实时内核上,如RT-WINDOWS等。
文件系统是内核WINDOWS操作系统必不可少的。但标准WINDOWS支持大量的文件系统,因此除了满足系统的正常运行需要而保留一种外,其它的全部可以删除,利用原有的设置选项可以移除。一般内核设备文件系统主要使用RamDisk技术和网络文件系统技术。RamDisk可驻留于Flash,运行时加载到内存中。
2、精简运行环境
WINDOWS通常的运行环境指用户运行任何应用的基础设施,主要包括函数库和基本命令集等。标准WINDOWS系统同时向用户提供了静态和动态函数库。静态函数库在生成应用时直接链接到用户应用中。动态库在应用运行时才链接。由于内核系统应用一般都是在开发平台上预先生成的,因此内核系统只需向应用提供动态函数库。WINDOWS应用运行所需的函数库主要有C库、数学库、线程库、加密库、网络通信库等。其中最基本的是C语言的运行库glib。这个库主要完成基本的输入输出,内存访问,文件处理。一个标准的glib库大约要1200kB存储空间,考虑到内核WINDOWS内核往往很小,这种运行库实在太大,我们做了一些精简的工作,方法有两种:(1)、使用静态连接的方法,完全不使用运行库动态连接;(2)、对这个库的函数进行精简。
在一个桌面系统上,使用动态连接可以带来许多好处。使用动态连接库,可以让应用程序跟函数库的更新、升级分离,便于维护,可以让同时运行的多个程序共享一段代码。但是,在内核系统中,很少有多个程序并行的可能,程序的维护,尤其是库函数的维护更新是不常见的。这时,使用静态连接的优势就极为明显。因为静态连接可以只将库中用到的部分连接进程序。在应用程序较少(小于5)的情况下,静态连接可以达到较好的结果。为了便于将来扩充的需要,我们也采用第二种方法,针对我们的需要,对库函数的内容进行精简,只保留一些基本功能,还有一种方法是采用其它的C语言运行库。但是这些库对兼容性影响很大。
基本命令集同样是运行用户应用的基础,主要包括初始化进程init,终端获取getty、Shell和基本命令等。内核系统的启动过程可能与标准WINDOWS不同,例如跳过登录过程直接启动GUI等。这就要求修改init,getty等。标准WINDOWS命令集同样由于体积问题无法直接应用于内核环境。目前,小命令集的解决方法主要有集成方法和汇编方法两种。集成方法采用集成公共部分减少命令集整体体积,用C实现,有较好的平台移植性;汇编方法则采用汇编编程减少每个命令的体积.这样可使体积很小但其平台移植性较差。
3、内核WINDOWS下的GUI
GUI在内核系统或者实时系统中的地位越来越重要,比如PDA、DVD播放机、WAP手机等,都需要一个完整.漂亮的图形用户界面。这些系统对GUI的基本要求包括:(1)、轻型、占用资源少;(2)、高性能;(3)、高可靠性;(4)、可配置。这些也成为评价内核系统的重要指标。目前,内核WINDOWS上的GUI主要有winCE、MicroWindow、紧缩的XWindow、MiniGUI(国内做得较好的自由软件之一)。标准WINDOWS的Xfree86由于体积庞大,运行环境要求高,无法运行于内核环境。内核GUI主要通过削减功能,降低性能来实现体积小和占用资源少。目前内核WINDOWS上的GUI环境主要有两类:X类和win32类。X类GUI分为服务方和客户方两方。服务器方提供鼠标、键盘处理和显示功能,客户方是用户应用,服务方和客户方通过socket接口和X协议通信。采用该方式十分有利于远程网络图形化服务,客户方和服务方可通过网络实现X协议和图形显示。典型的X类GUI有MicroWindow、紧缩的XWindow等。win32类的GUI不存在客户方和服务方,每个任务都自成一体,任何任务间的切换、事件分发由专门的管理任务负责。如wiCE、MiniGUI就是类似于win32类的GUI。
五、当前流行的几种内核WINDOWS系统
除了智能数字终端领域以外,WINDOWS在移动计算平台、智能工业控制、金融业终端系统,甚至军事领域都有着广泛的应用前景。这些WINDOWS被统称为"内核WINDOWS"。
1、RT-WINDOWS
这是由美国墨西哥理工学院开发的内核WINDOWS操作系统。到目前为止,RT-WINDOWS已经成功地应用于航天飞机的空间数据采集、科学仪器测控和电影特技图像处理等广泛领域。RT-WINDOWS开发者并没有针对实时操作系统的特性而重写WINDOWS的内核,因为这样做的工作量非常大,而且要保证兼容性也非常困难。为此,RT-WINDOWS提出了精巧的内核,并把标准的WINDOWS核心作为实时核心的一个进程,同用户的实时进程一起调度。这样对WINDOWS内核的改动非常小,并且充分利用了WINDOWS下现有的丰富的软件资源。
2、uCWINDOWS
uCWINDOWS是Lineo公司的主打产品,同时也是开放源码的内核WINDOWS的典范之作。uCWINDOWS主要是针对目标处理器没有存储管理单元MMU(MemoryManagementUnit)的内核系统而设计的。它已经被成功地移植到了很多平台上。由于没有MMU,其多任务的实现需要一定技巧。uCWINDOWS是一种优秀的内核WINDOWS版本,是micro-Conrol-WINDOWS的缩写。它秉承了标准WINDOWS的优良特性,经过各方面的小型化改造,形成了一个高度优化的、代码紧凑的内核WINDOWS。虽然它的体积很小,却仍然保留了WINDOWS的大多数的优点:稳定、良好的移植性、优秀的网络功能、对各种文件系统完备的支持和标准丰富的API。它专为内核系统做了许多小型化的工作,目前已支持多款CPU。其编译后目标文件可控制在几百KB数量级,并已经被成功地移植到很多平台上。
3、Embedix
Embedix是由内核WINDOWS行业主要厂商之一Luneo推出的,是根据内核应用系统的特点重新设计的WINDOWS发行版本。Embedix提供了超过25种的WINDOWS系统服务,包括Web服务器等。系统需要最小8MB内存,3MBROM或快速闪存。Embedix基于WINDOWS2.2内核,并已经成功地移植到了Intelx86和PowerPC处理器系列上。像其它的WINDOWS版本一样,Embedix可以免费获得。Luneo还发布了另一个重要的软件产品,它可以让在WindowsCE上运行的程序能够在Embedix上运行。Luneo还将计划推出Embedix的开发调试工具包、基于图形界面的浏览器等。可以说,Embedix是一种完整的内核WINDOWS解决方案。
4、XWINDOWS
XWINDOWS是由美国网虎公司推出,主要开发者是陈盈豪。他在加盟网虎几个月后便开发出了基于XWINDOWS的、号称是世界上最小的内核WINDOWS系统,内核只有143KB,而且还在不断减小。XWINDOWS核心采用了"超字符集"专利技术,让WINDOWS核心不仅可能与标准字符集相容,还含盖了12个国家和地区的字符集。因此,XWINDOWS在推广WINDOWS的国际应用方面有独特的优势。
5、
由Agenda公司采用、作为其新产品"VR3PDA"的内核WINDOWS操作系统。它可以提供跨操作系统构造统一的、标准化的和开放的信息通信基础结构,在此结构上实现端到端方案的完整平台。资源框架开放,使普通的软件结构可以为所有用户提供一致的服务。平台使用户的视线从设备、平台和网络上移开,由此引发了信息技术新时代的产生。在中,称之为用户化信息交换(CIE),也就是提供和访问为每个用户需求而定制的"主题"信息的能力,而不管正在使用的设备是什么。
6、
由Transmeta公司推出的操作系统代码开放,在GUN普通公共许可(GPL)下发布,可以在http://midori.transmeta上立即获得。该公司有个名为"计划"。""这个名字来源于日本的"绿色"---Midori,用来反映其WINDOWS操作系统的环保外观。
7、红旗内核WINDOWS
由北京中科院红旗软件公司推出的内核WINDOWS是国内做得较好的一款内核操作系统。目前,中科院计算所自行开发的开放源码的内核操作系统---EasyEmbeddedOS(EEOS)也已经开始进入实用阶段了。该款内核操作系统重点支持p-Java。系统目标一方面是小型化,另一方面能重用WINDOWS的驱动和其它模块。由于有中科院计算所的强大科研力量做后盾,EEOS有望发展成为功能完善、稳定、可靠的国产内核操作系统平台。
六、结束语
由于WINDOWS是一个内核源代码开放、具备一整套工具链、有强大的网络支持及成本低廉的操作系统,因此内核WINDOWS自诞生起就秉承了这众多独特优势,这使它正在并越来越多地受到人们的关注。据EvenData数据显示,期望使用内核WINDOWS的用户从2001年的11%增到2002年27%,而同期Vxwork只是从16%到18%,WinCE从9%到14%。另外,在内核WINDOWS的各种应用市场中,通信(语音和数据)名列第一,2000年的销售额是1300万美元,而2005年预计将达到1.26亿美元,可以预见,内核WINDOWS将在未来的通信用内核操作系统中占据强有力的地位
WINDOWS是目前十分火爆的操作系统。它是由芬兰赫尔辛基大学的一个大学生LinusB.Torvolds在1991年首次编写的。标志性图标是一个可爱的小企鹅。
WINDOWS是一种类Unix系统,Linus当时编写它的目的是为了替代一种名叫Minix的操作系统。Minix是由一个名叫AndrewTannebaum的计算机教授编写的,当时由于Unix是一个商业软件,其源代码是不能拿来进行教学的,Andrew教授就自己编写了一个系统用于教学。最
初的Minix用一张软盘就能装下,麻雀虽小、五脏俱全,Minix具有一般操作系统的特征,它同时兼容Unix系统。
WINDOWS是一个免费的操作系统,用户可以免费获得其源代码,并能够随意修改。它是在共用许可证GPL(GeneralPublicLicense)保护下的自由软件,也有好几种版本,如RedHatWINDOWS、Slackware,以及国内的XteamWINDOWS等。
WINDOWS具有许多Unix系统的功能和特点,能够兼容Unix,但无需支付Unix高额的费用。比如一个Unix程序员在单位可以在Unix系统上进行工作,回到家里在WINDOWS系统上也能完成同样的工作,而不必重新购买Unix。要知道Unix的价格比常见的Windows要高出若干倍,和WINDOWS的低廉更是相距甚远。
WINDOWS的应用也十分广泛。Sony最新的PS2游戏机就采用了WINDOWS作为系统软件,使PS2摇身一变,成为了一台WINDOWS工作站。着名的电影《泰坦尼克号》的数字技术合成工作就是利用100多台WINDOWS服务器来完成的。
2001年8月17日,WINDOWS发布了最新的WINDOWS2.4.9版,它也已经十岁了。
WINDOWS的优点
WINDOWS的流行是因为它具有许多诱人之处。
1、完全免费
WINDOWS是一款免费的操作系统,用户可以通过网络或其他途径免费获得,并可以任意修改其源代码。这是其他的操作系统所做不到的。正是由于这一点,来自全世界的无数程序员参与了WINDOWS的修改、编写工作,程序员可以根据自己的兴趣和灵感对其进行改变。这让WINDOWS吸收了无数程序员的精华,不断壮大。
2、完全兼容POSIX1.0标准
这使得可以在WINDOWS下通过相应的模拟器运行常见的DOS、Windows的程序。这为用户从Windows转到WINDOWS奠定了基础。许多用户在考虑使用WINDOWS时,就想到以前在Windows下常见的程序是否能正常运行,这一点就消除了他们的疑虑。
3、多用户、多任务
WINDOWS支持多用户,各个用户对于自己的文件设备有自己特殊的权利,保证了各用户之间互不影响。多任务则是现在电脑最主要的一个特点,WINDOWS可以使多个程序同时并独立地运行。
4、良好的界面
WINDOWS同时具有字符界面和图形界面。在字符界面用户可以通过键盘输入相应的指令来进行操作。它同时也提供了类似Windows图形界面的X-Windows系统,用户可以使用鼠标对其进行操作。在X-Windows环境中就和在Windows中相似,可以说是一个WINDOWS版的Windows。
5、丰富的网络功能
互联网是在Unix的基础上繁荣起来的,WINDOWS的网络功能当然不会逊色。它的网络功能和其内核紧密相连,在这方面WINDOWS要优于其他操作系统。在WINDOWS中,用户可以轻松实现网页浏览、文件传输、远程登陆等网络工作。并且可以作为服务器提供WWW、FTP、E-Mail等服务。
6、可靠的安全、稳定性能
WINDOWS采取了许多安全技术措施,其中有对读、写进行权限控制、审计跟踪、核心授权等技术,这些都为安全提供了保障。WINDOWS由于需要应用到网络服务器,这对稳定性也有比较高的要求,实际上WINDOWS在这方面也十分出色。
7、支持多种平台
WINDOWS可以运行在多种硬件平台上,如具有x86、680x0、SPARC、Alpha等处理器的平台。此外WINDOWS还是一种内核操作系统,可以运行在掌上电脑、机顶盒或游戏机上。2001年1月份发布的WINDOWS2.4版内核已经能够完全支持Intel64位芯片架构。同时WINDOWS也支持多处理器技术。多个处理器同时工作,使系统性能大大提高。
WINDOWS的不足
由于在现在的个人电脑操作系统行业中,微软的Windows系统仍然占有大部分的份额,绝大多数的软件公司都支持Windows。这使得Windows上的应用软件应有尽有,而其他的操作系统就要少一些。许多用户在换操作系统的时候都会考虑以前的软件能否继续使用,换了操作系统后是否会不方便。虽然WINDOWS具有DOS、Windows模拟器,可以运行一些Windows程序,但Windows系统极其复杂,模拟器所模拟的运行环境不可能完全与真实的Windows环境一模一样,这就使得一些软件无法正常运行。
许多硬件设备面对WINDOWS的驱动程序也不足,不少硬件厂商是在推出Windows版本的驱动程序后才编写WINDOWS版的。但一些大硬件厂商在这方面做得还不错,他们的WINDOWS版驱动程序一般都推出得比较及时。
软件支持的不足是WINDOWS最大的缺憾,但随着WINDOWS的发展,越来越多的软件厂商会支持WINDOWS,它应用的范围也越来越广。这只小企鹅的前景是十分光明的。
⑥ linux内核与文件系统是什么关系
linux内核是linux的真实的操作系统,所有的操作瞎裤系统的相关功能都是由用户接口程序传递到内核由内核来完成的。
linux文件系统是指linux操作系统对整个系统中的所有的数据、文件的管理的一种实现方式。
简单点说:像windows它的文件系统是NTFS文件系统或者FAT文件系统,通过这种磨知简方式将windows的各种猛旅文件保存在磁盘上,用于存储和访问了。
而linux系统则使用ext这种文件系统来实现。
⑦ 怎样解压redhat的initrd.img
image-initrd的处理流程
1. boot loader把内核以及initrd文件加载到内存的特定位置。
2. 内核判断initrd的文件格式,如果不是cpio格式,将其作为image-initrd处理。
3. 内核将initrd的内容保存在rootfs下的/initrd.image文件中。
4. 内核将/initrd.image的内容读入/dev/ram0设备中,也就是读入了一个内存盘中。
5. 接着内核以可读写的方式把/dev/ram0设备挂载为原始的根文件系统。
6. .如果/dev/ram0被指定为真正的根文件系统,那么内核跳至最后一步正常启动。
7. 执行initrd上的/搭扮渣linuxrc文件,linuxrc通常是一个脚本文件,负责加载内核访问根文件系统必缺亏须的驱动, 以及加载根文件系统。
8. /linuxrc执行完毕,常规根文件系统被挂载
9. 如果常规根文件系统存在/initrd目录,那么/dev/ram0将从/移动到/initrd。否则如果/initrd目录不存在, /dev/ram0将被卸载。
10. 在常规根文件系统上进行正常启动过程 ,执行/sbin/init。
通过上面的流程介绍可知,Linux2.6内核对image-initrd的处理流程同linux2.4内核相比并没有显着的变化, cpio-initrd的处理流程相比于image-initrd的处理流程却有很知悄大的区别,流程非常简单,在后面的源代码分析中,读者更能体会到处理的简捷。
⑧ linux内核 是怎么运作的还有他的文件系统好复杂啊文件系统怎么理解一定采纳。怎么运作的
内核怎么运作我也了解不多,因为我用shell比较多,只知道shell就是用户与内核的接口,shell将用户输入命令扮镇传递给内核去解碰饥析,内核直接操作内存(有些内存空间是受内核保护的,用户程序访问不到的),CPU从内存读指令去执行。大概这么个过程,我也只能说个大概。
ext3/ext4日志文件系统很好很强大。Linux文件系统都是挂载在根目录上的,不同分区可以使用不厅吵粗同的文件系统。但用户层所用的文件读写操作都是统一封装的接口,上层看起来无区别。文件系统,用于管理文件存储信息和磁盘空间分配。你用df命令查看磁盘使用情况,也都是通过文件系统来获取的,否则哪有这么快就显示出来。当然,还有tempfs, yaffs等适合嵌入式linux操作系统的文件系统格式。
⑨ linux内核与文件系统是什么关系啊
内核与文件系统的关系
技术上说Linux是一个内核。“内核”指的是一个提供硬件抽象层、磁盘及文件系统控制、多任务等功能的系统软件。一个内核不是一套完整的操作系统。一套基于Linux内核的完整操作系统叫作Linux操作系统,或是GNU/Linux。
文件系统是kernel的一部分。文件系统实现了系统上存储介质和其他资源的交互。kernel tree中盯卜的fs目录都是关于文件系统的,可以说它是kernel的一个大子系统。
嵌入式系统在flash中分配了存放内核、根文件系统的区域。bootloader加载了内核,内核启动,加载文件系统,进入Linux系统。
整个嵌入式系统而言,可以分为三个部分1.uboot 2.kernel 3.文件系统。其中kernel中以VFS去支持各种文件系统,如yaffs,ext3,cramfs等等。yaffs/yaffs2是专为嵌入式系统使用NAND型闪存而设计的一种日志型文件系统。在内核中以VFS来屏蔽各种桥猛文件系统的接口不同,以VFS向kernel提供一个统一的接口。如打开一个文件时统一使用open,写时采用write,而不用去考虑是那种文件系统,也不用去考虑文件系统是如何将数据写入物凯消穗理介质的。其中 kernel中的配置,只是让VFS支持这种接口。
⑩ 三、内核&文件系统编译
一、编译官方提供的内核源码
1、解压官方提供的内核源码包
2、根据官方提供的配置文件对内核进行配置,方式如下
make ARCH=arm xxxxx_defult_config
cp arch/arm/xxxxx_config .config
3、打开图形界面对内核进行配置,根据需要增加或者删除模块和其他内容
4、对内核进行编译
make ARCH=arm CROSS_COMPILE=arm-hisiv300-linux-uclibcgnueabi- uImage -j6
或者编辑Makefile文件,对其中的ARCH变量和CROSS_COMPILE变量进行修改,然后执行make uImage
5、在编译编译的时候回出现mkimage命令缺失,这个命令是UBootr提供的,在编译的UBoot路径下面找到这个命令,即可直接使用
6、编译的时候各个方面需要一致性,
1、编译的内核的交叉编译工具链如果支持硬件浮点数运算那么在配置内核的时候也需要添加硬件浮点数的支持
Kernel Features --->
[*] Use the ARM EABI to compile the kernel
2、在编译的内核的时候注意保持不要做太多的修改,否则会出问题
7、编译内核模块
make ARCH=arm CROSS_COMPILE=arm-hisiv300-linux-uclibcgnueabi- moles -j6
8、安装内核模块到指定的目录中去
make moles_install ARCH=arm CROSS_COMPILE=arm-hisiv300-linux-uclibcgnueabi- INSTALL_MOD_PATH=/home/fu/hisi/kernel/build
9、不要采用内核模块安装的命令来安装内核,因为内核不需要安装,在arch/arm/boot/uImage就是所需要的内核文件
二、编译官方提供的busybox来构建根文件系统
1、解压需要编译的busybox源码
2、进入源码中对busybox进行配置,主要是配置交叉编译工具链
Busybox Settings --->Build Options ---> 下面有关于busybox是否配置为采用共享库的模式,还有添加交叉编译工具链的前缀
3、配置需要的文件和命令进行添加或者删除
4、然后执行命令make -jn && make install
5、创建根文件系统需要的其他的文件和目录,在一个空白的目录中首先拷贝busybox/_install下面的bin、sbin、usr目录到空白目录中,在空白目录中创建其余的所需要的目录文件 bin dev etc home lib linuxrc mnt opt proc sbin sys tmp usr var等以上目录
6、接下来在lib目录中复制内核模块,在编译内核的时候模块安装在了指定的地方,直接拷贝过来就行。
6、创建文件系统所需要的其他文件,配置文件(最简单的办法就是直接复制busybox文件下面的example文件夹里面的东西)
1、/etc/inittab 填写或者 一下是最基本的,还有其他的需要填写
# /etc/inittab
::sysinit:/etc/init.d/rcS //指定初始化脚本
::askfirst:-/bin/sh //指定第一次输入回车后打开的shell
::ctrlaltdel:/sbin/reboot //指定这三个按键按下后的反应
::shutdown:/bin/umount -a -r //指定关机是进行的操作
2、/etc/init.d/rcS //这个就没有详细额硬性规定了,写入需要初始化的东西即可
#!/bin/sh
mount -a
3、/etc/fstab //写入mount -a是要自动挂载的文件系统
# device mount-point type options mp fsck order
proc /proc proc defaults 0 0
tmpfs /tmp tmpfs defaults 0 0
7、拷贝需要用到的库文件,在交叉编译工具链下面存放
arm-linux-xxxxxx-gcc/lib
海思的开发板是在和tahet/lib下面,切记。