📄 00000003.htm
字号:
不过,绝大多数的困难和微妙之处都已经解决,剩下的问题都是以前遗留的。( <BR>all that remains are problems derived from a legacy world.) <BR> <BR>LINUX2.4与386之前的Intel芯片 <BR> <BR>有趣的是,不少人向我询问LINUX对386之前的Intel芯片的支持。至少目前的回答 <BR>是:查无此物。一个姐妹项目,ELKS(可嵌入LINUX子集)正致力于为这些硬件开 <BR>发一个类LINUX的操作系统,并在硬件支持的前提下提供保护模式。但是,这个开 <BR>发项目并不属于LINUX,所以也不在本文讨论范围之内。 <BR> <BR>总线--ISA,PCI,USB,MCA,等等等等 <BR> <BR>处理器只是计算机的一小部分。同样主要的是总线结构。总线负责连接(或者不负 <BR>责地连接)内部和外部设备。到目前为止,LINUX2.4并没有怎样改动已支持总线的 <BR>内部工作机制,包括ISA, EISA,VLB,PCI和MCA,只是清除BUG和融入新的资源模 <BR>式。这方面的一个好消息是ISA 即插即用的实现终于在内核层实现了。将来,这会 <BR>允许PNP设备无须任何附加的配置工具就可以使用,也就是真正的即插即用。 <BR> <BR>这方面还有更令人振奋的消息。USB,一种新的外部总线类型,支持鼠标、键盘、 <BR>声卡和扫描仪这样的外部设备,也即将被内核支持。本文写作时,支持还没有到 <BR>100%,许多的USB设备还没有得到支持。但我相信LINUX支持的设备只会与日俱增 <BR>,就象帧缓冲设备一样。帧缓冲设备是LINUX2.2引入的一项特性,见下文。目前, <BR>鼠标和键盘的工作基本尽如人意,声卡的支持在迅速发展。其他设备,如MODEM和 <BR>网卡已经有初步的支持,但驱动程序还不完整。 <BR> <BR>除USB之外,LINUX2.4也支持I2O设备(智能输入输出),一种PCI的扩展。从理论 <BR>上说,这会促进更多与操作系统无关的设备和驱动程序的产生。许多I2O设备已经 <BR>在LINUX下正常运行,LINUX2.4发行前会支持更多。 <BR> <BR>PCMCIA(笔记本电脑中风行的半外部式总线)支持将会成为标准内核的一部分。 <BR>PCMCIA的用户再也无需下载安装特殊的源代码了。 <BR> <BR>LINUX与ISA即插即用 <BR> <BR>我曾经一遍又一遍地听到这样的问题:“LINUX何时会支持即插即用?”。这问题 <BR>本身可以有几种理解,而LINUX支持某些即插即用(如PCI)已经好几年了。ISA即 <BR>插即用是ISA总线标准的一个超集,一度让许多LINUX用户头痛。我高兴地宣布, <BR>LINUX2.4终于会直接支持和自动配置PNP设备了。不过,本文成文时,还有许多设 <BR>备的驱动模块还没有作相应的调整。 <BR> <BR>块设备--磁盘驱动器、RAID控制卡等 <BR> <BR>对大多数用户来说,LINUX中本质上有三种不同的设备:块设备、字符设备和网络 <BR>设备。我们会依次讨论。 <BR> <BR>简单地说,块设备就是这样的设备,其存储的数据能被表示成可分别访问的小块。 <BR>用更专业化一些的方式来说,块设备就是支持随机存取的设备;它允许用户搜寻到 <BR>设备上任一角落然后进行读写(这种定义也在一定程度上简化了。)块设备的一般 <BR>例子是硬盘、软盘、RAM盘、任何可以想象为“盘”的东西。如果某个设备有些特 <BR>别的功能,例如能够EJECT,这些功能将由ioct ls(I/O Controls,I/O控制)实 <BR>现,任何特权足够的程序都可以调用。LINUX2.2已经支持大多数 在企业中和桌面 <BR>上普遍使用的存储设备类型,包括RAID控制卡,IDE和SCSI硬盘,还有其他许多设 <BR>备。LINUX2.4会在几个重要的方面继续提高。 <BR> <BR>IDE是今天的PC上使用最广泛的硬盘类型。每个IDE控制卡支持两个独立的盘(可以 <BR>是硬盘、光驱等),每个盘在LINUX里表现为独立的块设备。LINUX2.4在这方面的 <BR>进展是把单个系统支持的IDE控制器数从2.2的4个增加到10个,支持的IDE盘数也相 <BR>应加到20个,DVD和CD- ROM的换盘机(译注:DVD/CD-ROM Changer,支持三碟联放 <BR>之类的功能)也得到了更好 的支持。 使LINUX完全透明地支持可写CD和DVD的工作 <BR>还在进行之中,有可能赶不上2.4的 发行。目前,对这些设备的支持还限于只读的 <BR>,但可以把预先准备好的IMAGE直接拷贝到CD或 DVD上。最后,LINUX2.4能够支持 <BR>许多新芯片组的Ultra-DMA功能,并且绕开一些旧硬件中的BUG。 <BR> <BR>LINUX2.4的SCSI子系统也有进步,主要是又增加了新的控制卡。尽管大家长期等待 <BR>的SCSI系统重写没有发生,但对代码的大清理已在进行。 <BR> <BR>“裸I/O”是一个从商业UNIX传到LINUX里的概念。对一个裸设备的访问不经过缓冲 <BR>,访问动作立即生效,而且内存里的数据总与物理盘上的数据保持一致。这一功能 <BR>在企业级应用中大有用武之地,因为它允许在系统发生故障时,对那些超级重要的 <BR>数据提供更强的保护。同时,许多数据库软件认为自己能比主机的文件系统更高效 <BR>地处理缓存问题,因此也使用这一功能。从前这一概念之所以没有得到实施,是因 <BR>为商业UNIX没有一种伸缩性强的方法来分配和访问这些设备,它们要求每个块设备 <BR>都有相应的裸设备。经过长时间的考虑和许多被否决的建议,最后决定建立一个裸 <BR>设备节点的池,其中每个节点都可以与任意一个块设备关联。这样我们可以需要多 <BR>少裸设备,就分配多少个节点。 <BR> <BR>块设备可以有许多应用。使用块设备的最普遍方式是加载上面的文件系统。(在内 <BR>核内部,文件系统代码就叠在块设备驱动模块之上)。当然,文件系统在所有的 <BR>LINUX支持的平台上都可以用,不仅限是i386的LINUX。 <BR> <BR>LINUX2.4包括了2.2里的所有文件系统:FAT(MSDOS),VFAT(Windows 9x), <BR>NTFS (WindowsNT),HFS(Macintosh)和许许多多的其他文件系统。为支持新的 <BR>页面缓存系统,所有这些文件系统都或多或少地重写过,有的经历过大手术,也由 <BR>此得到了性能提高。事情不好的一面是,专为2.2编译的二进制文件系统模块会无 <BR>法工作。(在驱动模块层,LINUX不向下兼容。一般源码公开的模块会很快更新, <BR>而二进制模块的提供商或者也快速更新,或者开放源码。) <BR> <BR>一些用户会注意到与某些操作系统兼容性的大改善。OS/2用户终于可以在LINUX下 <BR>写他们的硬盘了。可惜NT用户还没有那样的奢侈,除非他们愿意使用一个“实验性 <BR>”的驱动程序--在特殊情况下可能造成文件系统破坏。2.4会增强与其他UNIX的 <BR>兼容性。一个关键性突破是将支持SGI 的IRIX上的xfs文件系统以及IRIX磁盘标记 <BR>格式(分区表)。另外,由于支持了CDROM上的 UFS,对NEXTSTEP的支持也会改善 <BR>。 <BR> <BR>通过SMB(Server Message Block protocol)使用WINDOWS文件的用户应该会高兴 <BR>, 因为不会再有编译选项让他们选是否要绕过Win9x的BUG了。现在,LINUX会自动 <BR>检测要连接的文件系统,有必要的话自动使用针对Win9x的解决办法。这使LINUX在 <BR>异种操作系统共存的环境下吸引力大增。(上面说的只是作为SMB的客户机,服务 <BR>器的功能可以由广泛使用的SAMBA软件包承担。) <BR> <BR>对许多LINUX用户来说,共享其他UNIX系统的文件尤为重要。LINUX2.4将首次支持 <BR>NFS版本3的协议。版本3包括了许多方面的改进,是企业用户对LINUX要求得最多的 <BR>一个特性。 <BR> <BR>LINUX2.4还是缺少了一些东西。例如,目前还没有日志式的文件系统。由于日志式 <BR>文件系统较短的文件系统检查时间和数据恢复的简便程度,许多人认为这是企业级 <BR>系统的一个入门功能。(译注:这里作者可能有误。上文提到的IRIX xfs就是一种 <BR>高性能的日志文件系统,但不知 2.4发行时会不会认为是LINUX的NATIVE文件系统 <BR>。另外,ext3,目前LINUX缺省文件系统ext2的后继者,会支持日志功能,而且完 <BR>全向下兼容。目前ext3正在BETA,有兴趣者可以到 <A HREF="ftp://ftp.uk.Linux.">ftp://ftp.uk.Linux.</A> <BR>org/pub/Linux/sct/fs/jfs/下载。)Macintosh上的HFS+,HFS的后继者尚未被支 <BR>持。还有DVD上用的UDF,也没有支持。大家都希望这些功能可以集成到2.4,但代 <BR>码冻结(code freeze,除了消灭BUG以外不改代码,以便测试的开发阶段)就在眼 <BR>前。 <BR> <BR>帧缓冲 <BR> <BR>另一种更为复杂的块设备是帧缓冲。帧缓冲只是显示内存在虚拟内存中的表现形式 <BR>。读写这块内存,屏幕上像素的颜色就会变化。因为帧缓冲支持通过ioctl改变调 <BR>色板以及其他的视频功能,因此比其他的块设备复杂。(也可以“格式化”这种设 <BR>备,并且建立和加载文件系统,不过我不推荐任何人这样做。) <BR> <BR>2.4包括了一些新的驱动程序、增强了一些旧的驱动程序。现在,尽管Linux的帧缓 <BR>冲未必性能最佳,未必支持所有的模式,但至少可以支持许多种“标准”的显卡。 <BR>请记住这一功能可以不启用,在i386上,只有除此之外别无他法支持显卡的人才需 <BR>要。(译注:帧缓冲本来就是工作站上的概念)现在,Xfree比内核支持的显示卡 <BR>多得多,所以用X一般不需要内核支持。(SVG Alib与其他的库函数允许直接处理 <BR>被支持的硬件,但使用它们必须谨慎,否则会有安全问题。) <BR> <BR>字符设备-键盘、鼠标、主控台和端口 <BR> <BR>下一类LINUX能够识别的设备是字符设备。字符设备在存取时没有“位置”的概念 <BR>,也无法不按顺序访问,这类设备包括终端、端口、鼠标、键盘以及其他你可以想 <BR>到的东西。LINUX2.4在这方面也有进展。 <BR> <BR>最大的新闻当然是对USB鼠标和键盘的支持。一插上USB总线,这些设备就可以和传 <BR>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -