Home About us Products Services Contact us Bookmark
:: wikimiki.org ::
GNU

GNU

GNU还指一种大型的哺乳动物——牛羚 GNU计划,又称革奴计划,是由Richard Stallman在1983年9月27日公开发起的。它的目标是创建一套完全自由操作系统。Richard Stallman最早是在net.unix-wizards新闻组上公布该消息,并附带一份《GNU宣言》等解释为何发起该计划的文章,其中一个理由就是要“重现当年软件界合作互助的团结精神”。 GNU是“GNU's Not Unix”的递归缩写。Stallman宣布GNU应当发音为Guh-NOO以避免与new这个单词混淆(注:Gnu在英文中原意为非洲牛羚,发音与new相同)。UNIX是一种广泛使用的商业操作系统的名称。由于GNU将要实现UNIX系统的接口标准,因此GNU计划可以分别开发不同的操作系统部件。GNU计划采用了部分当时已经可自由使用的软件,例如TeX排版系统和X Window视窗系统等。不过GNU计划也开发了大批其他的自由软件。 为保证GNU软件可以自由地“使用、复制、修改和发布”,所有GNU软件都在一份在禁止其他人添加任何限制的情况下授权所有权利给任何人的协议条款,GNU通用公共许可证(GNU General Public License,GPL)。这个就是被称为“反版权”(或称Copyleft)的概念。 1985年Richard Stallman又创立了自由软件基金会(Free Software Foundation)来为GNU计划提供技术、法律以及财政支持。尽管GNU计划大部分时候是由个人自愿无偿贡献,但FSF有时还是会聘请程序员帮助编写。当GNU计划开始逐渐获得成功时,一些商业公司开始介入开发和技术支持。当中最著名的就是之后被Red Hat兼并的Cygnus Solutions。 到了1990年,GNU计划已经开发出的软件包括了一个功能强大的文字编辑器Emacs,C语言编译器GCC,以及大部分UNIX系统的程序库和工具。唯一依然没有完成的重要组件就是操作系统的内核(称为HURD)。 1991年Linus Torvalds编写出了与UNIX兼容的Linux操作系统内核并在GPL条款下发布。Linux之后在网上广泛流传,许多程序员参与了开发与修改。1992年Linux与其他GNU软件结合,完全自由的操作系统正式诞生。该操作系统往往被称为“GNU/Linux”或简称Linux。(尽管如此GNU计划自己的内核Hurd依然在开发中,目前已经发布Beta版本。) 许多UNIX系统上也安装了GNU软件,因为GNU软件的质量比之前UNIX的软件还要好。GNU工具还被广泛地移植到WindowsMac OS上。

参见


- Richard Stallman
- 自由软件基金会
- 自由软件
- 自由软件运动
- GNU/Linux

外部连接


- [http://www.gnu.org/home.cn.html GNU计划官方网站]
- [http://groups.google.com/groups?hl=en&selm=771%40mit-eddie.UUCP Stallman1983年宣告GNU计划开始的宣言]
- [http://www.gnu.org/philosophy/philosophy.zh.html GNU 專案之哲學] category:自由软件 ja:GNU ko:GNU ms:GNU simple:GNU th:กนู

哺乳动物


狮子
哺乳动物
科学分类法
动物界
脊索动物门
亚门脊椎动物亚门
Mammalia

- 单孔目
- 鼩负鼠目
- 智鲁负鼠目
- 袋鼬目
- 袋貂目
- 袋狸目
- 有袋目
- 袋鼹目
- 袋鼠目
- 贫齿目
- 食虫目
- 树鼩目
- 皮翼目
- 翼手目
- 灵长目
- 食肉目
- 鲸目
- 海牛目
- 长鼻目
- 奇蹄目
- 蹄兔目
- 管齿目
- 偶蹄目
- 鳞甲目
- 啮齿目
- 兔形目
- 象鼩目
哺乳动物是脊椎动物亚门下的一个纲,其拉丁文学名是Mammalia,其含意是乳房的意思。中文学名称为哺乳纲。除六种最原始的哺乳动物外所有的哺乳动物都是直接生仔的。全世界一共有估计4000种左右哺乳动物,人类也是其中之一。

进化史

最早的哺乳动物化石是在中国发现的吴氏巨颅兽Hadrocodium wui),它生活在2亿年前的侏罗纪。哺乳动物(尤其是早期的哺乳动物)与爬行动物非常重要的区别在于其牙齿。爬行动物的牙齿都是一样的,同一个动物的牙齿没有区别。哺乳动物的牙齿按它们在中的部位不同。此外爬行动物的牙齿不断更新,哺乳动物的牙齿除乳牙外不再更新。在动物界中只有哺乳动物中有三块骨头。它们是由爬行动物的两块颌骨进化而来的。 到第三纪为止所有的哺乳动物都很小。在恐龙灭绝后哺乳动物占据了许多生态环境。到第四纪哺乳动物已经成为陆地上占支配地位的动物了。

参见


- 哺乳动物分类表
- 中国特有兽种列表
-
category:脊椎動物亞門 ja:哺乳類 ko:포유류 ms:Mamalia simple:Mammal th:สัตว์เลี้ยงลูกด้วยนม zh-min-nan:Chhī-leng tōng-bu̍t

Richard Stallman

)著,歐萊禮出版]] 美國人理查德·马修·斯托曼(,簡稱 ,生于1953年3月16日),自由软件运动的精神領袖、GNU计划以及自由软件基金会(Free Software Foundation)的创立者。作為一個著名的黑客,他的主要成就包括Emacs及後來的GNU EmacsGNU C 編譯器GNU 除錯器。 他所寫作的GNU通用公共許可證GNU GPL)是世上最廣為採用的自由軟體許可證,為copyleft觀念開拓出一條嶄新的道路。 1990年代中期,斯托曼把他大部時間花在作為一個政治運動者,為自由軟體辯護,對抗軟體概念專利版權法的擴張。他仍在程式設計方面奉獻的心力都放在GNU Emacs。他的演講當中大約半數有收入,這讓他能夠養活自己。 他最大的影响是为自由软件运动竖立了道德、政治以及法律框架。他被许多人誉为当今自由软件的鬥士、伟大的理想主义者,但同时也有人批评他过于固执、观点落伍。

經歷

斯托曼1953年出生于美国纽约曼哈顿地区,1971年进入哈佛大学学习,同年受聘于麻省理工學院人工智能实验室(AI Laboratory),成为一名职业黑客。 在AI实验室工作期间,斯托曼开发了多种今后影响深远的软件,其中最著名的就是Emacs。斯托曼在AI是一名典型的黑客,是整个黑客文化的一份子。 然而进入八十年代后,黑客社群在软件工业商业化的强大压力下日渐土崩瓦解,甚至连AI实验室的许多黑客也组成了Symbolic公司,试图以专利软件来取代实验室中黑客文化的产物--免费可自由流通的软件。 斯托曼对此感到气愤与无奈。在对Symbolic进行了一段时间的抗争后,他于1985年发表了著名的GNU宣言(GNU Manifesto),正式宣布要开始进行一项宏伟的计划:创造一套完全自由免费,兼容于Unix的操作系统GNU(GNU's Not Unix!)。之后他又建立了自由软件基金会来协助该计划。 他于1989年与一群律师起草了广为使用的GNU通用公共协议证书(GNU General Public License, GNU GPL),创造性地提出了“反版权”(或“版权属左”,或“开权”,copyleft)的概念。 同时,GNU计划中除了最关键的Hurd操作系统内核之外,其他绝大多数软件已经完成。

術語

GNU/Linux

1991年芬兰大学生Linus Torvalds在GPL条例下发布他自己创作的Linux操作系统内核,至此GNU计划正式完成,操作系统被命名为GNU/Linux(或简称Linux)。 GNU/Linux演講,題目為「版權與社群」]]

自由軟體

斯托曼是一名坚定的自由软件运动倡导者,与其他提倡开放源代码的人不同,斯托曼并不是从软件质量的角度而是从道德的角度来看待自由软件。他认为使用专利软件是非常不道德的事,只有附带了源代码的程序才是符合其道德标准的。对此许多人表示异议,并也因此有了自由软件运动与开源软件运动之分。

多项荣誉


- 1990年度麦克阿瑟奖(MacArthur Fellowship)
- 1991年美国计算机协会颁发的Grace Hopper Award以表彰他所开发的的Emacs文字编辑器
- 1996年获颁瑞典皇家技术学院荣誉博士学位
- 1998年电子前线基金会(Electronic Frontier Foundation)先锋奖
- 1999年Yuri Rubinsky纪念奖
- 2001年蘇格蘭获颁格拉斯哥大学荣誉博士学位
- 2001年武田研究奖励赏(武田研究奨励賞)
- 2002年成为美国国家工程院院士
- 2003年比利時获颁布鲁塞尔大学荣誉博士学位
- 2004年阿根廷獲頒國立沙爾塔大學榮譽博士學位
- 2004年獲得祕魯國立大學榮譽教授

参见


- GNU
- 自由软件基金会
- 自由软件运动
- Emacs
- GCC
- Linux

外部资源


- [http://www.stallman.org 斯托曼个人主页]
- [http://www.gnu.org/philosophy 自由软件基金会宗旨]
- [http://www.gnu.org 自由软件基金会]
- [http://www.oreilly.com/openbook/freedom/ Free as in Freedom--Biography of Richard Stallman(斯托曼传记)] Category:美国程序员 Category:犹太人 category:自由软件 S ja:リチャード・ストールマン ko:리처드 스톨만 simple:Richard Stallman th:ริชาร์ด สตอลแมน zh-min-nan:Richard Stallman

操作系统

操作系统(Operating System,简称OS) 是计算机系统中负责支撑应用程序运行环境以及用户操作环境的系统软件,同时也是计算机系统的核心与基石。 它的职责通常(但并非绝对)包括对硬件的直接监管、对各种计算资源(如内存、处理器时间等)的管理、以及提供诸如作业管理之类的面向应用程序的服务等等。 操作系统的理论是计算机科学中一个古老而又活跃的分支,而操作系统的设计与实现则是软件工业的基础与核心。

今天的操作系统 

到2005年6月为止,用于通用计算机上的分布的操作系统主要两个家族:类Unix家族和微软Windows家族。 主机系统和嵌入式操作系统使用多样的系统,并且很多和Windows和Unix都没有直接的联系。 类Unix家族包括多个组织的操作系统,其中有几个主要的子类包括System V,BSD和Linux。这里'Unix'是一个商标,开发组织允许使用操作系统在一个定义前提下自由地开发。这名字是通用大型设置操作系统类似组织Unix。Unix系统运行在从巨型机到嵌入式系统的多种机器架构上。Unix 主要使用于重要的商务服务器系统以及学院和工程环境中的工作站之上。和Unix不同,自由软件比如Linux 和 BSD 逐步开始流行,并且开始进入桌面操作系统领域。和一些Unix操作系统不同,像惠普公司的HPUX和IBM公司的AIX是设计仅运行在客户购买的设备上,其中有一些特殊的(比如SUN公司的Solaris)可以运行在客户购买设备和基于工业标准的PC上。APPLE公司的Mac OS X是一个BSD特例,以取代早期小型市场上的苹果公司Mac OS,众多流行的Unix操作系统正在走向一体。 微软公司的Windows操作系统家族起源于早期的IBM PC环境中的MS-DOS,现在版本是基于新的Windows NT内核,第一次是在OS/2中制定。和Unix不同,Windows只能运行在32位和64位的x86 CPU(如Intel或者AMD的芯片)上,尽管早期有版本运行于DEC Alpha,MIPS 和 PowerPC体系结构。今天Windows是一个流行的操作系统,在全球桌面市场中占有90%左右的份额,同时在中低端服务器市场也有广泛的应用,如Web服务器和数据库服务器。 译者提示:NT是 New Technology 而不是 Network Technology,这点很多人都出现过误解. 大型机系统,比如IBM公司的Z/OS,和嵌入式操作系统比如QNX , eCOs 和 PalmOS都是和Unix和Windows无关的操作系统,而Windows CE ,Windows NT Embedded 4.0 和 Windows XP Embedded 都是和Windows相关的。 老的操作系统停留在市场包括类似IBM Windows的OS/2;来自惠普的VMS(以前的DEC);苹果公司的Mac OS操作系统,非Unix先驱苹果公司Mac OS X;和AmigaOS,第一个图形用户界面的操作系统,包括对于普通用户的高级的多媒体能力.

功能

操作系统位于底层硬件与用户之间,是两者沟通的桥梁。用户可以通过操作系统的用户界面,输入命令。操作系统则对命令进行解释,驱动硬件设备,实现用户要求。

结构

操作系统理论研究者有时把操作系统分成四大部分:
- 驱动程序 - 最底层的、直接控制和监视各类硬件的部分,它们的职责是隐藏硬件的具体细节,并向其他部分提供一个抽象的、通用的接口。
- 内核 - 操作系统之最核心部分,通常运行在最高特权级,负责提供基础性、结构性的功能。
- 支承库 - (亦作“接口库”)是一系列特殊的程序库,它们指责在于把系统所提供的基本服务包装成应用程序所能够使用的编程接口(API),是最靠近应用程序的部分。例如,GNU C运行期库就属于此类,它把各种操作系统的内部编程接口包装成ANSI C和POSIX编程接口的形式。
- 外围 - 所谓外围,是指操作系统中除以上三类以外的所有其他部分,通常是用于提供特定高级服务的部件。例如,在微内核结构中,大部分系统服务,以及UNIX/Linux中各种守护进程都通常被划归此列。 当然,本节所提出的四部结构观也绝非放之四海皆准。 例如,在早期的微软视窗操作系统中,各部分耦合程度很深,难以区分彼此。 而在使用外核结构的操作系统中,则根本没有驱动程序的概念。 因而,本节的讨论只适用于一般情况,具体特例需具体分析。 操作系统中四大部分的不同布局,也就形成了几种整体结构的分野。 常见的结构包括:简单结构、层结构、微内核结构、垂直结构、和虚拟机(虛擬機器Virtual Machine)结构。

简单结构

很多商用操作系统都没有清晰的整体结构,系统中的各个部件混杂在一起。 这些操作系统往往是由很小的实验性的项目逐步演化而来的,因而宏观结构非常模糊。 MS-DOS就是一个很好的例子,在设计之初,MS-DOS的设计目标是在比较有限的硬件资源上运行比较有限的应用程序,开发人员很可能都没有预料到它日后在市场上的巨大成功,因而模块之间的相对独立性几乎被忽略。 相似的情况也发生在UNIX家族之中。 早期的UNIX因为受限于当时的硬件能力,也一直都是采用非常简单的、 随着UNIX的不断发展这样结构也很快成为了UNIX演进的瓶颈。 其他采用这种简单结构的操作系统还包括PalmOS 5以前的PalmOS,以及很多其他的小型的嵌入式操作系统

层结构

微内核结构

垂直结构

虚拟机结构

分类

内核结构

:主条目: 内核 内核是操作系统最核心最基础的构件,因而,内核结构往往对操作系统的外部特性以及应用领域有着一定程度的影响。 尽管随着理论和实践的不断演进,操作系统高层特性与内核结构之间的耦合有日趋缩小之势,但习惯上,内核结构仍然是操作系统分类之常用标准。 内核的结构可以分为 单内核(monolithic kernel), 微内核(microkernel), 超微内核(nanokernel), 以及外核(exokernel)等。 详情参见操作系统内核。 单内核结构是操作系统中各核心部件杂然混居的形态,该结构于二十世纪六十年代(亦有二十世纪五十年代初之说,尚存争议),历史最长,是操作系统内核与外围分离时的最初形态。 微内核结构是二十世纪八十年代产生出来的较新的内核结构,强调结构性部件与功能性部件的分离。 二十世纪末,基于微内核结构,理论界中又发展出了超微内核与外内核等多种结构。 尽管自二十世纪八十年代起,大部分理论研究都集中在以微内核为首的“新兴”结构之上,然而,在应用领域之中,以单内核结构为基础的操作系统却一直占据着主导地位。 在众多常用操作系统之中,除了QNX和基于Mach的UNIX等个别系统外,几乎全部采用单内核结构,例如Linux,大部分的Unix,以及Windows微软声称Windows NT是基于改良的微内核架构的,尽管理论界对此存有异议)。 微内核和超微内核结构主要用于研究性操作系统,还有一些嵌入式系统使用外核。 基于单内核的操作系统通常有着较长的历史渊源。 例如,绝大部分UNIX的家族史都可上溯至二十世纪六十年代。 该类操作系统多数有着相对古老的设计和实现 (例如某些UNIX中存在着大量七、八十年代的代码)。 另外,往往在性能方面略优于同一应用领域中采用其他内核结构的操作系统 (但通常认为此种性能优势不能完全归功于单内核结构)。

通用与专用、嵌入式

实时与非实时

实时操作系统”(Real Time OS)泛指所有据有一定实时资源调度以及通讯能力的操作系统。而所谓“实时”,不同语境中往往有着非常不同的意义。某些时候仅仅用作“高性能”的同义词。但在操作系统理论中“实时性”所指的通常是特定操作所消耗的时间(以及空间)的上限是可预知的。比如,如果说某个操作系统提供实时内存分配操作,那也就是说一个内存分配操作所用时间(及空间)无论如何也不会超出操作系统所承诺的上限。实时性在某些领域非常重要,比如在工业控制、医疗器材、影音频合成、以及军事领域,实时性都是无可或缺的特性。 常用实时操作系统有QNXVxWorksRTLinux等等,而Linux、多数UNIX、以及多数Windows家族成员等都属于非实时操作系统。操作系统整体的实时性通常依仗内核的实时能力,但有时也可在非实时内核上建立实时操作系统,很多在Windows上建立的实时操作系统就属于此类。 在POSIX标准中专有一系用于规范实时操作系统的API,其中包括POSIX.4、POSIX.4a、POSIX.4b(合称POSIX.4) 以及POSIX.13等等。符合POSIX.4的操作系统通常被认可为实时操作系统(但实时操作系统并不需要符合POSIX.4标准)。

多任务与单任务

16位、32位、64位

所谓16位、32位、64位等术语有时指总线宽度,有时指指令宽度(在定长指令集中),而在操作系统理论中主要是指内存寻址的宽度。如果内存的寻址宽度是16位,那么每一个内存地址可以用16个二进制位来表示,也就是说可以在64KB的范围内寻址。同样道理32位的宽度对应4GB的寻址范围,64位的宽度对应16 Exabyte的寻址范围。内存寻址范围并非仅仅是对操作系统而言的,其他类型的软件的设计有时也会被寻址范围而影响。但是在操作系统的设计与实现中,寻址范围却有着更为重要的意义。 在早期的16位操作系统中,由于64KB的寻址范围太小,大都都采用“段”加“线性地址”的二维平面地址空间的设计。分配内存时通常需要考虑“段置换”的问题,同时,应用程序所能够使用的地址空间也往往有比较小的上限。 在32位操作系统中, 4GB的寻址范围对于一般应用程序来说是绰绰有余的, 因而,通常使用一维的线性地址空间,而不使用“段”。

参看


- 操作系统内核
- 实时操作系统-分时系统-多任务-嵌入式系统-单一用户-多用户
- 对称多处理并行计算(SMP)-集群(Cluster)-分布式计算
- 操作系统列表
- 64位操作系统
- 计算机科学课程列表

部分操作系统


- FreeBSD
- MS-DOS
- GNU/Linux
- Mac OS
- Windows
- Windows NT
- UNIX
- 其他操作系统

外部链接


-
als:Betriebssystem ja:オペレーティングシステム ko:운영 체제 ms:Sistem pengoperasian simple:Operating system th:ระบบปฏิบัติการ zh-min-nan:Chok-gia̍p hē-thóng

UNIX

UNIX是一个强大的多用户,多任务操作系统,支持多种处理器架构,最早由Ken ThompsonDennis RitchieDouglas McIlroy1969年AT&T贝尔实验室开发。

简介

Ken和Dennis最早是在贝尔实验室开发UNIX的,此后的10年,UNIX在学术机构和大型企业中得到了广泛的应用,当时的UNIX拥有者AT&T公司以低廉甚至免费的许可将UNIX源码授权给学术机构做研究或教学之用,许多机构在此源码基础上加以扩充和改进,形成了所谓的UNIX“变种(Variations)”,这些变种反过来也促进了UNIX的发展,其中最著名的变种之一是由加州大学Berkeley分校开发的BSD产品。 后来AT&T意识到了UNIX的商业价值,不再将UNIX源码授权给学术机构,并对之前的UNIX及其变种声明了版权权利。为了不和AT&T的版权冲突,BSD产品在版本3之后将代码进行了重写,BSD产品在此之后不再包括有版权的UNIX代码。BSD在发展中也逐渐衍生出3个主要的分支:FreeBSDOpenBSDNetBSD。 此后的几十年中,UNIX仍在不断变化,其版权所有者不断变更,授权者的数量也在增加。UNIX的版权曾经为AT&T所有,之后Novell拥有了UNIX,再之后Novell又将版权出售给了SCO(这一事实双方尚存在争议)。有很多大公司在取得了UNIX的授权之后,开发了自己的UNIX产品,比如IBM的AIXHPHPUXSUNSolarisSGIIRIX。 UNIX因为其安全可靠,高效强大的特点在服务器领域得到了广泛的应用,与此形成对比的是,在桌面和个人计算领域,微软Windows系列和苹果电脑Mac OS系列产品占据了绝大部分市场!

历史

初创期

UNIX的诞生和Multics(Multiplexed Information and Computing System)是有一定渊源的。Multics是由麻省理工学院,AT&T贝尔实验室通用电气合作进行的操作系统项目,被设计运行在GE-645大型主机上,但是由于整个目标过于庞大,糅合了太多的特性,Multics虽然发布了一些产品,但是性能都很低,最终以失败而告终。 AT&T最终撤出了投入Multics项目的资源,其中一个开发者,Ken Thompson则继续为GE-645开发软件,并最终编写了一个太空旅行游戏。经过实际运行后,他发现游戏速度很慢而且耗费昂贵——每次运行会花费75美元。 在Dennis Ritchie的帮助下,Thompson用PDP-7汇编语言重写了这个游戏,并使其在DEC PDP-7上运行起来。这次经历加上Multics项目的经验,促使Thompson开始了一个DEC PDP-7上的新操作系统项目。Thompson和Ritchie领导一组开发者,开发了一个新的多任务操作系统。这个系统包括命令解释器和一些实用程序,这个项目被称为UNICS(Uniplexed Information and Computing System),因为它可以支持同时的多用户操作。后来这个名字被改为UNIX。

发展期

最初的UNIX是用汇编语言编写的,一些应用是由叫做B语言解释型语言和汇编语言混合编写的。B语言在进行系统编程时不够强大,所以Thompson和Ritchie对其进行了改造,并与1971年共同发明了C语言。1973年Thompson和Ritchie用C语言重写了UNIX。在当时,为了实现最高效率,系统程序都是由汇编语言编写,所以Thompson和Ritchie此举是极具大胆创新和革命意义的。用C语言编写的UNIX代码简洁紧凑,易移植,易读,易修改,为此后UNIX的发展奠定了坚实基础。 1974年,Thompson和Ritchie合作在ACM通信上发表了一片关于UNIX的文章,这是UNIX第一次出现在贝尔实验室以外。此后UNIX被政府机关,研究机构,企业和大学注意到,并逐渐流行开来。 1975年,UNIX发布了4、5、6三个版本。1978年,已经有大约600台计算机在运行UNIX。1979年,版本7发布,这是最后一个广泛发布的研究型UNIX版本。20世纪80年代相继发布的8、9、10版本只授权给了少数大学。此后这个方向上的研究导致了Plan 9的出现,这是一个新的分布式操作系统。 1982年,AT&T基于版本7开发了UNIX System Ⅲ的第一个版本,这是一个商业版本仅供出售。为了解决混乱的UNIX版本情况,AT&T综合了其他大学和公司开发的各种UNIX,开发了UNIX System V Release 1。 这个新的UNIX商业发布版本不再包含源代码,所以加州大学Berkeley分校继续开发BSD UNIX,作为UNIX System III和V的替代选择。BSD对UNIX最重要的贡献之一是TCP/IP。BSD有8个主要的发行版中包含了TCP/IP:4.1c、4.2、4.3、4.3-Tahoe、4.3-Reno、Net2、4.4以及 4.4-lite。这些发布版中的TCP/IP代码几乎是现在所有系统中TCP/IP实现的前辈,包括AT&T System V UNIX 和Microsoft Windows。 其他一些公司也开始为其自己的小型机或工作站提供商业版本的UNIX系统,有些选择System V作为基础版本,有些则选择了BSD。BSD的一名主要开发者,Bill Joy,在BSD基础上开发了SunOS,并最终创办了Sun Microsystems。 1991年,一群BSD开发者(Donn Seeley、Mike Karels、Bill Jolitz 和 Trent Hein)离开了加州大学,创办了Berkeley Software Design, Inc (BSDI)。BSDI是第一家在便宜常见的Intel平台上提供全功能商业BSD UNIX的厂商。后来Bill Jolitz 离开了BSDI,开始了386BSD的工作。386BSD被认为是FreeBSDOpenBSDNetBSD的先辈。 AT&T继续为UNIX System V增加了文件锁定,系统管理,作业控制,流和远程文件系统。1987到1989年,AT&T决定将Xenix(微软开发的一个x86-pc上的UNIX版本),BSD,SunOS和System V融合为System V Release 4(SVR4)。这个新发布版将多种特性融为一体,结束了混乱的竞争局面。 1993年以后,大多数商业UNIX发行商都基于SVR4开发自己的UNIX变体了。

现况

UNIX System V Release 4发布后不久,AT&T就将其所有UNIX权利出售给了Novell。Novell期望以此来对抗微软的Windows NT,但其核心市场受到了严重伤害,最终Novell将SVR4的权利出售给了X/OPEN Consortium,后者是定义UNIX标准的产业团体。最后X/OPEN和OSF/1合并,创建了Open Group。Open Group定义的多个标准定义着什么是以及什么不是UNIX。 实际的UNIX代码则辗转到了Santa Cruz Operation,这家公司后来出售给了Caldera Systems。Caldera原来也出售Linux系统,交易完成后,新公司又被重命名为SCO Group。

1127部門的解散

根據一項[http://www.unixreview.com/documents/s=9846/ur0508l/ur0508l.html 報導]指出,當年負責研發UNIX與後續維護工作的貝爾實驗室1127部門已於2005年8月正式宣告解散。已退休,現居加州;調到別的部門;在達特茅斯學院擔任教授等等。

标准

从20世纪80年代开始,POSIX,一个开放的操作系统标准就在制定中,IEEE制定的POSIX标准现在是UNIX系统的基础部分。

自由的类UNIX系统

Richard Stallman建立了GNU项目,要创建一个能够自由发布的类UNIX系统。20年来,这个项目不断发展壮大,包含了越来越多的内容。现在,GNU项目开发的产品,比如EmacsGCC等已经成为各种其他自由发布的类UNIX产品中的核心角色。 1990年,Linus Torvalds決定編寫一個自己的Minix內核,初名為Linus' Minix,意為Linus的Minix內核,後來改名為Linux,此內核於1991年正式发布,并逐渐引起人们的注意。当GNU软件与Linux内核结合后,GNU软件构成了这个POSIX兼容操作系统GNU/Linux的基础。今天GNU/Linux已经成为发展最为活跃的自由/开放源码的類UNIX操作系统。 1994年,BSD UNIX走上了复兴的道路。BSD的开发也走向了几个不同的方向,并最终导致了FreeBSD, OpenBSD和NetBSD的出现。
-
Category:操作系统 ja:UNIX ko:유닉스 ms:UNIX simple:Unix th:ยูนิกซ์

TeX

TeX(正式写法TEX,发音为“tekh”),是一个由美国电脑教授高德纳(Donald E. Knuth)编写的功能强大的排版软件。它在学术界十分流行,特别是数学物理学计算机科学界。TeX被普遍认为是一个很好的排版工具,特别是在处理复杂的数学公式时。利用诸如是LaTeX等终端软件,TeX就能够排版出精美的文本。Wikipedia目前也部分支援TeX数学公式显示,参见Wikipedia:数学公式

历史

高德纳最早开始自行编写TeX的原因是当时十分粗糙的排版水平已经影响到他的巨著《计算机程序设计艺术》(The Art of Computer Programming)的印刷质量。他以典型的黑客思维模式,最终决定自行编写一个排版软件——TeX。他原本以为他只需要半年时间,在1978年下半年就能完成,但最终他用了八年时间,直到1985年TeX才最终停止修改。 Guy Steele在高德纳编写其第一版的TeX程式时正好在高德纳所工作的斯坦福大学,当他回到MIT时他在ITS下重写了TeX的输出输入系统。 TeX的第一版是用SAIL编程语言写成的,运行于PDP-10型计算机操作系统是斯坦福大学的WAITS操作系统。在之后的TeX版本中,Knuth发明了所谓的“文学编程”(literate programming),一种从同一源文件自动生成可编译的源代码和高质量的文档的编程方法。这种语言被称为WEB,它所生成的源代码是使用Pascal编程语言。 TeX的版本号码也十分有趣。从TeX第三版开始,之后的升级是在小数点后加入一个新数位,使之越来越接近圆周率\pi的值。TeX目前的版本是3.141592。这显示了TeX已经十分稳定,任何的升级都十分细微。高德纳曾表示“‘(于我过世后的)绝对最后改变’为把版本数改为\pi,那时任何余下的漏洞都成程序的点缀了。” TeX允许自由的再发布及修改,但禁止任何修改版本以TEX或任何其他相似的名字命名。

质量

TeX是非常稳定的程序,高德纳悬赏奖励任何能够在TeX中发现程序漏洞(bug)的人。每一个漏洞的奖励金额从1美分开始,并每年翻倍,直到目前的327.68美元封顶。然而高德纳从未因此而损失大笔金钱,因为TeX中的漏洞少之又少,而真正发现漏洞的人在获得支票后,宁愿将其裱起来留作纪念也不愿拿去兑现! TeX的最后一个bug已经被高德纳自己发现了。

名字

TeX这个词应当发音为“tekh”,其中“kh”的音等同于苏格兰语中“loch”的发音(X其实是希腊字母χ)。TeX这个词在希腊文中是“字”的意思,也是英语单词“text”(文字)的字源。书写时,三个字母都是大写,字母E应当低于其他两个字母。而不支援下标的系统则只能这样书写:“TeX”。 TeX的用户喜欢创造一些和TeX有关的词汇,例如TeXnician(与英语单词technician,技工的发音相近,意为TeX用户),TeXpert(TeX高手),TeXhacker(TeX程序员,TeX黑客)和TeXnique(与英语单词technique,技巧的发音相近,意为TeX的使用技巧)等。

衍生软件

有许多衍生出来的文档处理程序就是基于TeX的,主要的有:
- LaTeX(Lamport TeX)——流行的文档处理程序
- AMS-TeX——美国数学学会(American Mathematical Society)发表的TeX版本。绝大多数的AMS-TeX功能可以利用AMS包在LaTeX上实现,称为AMS-LaTeX。
- jadeTeX
- Texinfo——GNU的文档处理系统

兼容工具

TeXmacs是一个所见即所得的科学文档编辑器,利用TeX字体作为显示字体,具有类似Emacs的编辑方式。它可以导出为TeX文本,PSPDF文档,以及HTMLXML页面。LyX也是一个类似的工具。

范例

此乃一简易的TeX文本范例。 首先建立一名为myfile.tex的纯文本,并载有以下内容:
hello
\bye
然后激活指令行解译器(Command line interpreter,如MS-DOS),输入:
tex myfile.tex
之后TeX便会建立一名为myfile.dvi的档案。此檔可用如Yap之类的检视器检视。此档于检视器可见的是“hello”一词。“\bye”是一个TeX指令,相等于档案结束标记,是不会显示出来的。此DVI档可在检视器中直接打印或转换成更普遍的格式,例如PostScript。 另外,使用以下指令亦能输出PDF檔。
pdftex myfile.tex
当初创造pdfTeX是因为把DVI转成PostScript再转成PDF所产生的字体显示质素很差(但打印则没问题)。这是由于TeX本身支持点阵字体(Type 3),而此远不及向量字体(Type 1)的显示质素好。

数学公式范例

二次方程为例,以下的输入
The quadratic formula is $$
\bye
会导致如下输出 :The quadratic formula is 所有方程式在TeX中都是以一对$符号括住。如果要使公式放在新行置中,那么就以$$取代$。例如:
The quadratic formula is $$$$
\bye
:The quadratic formula is

LaTeX 范例

LaTeX是一套以 TeX 描述的软件。LaTeX 有很多预设的模版、样式。它比 TeX 更为结构化,如包含了供建立索引表格列表等的宏和公用软件。例如:
\documentclass[a4paper]
\begin
\section
\subsection
%% The text goes here
\end
执行
latex myfile.tex
dvips myfile.dvi
会建立一本为PostScript档的书。如要建立PDF档则可使用
pdflatex myfile.tex

参见


- Metafont
- 高德纳(Donald E. Knuth)

外部链接


- [http://www.ctex.org/ 中文TeX用户组]
- [http://www.tug.org/ TeX用户组]

参考文献


- Donald Knuth: The TEXbook, Massachusetts: Addison-Wesley, 1984 Category:排版软件 ja:TeX ko:TeX

X Window

概述

X Window系统 (X11或X)是一种位图显示的窗口系统。它是在Unix类Unix操作系统,以及OpenVMS上建立图形用户界面的标准工具包和协议,并可用于几乎所有的现代操作系统。 X 為 GUI 環境提供了基本的框架:在屏幕上繪圖和移動視窗,以及與滑鼠鍵盤的互動。X 並沒有管轄到使用者介面 — 這是由每個獨立的程式處理。因為如此,以 X 為基礎環境的視覺樣式變化非常地多;不同的程式可能徹底地展現不同的介面。 X 以 "網路通透性" 為特色:應用程式("客戶端" 應用程式)所執行的機器,不一定是使用者本地的機器(顯示的 "伺服器")。X 的 "客戶端" 和 "伺服器" 字眼的使用是人們經常預期的相反,"伺服器" 是使用者本地的顯示而不是遠端的機器。 X 在 1984年起始於 MIT。現在的協定版本,X11,是在1987年9月所釋出的。該專案是由 X.Org 基金會所領導;現在的參考實作是版本 11 release 6.8.2,且在MIT 執照和相似的表示許可執照下是自由軟體

X客户机/服务器模式和网络透明性

:详见: X Window系统的协议和架构 X基于客户端-服务器模型。一个X服务器与各种客户端程序通讯 。服务器接受对于图形输出(窗口)的请求并反馈用户输入(键盘、鼠标、触摸屏)。服务器可能是一个能显示到其他显示系统的应用程序,也可能是控制某个PC的视频输出的系统程序,还可能是特殊硬件。 术语客户端-服务器——你的终端是"服务器",而远端应用程序是 "客户端"——经常困扰X的新用户,因为似乎正好相反。但X采纳了程序而非最终用户或者硬件的视角:本地的X显示为程序提供显示服务,所以它扮演了服务器;远端程序使用了该服务,所以它是客户端。 客户端-服务器运行在用户的工作站上,而从该用户的计算机上控制的一个系统更新软件运行在远端服务器上。注意,这个远端程序运行时好像就在本地一样。]] 服务器和客户端之间的通信协议的运作对计算机网络是透明的: 客户端和服务器可以在同一台计算机上,也可以不是, 或许其架构操作系统也不同,但都能运行。客户机和服务器还能够使用安全连接上在互联网安全地通讯。 为了使远端客户程序显示到本地服务器,用户一般需要启动一个终端窗口和到达远端计算机的telnet或者ssh ,令其显示到用户计算机, (例如 在运行[bash]]的远端计算机上export DISPLAY=[用户的计算机]:0)然后启动客户端。 然后客户端就会连接到本地计算机,并且远端应用程序会显示到本地屏幕并被本地输入设备所控制。与之对应,本地计算机上也可以执行一个连接到远端计算机的小助手程序并在那里启动期望的应用程序。 实际的远端客户端的例子有:图形化管理远程计算机;在远端Unix计算机上运行计算密集的仿真程序并把结果显示到本地的Windows桌面计算机;用一套显示器、键盘和鼠标控制同时运行在多台计算机上的图形化软件。

X的设计原则

1984年Bob ScheiflerJim Gettys制订了X的早期原则:
- 除非没有它一个实现就无法完成一个真正的应用程序,否则不用增加新的功能。
- 决定一个系统不是什么和决定它是什么同样重要。与其去适应整个世界的需要,宁可使得系统可以扩展,这样可以用上层兼容的方式来满足新增需求
- 只有根本没有实例才会比只有一个实例更糟。
- 如果问题没有完全弄懂,可能最好根本就不要去解决它
- 如果预期要用百分之90的努力去完成百分之10的工作,应该用更简单的办法解决。 (参见更糟就是更好。)
- 尽量隔离复杂性。
- 提供机制而不是策略。实践中把用户界面策略放在用户手里。 第一条原则在设计X11时修改为:“除非制订有真实的应用程序需要,否则不用增加新功能。” X基本上一直遵循这些原则。参考实现是从扩展和改进的着手来进行开发,同时和1987年的最初的协议几乎保持完全兼容。

用户界面

X故意没有规范应用程序的用户界面,例如 按钮菜单和窗口的标题栏等等。这些都由窗口管理器、GUI构件工具包桌面环境或者应用程序指定的GUI(例如POS机)等等诸如此类的用户软件来提供。因此多年以来"典型"的X界面惊人的多样化。 窗口管理器用于控制应用程序窗口的位置和外观。其界面类似Microsoft的Windows或者Macintosh(例如KDE的Kwin或者GNOME的Metacity ),但是控制机制截然不同(例如,X提供的基本窗口管理器twm)。窗口管理器可能只是一个骨架,(例如 twm),也可能提供了全套桌面环境的功能(例如 Enlightenment)。 大多数用户使用X时包括了整套桌面环境,有窗口管理器、各种应用程序和协调一致的界面。最流行的时GNOMEKDE。Unix的标准环境是通用桌面环境 (CDE)。而freedesktop.org积极致力于促进互相竞争的X桌面之间的桌面和及其组件的互操作性。

实现

X的标准实现是X.Org的参考实现。由于其许可证比较宽松,出现了大量自由的或者专有的实现。商业的Unix商家倾向于采用参考实现并使之适应其硬件,例如高度定制并加入专有的扩展。 专有的。 屏幕显示GIMP 在没有X window 系统情况下运行。]] GIMP上。屏幕显示X 的应用程序(xeyes,xclock和xterm)与原生的Windows应用程序(日期和时间,计算机) 共享屏幕。]] 直到2004年,在自由的类Unix系统上最常见的X变体是XFree86。顾名思义,它源于X的386兼容的PC机的移植,到了上世纪90年代末期成为X的技术创新的主要来源和X开发的事实标准[http://www.xfree86.org/pipermail/forum/2004-February/003945.html]。但是从2004年起,最流行的X服务器是XFree86的分支——X.Org的参考实现。 虽然X一般和Unix联系在一起,X服务器也能够自然地存在于其他图形环境。 Hewlett-PackardOpenVMS操作系统用X加上CDE做为起标准桌面环境,称为DECwindows苹果公司Mac OS X v10.3 (Panther)包括Apple X11,它基于XFree86 4.3和X11R6.6,并能和Mac OS X更好地集成。 微软Windows本身不包含对X的支持,但是有不少第三方的实现可用,其中有自由软件Cygwin/XXming、WeirdMind [http://www.tam.cornell.edu/Computer.old/remoteaccess/weirdmind/]和WeirdX,也有专有软件如WiredXExceedX-Win32。他们多用于控制远程X客户端。 当X寄生在其他窗口系统(例如Windows或者Mac OS)时,X系统一般是"rootless"的,就是说宿主窗口系统担当根窗口(背景和相关菜单)并管理寄生的X窗口的位置。但是也有些服务器,例如Exceed,能够在宿主系统上创建根窗口使得远程客户端能够做为分离的窗口在其上显示。

X终端

X终端是做为瘦客户机在X服务器上运行的专用硬件。该架构广泛用于为了使多人同时使用同一个大型服务器而构造终端。这也符合MIT的计划的初衷。 X终端搜索网络,使用XDMCP产生允许其运行客户机的主机列表。 初始主机需要运行X display manager。 专用的X终端(硬件)现在已经不太常见了,现在经常使用个人计算机来完成相同的功能。

X的局限和批评

UNIX-HATERS Handbook用整整一章"The X-Windows Disaster" [http://catalog.com/hopkins/unix-haters/x-windows/disaster.html]来讨论X在上世纪80年代末到90年代初的问题。

视频硬件

PC

PC世界里,需要第三方硬件的驱动的非主流的个人计算机软件往往不能支持所有为Microsoft Windows出品的设备。 X Window也不例外,它的实现往往缺少较新(或者非常旧)的显卡 高效驱动程序。 X.orgXFree86这样的开源X实现中,开发社区通过复用已有代码,可以很快更新改进驱动程序,从而能够为较陈旧的或者很通用的硬件开发初高质量的驱动。 高性能图形计算目前是顶级的图形功能,一般由厂家通过专有驱动来实现,而且往往优先考虑是Windows (最大的消费市场)。由于高性能视频市场的显赫地位,一些硬件/驱动厂商会考虑通过将技术细节变为商业秘密或者将其中创新变为软件专利,而这阻碍了开源驱动的实现。

其他设备

PC机之外的世界里,很多X的实现是为非传统设备如PDA手机而编写(或者移植) 的。这样的实现必须提供为在此之上运行的平台提供至少是必须的设备支持。

性能

X Window的C/S体系设计在应用程序和视频硬件之间多加了一层软件,导致图形效率下降,所以引起了一些批评。因此开发了若干扩展,在设备和客户机在同一个系统上时,通过在取得适当许可的情况下,以直接访问设备来改善这一问题。而在Linux上,一些视频驱动已经部分移入内核以提高效率。

稳定性

另一方面,X也被批评为需要(或者提供)了过多的对硬件的直接访问,从而影响了系统稳定性。 行为不良的显卡驱动(有时也可能是应用程序)甚至能够导致整个系统崩溃或者重启;有时即时操作系统仍在工作,它也不到继续渲染其显示 (这时除了重启,缺乏好的恢复手段). 根本上,目前所有的桌面GUI操作系统都提供某种对硬件的直接访问,支持者认为市场已经证明为了提供图形性能牺牲一点稳定性是值得的。或许将来随着技术和用户的演化这一平衡会有所变化。

用户界面特征

X有意没有规范用户界面和程序之间大多数的通信,导致出现了几种非常不同的界面,同时程序之间协同困难;而客户机之间的互操作规范ICCCM以难以正确实现而闻名。后来的标准化尝试,如MotifCDE,也于事无补。长久以来这已经成为用户和程序员的巨大的挫折的源头 [http://lists.debian.org/debian-user/1996/11/msg00637.html]。目前,程序的感观一致性和通信一般是通过为特定桌面环境或者构件工具箱编程来处理,这也避免了直接和ICCCM接触。 X缺乏良好的网络透明的声音系统。当用户对声音日益期盼时,各种不兼容的声音子系统便出现了。过去,大多数程序员只好忽略网络问题,简单地使用本地的并且是OS专用的声音API。第一代客户机-服务器声音系统有rplayNetwork Audio System。而最近的努力产生了EsounD(GNOME)和ARts(KDE),而这也并非标准。而其他系统如Media Application Server则正在开发当中。 直到最近,X也没有好的打印显示器所显示的内容(所见即所得 )的解决方案。 许多X客户机完全用PostScript实现打印,而这与发送到服务器的几乎整个是分离的。从X11R6.3起包含了Xprint,此时客户机已经不错,但是服务器实现还不行。而从X11R6.8起实现的质量已经很好[http://xprint.mozdev.org/docs/Xprint_FAQ.html#contra_xprint],并且获得了部件的支持。

网络

X不能像VNC那样把客户端和会话从一个服务器卸下然后再附加到另一个上,但为X增加此功能的工作正在进行,另外还要实现通过VNC实现X服务器的显示。 X服务器和远端客户机之间的网络通信缺省使用明文,攻击者使用包嗅探器者就能够截获和阅读它。一般可以通过在SSH隧道上使用X来解决。 设备中立和客户机与服务器分离还带来了一定开销。 X的网络透明性要求客户机和服务器分别运行。在其早期,与同时的采取窗口系统嵌入操作系统这一方法的Microsoft WindowsMac OS比较,这给独立系统带来明显的性能影响。为了获得可以接受的性能推荐起码要4到8MBRAM,但在1990年代之前,这被认为与Windows 或者Mac OS相比太过分了。 当前版本的Windows和Mac OS X Quartz也包含了和X的客户机/服务器相类似的子系统划分,其性能和资源需求同X加上KDE或者GNOME也类似。 现在主要的开销来自于客户机和服务器之间的网络往返延迟滞后时间而非协议本身),应该通过应用程序的设计来处理[http://keithp.com/~keithp/talks/lbxpost/paper.html]。

X的竞争者

X在Unix-like系统上几乎完全占据统治地位。但是仍然有人尝试提供替代品和更多的选择。过去曾经有SunNeWS,但它遭到市场失败;还有 NeXTDisplay PostScript,它最终转变为苹果电脑Quartz for Mac OS X。 应对对于X的批评的更前卫的尝试有Berlin/FrescoY Window System这样的完全替换。这些代用品被认为不值得采用,而任何不能做到与X向后兼容的的替代品的可行性都被广泛置疑。 其他有的竞争者通过之间操作硬件来避免X的开销,这样的项目包括DirectFB。但是由于DRI正在致力于使用可靠的内核级接口提供帧缓冲,这些努力可能变成是多余的。 其他以图形终端服务形式达到网络透明性的尝试还有VNC(很底层的系统,通过网络发送压缩的位图;Unix上的实现包括X服务器)、Citrix MetaFrame(类似X的Windows软件)、Tarantella (为网络浏览器提供Java客户机)和NX_technology(用于远程显示的节省带宽的协议)。

历史

前身

在 X 之前有好幾個--的顯示系統。 Xerox 提出的 Alto1973年)和 Star1981年)。蘋果電腦提出的 Lisa1983年)和麥金塔1984年)。在 Unix 世界有--(1982年)和 Rob PikeBlit 終端機(1984年)。 X 從1983年之前稱為W Window系統的視窗系統中,推衍出它的名字當作是繼任者(在拉丁字母裡面 X 直接接在 W 後面)。W Window系統是運行於 V 作業系統。W 使用一個支援終端機和圖形視窗的網路協定,而伺服器維護顯示的列表。

起源和早期的發展

X 起初是 MIT1984年的構想,當作為 --:en:Jim Gettys 和 MIT 電腦科學實驗室的 :en:Bob Scheifler 的共同研究。Scheifler 需要一個可以使用的顯示環境來對 Argus 系統除錯。--,是 DEC,MIT,和 IBM 之間的聯合計畫,用來提供給需要一個平台獨立顯示系統,可把不同種類多個製造商之系統連結在一起,給所有學生容易存取電腦資源;該視窗系統曾經在卡耐基美隆大學(Carnegie Mellon University,CMU)的--中發展過,但是在授權上並可能得到且沒有其他可替代可選擇。 該計畫藉由創立一個可以執行本地應用程式且能夠拜訪遠端資源的協定來解決這個問題。起初在 1983年中期 W 視窗系統的 Unix 移植在 V 作業系統下以 1/4 速度運行;在 1984年5月,Scheilfer 將 W 的同步協定換成非同步協定,以及將顯示列表換成直接模式繪圖,而創造出 X 的版本 1。X 是第一個真正的硬體和製造商無關的視窗系統環境。 Scheifler, Gettys 和 Ron Newman 著手工作且 X 快速地進展著。版本 6 於 1985年1月推出。DEC 正準備要推出它的第一個Digital UNIX工作站,且 X 是唯一最有希望即時準備妥當的視窗系統。於是 X6 被移植到 MicroVAX 的 DEC QVSS 顯示器。 1985年二季度,为了支持DEC的VAXstation-II/GPX增加了色彩支持,由此形成了版本9。尽管MIT此前已经免费许可X6给一些外部群体,它此时决定在后来演变为MIT License的许可证下发放对X9和后续版本。X9于1985年9月发布。 布朗大学的一些人将版本9移植到IBM RT/PC,为了读取RT的非对齐数据对协议做了不兼容的修改,导致1985年稍后发布版本10。1986年有若干外部团体对X提出需要。X10R2发布于1986年1月1996年2月的X10R3是第一个广泛发行的版本,DEC和惠普都基于它发布产品。别的一些团体把X10移植到Apollo或者Sun工作站甚至IBM PC/AT。X10的最后一个版本X10R4于1986年12月发布。 尽管X10既有趣又强大,但很明显在X被更加广泛地采纳前人们期待X的协议更加设备中立;但是这样大规模地完全重新设计所要求地资源超出了MIT自身能够提供的。于是DEC的Western Software Laboratory跻身该项目。DEC WSL的Smokey Wallace ,另外还有Jim Gettys提议X11在DEC WSL创建,但能够使用与X9和X10同样的方法自由获取。该项目于1986年5月开始,协议部分于8月结束,软件的alpha测试于1987年2月就,beta测试开始于5月。X11最终于987年9月15日发布。 X11协议设计由Scheifler领导,并在nascent Internet的开放邮件列表上广泛讨论。于是X成为最早的较大规模的开源软件项目之一。

