2010年2月24日星期三

开源运动及Linux介绍

自由软件运动及Linux的发展




〇、GNU计划的兴起



0.RMS其人




Richard Stallman是自由软件运动的精神领袖、GNU计划及自由软件基金会FSF(Free Software Foundation)的创立者。他为自由软件运动竖立了道德、政治及法律框架,被许多人誉为当今自由软件的斗士、伟大的理想主义者。


他是上个世纪60年代MIT AI Lab黑客文化的产物,是这种文化最严守教义的苦心僧。


  

Richard Stallman说:“Linux并不能代表整个操作系统。Linux只是内核,整个系统还包含数以百计的软件工具和实用程序,这些工具和程序大多是由GNU们完成的。”而且他认为,整个操作系统称为GNU/Linux比较合适。


  

1983年,Richard Stallman在net.unix-wizards新闻组上公开发起GNU计划,宣布它的目标是创建一套完全自由的操作系统,并附带一份《GNU宣言》。在该宣言中,Stallman声称发起该计划的一个重要理由是要“重现当年软件界合作互助的团结精神”。 GNU是“GNU's Not UNIX”的递归缩写,Stallman宣布GNU应当发音为Guh-NOO,以避免与new这个单词混淆(注Gnu在英文中原意为非洲牛羚,发音与new相同)。


  

GNU工程采用了部分当时已经可自由使用的软件,例如TeX排版系统和X-Window视窗系统等。工程启动后,Stallman听到有一个自由大学编译器套件。他去信询问能否用入GNU,答复是嘲弄式的,说对大学是自由的,但软件本身不行。于是,他决定为GUN编写的第一个软件就是能跨平台的编译器。由于C语言是使用最多的开发语言,而且是UNIX的开发语言,所以,他决定首先写一个C的编译器,并命名为GCC。


  

1984年9月,Richard Stallman开始写GUN Emacs。到1985年初,GUN Emacs已经可以工作了,通过它可以用UNIX系统进行编辑。此时,人们开始想,使用Emacs,但如何传播它?因此,他将其放到了MIT的匿名服务器上。但那时互联网还未普及,人们很难通过FTP获得拷贝,而失业的Stallman也需要收入。于是,他宣布任何人都可以用150美元的价格获得程序。自由软件的分销商业模式就此诞生。目前已有几百种Emacs的副程序,可用在50多种电脑上,从微电脑到Cray的超级电脑都可用Emacs。


  

为防止不法厂商利用自由软件,使其专有化,Richard Stallman还别出心裁,与一群律师起草了广为使用的GNU通用公共协议证书(GNU General Public License, GNU GPL),创造了Copyleft的授权办法。所有的GNU程序遵循一种“Copyleft”原则,即可以拷贝、可以修改、可以出售,但有一条就是源代码所有的改进和修改必须向每个用户公开,所有用户都可以获得改动后的源码。它保证了自由软件传播的延续性。


  

GNU激励了许许多多年轻的软件开发者,一些商业公司也开始介入开发和技术支持。其中最著名的就是之后被Red Hat兼并的Cygnus Solutions,他们编写了除操作系统内核Hurd以外的大量自由软件。尽管GNU的计划是建立一个完整的自由软件世界,但是作为其根基的操作系统(Hurd)的开发进展却相对缓慢。Linux的出现恰逢其时,它使得GNU有了一个坚实的根基。


  

有人说,Richard Stallman是地球上编写代码最多的程序员。他编写了大量优秀的程序,如Emacs 、GCC和GDB (程序调试器)。目前,尽管他对GNU的设想还没有完全实现,但是这个软件系统已经有1000多个应用程序,而且GNU自己的内核Hurd也已经发布了Beta版本。此外,GNU在工作站和微机市场也颇有成就,许多UNIX工作站和微机厂家都把GNU纳入他们的操作系统。





1.自由软件与开源软件



Richard Stallman:自由软件和开源是两个不同运动的口号,他们的哲学是不同的。在自由软件运动中,我们的目标是自由地共享与协作。我们认为非自由软件是反社会的,这是因为它完全无视用户的自由,我们开发自由软件就是要摆脱这个禁锢。


