Linux/Unix设计思想

Mike Gancarz

1.Unix开发基于Multics分时操作系统

2.NIH(Not invented here,非我发明)

3.GPL:GUN公共授权协议,适用于软件的法律协议。开源

4.Unix哲学:

1)小即是美:易理解、维护、低消耗系统资源、易于其他工具结合

2)让每一个程序制作好一件事

3)尽快建立原型(prototyping):”第三个系统”概念

4)舍高效而取可移植性

5)使用纯文本文件来存储数据:二进制严格禁止

6)充分利用软件的杠杆效应:借用代码模块;将一切自动化

7)使用shell脚本来提高杠杆效应和可移植性

8)避免强制性的用户界面

9)让每一个程序都成为过滤器

5.Unix信条

1)允许用户制定环境:程序应该只是解决问题的机制,而不是限定标准

2)尽量使操作系统内核小而轻巧

3)使用小写字母并保持简短

4)保护树木:在线存储

5)沉默是金:在需要提供出错信息时候,unix命令不提示

6)并行思考:大多数的任务能分解成更小的子任务,并行运行----对称处理(SMP)设计

7)各部分值大于整体:可集合小程序代替大程序,灵活实用

8)寻找90%的解决方案:完成90%会更有效节省成本,完美很难

9)更坏就是更好:包容

10)层次化思考:目录结构

6.MIPS度量法:每分钟执行上万条指令,衡量CPU性能的流行方法

7.IDE(interactive development environment)互动式开发环境

8.微优化(micro-optimizations):prof和其他攻击来定位使用的最频繁的子程序优化unix下的C语言

9.Unix中常用工具和功能上说明----每个命令其实就是一个工具功能:

1)awk:对以字段组织的文本进行操作

2)expand:将制表符转换成空格

3)wc:计算文件行数、字数和字节数

4)sed:非互动形式的文本编辑器

5)roff:综合性文本格式化和排版设置工具

6)tset:比较两个字符串是否相同;检查文件的模态,了解它们是否可写

10. Unix将数据存储为文本形式,然后使用不同的面象文本的小型工具来对数据处理

11. Shell脚本由一个或多个语句组成,通过调用本地程序、解释程序和其他的shell脚本来执行任务。将每条命令加载到内存执行,间接调用这些产程序。

Shell脚本集成他人的努力成果满座自己的目标。

Shell解释性语言,思考---编辑---测试

内核里不能使用shell脚本。

12. Unix哲学的优势之一就是它很重视数量众多的小命令,shell脚本是一种将他们统一在一起成为一个强大整体媒介

13.CUI:一种与应用程序进行交互的模式,位于系统最高级命令解释器之上。一旦在命令解释器调用一个程序,那么知道退出之前你都无法再与命令解释器进行交互。实际效果就是你完全被这个应用程序的用户界面牵扯,直到退出之后才能获得自由。

14. Unix特点:简洁性、正确性、一致性、完整性

15.VMS:闭源专有操作系统,DEC公司。基本信念:用户害怕计算机

16.VMS系统确实是Unix的对立面。

VMS通常只给用户提供单一化的解决路径,Unix会提供十几个甚至更多的解决方法;

VMS系统喜欢采用有着多个选项、规模宏大的单一化程序来满足众多用户需求,Unix小即是美,每一个都执行单一功能且只有为数不多的选项;

VMS最初采用汇编语言和BLISS-32,与底层的硬件结构高度相关,Unix采用C语言,并可移植到许多CPU架构

17.MS-DOS:为公众设计的操作系统,易于使用。简洁有效的命令语言。没有提供真正的多任务功能,不管命令行输入多少条命令,它一次只能执行一条

18.Windows:设计思想更易于新手使用

19. Windows的图形用户界面与底层操作系统紧密集成在一起;Linux中的X Windows System与Windows却有着本质的区别:它只不过是运行在操作上的应用程序

20.几乎所有的Perl(Practical and Report Language  实用型摘录与报告语言)程序都能充当过滤器:非常善于和其他软件交互、晦涩难用、可扩展性、开源脚本工具。

时间: 2024-12-05 10:57:13

Linux/Unix设计思想的相关文章

《Linux/Unix设计思想:软件的杠杆效应》读后感

<Linux/Unix设计思想:软件的杠杆效应>读后感 CSDN送一本书给我,本来我是选择Python相关的书,可惜没有货了,CSDN的美女给我一个目录列表,我选择了这本<Linux/Unix设计思想>,当我读到下面这个故事时,深深地打动了我,让我不断反思,久久不能入睡,下面将这个故事分享如下: 我的姑姑却在一年时间内,卖出了价值将近一百万美元的特百惠产品. 当我听说这件事情时,我首先想到的就是:"这得卖出多少保鲜盒啊!"在慢慢适应了我们家族中很快就会出现一个新

Mike Gancarz:Linux/Unix设计思想

Mike Gancarz是一位技术布道者.他是Linux/Unix最主要的倡导者之一,也是最早开发X Window System的先驱.他把一些在Unix/Linux社区里口口相传的哲学思想总结提炼,写成了<Linux and the UNIX Philosophy>这样一本完整的Unix/Linux哲学理论书籍.他在书中提出了九条训格之言: 一.小即是美 二.让每一个程序只做好一件事情 三.尽快建立原型 四.舍高效率而取可移植性 五.使用纯文本文件来存储数据 六.充分利用软件的杠杆效应 七.

《Linux/Unix设计思想》 简要

SMALL 小即是美 1THING 让每个程序只做好意见事情 PROTO 尽快建立原型 PORT 舍高效率而取可移植性 FLAT 使用纯文本文件来存储数据 REUSE 充分利用软件的杠杆效应 SCRIPT 使用shell脚本来提高杠杆效应和可移植性 NOCUI 避免强制性的用户界面 FILTER 让每一个程序成为过滤器 custom 允许用户定制环境 kernel 尽量使操作系统的内核小而轻巧 lcase 使用小写字母并尽量简短 trees 保护树木 silence 沉默是金 parallel 

把握linux内核设计思想系列(未完待续......)

[版权声明:尊重原创,转载请保留出处:blog.csdn.net/shallnet,文章仅供学习交流,请勿用于商业用途] 把握linux内核设计思想(一):系统调用 把握linux内核设计思想(二):硬中断及中断处理 把握linux内核设计思想(三):下半部机制之软中断 把握linux内核设计思想(四):下半部机制之tasklet 把握linux内核设计思想(五):下半部机制之工作队列及几种机制的选择 把握linux内核设计思想(六):内核时钟中断 把握linux内核设计思想(七):内核定时器和

把握linux内核设计思想系列

[版权声明:尊重原创,转载请保留出处:blog.csdn.net/shallnet,文章仅供学习交流,请勿用于商业用途] 本专栏分析linux内核的设计实现,包含系统调用.中断.下半部机制.时间管理.内核同步.进程管理.内存管理等相关内容. 把握linux内核设计思想(一):系统调用 把握linux内核设计思想(二):硬中断及中断处理 把握linux内核设计思想(三):下半部机制之软中断 把握linux内核设计思想(四):下半部机制之tasklet 把握linux内核设计思想(五):下半部机制之

把握linux内核设计思想(三):下半部机制之软中断

[版权声明:尊重原创.转载请保留出处:blog.csdn.net/shallnet,文章仅供学习交流,请勿用于商业用途] 中断处理程序以异步方式执行,其会打断其它重要代码,其执行时该中断同级的其它中断会被屏蔽,而且当前处理器上全部其它中断都有可能会被屏蔽掉,还有中断处理程序不能堵塞,所以中断处理须要尽快结束.因为中断处理程序的这些缺陷,导致了中断处理程序仅仅是整个硬件中断处理流程的一部分,对于那些对时间要求不高的任务.留给中断处理流程的另外一部分,也就是本节要讲的中断处理流程的下半部. 那哪些工

把握linux内核设计思想(十三):内存管理之进程地址空间

[版权声明:尊重原创,转载请保留出处:blog.csdn.net/shallnet.文章仅供学习交流,请勿用于商业用途] 进程地址空间由进程可寻址的虚拟内存组成,Linux 的虚拟地址空间为0~4G字节(注:本节讲述均以32为为例).Linux内核将这 4G 字节的空间分为两部分.将最高的 1G 字节(从虚拟地址0xC0000000到0xFFFFFFFF).供内核使用,称为"内核空间". 而将较低的 3G 字节(从虚拟地址 0x00000000 到 0xBFFFFFFF),供各个进程使

《深入理解Android内核设计思想》

<深入理解Android内核设计思想> 基本信息 作者: 林学森 出版社:人民邮电出版社 ISBN:9787115348418 上架时间:2014-4-25 出版日期:2014 年5月 开本:16开 页码:687 版次:1-1 所属分类:计算机 > 软件与程序设计 > 移动开发 > Android 更多关于>>><深入理解Android内核设计思想> 编辑推荐 基于Android SDK最新版本 全面细致地剖析了进程/线程模型.内存管理.Bind

《深入理解Android内核设计思想》书本目录,及部分章节内容分享

第1篇 android编译篇 第1章 android系统简介 2  1.1 android系统发展历程 2  1.2 android系统特点 4  1.3 android系统框架 8 第2章 android源码下载及编译 10  2.1 android源码下载指南 10  2.1.1 基于repo和git的版本管理 10  2.1.2 android源码下载流程 11  2.2 原生态系统编译指南 12    2.2.1 建立编译环境 13    2.2.2 编译流程 15  2.3 定制产品的