⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 5 right.txt

📁 USB驱动使用比较详细的一个例子
💻 TXT
字号:
Unix之得道

    目前Linux爆炸性地增长,以及Internet重要性的增加,让我有足够的理由说明怀疑者的怀疑是错误的。但是就算他们的看法是正确的,Unix文化仍然值得学习,因为很明显,如果Unix不是最好的,那就没有最好的了。

开源软件
    尽管术语“开放源代码”以及“开源社区”直到1998年才被使用,但是开放共享源代码确是Unix文化一个关键特性。
    AT&T最早的Unix以及最初的伯克利Unix变种都是随源代码一齐发行的。这就允许一些极好的西西加入其中。

跨平台可移植性以及开放标准
    Unix仍然是目前唯一可以在各种计算机、厂商以及一些非通用硬件上提供统一API的操作系统。也是唯一可以横跨从嵌入式芯片、手持设备到桌面机器、服务器直到超大型的数值计算机或者数据库后台。
    对于完成一个可移植软件,Unix API是最接近硬件无关标准的。所以IEEE将最初的Portable Operating System Standard改变成最终的POSIX并不是偶然。只一个等价的Unix API才配得上成为这样一个标准的可信赖模型。
    那些只提供编译过的二进制代码的应用程序将会和它们的运行环境一起走向死亡,而Unix代码则会永生。至少可以维系Unix文化十年之久。

Internet和世界万维网
    美国国防部将第一TCP/IP协议栈的开发合同交给Unix开发组,重要的原因是Unix被认为是最大的开源软件。除了TCP/IP外,Unix已经成为ISP工业里一个不可缺少的核心技术。此后一直到80年代TOPS系列操作系统的没落,多数Internet服务器(包含PC)依靠Unix。
    微软精明的(译者:对于微软,精明的同义词是恶心)市场运作也无法撼动Unix在Internet上的地位。当TCP/IP标准(Internet的核心协议)被移植到TOPS-10并在理论上证明TCP/IP是可以与Unix分离后,各种将其移植到其它操作系统的尝试都遭受了挫折,不同程度地出现不兼容,不够健壮,bug丛生等。尽管每个人都能得到原理性知识和各种规范,但是工程传统使得TCP/IP仅能在Unix世界里稳定地工作。
    Internet和Unix的技术文化在19世纪80年代早期开始融合,而今此二者已经不可分离并彼此促生。现代Internet的脸面,WWW的出现归功与早期Unix服务的ARPANET。特别的,URL的概念和Unix的唯一名字思想也是一致的。成为一名Internet专家,理解Unix及其文化是必不可少的。

开源社区
    伴随着Unix源代码一起长大的这个社区一直活跃着。90年代早期Internet的流行,这个社区又招募了在家里学习黑客技术的新成员。
    当今,开源社区有力地支持着各种软件开发团队。高品质的开源开发工具“充斥”着Unix世界里。(我们会在本书中测试它们中的很多)开源的Unix应用软件等价于同类的非开源软件,而且经常更好。整个Unix操作系统,包括复杂的工具包和基本的应用程序套件都可以在Internet上获得。为什么当你能适应或者复用这些抓来的代码能节省你90%的工作量?
    这个共享代码的传统强烈遵从着软件团队开发和软件复用方面的经验。这些经验决非空洞的理论,人们取得这些宝贵经验的同时曾付出惨痛的代价。(译者注:想想人/月神话)这个隐含的原则告诉我们,软件彼此间应该相互增效并构成一套工具箱,而不是一个独立的一次性的解决方案。本书的主要目的就是阐述这个经验所包含的原则。
    现在,萌动中的开源运动正焕发新的活力,开辟新的技术途径并促使新一代的程序员步入Unix传统。包含Linux操作系统及其环境(如Apache/Mozilla等等)使得Unix优良传统得以空前地发生效力。看起来开源运动似乎就快取得胜利——权释计算的基础:Unix machines running on Internet

永远的柔性
    很多操作系统宣称它们较Unix的优势是时髦或者是所谓的用户友好,这些操作系统使用的手段是把用户或开发者圈在一个不可换的界面策略里并提供一套精致的API,这使得系统过于狭隘和钢性。可以想象,在这样的系统上,对付设计者预期的任务会很容易——但是任务并非设计者设计,对于设计者未考虑的任务将不可能完成或者极端困难。
    另一方面,Unix有着深度的柔性。Unix提供了多种手段可以将各种程序”粘“在一起,这就意味着各基本工具箱的组件可以重新结合产生新的且有效的办法对付这些工具的设计者还没有考虑到的问题。
    Unix支持多种风格的程序接口(这通常被认为是一个缺点,因为增加了终端用户对系统认知的复杂度)同样有助于柔性效能;一个简单的数据管件不会被要求承担GUI的复杂性。
    Unix传统要求编程接口保持简、洁和彼此正交,这也是深度柔性产品的特征。贯穿着这个Unix的思想:只有当简单的事情真正简单,复杂的工作才有可能完成。(译者注:此句原文:Throughout a Unix system, easy things are easy and hard things are at least possible.)

黑客的Unix
    Unix技术大拿们不一定会提及究竟是什么使得Unix如此成功。答案是做一名Unix黑客充满乐趣。
    Unix的拥护者对于这一点似乎有些害羞,好像这会破坏他们的正统性。然而这却是事实;在Unix下”玩儿“或者开发确实很有趣,并且从来都是这样。
    没有多少系统可以让人想到”有趣“。事实上在很多其它的环境下编程经常可以被比作把一条搁浅的鲸踢下海。你能听到的最好的形容词也许就是”还行“或者”不算太糟糕“类类。Unix世界可不是这样,操作系统回报一切努力。人们视在Unix里编程为一种真实、有益的工作而不是摧毁成果的敌人。
    这有着重大的经济意义。这个“趣味”因素开始了Unix早期的良性循环。人们喜欢Unix,所以开发了更多的程序使其变得更好。现在人们甚至把建立一个完成的产品级的开源Unix作为一种爱好。为了更好的说明这点,问问那些成功克隆过OS/360、VAX VMS或者M$ Windows的家伙。^_^
    ”趣味“这个因素从设计的观点来看也不是微不足道的。程序员和开发人员用他们的能力搞定一个赋予挑战性的任务时就会得到趣味。获得乐趣意味着他正处于效率的颠峰状态。而令人痛苦的开发环境则浪费劳动力和创造力,他们必须为此空耗时间、金钱以及机会更糟的是他们可能对此一无所知。
    即使Unix在其它任何方面都是失败的,使得开发人员能够获得乐趣的这个技术文化仍然值得学习,因为这会使得开发人员高效多产。

无处不在
    我们得承认Unix程序员随着这个先锋性操作系统的成长已经积累了数十年的经验。非Unix程序员同样可以通过学习这些经验而受益。因为Unix可以提供一个决好的试验床让他们练习这些好的设计原则和开发方法。
    其它的操作系统很难形成好的编程习惯,但是Unix文化可以部分地改善一些。多数Unix代码(包含各种过滤器、主要的脚本语言和多数代码生成器)可以直接移植到支持ANSI C的系统中(一个极好的理由说明C本身就是Unix的一大发明,ANSI C库收录了一个大而稳定的Unix服务!)。

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -