首页 > 系统相关 >UNIX/LINUX设计哲学

UNIX/LINUX设计哲学

时间:2023-09-21 20:01:29浏览次数:38  
标签:shell 程序 UNIX 可移植性 用户 Unix 应用程序 LINUX 哲学

1. 大准则:

  • 小即是美. a. 能够有效的结合其他小事务.
  • 让每个程序只做好一件事. a. 通过集中精力应对单一任务,减少冗余代码, b. 避免过高的开销、不必要的复杂性和缺乏灵活性.
  • 快速建立原型,快速迭代. a. 类似集市模式,快速迭代上线. b. 根据用户的反馈,后续完善与改版.
  • 舍弃高效率而取可移值性.
  • 采用纯文本来存储数据. a. 关于可移植性的准则中,往往忽视可移植性数据. b. 不要存二进制,方便可读性.
  • 充分利用软件的杠杆效应(软件复用). a. 代码重用能帮助充分利用软件的杠杆效应. b. 在相对较短的时间内编写出了大量应用程序.
  • 使用shell脚本来提高杠杆效应和可移值性. a. shell脚本可以加强软件的可重用性和可移植性. b. 只要有可能,编写shell脚本来替代C语言程序都不失为一个良好的选择.
  • 避免强制性的用户界面: a. 命令行减少了用户界面的安全隐患. b. 在运行时,会阻止用户去运行其他命令,这样用户就会成为这些系统的囚徒.
  • 让每个程序都称为过滤器: a. 每个程序可以把数据放到A程序中处理,再放到B程序中处理. b. 它们只是修改而从不创造数据.

2. 小准则:

  • 允许用户定制环境: a. Unix用户喜欢掌控系统环境,并且是整个环境. b. 很多Unix应用程序交互会将选择的权利交给用户. c. 原则是:程序应该只是提供解决问题的机制,而不是为解决问题的方法限定标准.
  • 尽量是操作系统内核小而轻量化: a. 尽管对新功能的追求永无止境,Unix开发人员还是喜欢让操作系统最核心部分保持最小的规模.
  • 使用小写字母并尽量简写:
  • 沉默是金: a. 在出现错信息的时,Unix命令喜欢保持沉默.
  • 各部分之和大于整体: a. 小程序集合而成的大型应用程序比单个的大程序更灵活,也更为实用. b. 两种解决方案可能具备同样的功能,可集合小程序的做法更具有前瞻性.
  • 寻求90%的解决方案(2/8定律): a. 百分百的完成任何事情是很困难的. b. 完成90%的目标会更有效率,并且更节省成本.

标签:shell,程序,UNIX,可移植性,用户,Unix,应用程序,LINUX,哲学
From: https://blog.51cto.com/u_16255561/7556566

相关文章

  • Linux系统快速入门
    LINUX基础知识I、Linux概述linux是啥?一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性......
  • Linux学习笔记与个人理解(第一章初识Linux)
     1.云计算的简介1.1云计算的定义云计算是一种基于互联网的计算模式,通过网络提供可按需访问的共享计算资源和服务,包括计算能力、存储空间和应用程序等。1.2云计算的特点弹性伸缩:根据需求动态调整计算资源的规模,实现快速扩展或缩减。资源共享:多个用户共享云计算平......
  • Linux 爱好者线下沙龙:LLUG 2023 深圳硬核来袭 | 第三站
    导读:2023年9月24日下午,我们将在深圳举行LLUG2023·深圳场。本文转自Linux中国,以下为本次活动介绍。本文字数:1629,阅读时长大约:2分钟经历过 6月北京场、7月上海场,一个月的休整之后,这次LLUG来到大陆的南端,美丽的鹏城。2023年9月24日下午,我们将在深圳举行LLUG2......
  • Linux 爱好者线下沙龙:LLUG 2023 深圳硬核来袭 | 第三站
    导读:2023年9月24日下午,我们将在深圳举行LLUG2023·深圳场。本文转自Linux中国,以下为本次活动介绍。本文字数:1629,阅读时长大约:2分钟经历过 6月北京场、7月上海场,一个月的休整之后,这次LLUG来到大陆的南端,美丽的鹏城。2023年9月24日下午,我们将在深圳举行LLUG20......
  • Linux 查看端口使用情况
    之前查询端口是否被占用一直搞不明白,问了好多人,终于搞懂了,现在总结下:1.netstat -anp |grep 端口号如下,我以3306为例,netstat -anp |grep 3306(此处备注下,我是以普通用户操作,故加上了sudo,如果是以root用户操作,不用加sudo即可查看),如下图1:         ......
  • Linux持续学习者的必备工具:文本处理神器awk
    Linux持续学习者的必备工具:文本处理神器awk原创 运维家 运维家 2023-09-0215:09 发表于北京收录于合集#awk1个#linux52个引言作为一名Linux持续学习者,我们经常需要处理各种各样的文本文件,例如日志文件、配置文件等。而对于大规模的文本数据,手动处理往往效率......
  • Linux如何设置ssh密钥(免密码)登录
    Linux如何设置ssh密钥(免密码)登录原创 小达 IT人家 2023-09-1320:54 发表于广东收录于合集#Linux干货26个来自公众号:IT人家前言我们在使用ssh客户端远程连接Linux服务器时,为了考虑安全方面的因素,通常使用密钥的方式来登录。密钥分为公钥和私钥,这两把密钥可以互为加......
  • Linux内核信号量(semaphore)使用与源码分析
    https://blog.csdn.net/Auris/article/details/107404962一.在Linux内核驱动中使用信号量(semaphore)常规操作步骤:[0].定义信号量结构体变量;structsemaphoresem; [1].初始化信号量变量 voidsema_init(structsemaphore*sem,intn); eg.sema_ini......
  • arm linux 移植 ffmpeg 库 + x264 + x265
    背景Ffmpeg中带有h264的解码,没有编码,需要添加x264。libx264是一个自由的H.264编码库,是x264项目的一部分,使用广泛,ffmpeg的H.264实现就是用的libx264。FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转......
  • Linux常用命令2
    cat/proc/mtd查看NandFlash分区情况flash_erase/dev/mtd300nandwrite-s0x60000-p/dev/mtd3/home/root/imx6ull-14x14-nand-7-1024x600-c.dtbsyncflash_erase/dev/mtd400nandwrite-p/dev/mtd4/home/root/zImagesyncps-Akill100 ls/dev/tty* “ttym......