MIT X Consortium和the X Consortium, Inc.

1987年,随着X11取得明显成功,MIT希望免除X的管理责任。但是1987年6月语9个厂商举行会晤,这些厂商表示他们相信为了避免X由于商业因素而分裂,需要中立方的参与。1988年1月,X Consortium做为非营利厂商团体而成立,Scheifler任主管,而Keith Packard成为高级开发人员,以指导X在中立气氛下的,包括商业和教育目的的开发。MIT X Consortium完成了一系列重要的X11版本,第一个就是1988年1月的版本2(X11R2), 1993年X Consortium, Inc. (非营利公司) 做为MIT X Consortium的继承者而成立。它于1994年5月16日发布了X11R6。 1995年,它接手了Unix系统的Motif工具箱和Common Desktop Environment。X Consortium在发布了最后一个版本X11R6.3后,于1996年末解散。

Open Group

1997年中,X Consortium将X的管理交给The Open Group,而它是19996年由Open Software FoundationX/Open合并成立的厂商团体。 Open Group1998年初发布X11R6.4。Open Group为了保证X开发的资金,所以X11R6.4偏离传统的自由许可条款,从而引起争议[http://old.lwn.net/lwn/1998/0409/xstate.html]。新条款阻碍了许多项目(例如XFree86)采纳它,甚至包括一些厂商。在XFree86以fork相威胁后 [http://www.cat.org.au/maffew/cat/xfree-dawes.html],X11R6.4于1998年9月在传统许可条款下发布[http://cbbrowne.com/info/x11r6.4.html],而The Open Group的最后一个发布是X11R6.4 patch 3。

X.Org和XFree86

1999年5月Open Group组建了X.Org。X.Org指导了X11R6.5.1之前的版本发布。 在此期间X的开发死气沉沉 [http://www.computerworld.com/softwaretopics/software/appdev/story/0,10801,67861,00.html];1992年后多数技术创新都发生在XFree86项目中。1999年,由于众多对于XFree86在Linux上应用有兴趣的硬件厂商[http://slashdot.org/article.pl?sid=99/12/01/1342251]的推动,并也已经成为最普及的X版本,XFree86成为X.Org的荣誉成员(不付费)[http://xfree86.org/pipermail/forum/2003-March/000418.html]。 2003年,随着Linux的流行X被大量安装。但是X.Org几乎无声无息[http://xfree86.org/pipermail/forum/2003-April/003127.html],活跃的开发由 XFree86承担。但是,XFree86内部却发生了争论。它被认为太教堂式了,如同它的开发模式; 开发者不能通过CVS做提交[http://www.xfree86.org/pipermail/forum/2003-March/002018.html],而厂商被迫维护大量补丁[http://www.advogato.org/person/mharris/diary.html?start=5]。2003年3月,自从最初的MIT X Consortium结束之后就参加XFree86的Keith Packard由于被认为态度不良而被驱逐[http://www.xfree86.org/pipermail/forum/2003-March/001997.html] [http://www.xfree86.org/pipermail/forum/2003-March/002165.html] [http://www.xfree86.org/pipermail/forum/2003-April/003016.html]。 X.Org和XFree86开始讨论能够有助于X开发的重组[http://www.xfree86.org/pipermail/forum/2003-March/000554.html] [http://www.xfree86.org/pipermail/forum/2003-March/002415.html] [http://xfree86.org/pipermail/forum/2003-April/003144.html]。Jim Gettys早在2000年就热心于开放的开发模式[http://www.usenix.org/publications/library/proceedings/usenix2000/invitedtalks/gettys_html/Talk.htm]。Gettys、Packard和其他几个人开始讨论有效管理X和开发式开发的细节。 最终就像是X11R6.4许可证争议的回响,XFree86于2004年2月在更加严格许可证下发布了4.4 。许多依赖X的项目认为该许可证无法接受 [http://yro.slashdot.org/article.pl?sid=04/02/18/131223],特别是它和 GNU General Public License [http://www.dwheeler.com/essays/gpl-compatible.html#xfree86]不兼容。 这引起一场论战,许多人认为到了该fork [http://www.osnews.com/story.php?news_id=6157]的时候了。

X.Org基金会

2004年年初X.Org基金会成立。这标志着X的管理的根本性转变。1988年以来X的管理者(包括过去的X.Org)都是厂商组织,而基金会由软件开发者领导,采用依靠外部参与的集市模式的社区开发。其成员身份对个人开放,法人成员则成为赞助者。X.Org还开始同freedesktop.org密切合作。 在XFree86 4.4RC2基础上合并了X11R6.6的修改,基金会在2004年4月发布了X11R6.7。Gettys和Packard使用了在旧许可证下发布的XFree86的最后的版本,但是强调了开放的开发模式并保持了与GPL的兼容性,从而带来了很多过去XFree86的开发者 [http://www.dwheeler.com/essays/gpl-compatible.html#xfree86]。 2004年9月X11R6.8发布。它加入重要的新特性,包括对半透明窗口的初步支持、很多复杂的视觉效果、屏幕放大和简图,以及与3D沉浸式显示系统(例如Sun的Project Looking GlassCroquet project)集成的设施。而外观策略由称为合成管理器(compositing managers)的外部应用程序提供。

未来方向

有了X.Org基金会和freedesktop.org,X的开发再度加速。目前和未来的版本都将是可使用的最终产品,而不仅仅是在其上构筑产品的骨架。 随着硬件操作被移入内核,几乎对视频硬件的访问将通过OpenGL(没有硬件OpenGL的系统使用Mesa)和基层直接渲染模块进行[http://keithp.com/~keithp/talks/xserver_ols2004/]。这由XFree86 version 4引入并出现在X11R6.7及其后续版本。 参考实现的架构被模块化,每个独立模块做为分离的项目维护。X11R6.9将是单体源代码而X11R7.0将有具备相同特征集的模块化源代码。[http://wiki.x.org/wiki/ModularizationProposal]。

命名

"X Window系统"通常简称为"X11"或者"X"。"X Windows"(按照"Microsoft Windows"的风格)一词已经正式废弃,一般也认为并不正确,尽管自从X之初就普遍使用并为了行文简洁而受偏爱(例如在UNIX-HATERS Handbook中)。 -->

历史发布

参见


- 圖形使用者介面的歷史
- X11顏色名稱

参考


- Robert W. Scheifler and James Gettys: X Window System: Core and extension protocols: X version 11, releases 6 and 6.1, Digital Press 1996, ISBN 1-55558-148-X
- [http://keithp.com/~keithp/talks/Xarchitecture/Talk.htm The Evolution of the X Server Architecture] (Keith Packard, 1999)
- [http://www.cat.org.au/maffew/cat/xfree-dawes.html The means to an X for Linux: an interview with David Dawes from XFree86.org] (Matthew Arnison, CAT TV, June 1999)
- [http://www.usenix.org/publications/library/proceedings/usenix2000/invitedtalks/gettys_html/Talk.htm Lessons Learned about Open Source] (Jim Gettys, 2000年USENIX上讨论X的历史)
- [http://cbbrowne.com/info/xbloat.html On the Thesis that X is Big/Bloated/Obsolete and Should Be Replaced] (Christopher B. Browne)
- [http://freedesktop.org/~jg/roadmap.html Open Source Desktop Technology Road Map] (Jim Gettys,2003年12月9日)
- [http://www.osnews.com/story.php?news_id=6157 X Marks the Spot: Looking back at X11 Developments of Past Year] (Oscar Boykin, OSNews,2004年4月25日)
- [http://keithp.com/~keithp/talks/xserver_ols2004/ Getting X Off The Hardware] (Keith Packard, 2004年6月在Ottawa Linux Symposium发言)
- [http://developers.slashdot.org/comments.pl?sid=75257&cid=6734612 Why Apple didn't use the X windowing system] (Mike Paquette, 苹果计算机)
- [http://www.dwheeler.com/essays/gpl-compatible.html#xfree86 The Cautionary Tale of XFree86] (引自Make Your Open Source Software GPL-Compatible. Or Else. by David A. Wheeler,2005年4月16日)
- [http://www.freedesktop.org/~jonsmirl/graphics.html The State of Linux Graphics]X现状综述

外部链接


- [http://www.x.org/ X.Org Foundation官方网站]
- [http://catalog.com/hopkins/unix-haters/x-windows/disaster.html The X Windows Disaster] (UNIX-HATERS Handbook)

知名的實作


- [http://xorg.freedesktop.org XOrg Foundation Open Source Public Implementation of X11] — 正式参考实现
- [http://www.xfree86.org XFree86] — 很多年來最受歡迎的版本,特別是在開放原始碼的類 Unix 平台
- [http://www.apple.com/macosx/features/x11/ X11 for Mac OS X] — 與 Mac OS X 緊密整合的 Apple X11 Category:X服务器
-
Category:視窗系統 ja:X Window System

反版权

Copyleft是将一个程序成为自由软件的通用方法,同时也使得这个程序的修改和扩展版本成为自由软件。一般翻译为“反版权”、“版权属左”、“版权所无”、“版權左派”、“公共版权”或“版责”。 使一个程序成为自由软件的最简单的方法就是把它放在公共域软件(public domain), 没有版权。它使得人们可以分享程序和努力,如果他们是这样认为的话。 但是它也使得那些不合作的人有机会将程序转变为私有软件。他们可以或多或少的对程序进行修改,而后以私有产品的形式发布。那些使用这一修改过的程序的人不能像原作者给与上述修改者自由修改的权力那样进行自由的修改;中间人剥夺了这一权力。 GNU的目标是给予所有用户自由的重新发布和修改GNU软件的权力。如果有中间人可能剥夺这一自由的话,我们还有许多自由的使用者,但是那些中间人将不再有自由使用的权力。所以我们将软件置于copyleft的授权方式下,而不是将其置于公共域的授权方式下。 Copyleft声明任何人如果要重新发布软件,不管是否做了修改,必须使得这一重新发布的软件有被复制和修改的权力。 Copyleft保证每个用户都有自由的权力。 Copyleft也鼓励其他程序员加入到自由软件的行列。一些重要的自由软件如GNU C++编译器就是由于这个原因才存在的。 Copyleft也帮助那些想对自由软件做贡献的程序员获得其雇主的允许。 这些程序员通常为公司或者大学工作。 程序员可能想把自己的改进无私的贡献给自由软件团体,但是他的雇主却希望把这些改进变成私有的软件产品。 当我们向这些雇主说明,以非自由软件的形式发布自由软件的改进版本是不合法的时候,他们通常会以自由软件的形式发布它,而不是将其扔掉。 将程序变成copyleft授权,我们首先声明它是有版权的;而后我们加入了分发条款,这些条款是法律指导,使得任何人都拥有对这一程序代码或者任何这一程序的衍生品的使用,修改和重新发布的权力,但前提是这些发布条款不能被改变。 这样在法律上,代码和自由就不可分割了。 私有软件开发者用版权(copyright)剥夺了用户自由的权力;我们用版权保证用户自由的权力。这就是我们为什么把版权(copyright)这个名字反转成了copyleft。 Copyleft是一个广义的概念;有许多形式可以将其细化。 在GNU中, 具体的发布条款包含在GNU通用公共许可证GNU宽通用公共许可证GNU自由文档许可证里。 Copyleft授权许可有时被认为具有“传染性”,因为任何从Copyleft许可衍生出的作品也必须是遵守Copyleft许可的规定。“传染性”虽然带有贬义,但是这与病毒的传染并不相同,因为病毒的传染是通过不为用户所知道的途径传播的。 既然创作者从一种Copyleft许可的作品(主要是指软件)中衍生出自己的作品,这个衍生品(包括后来者自己加工改进的部分)也应理所当然的遵守Copyleft的规定,不受版权的约束,无偿的为其他后来者提供进一步的方便。

常見寫法

(軟體名稱)版權所無,複製不究,但請協助改進這軟體. Category:版权 category:内容开放 category:网络文化 ja:コピーレフト ko:카피레프트 simple:Copyleft th:Copyleft

Red Hat

right Red Hat Linux是商业上运作最成功的一个Linux发行套件,普及程度很高,由Red Hat 公司發行。 Red Hat Linux可算是一個「中年」的Linux發行套件,其1.0版本於1994年11月3日發行。雖然其歷史不及Slackware般悠久,但比起很多的Linux發行套件,Red Hat 的歷史悠久得多。 Red Hat Linux中的RPM软件包格式可以说是Linux社区的一个事实标准,被廣泛使用於其他Linux发行套件中。 以Red Hat Linux為基礎派生的Linux發行套件有很多,其中包括以桌面用戶為目標的Mandrake Linux(原為包含KDE的Red Hat Linux),Yellow Dog Linux(開始時為支援PowerPC的Red Hat Linux)和 ASPLinux (對非拉丁字元有較好支援的Red Hat Linux)。 自从Red Hat 9.0版本发布后,RedHat 公司就不再开发桌面版的 Linux发行套件,而将全部力量集中在服务器版的开发上,也就是 Red Hat Enterprise Linux 版。2004年4月30日,Red Hat公司正式停止對Red Hat 9.0版本的支援,標誌著Red Hat Linux的正式完結。原本的桌面版Red Hat Linux發行套件則與來自民間的 Fedora 計劃合併,成為 Fedora Core 發行版本。

特性

Red Hat Linux有一個圖形化的安裝程序Anaconda,目的是為了令新手更容易使用。同時,它有一個內建的防火牆設置工具Lokkit。 由Red Hat Linux 8.0開始,UTF-8成為了系統預設的字元編碼設定。這對於英語用戶來說無甚影響,但當用到ISO 8859-1字元集的較高位置字元時,編碼方式則完全不同。對於部分法語瑞典語的用户來說,這是一個冒犯性的舉動,因為他們的舊檔案系統在這個設定下有可能變得不穩定。這問題可以透過移除"LANG"設定中的".UTF-8"來解決。 8.0 版本亦是第一個使用Bluecurve桌面主題的發行版本。 因為可能發生的版權專利權問題,Red Hat Linux不包含很多的功能。例如RhythmboxXMMS中的MP3支援被Red Hat方面移除了,並推薦用戶使用沒有版權的Ogg Vorbis取而代之,但用戶可以自行安裝MP3的支援。Red Hat Linux 亦缺少NTFS的支援,不過有需要的用戶亦可自行安裝。

版本歷史

發行日期資料來源:comp.os.linux.announce (news:comp.os.linux.announce)
- 1.0 (Mother's Day):1994年11月3日,$49.95美金
- 1.1 (Mother's Day+0.1) :1995年8月1日,$39.95美金
- 2.0:1995年9月20日
- 2.1:1995年11月23日
- 3.0.3 (Picasso):1996年5月1日 - 第一個支援DEC Alpha的版本
- 4.0 (Colgate):1996年8月8日 -第一個支援Sparc的版本
- 4.1 (Vanderbilt):1997年2月3日
- 4.2 (Biltmore):1997年5月19日
- 5.0 (Hurricane):1997年12月1日
- 5.1 (Manhattan):1998年5月22日
- 5.2 (Apollo):1998年11月2日
- 6.0 (Hedwig):1999年4月26日
- 6.1 (Cartman):1999年10月4日
- 6.2 (Zoot):2000年4月3日
- 7 (Guinness):2000年9月25日 (本版本的編號是"7",不是"7.0")
- 7.1 (Seawolf):2001年4月16日
- 7.2 (Enigma):2001年10月22日
- 7.3 (Valhalla):2002年5月6日
- 8.0 (Psyche):2002年9月30日
- 9 (Shrike):2003年3月31日(本版本的編號是"9",不是"9.0") Fedora計劃與Red Hat計劃於2003年9月22日合併。 Fedora Core的發行歷史請參見Fedora Core條目

外部連結


- [https://www.redhat.com/docs/ Red Hat Linux使用說明]
- [http://www.gurulabs.com/RedHatLinux9-review.html Red Hat Linux 9評論]
- [http://www.redhat.com/software/rhel/ Red Hat Enterprise Linux]
- [http://fedora.redhat.com/about/history/ Red Hat Linux的歷史] Category:Linux Category:Red Hat ja:Red Hat Linux

GCC

GCC(GNU Compiler Collection,GNU编译器套裝),一套由GNU开发的编程語言编译器。它是GNU toolchain的关键部分,亦是开放源代码类Unix操作系統的标准编译器。

发展

GCC最初由理查德·马修·斯托曼1987年建造,作为GNU计划內的编译器,从此就有了可供自由软件使用的编译器。 GCC原名GNU C Compiler(GNU C编译器),因为当时它只能处理C语言,后来才扩展到C++及其他编程语言。

目前支持的语言有:


- C
- C++(G++)
- Objective-C
- FortranGFortran
- JavaGCJ
- AdaGNAT

外部链接


- [http://gcc.gnu.org GCC官方网站] Category:编译器软件 ja:GNUコンパイラコレクション

内核

计算机科学中,内核是操作系统最基本的部分。它是为众多应用程序提供对计算机硬件的安全访问的一部分软件,这种访问是有限的,并且内核决定一个程序在什么时候对某部分硬件操作多长时间。直接对硬件操作是非常复杂的,所以内核通常提供一种硬件抽象的方法来完成这些操作。硬件抽象隐藏了复杂性,为应用软件和硬件提供了一套简洁,统一的接口,使程序设计更为简单。 严格地说,内核并不是计算机系统中必要的组成部分。程序可以直接地被调入计算机中执行,这样的设计说明了设计者不希望提供任何硬件抽象和操作系统的支持,它常见于早期计算机系统的设计中。最终,一些辅助性程序,例如程序加载器和调试器,被设计到机器核心当中,或者固化在只读存储器里。这些变化发生时,操作系统内核的概念就渐渐明晰起来了。 内核可分为四大类:
- 单内核 它为潜在的硬件提供了大量完善的硬件抽象操作。
- 微内核 只提供了很小一部分的硬件抽象,大部分功能由一种特殊的用户态程序:服务器来完成。
- 混合内核 它很像微内核结构,只不过它的的组件更多的在核心态中运行,以获得更快的执行速度。
- 外内核 这种内核不提供任何硬件抽象操作,但是允许为内核增加额外的运行库,通过这些运行库应用程序可以直接地或者接近直接地对硬件进行操作。

单内核

单内核结构在硬件之上定义了一个高阶的抽象界面,应用一组原语(或者叫系统调用)来实现操作系统的功能,例如进程管理文件系统,和存储管理等等,这些功能由多个运行在核心态的模块来完成。 尽管每一个模块都是单独地服务这些操作,内核代码是高度集成的,而且难以编写正确。因为所有的模块都在同一个内核空间上运行,一个很小的bug都会使整个系统崩溃。然而,如果开发顺利,单内核结构就可以从运行效率上得到好处。 很多现代的单内核结构内核,如LinuxFreeBSD内核,能够在运行时将模块调入执行,这就可以使扩充内核的功能变得更简单,也可以使内核的核心部分变得