:: wikimiki.org ::
| Emacs |
EmacsEmacs,是GNU计划下的第一个产品,EMACS为Editor MACroS 的缩写。 Richard Stallman於1975年在MIT首次撰写EMACS editor。
Emacs现存多个版本,最流行的是GNU Emacs以及与它关系密切的XEmacs(X Window下的Emacs版本)。
到2003年6月10日为止,Emacs的最新版本号为21.3。
与任何GNU的产品一样,GNU EMACS秉持著GNU的精神,它依然是自由的。任何人都可以匿名登录FTP的方式至prep.ai.mit.edu这个站点 ,取得GNU EMACS的原始码。GNU EMACS 不是公共领域的产物, 它有版权也有许可证上的限制,那就是任何得到它的人都不可以将擅自修改其许可证,所有修改版本如果要发布必须仍然遵守GNU Public License,同时发布源代码。任何人无权将其专有化。除此之外,包括遵照GPL进行出售、提供有偿技术支持这类商业行为都是允许的。
EMACS有多种版本可适合不同的操作平台。适合UNIX环境的有GNU EMACS、Unipress EMACS以及CCA EMACS, 其中以 GNU EMACS 最常被使用,本文也只介绍 GNU EMACS。 适合个人电脑的 EMACS 有 FreEMACS、MicroEMACS 以及 Epsilon。当然,也有使用在VMS环境的版本。
GNU EMACS是由C语言与LISP语言写成,任何人都可依据需要将个人所发展的函式(function)加入 GNU EMACS 上。当然,新发展的软体是不可以从事商业买卖,只能将它无条件的奉献出来。新发展的函式可以直接在 EMACS 中使用,不需重新编译(complie) 整个 EMACS ,而且新增的函式也不会破坏 EMACS 原有的结构。就因为有此特性,EMACS 的函式可以 与日俱增。愿与他人共享成果的使用者,可以透过电子邮件或电子公布栏,将函式的原始码公诸於世。公布的函式,最後会经由 FSF 的审查,以决定是否要加入新版的 EMACS 中。FSF 也鼓励使用者将所发现的错误,透过相同的管道,提供给FSF作为改进之用。GNU EMACS就是在如此的运作下,靠大家共同的努力来提升品质,以达产品的稳定性。
功能特点
Emacs不仅仅是一个编辑器,他是一个整合环境,或可称它为集成开发环境,这些功能如让使用者置身于全功能的操作系统中,在基于编辑器的功能基础上,Emacs自行开发了一个“bourne-shell-like”的shell: EShell。Emacs还可以:
- 收发电子邮件
- 通过FTP/TRAMP编辑远程档案
- 通过Telnet登录主机
- 上新闻组
- 登陆IRC和朋友交流
- 查看日历
- 撰写文章大纲
- 对多种编程语言的编辑
- 调试程序,结合GDB,EDebug等。支持C/C++,Perl,Python,Lisp等等
- 玩游戏
- 计算器
- 记日记
- 煮咖啡
- 管理日程,Task,ToDo,约会等
- 个人信息管理
- 目录管理
- 文件比较
- 阅读info和man文档
- 浏览网站
- 为各种程序(TeX等)提供统一的操作界面
- ……
此外Emacs还有如下特点:
#display editor
#实时编辑器
#高级编辑器
#Self-documenting
#可定制性
#可扩展性(集成Lisp语言)
#支持X Window环境
参见
- 文本编辑器列表
- 文本编辑器比较
外部链接
- [http://www.gnu.org/software/emacs/emacs.html The GNU Emacs homepage], including:
- [http://www.gnu.org/software/emacs/emacs-faq.text The GNU Emacs FAQ]
- [http://www.gnu.org/software/emacs/windows/ntemacs.html The GNU Emacs For Windows FAQ]
- [http://www.gnu.org/software/emacs/emacs-paper.html A paper on the design of the original Emacs], by Stallman
- [http://www.multicians.org/mepap.html "Multics Emacs: The History, Design and Implementation"] by B. Greenberg
- [http://www.jwz.org/doc/emacs-timeline.html "Emacs Timeline"] by J. Zawinski
- [http://www.finseth.com/~fin/emacs.html "List of Emacs implementations"] by C. Finseth
- [http://www.emacswiki.org/ Emacs users' wiki]
- [http://www.cbi.pku.edu.cn/chinese/documents/csdoc/emacs/ 中文 Emacs User's Guide]
- [http://www-900.ibm.com/developerWorks/cn/cnedu.nsf/linux-onlinecourse-bytitle/75A2F5C7DD4F4560C8256C1B001BBF44?OpenDocument IBM dw教程:生活在Emacs中]
- [http://www.emacs.cn Emacs 中文站]
注:本文第一部分,部分引用自遵守GFDL的Emacs用户指南中译版
Category:文本编辑器
Category:Emacs
ja:Emacs
ko:Emacs
GNUGNU还指一种大型的哺乳动物——牛羚。
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工具还被广泛地移植到Windows和Mac 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:กนู
Richard Stallman)著,歐萊禮出版]]
美國人理查德·马修·斯托曼(,簡稱 ,生于1953年3月16日),自由软件运动的精神領袖、GNU计划以及自由软件基金会(Free Software Foundation)的创立者。作為一個著名的黑客,他的主要成就包括Emacs及後來的GNU Emacs,GNU 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
1975年
----
大事记
- 2月3日 - 景山发电厂首次应用电子计算机控制10万千瓦燃煤气轮发电机组成功。
- 2月4日 - 刘家峡水电站建成。
- 4月4日 - 微软成立
- 4月17日 - 柬埔寨共產黨攻陷柬埔寨首都金邊。
- 4月30日 - 越南共產黨軍隊攻陷西貢,越戰結束。
- 5月12日 - 美国两艘护卫导弹驱逐舰访问了苏联的列宁格勒。两艘苏联舰艇作为回访,驶向美国波士顿港。这是第二次世界大战结束后,美苏两国海军的首次互访。
- 5月30日 - 中国第一次发现古生界地层油田。
- 7月5日 - 中国第一条电气化铁路――宝成铁路建成。
- 7月8日 - 秦皇岛至北京输油管道建成。
- 7月10日 - 中国陕西省临潼县发现秦代兵马俑。
- 7月26日 - 中国在酒泉卫星发射中心成功发射长空一号技术试验卫星
- 8月8日 - 河南地区特大暴雨,国家拨7亿元救灾费。
- 8月19日 - 中国无偿援助柬埔寨6亿元物资。
- 9月16日 - 巴布亚新几内亚独立。
- 9月16日 - 黎巴嫩内战爆发。
- 10月7日 - 中国培育出水稻新品种,亩产达千斤左右。
- 10月11日 - 美國艾森豪號航空母艦完工下水。
- 10月11日 - 美國卡爾文森號航空母艦龙骨安放完成。
- 10月27日 - 中国成功进行一次核试验。
- 11月11日 - 非洲西南部的安哥拉宣布独立。
- 11月13日 - 世界卫生组织宣布:亚洲有史以来第一次消灭了天花。
- 11月26日 - 中国成功发射回收式地球卫星。
- 11月29日 - 比尔·盖茨与保罗·艾伦将他们共同创立的公司命名为“微软”。
- 11月29日 - 中国第一次回收卫星成功,这颗卫星是11月26日发射的。
- 12月7日 - 印度尼西亚侵略东帝汶。
- 12月24日 - 中国焦枝铁路通车。
出生
- 3月4日 - 任泉,中国演員。
- 3月17日 - 贾斯汀·霍金斯,英国歌手。(黑暗乐队)
- 3月19日 - 徐若瑄,台湾演員。
- 4月4日 - 德尔菲娜·阿尔诺 (Delphine arnault), 億萬富婦法國女性][[實業家]][[LVMH。
逝世
- 逝世公告
- 4月5日 - 中华民国总统,中国国民党總裁,蒋介石逝世。
- 10月22日 - 阿诺尔德·约瑟·汤因比,英国历史学家(生于1889年)
- 11月20日 - 佛朗哥,西班牙前国家元首
诺贝尔奖
- 物理:
- 化学:
- 生理和医学:
- 文学:
- 和平:
- 经济:
(第48届,1976年颁发)
- 奥斯卡最佳影片奖——《飞越疯人院》(One Flew over the Cuckoo's Nest)
- 奥斯卡最佳导演奖——米洛斯·福尔曼(Milos Forman) 《飞越疯人院》
- 奥斯卡最佳男主角奖——杰克·尼科尔森(Jack Nicholson) 《飞越疯人院》
- 奥斯卡最佳女主角奖——路易斯·弗莱彻(Louise Fletcher) 《飞越疯人院》
- 奥斯卡最佳男配角奖——乔治·伯恩斯(George Burns) 《阳光少年》
- 奥斯卡最佳女配角奖——李·格兰特(Lee Grant) 《洗发精》
(其他奖项参见奥斯卡金像奖获奖名单)
Category:1975年
ja:1975年
ko:1975년
nb:1975
simple:1975
th:พ.ศ. 2518
MIT麻省理工学院(Massachusetts Institute of Technology,简称MIT)是美国一所综合性私立大学。位于马萨诸塞州(Massachusetts)的坎布里奇(Cambridge),查尔斯河(Charles River)将其与波士顿的后湾区(Back Bay)隔开。
麻省理工学院的自然及工程科学在世界上享有盛誉,其管理学、经济学、哲学、政治学、语言学也同样优秀。其林肯实验室、计算机科学及人工智能实验室、媒体实验室和斯隆管理学院十分著名。有59位诺贝尔奖得主曾在麻省理工学院学习或工作。
Massachusetts Institute of Technology
诺贝尔奖
© 麻省理工学院
|
| 校训:Mens et Manus (Mind and Hand) |
| 现任校长 |
苏珊·霍克菲尔德 |
| 学校类型 |
私立 |
| 宗教关系 |
无 |
| 建立时间 |
1861年 |
| 所在地 |
美国,坎布里奇 |
| 学生数量 |
10340 |
| 教师数量 |
974 |
| 校园环境 |
市区 |
历史沿革
麻省理工学院于1861年由威廉·巴顿·罗杰斯(William Barton Rogers)一位著名的自然科学家创立。他希望能够创建一个自由的学院来适应正快速发展的美国。由于南北战争,直到1865年MIT才迎来了第一批学生。随后其在自然及工程领域迅速发展。在大萧条时期,MIT曾一度被认为会同哈佛大学合并,但在该校学生的抗议之下,被迫取消了这一计划。1916年MIT从波士顿迁往坎布里奇。
因为二战和冷战,美国政府在自然及工程科学上大量投资,使得MIT在这段时间内迅速发展。20世纪MIT最主要的成就是由杰·弗里斯特领导的旋风工程,其制造出了世界上第一台能够实时处理资料的机器“旋风”,并发明了磁芯存储器。这为个人电脑的发展做出了历史性的贡献。
校园
麻省理工学院占地168英亩,校园位于查尔斯河(Charles River)靠坎布里奇(Cambridge)一侧,蔓延约1英里。中央校区由一组互相连通的大楼组成。设计者为建筑家维尔斯·波斯维斯(Welles Bosworth).互相连通的设计是为了方便人们往来与各个院系之间。
Image:Initial.gif
院系设置
- 建筑及城市规划学院(School of Architecture and Planning)
- 工程学院(School of Engineering)
- 人文及社会科学学院(School of Humanities, Arts, and Social Sciences)
- 阿尔佛雷德·P·斯隆管理学院(Alfred P. Sloan School of Management)
- 自然科学学院(School of Science)
- 维泰克健康科学技术学院(Whitaker College of Health Sciences and Technology)
- 麻省理工—雾兹侯海洋学院:海洋学和应用海洋科技与工程联合项目(MIT-WHOI Joint Program in Oceanography and Applied Ocean Science and Engineering)
著名校友
语言学家诺姆·乔姆斯基(Noam Chomsky)、联合国秘书长科菲·安南(Kofi Annan)、诺贝尔奖得主约翰·纳什(John Nash)、以色列前总理本杰明·内塔尼亚胡(Benjamin Netanyahu)、中央情报局前局长多伊奇(John M. Deutch)、万维网之父蒂姆·伯纳斯-李(Tim Berners-Lee)、前惠普CEO卡莉·费奥丽娜(Carly Fiorina)
外部链接
- [http://web.mit.edu 学校主页]
- [http://www.pku.edu.cn/administration/odp/tszhsh/tszs3.html 北京大学对该校的介绍]
M
ja:マサチューセッツ工科大学
ko:매사추세츠 공과대학교
th:เอ็มไอที
GNUGNU还指一种大型的哺乳动物——牛羚。
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工具还被广泛地移植到Windows和Mac 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:กนู
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 Scheifler和Jim Gettys制订了X的早期原则:
- 除非没有它一个实现就无法完成一个真正的应用程序,否则不用增加新的功能。
- 决定一个系统不是什么和决定它是什么同样重要。与其去适应整个世界的需要,宁可使得系统可以扩展,这样可以用上层兼容的方式来满足新增需求
- 只有根本没有实例才会比只有一个实例更糟。
- 如果问题没有完全弄懂,可能最好根本就不要去解决它
- 如果预期要用百分之90的努力去完成百分之10的工作,应该用更简单的办法解决。 (参见更糟就是更好。)
- 尽量隔离复杂性。
- 提供机制而不是策略。实践中把用户界面策略放在用户手里。
第一条原则在设计X11时修改为:“除非制订有真实的应用程序需要,否则不用增加新功能。” X基本上一直遵循这些原则。参考实现是从扩展和改进的着手来进行开发,同时和1987年的最初的协议几乎保持完全兼容。
用户界面
X故意没有规范应用程序的用户界面,例如 按钮、菜单和窗口的标题栏等等。这些都由窗口管理器、GUI构件工具包、桌面环境或者应用程序指定的GUI(例如POS机)等等诸如此类的用户软件来提供。因此多年以来"典型"的X界面惊人的多样化。
窗口管理器用于控制应用程序窗口的位置和外观。其界面类似Microsoft的Windows或者Macintosh(例如KDE的Kwin或者GNOME的Metacity ),但是控制机制截然不同(例如,X提供的基本窗口管理器twm)。窗口管理器可能只是一个骨架,(例如 twm),也可能提供了全套桌面环境的功能(例如 Enlightenment)。
大多数用户使用X时包括了整套桌面环境,有窗口管理器、各种应用程序和协调一致的界面。最流行的时GNOME和KDE。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-Packard的OpenVMS操作系统用X加上CDE做为起标准桌面环境,称为DECwindows。苹果公司的Mac OS X v10.3 (Panther)包括Apple X11,它基于XFree86 4.3和X11R6.6,并能和Mac OS X更好地集成。
微软的Windows本身不包含对X的支持,但是有不少第三方的实现可用,其中有自由软件如Cygwin/X、Xming、WeirdMind [http://www.tam.cornell.edu/Computer.old/remoteaccess/weirdmind/]和WeirdX,也有专有软件如WiredX、Exceed和X-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.org和XFree86这样的开源X实现中,开发社区通过复用已有代码,可以很快更新改进驱动程序,从而能够为较陈旧的或者很通用的硬件开发初高质量的驱动。
高性能图形计算目前是顶级的图形功能,一般由厂家通过专有驱动来实现,而且往往优先考虑是Windows (最大的消费市场)。由于高性能视频市场的显赫地位,一些硬件/驱动厂商会考虑通过将技术细节变为商业秘密或者将其中创新变为软件专利,而这阻碍了开源驱动的实现。
其他设备
在PC机之外的世界里,很多X的实现是为非传统设备如PDA和手机而编写(或者移植) 的。这样的实现必须提供为在此之上运行的平台提供至少是必须的设备支持。
性能
X Window的C/S体系设计在应用程序和视频硬件之间多加了一层软件,导致图形效率下降,所以引起了一些批评。因此开发了若干扩展,在设备和客户机在同一个系统上时,通过在取得适当许可的情况下,以直接访问设备来改善这一问题。而在Linux上,一些视频驱动已经部分移入内核以提高效率。
稳定性
另一方面,X也被批评为需要(或者提供)了过多的对硬件的直接访问,从而影响了系统稳定性。 行为不良的显卡驱动(有时也可能是应用程序)甚至能够导致整个系统崩溃或者重启;有时即时操作系统仍在工作,它也不到继续渲染其显示 (这时除了重启,缺乏好的恢复手段).
根本上,目前所有的桌面GUI操作系统都提供某种对硬件的直接访问,支持者认为市场已经证明为了提供图形性能牺牲一点稳定性是值得的。或许将来随着技术和用户的演化这一平衡会有所变化。
用户界面特征
X有意没有规范用户界面和程序之间大多数的通信,导致出现了几种非常不同的界面,同时程序之间协同困难;而客户机之间的互操作规范ICCCM以难以正确实现而闻名。后来的标准化尝试,如Motif和CDE,也于事无补。长久以来这已经成为用户和程序员的巨大的挫折的源头 [http://lists.debian.org/debian-user/1996/11/msg00637.html]。目前,程序的感观一致性和通信一般是通过为特定桌面环境或者构件工具箱编程来处理,这也避免了直接和ICCCM接触。
X缺乏良好的网络透明的声音系统。当用户对声音日益期盼时,各种不兼容的声音子系统便出现了。过去,大多数程序员只好忽略网络问题,简单地使用本地的并且是OS专用的声音API。第一代客户机-服务器声音系统有rplay和Network 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 Windows和Mac OS比较,这给独立系统带来明显的性能影响。为了获得可以接受的性能推荐起码要4到8MB的RAM,但在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系统上几乎完全占据统治地位。但是仍然有人尝试提供替代品和更多的选择。过去曾经有Sun的NeWS,但它遭到市场失败;还有 NeXT的Display PostScript,它最终转变为苹果电脑的Quartz for Mac OS X。
应对对于X的批评的更前卫的尝试有Berlin/Fresco和Y Window System这样的完全替换。这些代用品被认为不值得采用,而任何不能做到与X向后兼容的的替代品的可行性都被广泛置疑。
其他有的竞争者通过之间操作硬件来避免X的开销,这样的项目包括DirectFB。但是由于DRI正在致力于使用可靠的内核级接口提供帧缓冲,这些努力可能变成是多余的。
其他以图形终端服务形式达到网络透明性的尝试还有VNC(很底层的系统,通过网络发送压缩的位图;Unix上的实现包括X服务器)、Citrix MetaFrame(类似X的Windows软件)、Tarantella (为网络浏览器提供Java客户机)和NX_technology(用于远程显示的节省带宽的协议)。
历史
前身
在 X 之前有好幾個--的顯示系統。 Xerox 提出的 Alto(1973年)和 Star(1981年)。蘋果電腦提出的 Lisa(1983年)和麥金塔(1984年)。在 Unix 世界有--(1982年)和 Rob Pike 的 Blit 終端機(1984年)。
X 從1983年之前稱為W Window系統的視窗系統中,推衍出它的名字當作是繼任者(在拉丁字母裡面 X 直接接在 W 後面)。W Window系統是運行於 V 作業系統。W 使用一個支援終端機和圖形視窗的網路協定,而伺服器維護顯示的列表。
起源和早期的發展
X 起初是 MIT 於 1984年的構想,當作為 --的 :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 Foundation和X/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 Glass和Croquet 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
6月10日
6月10日是公历一年中的第161天(闰年第162天),离全年结束还有204天。
大事记
- 1582年——葡萄牙宣布独立。
- 1610年——第一批荷兰移民来到曼哈顿。
- 1846年——加利福尼亚共和国宣布脱离墨西哥。
- 1919年——中华民国北洋军阀政府释放在五四运动中被捕的学生。
- 1940年——意大利向法国和英国宣战。
- 1940年——加拿大向意大利宣战。
- 1940年——挪威向德国投降。
- 1942年——纳粹屠杀捷克利迪泽村的所有男性成年人。
- 1943年——共产国际正式宣告解散。
- 1967年——六日战争结束。
- 1980年——尼尔森·曼德拉获释。
出生
- 1819年——古斯塔夫·库尔贝,法国画家
- 1904年——林徽因,中国建筑师、诗人
- 1915年——索尔·贝娄,美国作家
- 1957年——姐齿秀次,日本前一级建筑师
- 1962年——黄家驹,香港歌手
逝世
- 前323年——亚历山大大帝
- 1190年——弗里德里希一世,神圣罗马帝国皇帝
- 1836年——安德烈·玛丽·安培,法国物理学家
- 1852年——冯云山,太平天国西王
- 1926年——安东尼·高第,西班牙建筑师
- 1949年——西格丽德·温塞特,挪威作家
- 1982年——宁那·华纳·法斯宾德,作家
- 1983年——廖承志,中国共产党统战部门负责人
- 2000年——哈菲兹·阿萨德,叙利亚前总统
- 2003年——李思怡,中国成都一幼童,因警察玩忽职守而被饿死
节日、风俗习惯
----
参看
日历
6月8日 -- 6月9日 -- 6月10日 -- 6月11日 -- 6月12日
5月10日 -- 6月10日 -- 7月10日
1月 -- 2月 -- 3月 -- 4月 -- 5月 -- 6月 -- 7月 -- 8月 -- 9月 -- 10月 -- 11月 -- 12月
ja:6月10日
ko:6월 10일
ms:10 Jun
simple:June 10
th:10 มิถุนายน
GNUGNU还指一种大型的哺乳动物——牛羚。
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工具还被广泛地移植到Windows和Mac 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:กนู
FTP
文件传输协议(FTP)是一个用于在两台装有不同操作系统的机器中传输计算机文件的软件标准。它属于网络协议组的应用层。
FTP是一个8位的客户端-服务器协议,能操作任何类型的文件而不需要进一步处理,就像MIME或Unencode一样。但是,FTP有着极高的延时,这意味着,从开始请求到第一次接收需求数据之间的时间会非常长,并且不时的必需执行一些冗长的登陆进程。
概述
FTP服务一般运行在20和21两个端口。端口20用于在客户端和服务器之间传输数据流,而端口21用于传输控制流,并且是命令通向ftp服务器的进口。当数据通过数据流传输时,控制流处于空闲状态。而当控制流空闲很长时间后,客户端的防火墙会将其会话置为超时,这样当大量数据通过防火墙时,会产生一些问题。此时,虽然文件可以成功的传输,但因为控制会话会被防火墙断开,传输会产生一些错误。
FTP实现的目标:
#促进文件的共享(计算机程序或数据)
#鼓励间接或者隐式的使用远程计算机
#向用户屏蔽不同主机中各种文件存储系统的细节
#可靠和高效的传输数据
缺点:
#密码和文件内容都使用明文传输,可能产生不希望发生的窃听。
#因为必需开放一个随机的端口以建立连接,当防火墙存在时,客户端很难过滤处于主动模式下的FTP流量。这个问题通过使用被动模式的FTP得到了很大解决。
#服务器可能会被告知连接一个第三方计算机的保留端口。
FTP虽然可以被终端用户直接使用,但是它是设计成被FTP客户端程序所控制。
运行FTP服务的许多站点都开放匿名服务,在这种设置下,用户不需要帐号就可以登录服务器,默认情况下,匿名用户的用户名是:「anonymous」。这个帐号不需要密码,虽然通常要求输入用户的邮件地址作为认证密码,但这只是一些细节或者此邮件地址根本不被确定,而是依赖于FTP服务器的配置情况。
主动和被动模式
FTP有两种使用模式:主动和被动。主动模式要求客户端和服务器端同时打开并且监听一个端口以建立连接。在这种情况下,客户端由于安装了防火墙会产生一些问题。所以,创立了被动模式。被动模式只要求服务器端产生一个监听相应端口的进程,这样就可以绕过客户端安装了防火墙的问题。
一个主动模式的FTP连接建立要遵循以下步骤:
#客户端打开一个随机的端口(端口号大于1024,在这里,我们称它为x),同时一个FTP进程连接至服务器的21号命令端口。此时,源端口为随机端口x,在客户端,远程端口为21,在服务器。
#客户端开始监听端口(x+1),同时向服务器发送一个端口命令(通过服务器的21号命令端口),此命令告诉服务器客户端正在监听的端口号并且已准备好从此端口接收数据。这个端口就是我们所知的数据端口。
#服务器打开20号源端口并且建立和客户端数据端口的连接。此时,源端口为20,远程数据端口为(x+1)。
#客户端通过本地的数据端口建立一个和服务器20号端口的连接,然后向服务器发送一个应答,告诉服务器它已经建立好了一个连接。
FTP和网页浏览器
大多数最新的网页浏览器和文件管理器都能和FTP服务器建立连接。这使得在FTP上通过一个接口就可以操控远程文件,如同操控本地文件一样。这个功能通过给定一个FTP的URL实现,形如ftp://<服务器地址>(例如,ftp://ftp.gimp.org )。是否提供密码是可选择的,如果有密码,则形如ftp://:@。大部分网页浏览器要求使用被动FTP模式,然而并不是所有的FTP服务器都支持被动模式。
参考文献
- IETE在RFC 0959上定义了此协议的标准
- RFC0959文件传输协议。J.Postel, J.Reynolds. 1985.10(格式:文本,147316字节。http://www.ietf.org/rfc/rfc959.txt )。最早的RFC 114和之后的RFC 765已被废除。
中国协议分析网,这里关于FTP的中文协议比较全
http://www.cnpaf.net/class/ftp
参见
- 小文件传输协议(TFTP)
- SSH文件传输协议(SSH file transfer protocol)
- 安全FTP(Secure FTP)
- 简单文件传输协议(Simple File Transfer Protocol)
- FTP客户端
- FTP服务器
外部链接
- [http://www.cnpaf.net/class/ftp FTP协议详细资料]
Category:网络协议
ja:File Transfer Protocol
ko:FTP
UNIXUNIX是一个强大的多用户,多任务操作系统,支持多种处理器架构,最早由Ken Thompson,Dennis Ritchie和Douglas McIlroy于1969年在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个主要的分支:FreeBSD,OpenBSD和NetBSD。
此后的几十年中,UNIX仍在不断变化,其版权所有者不断变更,授权者的数量也在增加。UNIX的版权曾经为AT&T所有,之后Novell拥有了UNIX,再之后Novell又将版权出售给了SCO(这一事实双方尚存在争议)。有很多大公司在取得了UNIX的授权之后,开发了自己的UNIX产品,比如IBM的AIX,HP的HPUX,SUN的Solaris和SGI的IRIX。
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被认为是FreeBSD、OpenBSD 和 NetBSD的先辈。
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项目,要创建一个能够自由发布的类 | | |