而开放源代码运动推广的是一种开发模式,他们认为这种模式在技术上是先进的,并能产生技术上先进的结果。他们的价值观同微软的价值观是相同的:狭隘的实用价值。


自由软件和开源软件都是软件授权的准则。设立这些准则的方式有极大的差异,但可接受的授权却几乎一样。最主要的差别是哲学的差别。


为什么我一直强调哲学?因为不重视自己自由的人总会失去自由。如果你给他人自由却不教会他们重视自由,他们拥有自由就不会太久。所以光是散布自由软件是不够的,我们必须教会人们去要求自由,并为之战斗。然后我们也许可以解决今天在我看来无法解决的问题。





2.GNU/Hurd新内核





GNU Hurd 是 GNU 工程中取代 Unix 的核心。 Hurd 是一组运行在 Mach 微内核上的服务器, 用来实现 Unix 或其他核心(如 Linux)实现了的文件系统、网络协议、 及文件访问控制等其他功能。


目前,Hurd 运行在 IA32 系统上。未来 Hurd 应该, 而且可能会被移植到其他硬件系统或微内核上。


Hurd 不是一个已知的最先进的内核,但它有一些诱人的特点:


  • 它是自由软件

    1. 任何人在遵守 GNU General Public License (GPL) 的条件下,都可以使用、修改或重新发布它。

  • 它的兼容性

    1. Hurd 提供了一个熟悉的编程和用户环境。 对於所有的意图和目的来说,Hurd 都是一个现代的类 Unix 的内核。 Hurd 使用了 GNU C 库, 而此库的开发紧紧追踪 ANSI/ISO、BSD、POSIX、Single Unix、SVID 及 X/Open 等标准。

  • 可持续发展的构造

    1. 与其他流行的内核软件不同,Hurd 拥有面向对象的结构, 这就使得它不断发展而不用改变当前的设计。 这种结构将有助於完成 Hurd 主要的重设计和修改而不必完全重写代码。

  • 它的规模很大

    1. Hurd 实现了强有力的多线程, 以便它在单处理器和对称多处理器上都可以高效运行。 Hurd 的接口设计成允许透明网络组的共有,但这个特性尚未实现。

  • 它是可扩展的

    1. 对於学习怎样成为一个内核黑客或者在内核技术中实现新想法来说, Hurd 是一个有吸引力的平台。 系统的每一个部分都设计成可修改和扩展的。

  • 它是稳定的

    1. 在开发和测试新的 Hurd 内核组件时, 可能不需重新启动机器(即使是意外的)。 运行自己的内核组件不会妨碍其他用户, 而且这并不需要特殊的系统权限。由於这种设计, 扩展内核的程序是安全的:除非他们认可这种改动或者你是系统管理员, 否则你的修改不可能影响到其他用户。

  • 它已经存在

    1. Hurd 是正在工作中的真实的软件。不是一个研究项目或提案。 你可以开始使用并开发它,而根本不必等待。




Debian GNU/Hurd 是GNU操作系统的Debian发行版(GNU Hurd作为内核).


Debian GNU/Hurd已开发了数年,但仍未正式发布。Debian GNU/Linux大约半数的软件包已经移植到GNU Hurd。 尽管如此,Hurd本身仍处在开发中,还未达到生产系统的要求。大部分Debian用户倾向使用Debian GNU/Linux,而不是Debian GNU/Hurd.
Debian GNU/Hurd的当前版本是K16(发布于2007年12月21日),可在x86与x86-64 PC上运行。
Debian GNU/Hurd 可以通过一个Live CD体验。






一、Linux的发布与发展



0.Linus vs Tanenbaum 唇舌大战



  • a.微内核与宏内核

    1. 当时的学院派力顶微内核,但是微内核还不太成熟,并且还没有真正成功的实践产物。微内核可以将内存管理,文件系统,进程管理等分离出基本内核之外,基本内核只关心中断处理,指令执行,底层进程管理和外面进程的消息通信。宏内核是传统的体系结构,整个系统运行在一个内核模式下,负责所有OS的工作。由于没有了消息处理的负载因此宏内核性能相对较高。但是微内核因为内核的精简而更具有可移植性。


      论战之内核模式:


      Tanenbaum老先生直接下定结论:微内核更好,并暗讽Linux是一种退步,因为她是使用的学院派认为会被淘汰的宏内核模式。老先生在第一轮论战中承认了微内核在性能上的劣势,但是仍然坚持微内核也可以达到宏内核的性能。


      Linus肯定了微内核在美学上更加优雅,但是他写Linux的时候Gnu内核还没有,所以他不可能使用微内核,但是Minix并没有完美的实现微内核,存在很多缺陷,比如多线程Hack,没有多线程Fs以及资源竞争等。


      Tanenbaum指出缺陷存在的原因是因为Minix的用户没有能力承受昂贵的硬件。同时认为性能受限的机器上只有一个job被激活,多线程FS不会有实际意义,反而会增加代码复杂性;高性能机器,可能有足够大的缓冲区来保证缓存命中率,在这种情况下多线程也没有意义。因此多线程FS只有面对磁盘I/O才会变得有意义。Tanenbaum根本否定了多线程FS。


      Linus认为OS可用性是很重要的。如果没有多线程,用户需要很昂贵的机器。否则就会经常处于等待状态。并且编程人员也会处理消息处理队列等复杂的事务。OS不能光说不练,理论模型只是教授们的玩具。


  • b.可移植性

    1. 有系统在未开始之前,脑海中首先就要考虑移植性的问题。这是一个业已被证明的软件工程真理。可移植性使得系统面对硬件的改变可以轻松的被重用。既可以减少移植的开销,也可以减少重新开发或者大量更改系统过多Bug的引入。Linux设计的时候是针对80386的,因此可移植性逊于Minix。Minix的初衷是作为一款教学产品,因此其设计堪称优美,甚至接近完美。由于使用微内核体系结构,所以其可移植性较好。并且已经被实践证明。


      论战之可移植性:


      Tanenbaum强调OS的可移植性的重要性,因为任何硬件体系结构都不会永远存在。如果软件可移植性差,面对改变的硬件架构将需要很多改变来使用已存的软件。他肯定了Minix是可移植的,并且非常容易。他认为Linux是针对80x86设计的,是与其绑定在一起的,因此是一个设计错误。


      Linux激进的认为"Portability is for people who cannot write new programs",同时也提到因为Linux的内核极小,且是开源的,在统一接口的情况下,任何人可以改变它,这就给linux带来了很好的可移植性。





