专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »嵌入式开发 » linux内核完全注释:完全用GUN/Linux工作 »正文

linux内核完全注释:完全用GUN/Linux工作

来源: 发布时间:星期四, 2008年12月11日 浏览:8次 评论:0
=tf width="98%" align=center border=0>
=bw width="100%">=htd id=font_word style="FONT-SIZE: 14px; FONT-FAMILY: 宋体, Verdana, Arial, Helvetica, sans-ser">
cC1fbaiducukJvo作者:水木清华bbs上sk8er
cC1fbaiducukJvo相关链接:
cC1fbaiducukJvohttp://learn.tsinghua.edu.cn/homepage/015450/linux.html
cC1fbaiducukJvo
cC1fbaiducukJvo
cC1fbaiducukJvo完全用 GNU/Linux 工作
cC1fbaiducukJvo理解 GNU/Linux
cC1fbaiducukJvo“UNIX 是简单你不需要成为天才也能理解这种简单
cC1fbaiducukJvo
cC1fbaiducukJvo由于GNU/Linux这个词太长下面如果没有特别指明“Linux”就是指“GNU/Linux” 
cC1fbaiducukJvo
cC1fbaiducukJvo在这个年代恐怕没有人需要我来介绍 Linux 是什么了吧?如果你觉得“Linux 只不过是跟 DOS 差不多东西”那你恐怕很久在山洞里没见天日了吧?请问问你旁边 Linux 用户Linux 到底是个什么地位? 
cC1fbaiducukJvo
cC1fbaiducukJvo那为什么我还要写篇这样文章?我发现还有很多人不不理解 Linux 和 UNIX虽然他们也在用它但是他们有时会问:“为什么 Linux 不能像 Windows 那样 ……?”“怎么Redhat Linux不能 mount NTFS 分区!”“Linux 下用什么整理硬盘?”“什么时候OpenOffice才能完全兼容Word文件啊?”“现在还有什么Windows能干事情Linux干不了?”…… 
cC1fbaiducukJvo
cC1fbaiducukJvo他们有40G硬盘却只为 Linux 分配了2G空间有时还抱怨“这个东西怎么占这么多硬盘!” 似乎 Windows 该占用大部分硬盘他们把重要数据装在Windows分区似乎信不过Linux他们总是到处寻找新奇好看GUI对命令行东西概不屑他们对Drag&Drop菜单配置自动升级非常感兴趣他们如果找到个很像 Windows  Linux 定会很高兴说:“哈哈!Linux 也能……了!” 如果Linux在某种测试中胜过Windows他们会高兴得跳起来他们没有办法用Linux解决问题时候甚至用Wine来运行Windows有时实在没办法只好重起到 Windows或者干脆省得麻烦在 Windows 下装个 VMWare 虚拟个 Linux 玩 
cC1fbaiducukJvo
cC1fbaiducukJvo你支持 Linux你喜欢 Linux你能从中感觉到快乐这非常好你现在只需要明白是:Linux 从来就不是个玩具它是天才UNIX后代UNIX 是自晶体管发明以来最伟大发明它从诞生那天开始就比 Windows 设计出色Linux 并不需要追赶 Windows不需要打垮微软最终目标是改变整个计算机世界还人们自由给人们乐趣和方便其它UNIX很多都已经败在Linux脚下更何况 Windows! 
cC1fbaiducukJvo
cC1fbaiducukJvo你如果出现了以上情况说明你思想受到了 Windows 某种潜移默化影响和误导你没有能够从本质上理解存在于 Linux 身上 UNIX 思想UNIX设计者 Dennis Ritchie 说:“Unix is simple. It just takes a genius to understand its simplicity.” 但是我不这么认为我不是个天才但是我却勇敢把Windows完全删除掉半年之后我体会到了 UNIX 思想和好处我相信这样信念:“Windows 能办到事 Linux 定能办到而且办更好” 
cC1fbaiducukJvo
cC1fbaiducukJvo这小节开头话应该改成:“Unix 是简单但是在这个冲斥着 Windows 观念世界你需要信念和勇气才能理解它简单!” 我下面就告诉你些我理解到东西 
cC1fbaiducukJvo
cC1fbaiducukJvo微软地位
cC1fbaiducukJvo微软名声在欧洲和美国大学里特别是在计算机系里之坏大家可能有所耳闻我认识 MITStanford 教授贝尔实验室专家甚至个欧洲小国高中计算机老师都绝口不提微软名字在他们眼里微软只是个没有真技术专靠在落后国家商业宣传和垄断经营小公司这个“小”并不是说它人少钱少而是说它先进技术少 
cC1fbaiducukJvo
cC1fbaiducukJvo我上次和王益合作写了个算法演示那个算法是贝尔实验室位科学家Steven Fortune很天才发明为了能够被身边大多数人使用我们选择了 VC+MFC 作为平台我在分析算法时还得到 Fortune 很热情鼓励寄给我份资料还多次回信耐心给我讲解了很多细节但是完成之后我把样品发给 Fortune他回信说:“对不起我机器上没有 MFC” 话说很客气但是我已经感觉到了他对 Windows 不屑然后我把 MFC 静态编译进再发给他他就没有再回信了他显然不是瞧不起我而是确实有难处 
cC1fbaiducukJvo
cC1fbaiducukJvo你能感觉到这位科学家对微软和 Windows 是什么态度了吧?不是反感而是他心里根本没有 Windows 这个东西!微软在高科技领域没有发展那么它怎么生存呢?到发展中国家去发展他们人民还对电脑无所知我说不定甚至可以打入大学计算机系呢我送他们软件我捐钱盖大楼我找图灵奖获得者来演讲! 
cC1fbaiducukJvo
cC1fbaiducukJvo好了现在全国大学包括清华几乎所有人机器必装盗版 Win2000, Office XP学校选课系统是非IE不能正确浏览论文用 Word 编辑演示用ppt做连 863 项目都用 VC 写我很久以前就看到份报纸说“微软为什么不严厉打击盗版?” 这篇文章说微软非但不打击中国盗版行为而且有放任之趋势放长线吊大鱼“以后我要你们加倍来还我!” 确实如此快实现了 
cC1fbaiducukJvo
cC1fbaiducukJvoWindows 笼罩下中国计算机教育
cC1fbaiducukJvo说句丢脸比尔盖茨很久以前是我偶像…… //blush 
cC1fbaiducukJvo
cC1fbaiducukJvo在中国比尔盖茨被很多人奉为神圣“少年电脑天才”甚至有人提到他名字就做出“抱拳对天”姿势很多人谈到微软“新技术”“高科技” 都是眉飞色舞各种“VC编程圣经”“深入了解 Visual C”之类在开头几页都会出现非常肉麻字眼“在那团团混沌中个开天辟地精灵Windows 1.0诞生了……” 
cC1fbaiducukJvo
cC1fbaiducukJvo微软软件被这么多人盗用那么人们是怎样使用这些盗版呢?先看看电脑培训班都是些 DOS 命令打字Windows 基本操作Word 文档处理PowerPo高级班可能有 ExcelAccess…… 参加各种微软认证考试MCSE, MSDE 人络绎不绝考试辅导班都贴出了“280元考过为止”之类字样考试参考资料更是昂贵有些电脑书店整整两书架都是“Microsoft Press”东西我有个同学参加认证考试每门考试都要200多元而且你次考不过再考又要交钱他后来还津津乐道跟我说看我花了XXXX(个四位数)元考过了微软认证得到张比尔盖茨亲笔签名证书和价值6000元 Windows XP 内部发行版 
cC1fbaiducukJvo
cC1fbaiducukJvo“电脑要从娃娃抓起”我们再来看看娃娃们学是什么大部分家长给孩子买了电脑之后他们首先就会装个盗版 Windows然后买来盗版游戏开始玩如果哪个孩子会用 Delphi 编那可不得了报社记者电视台争相报导某某学校初中生某某在别人都还在玩电脑游戏这种“初级阶段”时候就已经用 Delphi 写镜头还瞄准了他显示器上面像框中比尔盖茨头像! 
cC1fbaiducukJvo
cC1fbaiducukJvo我刚进入大学计算机系时还不懂得什么是操作系统我以前只用过“中华学习机”看到新入学同学们各个谈论都是 “Windows 95”“VC”…… 我简直觉得我落后了好几十年整个土人根本跟他们答不上话好不容易找到个比较熟同学问了下:“你们天天谈论瘟95是什么啊?”答:“win95就是个操作系统跟DOS是”“朵死是什么?” “你连DOS都不知道是什么?别在计算机系混了” 学校上课当然不讲VC编程之类东西但是上 Pascal 老师有次就说:“嗨我们学校真是落后现在别人都用 C, C甚至 VC 了我们还在讲 Pascal不知道什么时候才能有VC课啊你们出去也是要用VC只好自学了” 有些同学很多时候上课都捧着本很重“Windows 编程大全”之类根本没有听课吃饭时就念念有词跟我说“代码优化是无止境“匈牙利命名法真是伟大发明” …… 这就是中国很多大学计算机系情况 
cC1fbaiducukJvo
cC1fbaiducukJvo感觉到无知了?这不是偶然而是微软长久以来如意算盘它要让无知大家都把它奉为神圣它要让支持UNIX, Xwindow旦说 UNIX 好Xwindow 好时候都被群人围着说教:“这个 Windows 也能做到”“你对 Windows 有偏见”“微软才是主流啊”“你敢瞧不起 win2k?”“.NET 就是世界潮流”“微软毕竟是新技术”“有钱就是有技术”…… 甚至在番论战比较后败下来还是要说:“Windows 性能差点但是易用性强”“Windows 是老百姓用要求别那么高”“微软那么有钱以后想超过 UNIX 还不容易吗?”…… 
cC1fbaiducukJvo
cC1fbaiducukJvo发达国家计算机教育
cC1fbaiducukJvo我前段时间在 USENET 发文问有关 Scheme 语言问题时认识了位丹麦人他解决了我所有问题并且建议我阅读些很“深奥”有关语言语法文法他告诉我很多网站可以学习 LISPScheme人工智能算法他叫我看 Jonathan Rees 论文他还打包给我寄过来份 MIT  "How to Design Programs"他说他在自己 PC 机上装是 Linux他用 Emacs 编辑运行 Scheme 他对 Emacs 了解和爱好真是使人惊讶他大学本科毕业时做毕业设计是个 Scheme 解释器这对于我来说是望尘末及了 
cC1fbaiducukJvo
cC1fbaiducukJvo他是那么不厌其烦个问题他都详细回答我有时都觉得过于详细了怎么这么耐心啊?我觉得他似乎是我高中老师他是什么样人呢?我好奇打听了他情况原来她是丹麦所普通高中计算机老师!注意我换了人称代词! 
cC1fbaiducukJvo
cC1fbaiducukJvo她说她在高中里讲授设计和算法计算机语言文法分析她说用 Scheme学生不用再为指针越界内存泄漏等语言本身问题而烦恼而专注于问题和算法本身有利于培养学生解决问题能力特别是用计算机解决数学问题能力 
cC1fbaiducukJvo
cC1fbaiducukJvo天哪!为什么欧洲出现那么多数学家几何学家?你看看别人重视是什么!我们计算机教育如果继续这样下去只会沿着弯路越走越远! 
cC1fbaiducukJvo
cC1fbaiducukJvo微软和它朋友们如意算盘
cC1fbaiducukJvo下面来看看微软收入是怎么来首先Windows 98系列操作系统个就是 100 多美元每次升级又是几乎同样价钱Windows NT 还要贵几倍而且有用户数目限制5个用户10个用户…… 以后如果要增加用户数目还要按比例付钱这个奇怪现象被通用汽车公司总裁比喻为:“你买微软牌汽车最开头只有个座位每加个座位你得向汽车公司付钱每开100英里要大修每过年要换次引擎” 
cC1fbaiducukJvo
cC1fbaiducukJvo花了如此多钱买来操作系统就能用了吗?它竟然连压缩都没有提供!你装上 Windows 之后般第件事就是去下载个 WinZip 吧“只要 29 美元”Windows 会中病毒啊马上花 70 美元买个 Norton AntiVirus 吧还有黑客呢?再买个 Norton Internet Security 好了100 美元系统需要优化磁盘需要整理个 Norton  Works 是你最佳解决方案100美元 
cC1fbaiducukJvo
cC1fbaiducukJvo可是你现在还是不能干正事啊!你想要个 Word, PowerPo?那就买套 Office XP 吧起买便宜些$459.90 
cC1fbaiducukJvo
cC1fbaiducukJvo那些不会用啊!那些菜单怎么设置到底有什么功能啊?看“帮助”也学不会买本书看看吧我推荐“Special Edition Using Microsoft Office XP”不贵$27.99这本书里面大部分是屏幕抓图还是买本旧比较划算$17.85 
cC1fbaiducukJvo
cC1fbaiducukJvo你如果只是当个秘书上面差不多还凑合了可是你有更高追求你想成为 Windows 首先买个 Visual Studio.NET 吧要不然怎么编译$494.95 
cC1fbaiducukJvo
cC1fbaiducukJvo为了紧跟微软动向世界潮流不能不注册个 MSDN 什么吧?这个贵不过物有所值啊$2,799 
cC1fbaiducukJvo
cC1fbaiducukJvo嗯你现在已经是上层阶级白领人士了你现在可以像这样“自由”“安全”生活了: 
cC1fbaiducukJvo
cC1fbaiducukJvo
cC1fbaiducukJvo
cC1fbaiducukJvo什么是 Windows 能干而 Linux 干不了事情?
cC1fbaiducukJvo“Windows 能干而 Linux 干不了事情那就是不需要干事情
cC1fbaiducukJvo
cC1fbaiducukJvo有个朋友看我半年没有用 Windows有时就会问我:“你只用 Linux有没有发现有些 Windows 能处理事情 Linux 干不了?” 
cC1fbaiducukJvo
cC1fbaiducukJvo我回答说:“Windows 能干而 Linux 干不了事情那就是不需要干事情” 
cC1fbaiducukJvo
cC1fbaiducukJvoWindows 能做有益事情 Linux 都能做
cC1fbaiducukJvoWindows 下某些功能确实是我们需要那么 Linux 开发者们和用户也需要这种功能他们就会去实现这种功能而且比 Windows 方式好得多由于大多数科学家工程师用都是 Linux 或者某种商业 UNIX, 所以几乎所有商业科学工程比如 Matlab, Mathematica, AutoCAD, CandenceSynopsysAvant! ……全都是先有 UNIX 版本(包括Linux)然后再考虑移植给 Windows甚至根本不移植给 Windows Windows 机器般没有足够能力运行这样你不要以为只有 Windows 才有 PSpice, UNIX  HSpice 要好得多而且可以运行在大型主机上当然它们不是免费但是它们值那个价钱 
cC1fbaiducukJvo
cC1fbaiducukJvo但是 Windows 下有些东西在 Linux 下没有很相似或者你找到很多类似但是它们每个比起 Windows 那个都要差很多那么原因有两种可能性: 
cC1fbaiducukJvo
cC1fbaiducukJvo有个完全类似但是由于它乍看不漂亮被你忽略了 
cC1fbaiducukJvo而其它虽然看起来很漂亮但是它们是些初学编程人写现在由于 Gtk+, Qt 诞生Linux 下开发图形界面极其简单很多初中生甚至小学生都可以随手编出些漂亮不中用如果你整天寻找这样挑来挑去永远也找不到你满意 
cC1fbaiducukJvo
cC1fbaiducukJvo我曾经也犯过这样优秀 FVWM, lftp, Mutt, wget 都被我忽略过!当我找回它们时候我是那么羞愧不已它们现在都是我朋友 :) 用这些你可以改变它们我第次看到 FVWM 觉得它只不过是个有很厚很难看边框东西可是现在同学看到 FVWM 都说:“哇!真漂亮” 
cC1fbaiducukJvo
cC1fbaiducukJvo有另种完全不同方式可以达到相同甚至更好 
cC1fbaiducukJvo很多人很关心 Open Office, Star Office, AbiWord, ... 他们多么盼望有天某个 Linux 能够完全兼容打开个复杂 doc 文档但是你永远也不可能有那为什么呢?微软为了占有市场必定不会让其它系统能够完全兼容它文档格式!它定会不断变化 doc 文档内部结构隐藏些秘密让其它公司打开 doc 文档时总是有某种问题从而你必需购买 Microsoft Office 和 Windows 
cC1fbaiducukJvo
cC1fbaiducukJvo你应该想那么多高智商大学教授科学家学生他们用都是 Linux 或者其它类型 UNIX他们没有 Word 可用怎么处理文档呢?这么多年没有个像 Open Office 出现难道大家没有办法写文档吗? 
cC1fbaiducukJvo
cC1fbaiducukJvo显然不是这样你看看那些高水平学术杂志论文那些大学教授网页那些漂亮PDF幻灯片它们是什么做?原来 UNIX 用户早就有非常方便 troff, LaTeX, SGML 等东西可以处理文档而且它们比起 Word 都要高明Word 显然被这些大拿忽略了以至于很久以来没有人想在 Linux 下开发个类似 Word 除非某些公司想抢微软饭碗 
cC1fbaiducukJvo
cC1fbaiducukJvo很多人留着 Windows 在硬盘上原因无非是为了用 Word 和 PowerPo你待会儿可以看看我TeX网页你就会知道为什么我可以完全离开 Windows. 
cC1fbaiducukJvo
cC1fbaiducukJvoWindows 能做那些没用事情 Linux 永远做不好
cC1fbaiducukJvo电脑游戏 
cC1fbaiducukJvo有些人说 Linux 下不能玩 Windows 下所能得到所有游戏Linux 下虽然也有少量游戏比如 Quake但是它没有 Counter Strike, 没有 Star Craft, …… 
cC1fbaiducukJvo
cC1fbaiducukJvo并不是说电脑游戏不该玩但是应该适可而止电脑是用来处理事务帮助你学习解决问题工具而不是个玩具!整天沉迷于电脑游戏中而不出去感觉外面世界你会变得越来越冷酷越来越缺乏人情味你与真实世界越来越远 
cC1fbaiducukJvo
cC1fbaiducukJvo你可以在 CS 里杀人你可以在 Tomb Raider 里探险你甚至可以在 Tony Hawk's Pro Skaters 里滑板…… 但是 It's not real!你虽然有很高“反恐技巧”但是遇到歹徒时候你是那么怯懦;你虽然控制 Laura 伸手敏捷但是你打篮球时候怎么总是被人断球?你虽然可以轻易在 THPS 里作出个 "360 kickflip to hangten grind to fakie"但是你踩在自己滑板上时候还不会 ollie! 
cC1fbaiducukJvo
cC1fbaiducukJvo说回来如果你偶尔玩下电脑游戏未尝不可但是世界上有远比 Windows + PC 更好游戏方式Sony  PlayStation2, SEGA  DreamCast, Nendo  N64Namco 街机……每个都比 Windows 游戏精彩个都有如此高3D性能以至于 Pentium4, Itanium + GForce4 都无法与它们比美! 
cC1fbaiducukJvo
cC1fbaiducukJvoLinux 用户们都是关心解决世界关键问题份子他们哪里有时间用自己机器来玩游戏啊?他们每天用Linux高效做完自己工作就到阳光下享受自然去了要玩游戏也是玩些类似推箱子贪吃蛇之类智力小游戏所以你知道为什么 Linux 几乎没有游戏了吧?:) 
cC1fbaiducukJvo
cC1fbaiducukJvo“整理硬盘优化系统” 
cC1fbaiducukJvo这是个非常有意思话题仅次于有关“病毒”话题相信很多 Windows 用户都有整理硬盘经历在很多 Windows 用户眼里“硬盘用久了会出现碎片速度会减慢需要来整理整理硬盘时候不要做其它工作”这好像是天经地义事情 
cC1fbaiducukJvo
cC1fbaiducukJvo我也曾经津津有味看着 Norton Defrag 把我硬盘排序调整用图形方式显示出来然后报告:“100% 没有碎片硬盘现在已经达到最佳状态” 我现在才发觉我那时是多么幼稚 
cC1fbaiducukJvo
cC1fbaiducukJvoLinux 和 UNIX 用户似乎从来没有“整理硬盘”这种说法呢?你觉得很奇怪吗?如果你觉得很奇怪那说明你思想在某种程度上被微软垃圾禁锢了你需要明白UNIX 大型主机很多必须是天24小时年365又1/4天不停运转要是每个星期都要整理次硬盘在整理时候几乎不能干任何事情那是绝对行不通! 
cC1fbaiducukJvo
cC1fbaiducukJvoLinux 机器根本不用整理硬盘这就是为什么没有看到过 Linux 用户整理硬盘Linux 文件系统是比 Windows  FAT, FAT32, NTFS 高明得多文件系统它们不但可以对文件设置权限实施完全保护而且可以“越用越整齐”“越用碎片越少”!你应该把文件大部分放在 Linux 分区而不是 Windows 分区它比 Windows 分区可靠得多 
cC1fbaiducukJvo
cC1fbaiducukJvo还有更滑稽事情就是有很多“Norton  Doctor”“Windows 优化大师”“超级兔仔注册表魔法” 之类存在而且价格昂贵似乎个操作系统本来应该有很多问题需要别厂商做来“优化”它而且为了得到优化你需要付钱!这些问题 Linux 根本就没有所以不需要什么优化Linux 内核本身就是高度优化 
cC1fbaiducukJvo
cC1fbaiducukJvoIDE 
cC1fbaiducukJvo有些人在抱怨为什么 Linux 没有个良好 IDE 开发环境Linux 现在已经有些 IDE 了但是总是有很多问题你是不是正在寻找正在期望 Linux 某天可以有个VC那样开发环境?你有没有发现你正在进入微软给你设下怪圈?你为什么定要用 IDE?你说:“IDE 开发迅速调试方便适合大型……” 那说明微软在你脑子里已经比较根深蒂固你需要好好清醒下了看看我来告诉你 
cC1fbaiducukJvo
cC1fbaiducukJvo高明 UNIX 员不用 IDEIDE 从来就是给初级 Windows 员用
cC1fbaiducukJvo
cC1fbaiducukJvo你看看大型 UNIX 包括 Linux 内核各种网络服务Xwindow 在内个是 IDE 搞出来?我们实验室 EDA 也没有个是 IDE 弄我还知道 Candence, SynopsysMentor 高性能图形界面 EDA 也都不是 IDE 写你信不信微软人在写 Windows 本身时候也根本不用 IDE! 
cC1fbaiducukJvo
cC1fbaiducukJvo有次某杂志采访些出名 Linux 内核包括 Linus 在内没有个人用 IDE人用 VIM用 Emacs只有 Linus 说“GNU Emacs is evil”但是其实他用种跟 Emacs 有同样键绑定功能 MicroEmacs大家都是用编辑器编辑了文件然后用 make 这样自动工具 gcc 编译器完成编译工作 
cC1fbaiducukJvo
cC1fbaiducukJvo我以前也编过 Windows :应用驱动但是我没有用 VC  IDELinux 教育了我我会在命令行 CL我知道 CL 才是 VC 编译器我可以在 cygwin  Makefile 里使用 CL我还知道 CL 参数都有什么用处但是这些不是个从开头就用 IDE 人能很快理解到 
cC1fbaiducukJvo
cC1fbaiducukJvo我相信: IDE is evil我有些用 Windows  IDE 写朋友他们对那套东西已经很精通了但是我却惊奇发现他们竟然把编译器和汇编器概念都分不清楚甚至有人连“编辑器”和“编译器”都搞混淆了!他们只知道在个窗口里输入了代码点击个按钮就可以编译但是这里面到底是怎么工作他们不知道!他们被盖在上面窗口挡住了视线甚至会以为那个按钮就是编译器! 
cC1fbaiducukJvo
cC1fbaiducukJvo他们对那些 IDE 热键背滚瓜烂熟但是我却看到他们在把别人 ANSI 风格代码变成 VC 风格想想这件事在 VIM 里有多么简单瞬间就可以搞定 
cC1fbaiducukJvo
cC1fbaiducukJvo为什么 UNIX 员不用 IDE?明白了这个道理你就能体会到 UNIX 设计思想了首先个 IDE 集成了编辑器编译器汇编器调试器跟踪器…… 这个编辑器功能肯定比不上 VIM 或 Emacs编译器比不上 GCC汇编器比不上 as调试器比不上 gdb, ddd, 跟踪器比不上 strace, ltrace, truss你得到套整合很好低能如果你对调试器功能不满意你只好换用另外套 IDE但是这套 IDE 热键菜单编辑器功能按钮…… 跟原来那个有很大不同你不得不花很多时间来熟悉新环境而不能保持原来某些东西 
cC1fbaiducukJvo
cC1fbaiducukJvo而在 UNIX 下就不样了你可以用你最喜欢 VIM 编辑你在 VIM 里可以 GNU makemake 可以 gcc, ld, ... 实际上 make 能帮你很多忙make 出错信息可以被 VIM 捕获VIM 能帮你在源里定位你如果喜欢 icc, 你可以让 make 用 icc 而不是 gcc你如果觉得 gdb 跟踪变量时比较麻烦你可以用 ddd 来显示各种数据结构之间关系你还可以在 Emacs 里 gdb那样就可以同步显示源代码了而且 VIM 和 Emacs 还可以编辑很多其它东西比如信件LaTeX 文档HTML配置文件…… 你不用另外找个什么编辑器来干这些杂活了很多比如 Mutt, tin 都可以在内部使用 VIM这样就更方便了 
cC1fbaiducukJvo
cC1fbaiducukJvo释放内存 
cC1fbaiducukJvo我在 Windows 下做过件最傻事情莫过于“释放内存”了天我看到个 Windows 说:“这个可以帮你把大量内存释放出来给个很大”我试了居然下把我 64M 内存释放出来 48M!我高兴极了现在想那是多么傻事情那么多内存留着干什么?不用白不用啊!个操作系统居然还需要别人写来释放内存那是什么样操作系统? 
cC1fbaiducukJvo
cC1fbaiducukJvo在 Linux 下用 free 命令你会发现你内存几乎每时每刻都快要被用完那是 Linux 把大部分内存用来作为磁盘缓冲了Linux 有比 Windows 先进磁盘缓冲技术你有没有发现你往硬盘写数据时候很快就完成了?那是 Linux 在内存里有很多磁盘缓冲区你要写到硬盘上数据先被写到了这些内存里然后 Linux 就告诉你“拷贝完成”当你马上又想删除刚才写入某些数据时Linux 只是把数据从内存里移除然后报告“删除完成”间隔时间后Linux 才把数据写回硬盘这样不但高效避免了多次硬盘操作而且减少了文件不连续也就是减少了“碎片”Windows 当然也有磁盘缓冲但是由于它内存管理低效率它不敢把大量内存都用来作为磁盘缓冲它没有能力在用时候随时把内存收回来 
cC1fbaiducukJvo
cC1fbaiducukJvoLinux 能干高级事情 Windows 都干不了
cC1fbaiducukJvo当然有很多事情是Linux/UNIX专利了 Windows 只能装在 PC 机上好像以前也有 Alpha 可以使用 Windows NT但是就是没见到有人用PC 机能力是很低像我们编处理 NP-Hard 问题用 Windows 机器显然速度不够而且有时个问题算上几天甚至几个星期Windows 机器是以“死机”著称我们怎么能放心? 
cC1fbaiducukJvo
cC1fbaiducukJvo所以几乎所有科学计算EDA 高性能图像处理都不是 Windows 他们有时也会移植些给 Windows但是常常降低那些能力你比较过 Windows 版本 Mathematica 和 Linux 有什么区别吗? 
cC1fbaiducukJvo
cC1fbaiducukJvoIBM 制造最大并行计算机有 8000 多个处理器Windows 不可能有能力管理这么多处理器它用是什么操作系统?答案是 Linux 
cC1fbaiducukJvo
cC1fbaiducukJvo泰坦尼克号电影里三维动画那么细腻逼真Windows机器能做出来吗?不行那也是 Linux 机器做 
cC1fbaiducukJvo
cC1fbaiducukJvo民航总局用来训练地情人员虚拟现实训练设备Windows 当然无能为力那都是商业 IRIX 机器 
cC1fbaiducukJvo
cC1fbaiducukJvoUNIX 是最早支持 TCP/IP 网络协议系统它上面有很多可以互相协作网络服务它们经过多年使用和修订已经达到比较完善程度而就在1997年微软比尔盖茨还在扬言:“Internet 是没有前途” 微软这个“远见卓识”大家应该都已见识它后来加上网络服务IIS漏洞之多让公安部都频频发出警报大家也是见识了 
cC1fbaiducukJvo
cC1fbaiducukJvo其实你知道了Windows 没有样有用事情能比 UNIX 干更好 
cC1fbaiducukJvo
cC1fbaiducukJvoLinux 干不了有用事情 Windows 照样干不了
cC1fbaiducukJvo当然 Linux 不是万能它也有不能干事情电脑也有干不了事情但是 Linux 干不了事情Windows 肯定也干不了这些事情就是我们需要探索需要努力事情了在你探索过程中Linux 必定是你好伙伴 
cC1fbaiducukJvo
cC1fbaiducukJvoUNIX 真谛何在?
cC1fbaiducukJvo让聪明人干任何他们想干事情
cC1fbaiducukJvo
cC1fbaiducukJvoUNIX 个特点就是非常高灵活性Xwindow 也具有这种灵活性这种灵活性体现在哪里呢? 
cC1fbaiducukJvo
cC1fbaiducukJvoUNIX 般都有很多参数不管你现在用着用不着总有人需要某些参数它们行为很多都可以用配置文件来改变比如 GNU bash, 通常缺省命令行输入方式是 Emacs 方式但是只要我编辑个 .inputrc 文件就可以把它变成 vi 输入方式而且我还可以自己绑定键序列到某些操作我可以用 shopt 来设置它很多特点比如是否进行通配符扩展是否可以把个变量当作个目录来cd是否可以自动纠正某些明显目录名打字 …… 
cC1fbaiducukJvo
cC1fbaiducukJvoUNIX 设计思想是提供给用户“机制”而不限制用户制定“政策”这是个重要尊重用户作法 
cC1fbaiducukJvo
cC1fbaiducukJvo我们再来看看 XwindowXwindow 是个出色设计它把显示服务器和客户分开个显示上既可以显示本机上也可以显示别机器上 X 而它们都遵守你窗口管理器指挥它们之间可以方便传送剪贴版数据各种事件 …… 比如有时我 XFree86 上会出现四个不同机器上 XTerm两个不同机器上 GVIM…… 它们统受本机上 FVWM 指挥 
cC1fbaiducukJvo
cC1fbaiducukJvoXwindow 都具有很多很多命令行参数和 resource 参数你可以随意在命令行或者 .Xdefaults 文件设置所有颜色字体尺寸…… 而且如果你用 xrdb 把 .Xdefaults 导入到根窗口那么其它机器上没有经过配置同样显示到你机器上时候也会遵守同样外观规定 
cC1fbaiducukJvo
cC1fbaiducukJvoXwindow 窗口具有 Property, 也就是些可以自己定义共享数据(原子)正是这些 Property 存在使得 Xwindow 具有无比强大生命力窗口管理器和其它客户之间并没有统协议但是后来出现了 ICCCM(客户间通信规范)这个规范就是通过 property 定义现在又有人定义了套“扩展窗口协议(EWM Hs)”使得 Xwindow 可以具有某些 Windows 特征比如个工具条可以告诉窗口管理器:“这个屏幕下面被我占据了24个像素空间你最大化时候不要越过这个界线” 
cC1fbaiducukJvo
cC1fbaiducukJvo个强大窗口管理比如 FVWM它收到这样提示时可以答应工具条这个要求也可以不答应切选择权力在于谁?当然是用户了!切窗口乖乖听话FVWM 给予用户最大尊重 
cC1fbaiducukJvo
cC1fbaiducukJvo你想想是不是有些 Windows 常常弹出个窗口要你选择 "Yes or No"?你不点击它它就不下去你觉不觉得你在侵犯你尊严?你是个人个智慧生物怎能受到如此待遇? 
cC1fbaiducukJvo
cC1fbaiducukJvo还有就是很多 Windows 把人当成傻瓜而它是“智能比如就是喜欢把你每句话第个字母都变成大写我不说它是谁了你遇到时候就知道了如果连“句话开头个字母要大写”这么明显问题都需要帮你纠正人脑还用来干什么?况且如果你故意想要不大写那就更麻烦了我楞是没有从它那大堆菜单里找到怎么关闭这个愚蠢选项 
cC1fbaiducukJvo
cC1fbaiducukJvo只有符号才能完全操纵计算机
cC1fbaiducukJvo
cC1fbaiducukJvo我们来说说很多初学 Linux 用户虽然他们在用 Linux但是他们打心眼儿里是觉得 Windows 工作方式好他们希望 Linux 有天能“像Windows那样”你说:“我鼠标我菜单…… 就可以完成我操作” 但是我要告诉你:“Linux 从来没有摹仿 Windows将来也不会Linux 从诞生之日起工作方式就比 Windows 先进Linux 属于能勇敢面对符号只有符号才能完全操纵计算机” 
cC1fbaiducukJvo
cC1fbaiducukJvo看看优秀 UNIX XFree86, FVWM, VIM, Emacs, proftpd, Mutt, wget, tin, ... 没有个不是用配置文件来设置选项为什么这些没有方便菜单可以用来配置?难道它们设计者就那么低能连个图形配置界面也写不出来? 
cC1fbaiducukJvo
cC1fbaiducukJvo当然不是图形界面配置方式能力是极其有限而配置文件和语言表达能力却是无限用图形界面配置这些如果你想达到配置文件效果你需要成百上千菜单checkbox, radio button, ... 到时候你根本没办法找到你需要修改地方了!而各个配置文件语法都有很多相似之处般就是些命令设置些变量参数…… 旦用会了其它也就容易理解了如果你用惯了 awk, sed, Perl你会觉得那才是真正自动化啊 
cC1fbaiducukJvo
cC1fbaiducukJvo鼠标虽然是很好工具但是它表达能力是有限你不可能光用鼠标就让电脑完全明白你意思它毕竟只有3个按钮看看我MetaPost页你就能体会到鼠标弱点所以我们虽然很喜欢鼠标但是却不能完全依赖它 
cC1fbaiducukJvo
cC1fbaiducukJvo各个小完美配合
cC1fbaiducukJvo
cC1fbaiducukJvo这就是UNIX最重要特点了它就是UNIX设计思想让每个只具有项专门能力然后让它们合作Xwindow也继承了这种好传统 
cC1fbaiducukJvo
cC1fbaiducukJvo这恐怕就是Windows和其它操作系统望尘末及地方了UNIX 设计之统配合之完美真使我难以置信!shell, grep, find, awk, sed, make, Perl, Emacs, vi, tin, Mutt, ... 它们是那么具有致性!你旦学会了 sed 正则表达式其它基本上都能用了旦学会了 vi 和 VIM, 你会发现它操作是那么有规律性似乎vi设计者在几十年前就已经设计好了 VIM 在今天完美而统操作方式!而且vi操作还体现在 Mutt, tin 等很多你甚至可以把 bash 设置为 vi 输入方式来输入命令行我就是这么做可以另外来得到数据可以把数据交给它处理后返回来可以在自己窗口里“嵌入”另外 
cC1fbaiducukJvo
cC1fbaiducukJvo在 Windows 和其它非 UNIX 操作系统中这种合作是非常困难我曾经在 Windows 下使用 Perl来进行些自动工作但是 Windows 文件操作管道是如此不稳定之间基本不能合作你别想在 Visual Studio 窗口里面嵌入 UltraEdit 编辑器你别想用个 expect 脚本来控制 telnet 到水木清华BBS这就是为什么 helloooo 诞生在 Linux 而不是 Windows我曾经试图从 Windows + Exceed + SecureCRT ssh 登录到 Sun 机器然后通过 ssh 隧道(X11 tunnel)把 X 传到 Exceed 上运行但是搞了两天都没有成功!而在 Linux 下这个事情根本就是不用怎么配置OpenSSH 和 XFree86 本来就是完美结合只要打开 ssh  "forward X11" 选项就什么都搞定了 
cC1fbaiducukJvo
cC1fbaiducukJvoWindows 都是大而全大而杂所有电子邮件都需要自己提供编辑器自己发送和收取邮件自己显示邮件附件个BBS都提供自己Virtual Terminal, 自己通讯代码个 IDE 都自己提供编辑器编译器汇编器调试器人们为了使用种新需要适应所有这些它提供界面而不能使用自己喜欢编辑器键绑定菜单组织…… 不能 DIY! 
cC1fbaiducukJvo
cC1fbaiducukJvo你要知道最高级电脑是定做自己想要什么什么CPU什么主板多少内存什么硬盘键盘鼠标显示器都是自己选择最高级滑板自己想要什么牌子版面什么牌子什么桥什么轮子什么轴承也都是自己选最高级乒乓球拍木板胶皮海绵胶水都是可以自己选择…… 而用 Windows 你得到是大杂烩就像你去买“品牌机”只有那么几种配置而且附带很多你不需要软件和服务;就像你去买组装好滑板你想要大轮子和窄板子但是你没有这种选择余地!Windows 就相当于最廉价最次滑板但是它却会花你更多个部件坏了或者你不喜欢了你不能另外找个好换掉它你必需重新买全套配件! 
cC1fbaiducukJvo
cC1fbaiducukJvo而 UNIX 和 Xwindow 就是高档“组装货”比如我用 Mutt 时候我可以用 VIM 也可以用 pico 来编辑邮件我可以用 ImageMagick 也可以用 xv 来显示附件里图片我可以用 lynx 把 HTML 附件转成文本嵌入窗口中我也可以把 HTML 附件交给 Mozilla 图形显示我可以让 GnuPG 帮我把邮件进行数字签名和加密我也可以用其它 PGP 我想让 Postfix 而不是 sendmail 帮我发出邮件我想让 fetchmail 帮我收邮件转发给 postfix然后被我自己写Perl过滤器处理…… 这切我都可以办到!我可以选择我最喜欢专门来完成专门工作然后把它们结合在我也可以分别得到它们好处 
cC1fbaiducukJvo
cC1fbaiducukJvo结论
cC1fbaiducukJvo我写这么多是什么?我希望喜欢 Linux 朋友完全清除微软和 Windows 灌输在你脑子里谬论别再相信它们所谓“新技术”别再追赶 Windows追赶 Windows = 倒退马克思有个思想很重要“新生事物并不定是在最近出现” UNIXXwindow, TeX 虽然都比 Windows 先出现但是它们才是先进生产力代表我们要清楚认识到什么才是真正现代化什么才是真正自动化 
cC1fbaiducukJvo
cC1fbaiducukJvo勇敢拿起像 bash, FVWM, VIM, Emacs, Mutt, lftp …… 这样强大不要再埋怨“Linux 为什么不能像 Windows 那样”不要再浪费时间试用这样那样不要再忙着升级是你需要改变而不是 Linux 和 UNIXLinux 现在就可以成为你好朋友你需要认识它了解它信任它才能完全靠它来高效工作省出时间来处理世界上更加值得处理事情 
cC1fbaiducukJvo
cC1fbaiducukJvo附录: 我用来处理日常事务 Linux 
cC1fbaiducukJvo这里给出些推荐使用可以处理般事情至于你专业上要用到科学和工程软件比如 Matlab, Mathematica, Maple, HSpice, Design Compiler, …… 还有其它物理上化学上生物上 …… 都必然有 Linux 和 UNIX 版本当然他们很多不是免费不要总是觉得什么都应该免费它们是经过很多人辛勤劳动产物是可靠他们物有所值 
cC1fbaiducukJvo
cC1fbaiducukJvo下面列出我常用些 Linux 个列表里可能有很多那是为了方便你来选择我列出了比较信得过但其实很多只有第个是我真正在用我不喜欢试用 
cC1fbaiducukJvo
cC1fbaiducukJvoShell: bash我使用 bash  vi 命令行方式 
cC1fbaiducukJvo编辑器: VIM, Emacs 
cC1fbaiducukJvo开发: GCC, make, ld, Scheme48, j2sdk, Perl, Python, Tcl/Tk ... 
cC1fbaiducukJvo论文幻灯工具:LaTeX, ConTeXt 
cC1fbaiducukJvo绘图工具:MetaPost这个语言太强了以至于我只用它了你不熟悉话可以用 dia 来画些流程图之类图片 
cC1fbaiducukJvo图像处理:ImageMagick其中 import 可以屏幕抓图convert 可以转换图像格式display 可以显示图片和简单编辑(缩放换质量转格式简单绘图简单虑镜)通常我就这么点需要如果你要更强大图像工具可以用 Gimp, 它几乎和 Photoshop 差不多 
cC1fbaiducukJvo自动管理工具:make我可以用make来自动编译自动编译文档自动更新插图…… 全自动而且不会重复劳动 
cC1fbaiducukJvo加密:GnuPG PGP 密钥就是它搞出来我用了 2048 位加密 
cC1fbaiducukJvo打包压缩什么都有: tar, gzip, bzip2, zip, rar, ... 
cC1fbaiducukJvo虚拟光驱Linux 不需要虚拟光驱直接 mount 就行了 
cC1fbaiducukJvoftp 服务器:proftpd, vsftpd 
cC1fbaiducukJvoWWW 服务器:apache(我般没有开) 
cC1fbaiducukJvoftp 客户:lftp 
cC1fbaiducukJvo自动下载工具:wget 
cC1fbaiducukJvo虚拟终端:rxvt, xterm, gnome-terminal, mlterm, ... 
cC1fbaiducukJvoX server: XFree86 
cC1fbaiducukJvo窗口管理器:FVWM编译加入了 libstroke 
cC1fbaiducukJvo中文输入:XSIM被我修改过以适应 FVWM 需要另外推荐你还可以用 SCIM 
cC1fbaiducukJvoemail 处理:Mutt + Postfix + fetchmail 
cC1fbaiducukJvo看 PDF, PS, DJVU 文件:Acrobat Reader, xpdf, GhostScript, gv, djvu工具包和 netscape 插件 
cC1fbaiducukJvo看CAJ文档我从来不看CAJ之类文档如果找不到PDF或PS直接去图书馆借最好 
cC1fbaiducukJvo看网页:Mozilla, Phoenix, lynxMozilla-Xft 显示效果比 IE 好很多 
cC1fbaiducukJvo英汉字典:IBM智能词典星际译王 
cC1fbaiducukJvo编辑网页:我用 VIM 直接写 HTML你如果想要图形方式可以用其它比如 screem, BlueFish 
cC1fbaiducukJvo登录其它 UNIX, Linux 机器:openSSH, telnet openSSH 还可以把其它机器 X 通过 ssh 加密隧道传到我机器上显示 
cC1fbaiducukJvo上BBS:rxvt(或任何种终端) + telnet + chatbot(helloooo 机器人
cC1fbaiducukJvoQQ, ICQ: 我没有 QQ 或 ICQ不过你可以用 Gaim, 它同时支持 QQ, ICQ 和很多其它即时通信方式ICQ 用户也可以用 Licq 
cC1fbaiducukJvo放录像:MPlayer, RealPlayerMPlayer 太好了直接就可以放 VCD, DVD, divx, wma, wmv ... 用 Windows 同学都很羡慕我说 Windows 要放这个需要大堆插件rm 最好还是用 realplayer 放它也是免费 
cC1fbaiducukJvo放音乐: xmms(mp3,ogg都可以), mpg321(放mp3), ogg123(放ogg). 
cC1fbaiducukJvo看 Word 文档请 Word 用户把文档全部转为 PDF 或 PS 再给我文档里没有特殊格式就用文本文件要不我就不看 :P 
cC1fbaiducukJvo其它:还有很多我需要用而你不定用得着比如Doctor Scheme, Scheme48, Scsh, ...这些只有 Doctor Scheme 有Windows版本还有很多幕后工作但是你般不察觉:xinetd, telnetd, sshd, crond, atd, lpd, ... 他们都比 Windows 对应者强 
cC1fbaiducukJvo
cC1fbaiducukJvo  

相关文章

读者评论

  • 共0条 分0页

发表评论

  • 昵称:
  • 内容: