Linux/Unix设计思想

  • 来源:网络
  • 更新日期:2020-07-20

摘要:系统运维 Mike Gancarz1.Unix开发基于Multics分时操作系统 2.NIH(Not invented here,非我发明)3.GPL:GUN公共授权协议,适用于软件的法律协议。

系统运维

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  实用型摘录与报告语言)程序都能充当过滤器:非常善于和其他软件交互、晦涩难用、可扩展性、开源脚本工具。


新网虚拟主机