1.Linux的优点



  • a.免费

    1. 由於 Linux 是基於 GPL 的基礎下的產物,因此任何人皆可以自由取得 Linux ,至於一些『安裝套件』的發行者,他們發行的安裝光碟也僅需要些許費用即可獲得。即便是最昂貴的企業級版本 Linux ,其售價與授權人數約相等於同樣授權與人數的 Windows 版本的三分之一到二分之一。

      首先,Windows 98系列操作系统,一个就是100 多美元,每次升级又是几乎同样的价钱。 Windows NT 还要贵几倍,而且有用户数目限制,5个用户的,10个用户的…… 以后如果要增加用户数目还要按比例付钱。这个奇怪的现象被通用汽 车公司的总裁比喻为:“你买的微软牌汽车最开头只有一个座位,每加一个座位你得向汽车公司付钱,每开100英里要大修一次,每过一年要换一次引擎。”

      花了如此多钱买来的操作系统就能用了吗?它竟然连压缩程序都没有提供!你装上Windows 之后一般第一件事就是去下载一 个 WinZip 吧,“只要 29 美元”。Windows 会中病毒啊,马上花 70 美元买一个 Norton AntiVirus 吧。还有黑客 呢?再买一个 Norton Internet Security 好了,100 美元。系统需要优化,磁盘需要整理,买一 个 Norton System Works 是你最佳的解决方案,100美元。

      可是你现在还是不能干正事啊!你想要一个 Word, PowerPoint?那就买一套Office XP 吧,一起买便宜些,$459.90。

      那些程序不会用啊!那些菜单怎么设置,到底有什么功能啊?看“帮助”也学不会。买本书看看吧,我推荐 “Special Edition Using Microsoft Office XP”,不贵,$27.99。这本书里面大部分是屏幕抓图,还是买一 本旧的比较划算,$17.85。

      你如果只是当个秘书,上面的差不多还凑合了。可是你有更高的追求,你想成为Windows 程序员。首先买一个 Visual Studio.NET 吧,要不然怎么编译程序。$494.95。

      为了紧跟微软动向,世界潮流,不能不注册个 MSDN 什么的吧?这个贵一点,不过物有所值啊,$2,799。

  • b.安全

    1. 曾有人戏称“linux中毒的概率跟被雷劈的概率差不多”。

      Unix至少设立了三层内部边界来防范恶意用户或有缺陷的程序。一层是内存管 理:Unix用硬件自身的内存管理单元(MMU)来保证各自的进程不会侵入到其它进程的内存地址空间。第二层是为多用户设置的真正权限组——普通用户(非 root用户)的进程未经允许,就不能更改或者读取其他用户的文件。第三层是把涉及关键安全性的功能限制在尽可能小的可信代码块上。在Unix中,即使是 shell(系统命令解释器)也不是什么特权程序。

      Linux 由於支援者日眾,有相當多的熱心團體、個人參與其中的開發, 因此可以隨時獲得最新的安全資訊,並給予隨時的更新,亦即是具有相對的較安全。 Linux 所有的程式碼均公開可供任何人查閱,因此所有的設計理念與機制均可檢視,沒有後門程式的問題。 Windows 即採封閉式系統,即程式碼非公開。

  • c.稳定

    1. Linux 是基於 Unix 概念而發展出來的作業系統,因此, Linux 具有與 Unix 系統相似的的程式介面跟操作方式,當然也繼承了 Unix 穩定並且有效率的特點。常聽到安裝 Linux 的主機連續運做一年以上而不曾當機、不必關機是稀鬆平常的事。

      为什么Linux不需要硬盘整理:

      这段linux官方资料主要介绍了外部碎片(external fragmentation)、内部碎片(internal fragmentation)的概念及相关情况,说明了linux文件系统在磁盘还有5%空闲空间的情况下是不需要碎片整理的。(Linux native file systems do not need defragmentation under normal use and this includes any condition with at least 5% of free space on a disk.)。而在实际使用中,磁盘在还有8%左右未使用时就会有警告产生,所以碎片整理是不用考虑的。


  • d.灵活

    1. 大多数编程问题实际上都可以分成两部分:“需要提供什么功能”(机制)和“如何使用这些功能”(策略)。XFree86, FVWM, VIM, Emacs, proftpd, Mutt, wget,tin, ... 没有一个不是用配置文件来设置选项的。都有非常灵活的定制。

  • e.永恒

    1. 惟一一类从嵌入式芯片,手持设备到桌面机,从服务器到专门用于数值计算的怪兽型计算机数据库后端都挪腾有余的操作系统

      NT是逐步堆积而成的,缺乏对应于Unix“一切皆文件”或MacOS桌面的统一性理念。由于它的核心技术没有扎根于一小群稳固的中枢观念中,[14]因此每过几年就会过时。每一代技术——DOS(1981),Windows 3.1(1992),Windows 95(1995),Windows NT 4(1996),Windows 2000(2000),Windows XP(2002)和 Windows Server 2003(2003)——随着旧方式被宣告过时而不再有良好支持,开发者必须以不同的方式从头学起。



      下面是其它一些后果:



      GUI功能与继承自DOS和VMS的残留命令行界面不能稳定共存。



      套接字编程没有类似Unix那种“一切皆是文件句柄”的统一数据对象,因此在Unix中很简单的多道程序设计和网络应用到NT下则要牵涉更多基础性概念。



      NT的一些文件系统类型也有文件属性,但仅限用于为实现某些文件系统的访问控制列表,因此对开发风格不会产生太大影响。NT也有文本和二进制这两种记录类型区别,时不时地讨人嫌(NT和OS/2都从DOS那里继承了这个不良特性)。



      尽管支持抢先式多任务处理,但进程生成却很昂贵——虽然比不上VMS,但是(平均生成一个进程需要0.1秒左右)要比现在的Unix高出一个数量级。脚本功能薄弱,操作系统广泛使用二进制文件格式。除了此前我们总结过的,还有这些后果:



      大多数程序都不能用脚本调用。程序间依赖复杂脆弱的远程过程调用(RPC)来通信,这是滋生bug的温床。





2.Linux主要发行版及特点



  • Ubuntu

    1. 近年最受欢迎Linux,桌面市场占25%。气颇高的论坛提供优秀的资源和技术支持,固定的版本更新周期和技术支持。

  • openSUSE

    1. 最华丽的Linux版本。

  • Debian

    1. 最严谨的发行版。遵循GNU规范,100%免费,优秀的网络和社区资源,强大的apt-get。

  • Fedora

    1. 最激进的发行版。拥有数量庞大的用户,优秀的社区技术支持,许多创新。

  • Gentoo

    1. 最完美的Linux,疯子、变态、狂人的Linux。Gentoo的出名是因为其高度的自定制性。




3.国内外Linux发展情况



  • 詹姆斯·西姆斯(James Sims)是总部设在加州莫德斯托、年收入达数十亿美元的食品售企业Save Mart的IT副总裁兼首席信息官。西姆斯把该公司IT基础架构上的专有软件统统换成开源技术,部署了SuSE Linux操作系统和Ingres开源数据库,还部署了Hobbit开源监测工具,用于监测Save Mart的服务器、应用软件和网络运行状况。他还与Novell、红帽和Ingres等厂商建立联盟,支持使用开源软件。


      

    据西姆斯声称,开源软件不但与专有软件一样好用,在许多情况下,甚至比专有软件还好用。他表示,自从用开源解决方案取代甲骨文、微软和惠普的专有软件后,每年为公司节省50%以上的IT成本。




  • 美国Computer World网站今天撰文称,白宫网站已经完全采用了开源平台,就连一直固守专有软件的美国国防部也开始对开源软件敞开了大门.对开源的支持也使奥巴马被外界冠以“开源总统”之称.


    奥巴马及其团队今年2月便开始使用颇受欢迎的CMS(内容管理系统)Drupal以及 Linux来运营网站.首个采用Drupal的美国联邦政府网站是Recovery.com,该网站专门用来追踪《复苏法案》(Recovery Act)的开支.


    不过,除了Drupal用户以外,很少有人注意到这种转变.但现在,奥巴马及其团队也将白宫自己的网站转移到Linux 和Drupal平台.但这种转变并非出于外观考虑,白宫网站的页面布局并没有任何变化,其真正原因在于安全性,这也是多数用户使用Linux和开源软件的 初衷.


    虽然无法获知转换过程,但网络安全厂商NetCraft的资料显示,白宫网站已经完全采用了LAMP(Linux、Apache、MySQL和PHP)架构,并搭配Drupal.而网站基础设施的搭建工作则由美国著名的政府IT承包商GDIT负责.



  • 2009年12月8日,北京—— 今日,Novell 宣布国家气象局经过几个月的测试和评选,已从Novell公司购买近千套SUSE Linux Enterprise Server和2000多套SUSE Linux Enterprise Desktop,在全国气象灾害预警项目中使用,以实现更快速、更准确的应急减灾,这也是Linux桌面产品首次在中国大规模应用于关键企业。


    Novell 的SUSE Linux Enterprise 解决方案在各行各业的成功应用证明了它的成熟性和可靠性,这也是国家气象局最终选择Novell产品的原因之一。Novell 的产品大大提高了国家气象灾害预警系统的灵活性和应变能力,不仅提高效率和安全、优化管理,而且兼容性好,降低运营和管理成本,减少停机故障,减轻系统维护和预定管理的工作负担,大大满足了国家气象局的需求。同时,该产品还能高效的处理大量的气象数据,确保数据的可靠性、完整性、高性能性以及安全性,提高了气象部门的天气监测、预报和服务能力。



  • 江苏省政府将出资3.5亿元采购由龙芯梦兰公司出品的15万台龙芯电脑,主要用于该省农村5000所中小学多媒体教学。江苏15万台订单共3.5亿元,即每台电脑大约2300多元。目前龙芯只支持GNU/Linux操作系统,故这些电脑运行的肯定是GNU/Linux操作系统。



  • 加利福尼亚州州长阿诺·德施瓦辛格最近宣布了一系列预算削减案,但政策文件显示,这一方案却给开源发展创造了一个良好机会。开源软件已经被加州政府认为是一个可接受的节省开支的做法。



  • 法国人Fabrice Bellard最近使用一台普通的台式电脑,完成了冲击由超级计算机保持的圆周率运算记录的壮举,他使用台式机将圆周率计算到了小数点后2.7万亿位,超过了由目前排名世界第47位的T2K Open超级计算机于去年8月份创造的小数点后2.5万亿位的记录。
    Bellard使用的电脑是一台基于2.93GHz Core i7处理器的电脑,这部电脑的内存容量是6GB,硬盘则使用的是五块RAID-0配置的1.5TB容量的希捷7200.11,系统运行64位 Fedora 10操作系统,文件系统则使用Linux的ext4.


  •  Linux在电影业中的应用,早就已经不再是什么新闻。在《星球大战2》中,使用Linux的工作站造就了鲜活逼真的Yoda。而在《指环王2》中,拍摄兽人对要塞猛烈进攻的场面时,并没有使用成千上万的真人演员,而是使用 Linux创建的数字演员。在很多人眼里,Linux的影响力还无法与Windows和Macintosh相比,但在好莱坞的电影工作室中,Linux的地位却是Windows和Macintosh所无法匹敌的。到现在为止,使用Linux制作的好莱坞大片已经超过30,其中包括了《指环王》、《星球大战 2》、《哈利波特》、《史瑞克》和《泰坦尼克》《阿凡达》等耳熟能详的经典大片。

  • 古巴弃用微软Windows
    继政府部门之后,古巴的国营企业也开始将电脑中的美国微软公司的视窗操作系统更换为本土版Linux操作系统,并称此举是为了防止美国通过视窗操作系统危害古巴利益。


  • 挪威 
    挪威第二大城市卑尔根大规模迁移到Linux的计划已经进行到一半。已经将许多市政管理和教育服务器迁移到Linux上,并且正在将全市100所学校迁移到开 源桌面上。在该计划完成之后,打算将市政管理的所有桌面迁移到开源操作系统上。 挪威超过100所学校使用Skolelinux,这是Linux为学校定制的版本。挪威现代化部长Morten Andreas Meyer在Oslo的一次新闻发布会上说,“专利格式将不再适用于公民和政府间的通信,”。 


  • 巴西:
    巴西州政府中有许多大规模的迁移,例如,Parana州正在将10000政府员工从专利软件迁移到定制版的开源协作应用软件eGroupWare上,而且S?o Paulo在 全州的学校中配置了16000台PC和1000台服务器的Linux,根据Mandriva的说法。一些州政府机构也迁移到开源软件上,据报告说22个联邦部门中的七个在 使用开源。这包括许多开源桌面配置,例如,联邦政府中有4000台主机使用OpenOffice.org,根据Sun的产品行销经理Erwin Tenhumberg的说法。 巴西联邦政府已经起草法案要求公共部门使用开源软件。这项法令促使政府部门迁移到开源软件,除非他们可以证明继续使用专利软件是合理的。 “自由软件为熟练 程序员建立了一个社区,不久后成为国家总体科技发展的重要阵地。所以‘教育’的益处也是促使巴西政府采用自由和开源软件的重要因素。” 


  • 法国:
    2009年1月份,法国准军事警察部队表示,将逐步放弃使用微软Windows操作系统,而转向使用Linux操作系统。自2005年以来,法国国家宪兵部门已先后放弃使用微软Office办公套件和IE浏览器,转而使用OpenOffice和Firefox(火狐)浏览器等开源产品。 法国国家宪兵总队日前称,他们通过部署Ubuntu来代替微软的Windows,已经节约了数百万欧元。法国警方从2005年开始就向开源软件过渡,当时他们采用OpenOffice取代微软的Ofiice。之后逐渐采用其他开源软件,包括Firefox和Thunderbird。 在2006年微软发布Windows Vista之后,他们开始逐步淘汰Windows系统,采用Ubuntu系统。在近期的部署中,他们已经在5000个工作站中部署了Ubuntu。他们还计划在年底之前对1.5万个工作站部署Ubuntu。他们预计在2015年之前,对整个警察系统的9万个工作站全部部署Ubuntu。 


  • 德国 :
    德国外交部将它的11000台电脑全部换成GNU/Linux和其它开源软件。这一举措将使外交部相比其它部门大幅度的减少维护费用。


  • 俄罗斯:俄罗斯于2007年在全部学校使用基于Linux的Russian OS,大力推广开源软件。俄罗斯各地纷纷具办举办各种学习班、培训班学习Linux。现在这一部署已经实施一年,到今年9月,已有1,092所实验区学校部署完毕,其他非实验区的200多所学校也即将上马。 俄罗斯政府下大力气,投入大量资金在学校部署开源操作系统的用意很明显。当这一代人走出校门后,无论在家里还是在工作时,他们都会选用他们最熟悉的Linux开源软件。


  • 美国 :
    美国纽约州立法机构修改美国税法,对开源软件开发者进行个人所得税补贴(减免20%),最高补贴限额为200美元(每年). 





