分类: Linux

[转]从程序员的角度看 Linux 和 Windows 的对比

[转]从程序员的角度看 Linux 和 Windows 的对比无评论

2010-03-15 at 21:03分类:Linux

        本人在 Unix SYS5 , DOS , Windows 3.x , Windows 9.x/NT 和 Linux 几个不同时期流行的 OS 上写过程序。在 Linux 和Windows 的对比中,我主要是从一个程序员的角度来看的。

    一  系统架构的对比

    1  内核

    (1)  内核的弹性
  Linux 的内核表现出了高度的可配置性和独立性,主要是完成:I/O 驱动设备管理, TCP/IP ,以及任务调度。 Linux 的标准内核发布版本有 40-50 MB ,而我现在在一些评估板上试验的嵌入式 Linux 系统(使用 ARM 或 M68K 系列的 CPU )只用到了2MB ,同样实现了网络功能和完整的任务调度,这使得 Linux 可以适用于从高端服务器到嵌入式应用的各个等级的计算平台上 ,与之相比,Windows 没有明确的内核概念。Windows 只适合台式机,NT从未真正的打入高端服务器,WinCE 也遇到了一些结构性的困难。

    (2)  内核的任务管理
  衡量一个内核的重要指标是多任务环境下的安全性和任务调度的效率。
  Linux 在这方面继承了 Unix 的优点。而 Win9.x(包括 Winme )从来就没有实现过安全的多任务环境,NT/2K 勉强做到了安全性,但是效率还是不敢恭维,我曾今将一个多串口并发驱动的应用程序改写成多线程的方式,原本希望提高处理速度,实际上速度降低了2-3倍。 这也就不难理解为什么同样的企业级应用在低硬件的机器上跑得比高硬件配置的 NT/2k 快。

    2  系统的可增值性与历史兼容性

  一个设计优良的操作系统应该有一个精简和一致的构造,在添加新的功能时不必破坏原有的结构,而且在后继发展中能够保持前后一致性。Unix由于当初设计时的科学性,以致于20多年的时间内,没有在设计思想上做过大的变动。虽然 Unix 有很多的版本,但是通过 Posix 标准,这些系统在源代码上保持高度的兼容。
  与之相比,Windows的几乎每个操作系统的框架设计都显得十分的随意,几乎不考虑硬件有了新的发展后,会出现什么问题。Windown 16 位和32位两个时期的操作系统出现明显的“代沟”,作为一个好的 OS ,这种硬件上的差异是应该由其本身来考虑的,而不是把问题交给二次开发者,比如定义一堆 PSZ LPSZ的指针,将来64位时代,大概要出现LLPSZ了。:)

   3  GUI 图形用户界面

  Linux 的 GUI 建立在 X-window 基础 ,这是与 Windows 的 GUI 完全不同的一种架构 Windows 的 GUI 是通过应用程序直接调用 Winows 底层的 GUI 函数。或者说这是一种垂直的关系。而 Linux 的 GUI 是应用程序通过 Socket 向 X- window server发送请求实现的,只有 X server 在真正的写屏幕。或者说这是一种平行的关系。后者的方式带来更高的系统稳定性,因为图形显示系统崩溃,对于 Linux 来说,只不过是死掉一个进程而已;而对 Windows 来说会导致整个系统的崩溃。当然 X-window 的开销要比 Windows 的方式大,但是由于硬件的发展 X-window 在稳定性上的优点会将会弥补速度上微不足道的差异。

      4  应用开发环境

  Linux 上的开发工具没有 Windows 的容易入门,并不代表 Linux 上的开发环境比 Windows 差,其实 Linux 编程入门慢 ,但是一旦熟悉了,以后就很少需要补充新的概念。与之相比,微软用一些很 “简便” 的编程概念吸引你,然后很快的淘汰这些概念,强迫你学习新的概念,你发现很多时间花费在气喘嘘嘘的跟着微软后面跑。你在这方面花费的时间远远超过你去学习 Linux 编程的时间。
  另一方面,Linux上 IDE 的开发工具也在成长,最终会吸引更多的应用开发工程师。

    5  技术上的发展潜力

  Windows 现在的技术架构基本上走进了一个死胡同,很难有大的创新。除非提出一个完全不同的系统,然后在里面做个 win32 子系统,以兼容现有的程序。就像在 NT 上搞 win16 子系统一样:),并且体积再扩大一倍。
  对于 Linux 来说,一个很好的架构放在那里,现在主要是填充内容,丰富应用。在可以预见的时间内,Windows 无法在架构上超过 Linux。

  6  多种平台互连的影响

  如果 Linux 在嵌入式应用中取得了成功,那么将来就会对台式机市场形成外围的压力。随着 PC 机的控制与网络能力逐步融合到家电和传统设备中去,这一天一定会出现的。微软以下压上的策略(用 Win9x 的市场优势推 Win NT)会在 Linux 上重演。

  结束语

  手也打酸了,最后我用最近看到的一段评论结束这篇文章,好像是这么说的:Linux 就像 Internet 一样,在开始的时候发展较慢,一旦过了起步阶段,就会取得惊人的发展。

[转]为什么使用Linux – 写给愿意改变的人们

[转]为什么使用Linux – 写给愿意改变的人们无评论

2009-06-02 at 22:08分类:Linux

很多时候,你很难说明白为什么突然就做了一个决定。正如在某个下午,突然发现PC正在沦为傻瓜式TOOLS,占据每天60%时间的PC却在潜移默化中让我丧失了探索精神的时候,我决心要做出一些改变。一方面,是为了摆脱没用过正版操作系统、已被越来越BT的防盗技术的困惑和窘境;另一方面,则是希望能够让自己成为PC的主人:过去我总是能对自己DIY的机器配置倒背如流,如今,已经很难说出某个部件的型号、甚至品牌。

从DOS— WIN3.2 —WIN95—WIN97—WIN98—WIN2000—WINME—WINXP,从修改DOS配置文件(很难想像还会有多少PC用户记起那个.bat文件的名字)到PNP,到越来越智能的安装配置,PC正在变成傻瓜化TOOLS,而我们的大脑,也跟随着“傻瓜”:如果有一天,没有系统恢复盘,面对C: \,多少PC用户会感到手足无措?

继续仰赖Windows无疑是一种糟糕的选择,MS不会期望看到人人皆为专家的时代,这样会造成那些 MVP、MSCE的贬值,也会在这个领域培养太多的潜在的、不可控的竞争对手。回想过去,是谁,正在把我们一步步引入PC使用的歧途?早期的PC用户大都拥有良好的技术,而到了现在,随着Windows的普及,人们却越发远离PC实质。如果有一天,这个世界真的需要《独立日》里的一位给外星人飞船注入病毒的英雄,那一定不会是只会点击“Start”的Windows用户。

好吧,是时候做出改变了;幸好,我们还有Linux。

噢,是的,你或许已经有过了Linux的体验,90%,甚至接近100%,那是一次非常糟糕的体验。如果不幸你碰到了一个糟糕的发行版本,并且没有富有经验的 Linux fans在旁指导的话,我很能想像你一个星期都没能把Linux请到你PC上的那种心情。事实上,在上个周末,我在拥有优秀的 RedHat Fedora Core4、详尽的安装指导以及先前有过成功安装Linux经验的情况下,仍然折腾了一个晚上才把Linux成功安装完成。再加上两天后才成功安装上一个 for Linux的软件,我想,这是我几年来最糟糕的使用体验了。我还没说,在刚刚装好Linux的4个小时内,在正常使用情况下,Linux就当机了两次,你就可想而知我糟糕的、失落的,甚至有一种被人狠狠敲了后脑勺的感觉:因为之前在网上搜索的那些 Linux fans的豪言壮语已经在我的心里把Linux描绘得无与伦比。

所以,以我已经3天的Linux使用经验来看,如果你只是想寻找一个顺手的图形化计算机工具,Linux暂时还不会是你最好的选择,最起码,有MS Windows在的时候,Linux只能是手下败将。

不是说GNOME和KDE都不够美观实用,也不是说Linux是一个低效、复杂的操作系统,而是Linux的很多根本上与Windows的差异,阻碍了许多用户的进入,需要付出一定的时间代价去深入学习以及转换固有的MS Windows思维。比如说Linux下软件的安装方式,对于一个把MS  Windows完全等同于PC操作方式的用户来说,不啻于是一场灾难。

所以,如果你还有兴趣往下看的话,那么,我只是说给那些“愿意做出改变”人来看,无论你是基于什么样的目的。而如果你只是在寻找一个能够差不多替代,甚至比MS Windows更易用的PC系统的话,那劝你还是不要浪费那个时间了。

为什么在如此看似糟糕的选择下,我仍然要做出这样的选择?

现在开始学习Linux,无异让我倒退到6年前刚接触PC的那个水平,“从头再来”的阻碍,永远比“初次开始”要困难得多,最少,我现在整天都在和固有的MS Windows思维艰难地搏斗着。

可是,我仍然期望,是由我来摆布PC,而不是PC来牵着我的鼻子。当思维模式被别人所固定的时候,这是一场潜在的危机。

不过需要明白的是,思维的固定不等于懒惰。事实上,我赞成“懒惰”,因为懒惰我们发明了洗衣机、发明了电饭煲,节约了烹饪的时间,解放了人们创造的时间与空间。然而,当思维被别人所固定、圈定的时候,灾难随之降临。

“嘿,把他们都交给微软吧。”需要上网?有微软会提供IE;需要处理文档?有微软会提供WORD…可是,微软不只是提供工具而已,它还要制定一个能把你彻底套牢的标准。你会发现,用Firefox浏览的一些网站总是会有莫名其妙的错误,这不是Firefox的错,而是微软IE当年“自成一套”规范的汗马功劳;你会发现,同事或朋友传过来的DOC文档除了MS WORD,没有其他任何软件能够打开,这不是软件天才们的错,微软出于各种理由,总是不会公开DOC格式。

但是Linux可以对这一切说不。你用不惯Firefox,没人强迫你、不许你用Opera,你还可以用IEView。你甚至可以更换你的“桌面”,能力足够的话,你还可以自己搭建一个。你所能做的,一切都取决于你的能力,而不会受限于某个公司独有的 “标准”,各类详尽的文档会给你提供强大的帮助支持。

为什么你还没有迈出改变第一步?

我想这个问题会有很多种回答。不过,难于改变长期固有的 MS Windows使用习惯,应该是极为关键的重要原因,要是搞个排名调查,恐怕它会被列到第一位。Linux的确与MS Windows有太多的不同,要进行折中转变,所付出的个人成本相当之大。尤其是刚开始的那段时间,你会和我现在一样,不得不忍受痛苦的精神折磨。

疯狂试用 Linux

疯狂试用 Linux无评论

2009-04-23 at 21:44分类:Linux

2009.4.20 晚,我发现电脑中了AutoRun 病毒,很纳闷:我关闭了系统的自动运行,怎么还会有这种东西呢?况且还有卡巴斯基的实时监控。结果,我发现卡巴斯基已经暂停保护。

我立刻意识到:卡巴斯基跟游戏驱动冲突,被人关闭了。
在手工杀毒失败的情况下,我重新安装了 Windows XP。驱动程序配置完成后,我做了 Ghost 镜像文件。

刚好,我从家带来了 Ubuntu 8.1 中文版。为了再次防止病毒木马的入侵,我开始安装 Ubuntu。
结果,在即将安装 Grub 的时候,电脑重新启动。我只好再次安装。结果依然如此。

我不知道是为什么,就去 Ubuntu 网站下载了最新的 Ubuntu 9.1 测试版。去大学生活动中心买了张 CD 来刻录。安装成功。但是很多软件都不能用。后来才发现,我下载的 Ubuntu 9.1 是 64 位系统。而软件几乎全是 32 位的,与系统不兼容。

我不放弃,下载了 Fedora 10 Live CD 。照样刻录了安装。结果是安装软件时缺少必需的依赖包。而缺少的依赖包太多,我也不知道怎么安装它们。

我想了想:下载的 Linux 都是 Live CD 。我决定,下载一个非  Live CD 的版本。

我下载了 Fedora Install Media i386 版本。然后去买了张 DVD 刻录安装。

3.41 GB 的 DVD ,漫长的安装过程……

安装结束,配置 ADSL ,连接成功。本文,就是我在 Fedora 下写的。

现在是 Windows XP SP3 和 Fedora 10 双系统共存。
但是,我已经主要用 Fedora 上网了,慢慢适应 Linux 的终端。