① linux操作系统有什么技术特色
一、 Linux的诞生
Linux的兴起可以说是Internet创造的一个奇迹。 1991年初,当年轻的芬兰大学生Linus Torvalds在开始其Linux 操作系统的设计时,他的目的只不过是想看一看Intel 386存储 管理硬件是怎样工作的,而绝对没有想到这一举动会在计算机界 产生如此重大的影响。他的设计进展得很顺利,只花了几个月时 间就在一台Intel 386微机上完成了一个类似于Unix 的操作系统, 这就是最早的Linux版本。1991年底,Linus Torvalds首次在Internet 上发布了基于Intel 386体系结构的Linux源代码,从此以后,奇迹开始 发生了。由于Linux具有结构清晰、功能简捷等特点,许多大专院校的学 生和科研机构的研究人员纷纷把它作为学 习和研究的对象。他们在更正原 有Linux版本中错误的同时,也不断地为Linux增加新的功能。在众多热心者的 努力下,Linux逐渐成为一个稳定可靠、功能完善的操作系统。一些软件公司, 如Red Hat、InfoMagic等也不失时机地推出了自己的以Linux为核心的操作系统 版本,这大大推动了Linux的商品化。在一些大的计算机公司的支持下,Linux还 被移植到以Alpha APX、PowerPC、Mips及Sparc等为处理机的系统上。Linux的使 用日益广泛,其影响力直逼Unix。
Linux的成功得益于如下因素:
(1) 具有良好的开放性。Linux及其生成工具的源代码均可通过Internet免费获取,linux爱 好者能非常 容易地建立一个Linux开发平台。
(2) Internet的普及使热心于Linux的开发者们能进行高效、快捷的交流,从而为Linux 创造了一个优良的分布式开发环境。
(3) Linux具有很强的适应性,能适应各种不同的硬件平台。
Linux的版本更新很快。在短短的七年时间里,其版本已升至2.1.x。这里之所以用"x"表示,是因为 x的值变化太快,很难准确地定位它的值。这也从侧面反映了从事Linux的研究者之多。不过,Linux用得最 多的版本还是2.0.30,许多商品化的操作系统都以它为核心。
二、 Linux的主要特点
作为一个操作系统,Linux几乎满足当今Unix操作系统的所有要求,因此,它具有Unix操作系统的基本 特征。
1.符合POSIX 1003.1标准
POSIX 1003.1标准定义了一个最小的Unix操作系统接口,任何操作系统只有符合这一标准,才有可能运 行Unix程序。考虑到Unix具有丰富的应用程序,当今绝大多数操作系统都把满足POSIX 1003.1标准作为实现 目标,Linux也不例外,它完全支持POSIX 1003.1标准。另外,为了使Unix System V和BSD上的程序能直接在 Linux上运行, Linux还增加了部分System V和BSD的系统接口,使Linux成为一个完善的Unix程序开发系统。
2.支持多用户访问和多任务编程
Linux是一个多用户操作系统,它允许多个用户同时访问系统而不会造成用户之间的相互干扰。另外, Linux还支持真正的多用户编程,一个用户可以创建多个进程,并使各个进程协同工作来完成用户的需求.
3.采用页式存储管理
页式存储管理使Linux能更有效地利用物理存储空间,页面的换入换出为用户提供了更大的存储空间。
4.支持动态链接
用户程序的执行往往离不开标准库的支持,一般的系统往往采用静态链接方式,即在装配阶段就已将 用户程序和标准库链接好,这样,当多个进程运行时,可能会出现库代码在内存中有多个副本而浪费存储 空间的情况。Linux 支持动态链接方式,当运行时才进行库链接,如果所需要的库已被其它进程装入内存, 则不必再装入,否则才从硬盘中将库调入。这样能保证内存中的库程序代码是唯一的。
5.支持多种文件系统
Linux能支持多种文件系统。目前支持的文件系统有:EXT2、EXT、XIAFS、ISOFS、HPFS、MSDOS、UMSDOS、 PROC、NFS、SYSV、MINIX、SMB、UFS、NCP、VFAT、AFFS。Linux最常用的文件系统是EXT2,它的文件名长度可 达255字符,并且还有许多特有的功能,使它比常规的Unix文件系统更加安全。
6.支持TCP/IP、SLIP和PPP
在Linux中,用户可以使用所有的网络服务,如网络文件系统、远程登录等。SLIP和PPP能支持串行线上的 TCP/IP协议的使用,这意味着用户可用一个高速Modem通过电话线连入Internet网中。
除了上述基本特征外,Linux还具有其独有的特色:
支持硬盘的动态Cache 这一功能与MSDOS中的Smartdrive相似。所不同的是,Linux能动态调整所用的 Cache存储器的大小,以适合当前存储器的使用情况,当某一时刻没有更多的存储空间可用时,Cache将被减少, 以增加空闲的存储空间,一旦存储空间不再紧张,Cache的大小又将增加。
支持不同格式的可执行文件 Linux具有多种模拟器,这使它能运行不同格式的目标文件。其中,DOS和 MSWindows正在开发之中,iBCS2模拟器能运行SCO Unix的目标程序。(iBCS2 模拟器不是Linux标准核心的 一部分,但可从ftp.informatik.huberlin.de:/pub/os/linux下载)
三、 Linux的主要构成
Linux主要由存储管理、进程管理、文件系统、进程间通信等几部分组成,在许多算法及实现策略上, Linux借鉴了Unix的成功经验,但也不乏自己的特色。
1.存储管理
Linux采用页式存储管理机制,每个页面的大小随处理机芯片而异。例如,Intel 386处理机页面大小 可为4KB和2MB两种,而Alpha处理机页面大小可为8KB、16KB、32KB和64KB。页面大小的选择对地址变换算 法和页表结构会有一定的影响,如Alpha的虚地址和物理地址的有效长度随页面尺寸的变化而变化,这种变 化必将在地址变换和页表项中有所反映。
在Linux中,每一个进程都有一个比实际物理空间大得多的进程虚拟空间,为了建立虚拟空间和物理空 间之间的映射,每个进程还保留一张页表,用于将本进程空间中的虚地址变换成物理地址。页表还对物理页 的访问权限作出了规定,定义了哪些页可读写,哪些页是只读页,在进行虚实变换时,Linux将根据页表中规 定的访问权限来判定进程对物理地址的访问是否合法,从而达到存储保护的目的。
Linux存储空间分配遵循的是不到有实际需要的时候决不分配物理空间的原则。当一个程序加载执行时, Linux只为它分配了虚空间,只有访问某一虚地址而发生了缺页中断时,才为它分配物理空间,这样就可能 出现某些程序运行完成后,其中的一些页从来就没有装进过内存。这种存储分配策略带来的好处是显而易见的,因为它最大限度地利用了物理存储器。
尽管Linux对物理存储器资源的使用十分谨慎,但还是经常出现物理存储器资源短缺的情况。Linux有一 个名为kswapd的进程专门负责页面的换出,当系统中的空闲页面小于一定的数目时,kswapd将按照一定的淘 汰算法选出某些页面,或者直接丢弃(页面未作修改),或者将其写回硬盘(页面已被修改)。这种换出方式不 同于较旧版本Unix的换出方式,它是将一个进程的所有页全部写回硬盘。相比之下,Linux的效率更高。
2.进程管理
在Linux中,进程是资源分配的基本单位,所有资源都是以进程为对象来进行分配的。 在一个进程的生 命期内,它会用到许多系统资源,会用CPU运行其指令,用存储器存储其指令和数据,它也会打开和使用文件 系统中的文件,直接或间接用到系统中的物理设备,因此,Linux设计了一系列的数据结构,它们能准确地描 述进程的状态和其资源使用情况,以便能公平有效地使用系统资源。Linux的调度算法能确保不出现某些进程 过度占用系统资源而导致另一些进程无休止地等待的情况。
进程的创建是一个十分复杂的过程,通常的做法需为子进程重新分配物理空间,并把父进程空间的内容全 盘复制到子进程空间中,其开销非常大。为了降低进程创建的开销,Linux采用了Copyonwrite技术,即不 拷贝父进程的空间,而是拷贝父进程的页表,使父进程和子进程共享物理空间,并将这个共享空间的访问权限 置为只读。当父进程和子进程的某一方进行写操作时,Linux检测到一个非法操作,这时才将要写的页进行复制 。这一做法免除了只读页的复制,从而降低了开销。
Linux目前尚未提供用户级线程,但提供了核心级线程,核心线程的创建是在进程创建的基础上稍做修改, 使创建的子进程与父进程共享虚存空间。从这一意义上讲,核心线程更像一个共享进程组。
3.文件系统
Linux最重要的特征之一就是支持多个不同的文件系统,前面我们已经看到,Linux目前支持的文件系统 多达十余种,随着时间的推移,这一数目还在不断增加。在Linux中,一个分离的文件系统不是通过设备标识 (如驱动器号或驱动器名)来访问,而是 把它合到一个单一的目录树结构中,通过目录来访问,这一点与Unix十分相似。Linux用 安装命令将一个新的文件系统安装到系统单一目录树的某一目录下,一旦安装成功,该目录下的所有内容将 被新安装的文件系统所覆盖,当文件系统被卸下后,安装目录下的文件将会被重新恢复。
Linux最初的文件系统是Minix。该文件系统对文件限制过多,并且性能低下,如文件名长度不能超过14 个字符、文件大小不能超过64MB。为了解决这些问题,Linux的开发者们设计了一个Linux专用的文件系统EXT。 EXT对文件的要求放松了许多,但在性能上并没有大的改观,于是就有了后面的EXT2文件系统。EXT2文件系统 是一个非常成功的文件系统,它无论是对文件的限制还是在性能方面都大大优于EXT文件系统,所以,EXT2自 从推出就一直是Linux最常用的文件系统。
为了支持多种文件系统,Linux用一个被称为虚拟文件系统(VFS)的接口层将真正的文件系统同操作系统及 系统服务分离开。VFS掩盖了不同文件系统之间的差异,使所有文件系统在操作系统和用户程序看来都是等同的。VFS允许用户同时透明地安装多个不同的文件系统。
4.进程间通信
Linux提供了多种进程间的通信机制,其中,信号和管道是最基本的两种。除此以外,Linux也提供 System V的进程间通信机制,包括消息队列、信号灯及共享内存。为了支持不同机器之间的进程通信, Linux还引入了BSD的Socket机制。
四、 Linux的不足及发展趋势
Linux从出现到现今只经历了短短七年的时间,但其发展速度是惊人的,这与它的开放性和优良的性能 是密不可分的。不过我们应该看到,作为一个由学生开发的系统,Linux还有许多先天不足,它的设计思想 过多地受到传统操作系统的约束,没有体现出当今操作系统的发展潮流,具体表现在以下几个方面:
不是一个微内核操作系统;
是一个分布式操作系统;
不是一个安全的操作系统;
没有用户线程;
不支持实时处理;
代码是用C而不是C++这样的现代程序设计语言编写的。
尽管Linux有这样和那样的不足,但其发展潜力不容低估,其发展的动力就是遍布全球、为数众多的 Linux热心者。今后Linux将会朝着完善功能、提高效率的方向发展,包括允许用户创建线程、增加实时处 理功能、开发适合多处理机体系结构的版本。我们相信,Linux、Unix及NT三足鼎立的时代将为期不远。
② linux系统文件系统上有哪些特点
一般linux常用的文件系统有
1、ext2、ext3、ext4
2、SWAP
特点:
1、Linux ext2/ext3文件系统使用索引节点来记录文件信息,作用像windows的文件分配表。索引节点是一个结构,它包含了一个文件的长度、创建及修改时间、权限、所属关系、磁盘中的位置等信息。
Linux之前缺省情况下使用的文件系统为Ext2,ext2文件系统的确高效稳定。但是,随着Linux系统在关键业务中的应用,Linux文件系统的弱点也渐渐显露出来了:其中系统缺省使用的ext2文件系统是非日志文件系统。
Ext3文件系统是直接从Ext2文件系统发展而来,目前ext3文件系统已经非常稳定可靠。它完全兼容ext2文件系统。用户可以平滑地过渡到一个日志功能健全的文件系统中来。这实际上了也是ext3日志文件系统初始设计的初衷。
Linux
kernel 自 2.6.28 开始正式支持新的文件系统 Ext4。 Ext4 是 Ext3 的改进版,修改了 Ext3
中部分重要的数据结构,而不仅仅像 Ext3 对 Ext2 那样,只是增加了一个日志功能而已。Ext4
可以提供更佳的性能和可靠性,还有更为丰富的功能:
与 Ext3 兼容。
更大的文件系统和更大的文件。Ext4 分别支持 1EB(1,048,576TB, 1EB=1024PB, 1PB=1024TB)的文件系统,以及 16TB 的文件。
无限数量的子目录。
多块分配
延迟分配
日志校验
在线碎片整理
持久预分配
2、swap是交换分区的文件系统,类似windows的虚拟内存
虚拟内存的实现:两种方式。第一种是进行内存的排列像内存池一样,进行一个优化。第二种是把硬盘上的空间模拟成内存。
swap是Linux的虚拟内存,在安装时要设好大小,是物理内存的2倍(安装红帽会进行设置)
③ Linux系统中系统文件有什么特点
Linux系统中系统文件有什么特点?
第1个特点:内核相关文件在/boot目录下
其它也没啥了。
④ linux文件系统采用哪种物理结构,有什么优点和缺点
一、顺序结构
优点:
1、支持顺序存取和随机存取。
2、顺序存取速度快。
3、所需的磁盘寻道次数和寻道时间最少。
缺点:
1、需要为每个文件预留若干物理块以满足文件增长的部分需要。
2、不利于文件插入和删除。
二、链式结构
优点:
1、提高了磁盘空间利用率,不需要为每个文件预留物理块。
2、有利于文件插入和删除。
3、有利于文件动态扩充。
缺点:
1、存取速度慢,不适于随机存取。
2、当物理块间的连接指针出错时,数据丢失。
3、更多的寻道次数和寻道时间。
4、链接指针占用一定的空间,降低了空间利用率。
三、索引结构
优点:
1、不需要为每个文件预留物理块。
2、既能顺序存取,又能随机存取。
3、满足了文件动态增长、插入删除的要求。
缺点:
1、较多的寻道次数和寻道时间。
2、索引表本身带来了系统开销。如:内外存空间,存取时间等。
拓展资料:
文件存取方法:
顺序存取:顺序存取是按照文件的逻辑地址顺序存取。
固定长记录的顺序存取是十分简单的。读操作总是读出上一次读出的文件的下一个记录,同时,自动让文件记录读指针推进,以指向下一次要读出的记录位置。如果文件是可读可写的。再设置一个文件记录指针,它总指向下一次要写入记录的存放位置,执行写操作时,将一个记录写到文件 末端。允许对这种文件进行前跳或后退N(整数)个记录的操作。顺序存取主要用于磁带文件,但也适用于磁盘上的顺序文件。
可变长记录的顺序文件,每个记录的长度信息存放于记录前面一个单元中,它的存取操作分两步进行。读出时,根据读指针值先读出存放记录长度的单元 。然后,得到当前记录长后再把当前记录一起写到指针指向的记录位置,同时,调整写指针值 。
由于顺序文件是顺序存取的,可采用成组和分解操作来加速文件的输入输出。
直接存取(随机存取法):
很多应用场合要求以任意次序直接读写某个记录。例如,航空订票系统,把特定航班的所有信息用航班号作标识,存放在某物理块中,用户预订某航班时,需要直接将该航班的信息取出。直接存取方法便适合于这类应用,它通常用于磁盘文件。
为了实现直接存取,一个文件可以看作由顺序编号的物理块组成的,这些块常常划成等长,作为定位和存取的一个最小单位,如一块为1024字节、4096字节,视系统和应用而定。于是用户可以请求读块22、然后,写块48,再读块9等等。直接存取文件对读或写块的次序没有限制。用户提供给操作系统的是相对块号,它是相对于文件开始位置的一个位移量,而绝对块号则由系统换算得到。
索引存取:
第三种类型的存取是基于索引文件的索引存取方法。由于文件中的记录不按它在文件中的位置,而按它的记录键来编址,所以,用户提供给操作系统记录键后就可查找到所需记录。通常记录按记录键的某种顺序存放,例如,按代表健的字母先后次序来排序。对于这种文件,除可采用按键存取外,也可以采用顺序存取或直接存取的方法。信息块的地址都可以通过查找记录键而换算出。实际的系统中,大都采用多级索引,以加速记录查找过程。
⑤ 简述Linux有技术特点 急
一、Linux服务器版本的关键技术特点 1.中文平台 以前的中文平台在X Window下着重于截取X的函数或通讯协议,红旗Linux 2.0在红旗Linux1.1.2的基础上有了重大突破,完全在国际化的基础上架构了全新的中文显示技术,没有对X的函数及通信协议作任何修改就完全能够显示汉字,支持TrueType显示,并且支持TrueType的无级缩放与字型变换等。 长期以来Linux的中文输入处于非常混乱的局面,其实在X Window上很早就有一套国际规范来解决X上的输入问题,这就是XIM。Rfinput是红旗Linux利用Imdkit开发的遵循XIM的输入法,她支持智能ABC、GBK拼音、区位、郑码,以及在香港很有声望的九方输入法,并可以方便地对它进行扩充。 红旗Linux服务器版支持三种语言,即简体中文、繁体中文和英文,用户可自由在三种语言之间进行切换。 2.日志文件系统 尽管Linux可以支持种类繁多的文件系统,但是几乎所有的Linux发行版都用ext2作为默认的文件系统。ext2在写入文件内容的同时并没有写入文件的meta-data和文件有关的信息,如果在写入文件内容之后但在写入文件的meta-data之前,突然断电,文件系统就会处于不一致的状态。在一个需要大量文件操作的系统中,出现这种情况会导致很严重的后果。重新启动的时候,Linux会运行一个叫做“fsck”(file system check)的程序,扫描整个文件系统。修复不了是经常的事。如果文件系统很大,fsck扫描要费很长时间。在一个有数十亿个文件的计算机上,fsck可能要运行10个小时以上。在这段时间内,系统是不可用的。 日志文件系统可以帮助解决这个问题。目前正在开发的有三种日志文件系统:ReiserFS、ext3、jfs,其中已经完成且应用较多的是ReiserFS文件系统,一直被用在SGI的高端Unix上面。据说在Linux内核2.4.0以上的版本可能将采用ReiserFS作为它的文件系统。当前的ReiserFS只能在Intel结构体系上使用,支持其他体系结构的版本正在积极开发中。 ReiserFS文件系统与ext2相比有很多特点: (1)搜寻方式 ReiserFS是基于平衡树的文件系统结构,尤其对于大量文件的巨型文件系统,如服务器上的文件系统,搜索速度要比ext2快;ext2使用局部的二分查找法,综合性能比不上ReiserFS。 (2)空间分配和利用情况 ReiserFS里的目录是完全动态分配的,因此不存在ext2中常见的无法回收巨型目录占用的磁盘空间的情况。ReiserFS里小文件(<4kB)可以直接存储进树,小文件读取和写入的速度更快。 (3)先进的日志机制 ReiserFS有先进的日志(Journaling/logging)机制,在系统意外崩溃的时候,未完成的文件操作不会影响到整个文件系统结构的完整性。对于较大型的服务器文件系统,ext2“文件系统检查”可能要持续好几个小时。在日志的帮助下,每个对数据结构的改变都被记录下来,日志机制保证了在每个实际数据修改之前,相应的日志已经写入硬盘。在系统突然崩溃后,下次启动只需几秒钟就能恢复成一个完整的系统。 (4)支持海量磁盘和优秀的综合性能 ReiserFS的出现,使Linux拥有了像Irix/AIX那样的高档商用Unix才有的高级文件系统,可轻松管理上百GB的文件系统。 ReiserFS一个最受人批评的缺点是每升级一个版本,都将要将磁盘重新格式化一次,这个缺点也正在改进中。 3.服务器集群(Cluster) Cluster是将两个(或更多)系统(节点)协调起来一起工作,提供相同服务或实现相同目的的一种计算机机群;在外面看来,整个像一个系统一样,这样可用来提高服务的稳定性和/或核心网络服务的性能。Cluster已经发展多年,但原来都需要专业的软/硬件设备才能实现,只有少数公司才能用得起。随着Linux的流行,出现了许多基于Linux、基于PC的Cluster解决方案,使更多的人有机会构建自己的Cluster,而且这些基于Linux的软件大多都是遵循GPL协议的。 许多自由软件的程序员在Linux集群技术方面作了许多卓越的工作,使Linux具有强大的集群能力。而其中引以自豪的是LVS(Linux Virtual Server)项目组,负责人是中国人—张文嵩,他们的成果已被广为接受。红旗Linux服务器版2.0整合了这些技术成果,将其成功的引进到红旗Linux中,为用户提供了这种Linux虚拟服务器的解决方案。 (1)集群技术的分类 ①基于双机系统的集群 这种方式的特点是利用硬件的方式来提高系统的高可用性,严格地讲还不能称为真正意义的集群,实际上是两台(或更多台)计算机通过一定方式互相监听,实现热备份。当其中主节点出现问题时,备用机能够自动立即接替工作,使用户感觉不出停机。在主节点恢复正常之后,备用机又会把工作还给主节点。 ②基于负载均衡(Load Balance)的集群 Load Balance应用在Web Server上比较多。用户访问一个地址,但实际上后台有若干台服务器在提供服务。而当服务请求达到饱和时,还可以很容易地再添加新的节点而不用停掉整个Cluster,实现所谓的“热插拔”。而且,Cluster还会查询真实节点的情况,当某台真实节点没有响应时,就不再把任务分配到那里,直到这台节点恢复正常。
⑥ 简述Linux有技术特点 急
一、 Linux的主要特点 1.符合POSIX 1003.1标准POSIX 1003.1标准定义了一个最小的Unix操作系统接口,任何操作系统只有符合这一标准,才有可能运 行Unix程序。考虑到Unix具有丰富的应用程序,当今绝大多数操作系统都把满足POSIX 1003.1标准作为实现 目标,Linux也不例外,它完全支持POSIX 1003.1标准。另外,为了使Unix System V和BSD上的程序能直接在 Linux上运行, Linux还增加了部分System V和BSD的系统接口,使Linux成为一个完善的Unix程序开发系统。 CT6itug
CT6itug
2.支持多用户访问和多任务编程Linux是一个多用户操作系统,它允许多个用户同时访问系统而不会造成用户之间的相互干扰。另外, Linux还支持真正的多用户编程,一个用户可以创建多个进程,并使各个进程协同工作来完成用户的需求. CT6itug
CT6itug
3.采用页式存储管理 页式存储管理使Linux能更有效地利用物理存储空间,页面的换入换出为用户提供了更大的存储空间。 CT6itug
CT6itug
4.支持动态链接用户程序的执行往往离不开标准库的支持,一般的系统往往采用静态链接方式--即在装配阶段就已将 用户程序和标准库链接好,这样,当多个进程运行时,可能会出现库代码在内存中有多个副本而浪费存储 空间的情况。Linux 支持动态链接方式,当运行时才进行库链接,如果所需要的库已被其它进程装入内存, 则不必再装入,否则才从硬盘中将库调入。这样能保证内存中的库程序代码是唯一的。 CT6itug
CT6itug
5.支持多种文件系统 Linux能支持多种文件系统。目前支持的文件系统有:EXT2、EXT、XIAFS、ISOFS、HPFS、MSDOS、UMSDOS、 PROC、NFS、SYSV、MINIX、SMB、UFS、NCP、VFAT、AFFS。Linux最常用的文件系统是EXT2,它的文件名长度可 达255字符,并且还有许多特有的功能,使它比常规的Unix文件系统更加安全。 CT6itug
CT6itug
6.支持TCP/IP、SLIP和PPP在Linux中,用户可以使用所有的网络服务,如网络文件系统、远程登录等。SLIP和PPP能支持串行线上的 TCP/IP协议的使用,这意味着用户可用一个高速Modem通过电话线连入Internet网中。 CT6itug
CT6itug
除了上述基本特征外,Linux还具有其独有的特色: CT6itug
CT6itug
1.支持硬盘的动态Cache 这一功能与MS DOS中的Smartdrive相似。所不同的是,Linux能动态调整所用的 Cache存储器的大小,以适合当前存储器的使用情况,当某一时刻没有更多的存储空间可用时,Cache将被减少, 以增加空闲的存储空间,一旦存储空间不再紧张,Cache的大小又将增加。2.支持不同格式的可执行文件 Linux具有多种模拟器,这使它能运行不同格式的目标文件。其中,DOS和 MS Windows正在开发之中,iBCS2模拟器能运行SCO Unix的目标程序。(iBCS2 模拟器不是Linux标准核心的 一部分,但可从ftp.informatik.hu berlin.de:/pub/os/linux下载) CT6itug
CT6itug
二、 Linux的主要构成 CT6itug
CT6itug
Linux采用页式存储管理机制,每个页面的大小随处理机芯片而异。例如,Intel 386处理机页面大小 可为4KB和2MB两种,而Alpha处理机页面大小可为8KB、16KB、32KB和64KB。页面大小的选择对地址变换算 法和页表结构会有一定的影响,如Alpha的虚地址和物理地址的有效长度随页面尺寸的变化而变化,这种变 化必将在地址变换和页表项中有所反映。在Linux中,每一个进程都有一个比实际物理空间大得多的进程虚拟空间,为了建立虚拟空间和物理空 间之间的映射,每个进程还保留一张页表,用于将本进程空间中的虚地址变换成物理地址。页表还对物理页 的访问权限作出了规定,定义了哪些页可读写,哪些页是只读页,在进行虚实变换时,Linux将根据页表中规 定的访问权限来判定进程对物理地址的访问是否合法,从而达到存储保护的目的。 Linux存储空间分配遵循的是不到有实际需要的时候决不分配物理空间的原则。当一个程序加载执行时, Linux只为它分配了虚空间,只有访问某一虚地址而发生了缺页中断时,才为它分配物理空间,这样就可能 出现某些程序运行完成后,其中的一些页从来就没有装进过内存。这种存储分配策略带来的好处是显而易见的,因为它最大限度地利用了物理存储器。尽管Linux对物理存储器资源的使用十分谨慎,但还是经常出现物理存储器资源短缺的情况。Linux有一 个名为kswapd的守护进程专门负责页面的换出,当系统中的空闲页面小于一定的数目时,kswapd将按照一定的淘 汰算法选出某些页面,或者直接丢弃(页面未作修改),或者将其写回硬盘(页面已被修改)。这种换出方式不 同于较旧版本Unix的换出方式,它是将一个进程的所有页全部写回硬盘。相比之下,Linux的效率更高。 CT6itug
CT6itug
2.进程管理在Linux中,进程是资源分配的基镜ノ唬 凶试炊际且越 涛 韵罄唇 蟹峙涞摹?在一个进程的生 命期内,它会用到许多系统资源,会用CPU运行其指令,用存储器存储其指令和数据,它也会打开和使用文件 系统中的文件,直接或间接用到系统中的物理设备,因此,Linux设计了一系列的数据结构,它们能准确地描 述进程的状态和其资源使用情况,以便能公平有效地使用系统资源。Linux的调度算法能确保不出现某些进程 过度占用系统资源而导致另一些进程无休止地等待的情况。 CT6itug
CT6itug
进程的创建是一个十分复杂的过程,通常的做法需为子进程重新分配物理空间,并把父进程空间的内容全 盘复制到子进程空间中,其开销非常大。为了降低进程创建的开销,Linux采用了Copy on write技术,即不 拷贝父进程的空间,而是拷贝父进程的页表,使父进程和子进程共享物理空间,并将这个共享空间的访问权限 置为只读。当父进程和子进程的某一方进行写操作时,Linux检测到一个非法操作,这时才将要写的页进行复制 。这一做法免除了只读页的复制,从而降低了开销。Linux目前尚未提供用户级线程,但提供了核心级线程,核心线程的创建是在进程创建的基础上稍做修改, 使创建的子进程与父进程共享虚存空间。从这一意义上讲,核心线程更像一个共享进程组。CT6itug
CT6itug
3.文件系统Linux最重要的特征之一就是支持多个不同的文件系统,前面我们已经看到,Linux目前支持的文件系统 多达十余种,随着时间的推移,这一数目还在不断增加。在Linux中,一个分离的文件系统不是通过设备标识 (如驱动器号或驱动器名)来访问,而是 把它合到一个单一的目录树结构中,通过目录来访问,这一点与Unix十分相似。Linux用 安装命令将一个新的文件系统安装到系统单一目录树的某一目录下,一旦安装成功,该目录下的所有内容将 被新安装的文件系统所覆盖,当文件系统被卸下后,安装目录下的文件将会被重新恢复。CT6itug
CT6itug
Linux最初的文件系统是Minix。该文件系统对文件限制过多,并且性能低下,如文件名长度不能超过14 个字符、文件大小不能超过64MB。为了解决这些问题,Linux的开发者们设计了一个Linux专用的文件系统EXT。 EXT对文件的要求放松了许多,但在性能上并没有大的改观,于是就有了后面的EXT2文件系统。EXT2文件系统 是一个非常成功的文件系统,它无论是对文件的限制还是在性能方面都大大优于EXT文件系统,所以,EXT2自 从推出就一直是Linux最常用的文件系统。为了支持多种文件系统,Linux用一个被称为虚拟文件系统(VFS)的接口层将真正的文件系统同操作系统及 系统服务分离开。VFS掩盖了不同文件系统之间的差异,使所有文件系统在操作系统和用户程序看来都是等同的。VFS允许用户同时透明地安装多个不同的文件系统。 CT6itug
CT6itug
4.进程间通信Linux提供了多种进程间的通信机制,其中,信号和管道是最基本的两种。除此以外,Linux也提供 System V的进程间通信机制,包括消息队列、信号灯及共享内存。为了支持不同机器之间的进程通信, Linux还引入了BSD的Socket机制。 CT6itug
CT6itug
三、 Linux的不足及发展趋势Linux从出现到现今只经历了短短七年的时间,但其发展速度是惊人的,这与它的开放性和优良的性能 是密不可分的。不过我们应该看到,作为一个由学生开发的系统,Linux还有许多先天不足,它的设计思想 过多地受到传统操作系统的约束,没有体现出当今操作系统的发展潮流,具体表现在以下几个方面: CT6itug
CT6itug
不是一个微内核操作系统;是一个分布式操作系统;不是一个安全的操作系统;没有用户线程;不支持实时处理; CT6itug
CT6itug
代码是用C而不是C++这样的现代程序设计语言编写的。尽管Linux有这样和那样的不足,但其发展潜力不容低估,其发展的动力就是遍布全球、为数众多的 Linux热心者。今后Linux将会朝着完善功能、提高效率的方向发展,包括允许用户创建线程、增加实时处 理功能、开发适合多处理机体系结构的版本。我们相信,Linux、Unix及NT三足鼎立的时代将为期不远。 Linux主要由存储管理、进程管理、文件系统、进程间通信等几部分组成,在许多算法及实现策略上, Linux借鉴了Unix的成功经验,但也不乏自己的特色。 CT6itug
CT6itug
1.存储管理 作为一个操作系统,Linux几乎满足当今Unix操作系统的所有要求,因此,它具有Unix操作系统的基本特征。
⑦ linux 文件系统 是什么意思
文件系统是操作系统用于明确存储设备(常见的是磁盘,也有基于NANDFlash的固态硬盘)或分区上的文件的方法和数据结构;
即在存储设备上组织文件的方法。
操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。
文件系统由三部分组成:文件系统的接口,对对象操纵和管理的软件集合,对象及属性。
从系统角度来看,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。