二、Windows七宗罪



  • 毒害教育:微软通过游说腐化教育部门,让儿童使用的计算机采用Windows操作系统,而真正的教育用计算机应该使用自由软件和开放操作系统。

  •   
  • 侵犯隐私:微软使用Windows Genuine Advantage去检查用户硬盘上的内容。

  •   
  • 垄断:大多数品牌机预装的系统都是Windows,用户别无选择。

  •   
  • 封锁:微软通过不支持旧操作系统和旧文件格式强迫用户升级新版Windows和新i版Office。

  •   
  • 滥用标准:微软试图封杀自由文件格式ODF,因为这项格式不是微软提出的,它将威胁到微软的垄断。

  •   
  • DRM:微软在Windows Media Player中限制拷贝某些媒体内容,从而保证某些大公司的利益。

  •   
  • 威胁用户安全:Windows长期以来存在大量的安全漏洞,导致病毒蔓延,让攻击者把受害者的电脑变成僵尸网络中的一部分。用户只能依赖微软去解决安全问题,而微软基于自己的目的考虑,并不以用户需求为基准。




三、Linux书籍汇总



  • 0 unix/linux哲学思想 > > > 《UNIX编程艺术》

  • 1 熟悉linux基本环境 > > > 《鸟哥的私访菜》《unix初级教程》 《linux in a nutshell》(市面上无,图书馆有), 等等。

  • 2 熟悉操作系统的基础知识 > > > 《现代操作系统》 《操作系统概念》

  • 3 熟悉系统编程 > > > 《unix环境高级编程 第二版》《unix操作系统设计与实现》

  • 4 内核 按先后顺序: > > > 《 linux内核设计与实现》 《linux设备驱动程序》 《深入理解 linux内核》 《linux内核源代码情景分析》 《深入理解linux虚拟内存系统》

  • 5 其他一些书籍: > > > 《freebsd操作系统设计与实现》 《solaris内核结构》 《unix高级教程:系统技术内幕》 《现代体系结构的unix系统:内核程序员的smp与cache技术》 《保护方式下的80386及其编程》 (后3本市面上没了,大学图书馆里一般都有》 《Intel64 and IA-32 Arichitectures Software Developer's Manual》

  • 6 其实内核玩深了,体系和编译也要学好 > > > 《计算机体系结构:量化研究方法》 《编译原理》(龙书)



2010年2月21日星期日

gentoo再次把我弄郁闷了

嗨~第二次装gentoo还是失败了,gentoo真的比较郁闷啊。上一次弄一个礼拜每天只睡3-4小时,一天就吃了一顿饭,还折腾便秘了~这回又是腰酸背疼,窝了一肚子的火,相当不爽~
上一次是在虚拟机下折腾的,虚拟机的显卡用vbox-video-driver和vesa驱动都不能顺利启动Xwindows,对着个log文件到现在也没找到原因。
这回gentoo的livecd也是个相当有问题的东东,pata_qdi,wd3000,raid456这几个模块这里直接就傻掉了,虚拟机下到是好用的,我的两台电脑都不行。还是用"system rescue os"做母系统装的。
自己分区,自己建文件系统,自己挂载,自己下内核配置编译,自己配置grub~一路狂费时间的弄~
好不容易装好了,发现这回主板是捡来的,果然不是什么好东西~不知道是主板电池没电了,还是别的,反正时间没法设置,ext4这样的日志文件系统不停报时间错误,就挂都挂不上去了~比上次还不如~
做穷人正是痛苦~下次有台正常一点的电脑直接弄LFS了。
时间设置以前没注意,对于日志文件系统还真是比较重要,开始没设置时间也是直接报no space left,跟handbook上说的一样出现相当奇妙的错误~
gentoo really sucks!!!

还是有空先玩玩fvwm吧。

顺便说句,我的文章怎么越来越像小学生作文了~

2010年1月25日星期一

In memory of last email from my mentor

Thank you. It was very nice being your mentor. If you ever happen to
come to the US, you are also free to visit me. I live in the Southwest
NM, which I find very beautiful (although it is a desert -- which some
people don't like).

I think you have a tremendous amount of potential to do amazing things
in Computer Science. Here are my top 5 things to remember for success
in life:

-- You are capable of far more then you realize.

-- Everyone has something to teach you. Listen to all those around you,
but make your own judgments on if they are right or not.

-- Challenge yourself. If you are having an easy semester, you haven't
signed up for the right classes

-- Don't be afraid to fail spectacularly. One of the reasons why I
think all students should write a kernel module is because a
poorly-behaved kernel module can take your whole system down, destroy
data, etc....but once that has happened a couple of times, you are no
longer intimidated by the prospect of failure, and you can start really
learning.

-- Have fun. Get outside. Exercise. Enjoy nature. Life shouldn't be
all computer science. Pick at least one hobby that has nothing to do
with computers and go out and do it at least once a week.

Feel free to email me anytime. Just because I am no longer officially
your mentor does not mean we cannot communicate :)

Sonja Tideman

双启动Linux&XP时间不对等

RH系列的修改/etc/sysconfig/clock即可。将里面的UTC=true改为UTC=false。似乎环境都是自动对时的。那么重启机器,稍微耐心点即可。

2010年1月22日星期五

Fedora-Tor 安装指南

万里长城万里空,有Tor穿墙不是梦~

fedora上基本步骤是:
yum -y install tor privoxy

然后配置privoxy
gedit /etc/privoxy/config

复制粘帖下面那段配置:


# Tor listens as a SOCKS4a proxy here:
forward-socks4a / 127.0.0.1:9050 . #.不要漏掉
confdir /etc/privoxy
logdir /var/log/privoxy

logfile logfile

#actionsfile standard # Internal purpose, recommended 在3.0.3-beta里面没了
actionsfile default # Main actions file 这里的default.action要看文件啊
actionsfile user # User customizations
filterfile default.filter

# Don't log interesting things, only startup messages, warnings and
errors
#logfile logfile
#jarfile jarfile
#debug 0 # show each GET/POST/CONNECT request
debug 4096 # Startup banner and warnings
debug 8192 # Errors - *we highly recommended enabling this*

user-manual /usr/share/doc/privoxy/user-manual
listen-address 127.0.0.1:8118
toggle 1
enable-remote-toggle 0
enable-edit-actions 0
enable-remote-http-toggle 0
buffer-limit 4096


然后装vidalia

yum -y install vidalia vidalia-doc

然后装火狐torbutton插件

装完配置完成以后要给bridges@torproject.org发一封邮件

>

> 邮件可以不需要标题,邮件的内容为get bridges

>
收到以后把给你的网桥按说明添加上去~

>

>填在settings -> network -> My ISP blocks the connections to the Tor netowork

>
把火狐那个torbutton激活就可以了~

>

>同学向我反应torbutton发生.js错误,那么其实一点关系都没有。

>按一下操作一样可以使用:

>preferences -> general -> network -> settings

>选择手动配置代理:在 http&ssl&socks的地方填127.0.0.1;端口前两个是8118端口,后面

>一个是9050端口。socks选v4 | v5的没关系的。

>

>windows用的软件也是这几个,但偶没有windows,大家自己试试吧~好像有一个套件的

>Vidalia Bundle已经3合一套装了~

>Have fun!

>