惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Cloudbric
Cloudbric
Schneier on Security
Schneier on Security
V2EX - 技术
V2EX - 技术
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
O
OpenAI News
S
Security @ Cisco Blogs
Scott Helme
Scott Helme
Security Archives - TechRepublic
Security Archives - TechRepublic
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
WordPress大学
WordPress大学
云风的 BLOG
云风的 BLOG
T
Threatpost
Hacker News: Ask HN
Hacker News: Ask HN
Microsoft Azure Blog
Microsoft Azure Blog
Know Your Adversary
Know Your Adversary
博客园 - 三生石上(FineUI控件)
A
About on SuperTechFans
Forbes - Security
Forbes - Security
NISL@THU
NISL@THU
Security Latest
Security Latest
G
Google Developers Blog
D
Docker
T
Threat Research - Cisco Blogs
N
Netflix TechBlog - Medium
C
CERT Recently Published Vulnerability Notes
H
Help Net Security
B
Blog
Martin Fowler
Martin Fowler
N
News and Events Feed by Topic
Simon Willison's Weblog
Simon Willison's Weblog
Hacker News - Newest:
Hacker News - Newest: "LLM"
L
Lohrmann on Cybersecurity
Y
Y Combinator Blog
PCI Perspectives
PCI Perspectives
F
Fortinet All Blogs
MyScale Blog
MyScale Blog
Project Zero
Project Zero
爱范儿
爱范儿
Cisco Talos Blog
Cisco Talos Blog
博客园 - 聂微东
Hugging Face - Blog
Hugging Face - Blog
人人都是产品经理
人人都是产品经理
V
Vulnerabilities – Threatpost
P
Proofpoint News Feed
Cyberwarzone
Cyberwarzone
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
TaoSecurity Blog
TaoSecurity Blog
N
News | PayPal Newsroom
Recorded Future
Recorded Future

Oskyla 烹茶室

修复 Joplin on KDE 菜单栏显示问题 Copy Fail:Linux 内核 2017 年至今的高危漏洞(附临时缓解方案) | CVE-2026-31431 Hermes Agent — 在 K3s / K8s 中运行指南 在 K3s 节点上安装并使用 nerdctl Mouser:轻量开源的罗技鼠标驱动替代方案 Claude Opus 4.7:优缺点与评测信息汇总 openFuyao NPU-Operator故障排查 openFuyao 2603 共测测试报告 openFuyao InferNex AI推理集成部署 310P(300I Pro) 环境问题记录及解决 ceph mon Operation not permitted 问题解决 Ascend 310P + openFuyao + NPU-Operator 故障排查 KDE Plasma6 禁用全局菜单,恢复正常应用菜单 终极指南:在 Linux 裸机服务器上快速部署 Moltbot (原 Clawbot) 并集成飞书 Windows 配置 Claude Code 解决 settings.json 不生效 Windows 配置 Claude Code 全流程 2025-12-31 | 年终总结 AI 生图精品提示词|第二期:城市星球 AI 生图精品提示词|第一期 Kubernetes kubectl --raw 使用指南 彻底解决阿里云和 tailscale 冲突 2025-10-21 | 沉淀思维 macOS 单独为鼠标或触控板开启自然滚动 2025-10-16 | 负载高低 2025-10-15 | 睡眠周期 2025-10-14 | 转换情绪与独立观点 go 拉取 gitcode.com 私有 mod Git 将某个文件恢复到其他分支的状态 SSH 通过跳板机连接 lxc 使用 chronyc 构建 ntp 服务 2025-10-13 | 独立思考于未来能源 2025-10-12|AI Review 及高质量工作流 2025-10-11 | 人生阶段 2025-10-10 | AI Logo | 远程操控 AI 2025-10-09 | 去班味|银杏|域名 2025-10-08 2025-10-07 2025-10-06 2025-10-05 优秀的 SubReddit 清单 Synology 群晖重置 Syncthing 密码 让 LLM 看到真实世界的 Playwright MCP 磁盘占用分析利器 ncdu 自建 gitlab 徽标问题导致项目 500 问题解决 harbor Chartmuseum helm 图表缓存刷新 grep exclude 排除 Debian 11 + PVE LACP Mac 冲突问题调查与解决方案 Claude Code 实用技巧 CentOS 7 重置 root 密码 telnet 如何退出 kubernetes 的挂载传播(mount propagation)机制 vim 将命令输出到当前位置 harbor 替换 ssl 证书 AI提效之使用 cherry-studio + k8sgpt 实现 AI 巡检 k8s Claude Code Subagents 快速开始 《我看见的世界:李飞飞自传》 Lyra - AI Prompt Optimization Specialist Linux 自签名 CA 证书安装方法 超级玛丽、魂斗罗等经典小游戏聚合站 | PlayUnb 个人业余开发项目清单 快速选出收益最高的理财产品 | finance-calculator 苹果液态玻璃风格图像生成和模拟器 | LiquedGlass.icu Linux 进程绑定NUMA节点或CPU核心 判断GPT是否降智的几个问题 Harmony next hap 安装 名侦探柯南贝尔摩德出场集数 k3s k8s 快速部署轻量节点监控方案 beszel k3s-k8s 实现 DevOps 方案横向对比 k8s 配置访问私有镜像仓库 GoAccess 分析多网站日志方法 Octant - 以开发人员为中心的开源 Kubernetes Web 界面 Tailscale 自建 DERP 并配置 SSL 完整教程 OpenManus 使用记录 Plausible 缺失 location 信息的研究 解决 Nginx Ingress returns 413 Entity Too Large 绘图模型效果对比之城市气象 【转】k8s 认知路线 OpenFOAM 两大分支的详细比较 第一个 CUDA 程序之矩阵运算计算效能对比 Archlinux KDE Apache JMeter 配置高分屏缩放 解决 gitlab-runner 移除残留文件 permission denied nginx-ingress 配置路由 302 k8s 触发 pod 重新拉取镜像平滑升级的方法 Clickhouse 迁移后 permission denied 问题解决 Linux CPU 运行模式及功耗分析 Linux vim vi 翻页跳转命令快捷键 git 拉取所有 branch 和 tag 到本地并推送到远程 Rails 性能分析工具 rack-mini-profiler 和 bullet 全球国家、城市、地区开源数据库 Rails Active Record 常用命令 Rails Rake 简介与编写 如何调试 Vim 脚本 名侦探柯南松田阵平出场集数(最新1069话) 名侦探柯南妃英理出场集数(最新1069话) 《名侦探柯南》官方人气投票结果 名侦探柯南TV安室透出场集数(最新1110话) 名侦探柯南TV赤井秀一出场集数(更新至1194话) [转]名侦探柯南TV主线集数整理(截止1165集) 架构风格总结 [转译] 如何成为一个好的开发者? 【影评】名侦探柯南·零的执行人
《UNIX传奇》
Tianlun Song · 2024-06-11 · via Oskyla 烹茶室

本文 首发于 🌱 煎茶转载 请注明 来源

思考

  1. 是不是老外对颜色都不敏感,所以喜欢用很浓的颜色。而对于文字排版很敏感。
  2. 计算

机的历史,让我着迷。

摘录

《UNIX传奇:历史与回忆》 布莱恩·W.克尼汉 45个笔记

◆ Unix传奇往事的启示

苹果的创始人史蒂夫•乔布斯2007年也说过:“苹果公司最大的秘密,那就是苹果把自己看成是一家软件公司

Unix是现代操作系统的鼻祖。从Unix到FreeBSD,再到OS X,最后到iOS应运而生。由于Unix的版权纠纷和Minix的封闭,Linux诞生了,而后又产生了Android。

文件、目录、系统调用、shell、管道,还有一大批优秀的生产力工具,如grep(正则表达式)、diff、Lex、Yacc、Make等,都凝结着Unix创造者的智慧和心血

一大批天才人物聚集在一起,没有生活的压力,没有KPI的烦恼,自由地探索科学的发展和应用。即使是贝尔实验室的小角色后来都成了大人物,比如谷歌前董事长埃里克•埃默森•施密特就曾作为贝尔实验室实习生参与编写Lex第一版程序

◆ 见证软件历史丰碑

1843年,英国大诗人拜伦的女儿埃达•洛夫莱斯(Ada Lovelace,1815—1852)为数学家巴贝奇的分析引擎编写了一个用于计算伯努利数的程序。凭借这段程序,埃达享有了第一个程序员的美名。她编写的伯努利数程序被认为是人类历史上的第一个计算机程序。

另一个伟大的女性在软件历史上立下不朽功勋。她的名字叫格蕾丝•霍珀(Grace Hopper,1906—1992),她在UNIVAC I大型机上开发出了一个名为A-0(Arithmetic Language version 0)的特殊软件,这个软件可以把人类书写的程序自动编译为可以在计算机上执行的程序。这样的程序很快被赋予一个专有的名称——编译器。

基于编译器的“软件生产模式”被广泛认可后,具有不同特色、适合不同应用领域的高级语言——Fortran(1957)、ALGOL(1958)、COBOL(1959)、BASIC(1964)纷纷出现了。

◆ 译 者 序

以我之见,程序员的追求就是让机器听话,让工作自动化,让人类生活更美好。昔年Unix核心团队乃至贝尔实验室计算科学研究中心的一众精英,无疑都是秉承这个初衷,尽展所长,才取得如此辉煌的成就的。

几十年过去了,“让机器听话”部分演变为“让机器听得懂人话”。人工智能科技进步巨大,在一些领域中,机器展现出可观的能力,替代了相当一部分人工

◆ 第1章 贝尔实验室

我特别喜欢乔恩·格特纳的《创意工厂》,这本书主要写物理科学研究方面的内容。詹姆斯·格雷克(James Gleick)的《信息简史》(The Informationtion)对于了解信息科学极有价值。贝尔实验室官方出品的《贝尔系统的工程与科学史》(A History of Engineering & Science in the Bell System)卷帙浩繁(共7卷,近5000页),既全面又权威,以我之见,也很有趣。

贝尔实验室雇员还发明了负反馈放大器、太阳能电池、激光器、手机、通信卫星和电荷耦合器件(有了它,手机上的摄像头才能工作)等。

贝尔实验室还有一项任务,那就是构建对通信系统工作机制的数学理解。克劳德·香农(Claude Shannon)基于第二次世界大战期间的密码学研究创建了信息论,这是最重要的成果。香农于1948年在《贝尔系统技术杂志》(Bell System Technical Journal)上发表“A Mathematical Theory of Communication”(通信的数学理论)一文,阐释了通信系统可传递信息数量的基本属性和限制。

随着计算机变得越来越强大、越来越便宜,其用途也拓展到数据分析、物理系统和过程的大型建模与仿真

夏日的某天,有人搞混了存储密码的文件和保存当日欢迎登录消息的文件。密码都是明文存储的,结果一登录系统就会看到所有人的密码。

编程风格的第一条规则:写明白,别炫技。

◆ 第2章 Unix雏形(1969)

其中有一些指令负责依据之前的计算结果,即已做完的事,决定后续执行什么指令——这决定了计算机下一步做什么。这样一来,计算机就掌控了自己的命运。

使用某种编程语言,为执行某项要完成的任务创建操作序列,这就是所谓的编程。

所以编程领域的大部分进步都与创造接近人类表达计算方式的编程语言有关

area = length * width

这就是今天大部分主流编程语言中的确切形式。编译器将其翻译为人类仍然可读但主要面向计算机的机器指令序列。在一台虚构的简单计算机上,该序列大概像下面这样:

load length multiply width store area

穿孔卡用高品质硬纸制成,每张卡片能保存最多80个字符,容纳一行程序的内容

6行C语言程序得用6张卡片,如果要修改代码,就得替换卡片

Multics本该前途无量,但其很快就陷入困境。回头看来,它算是第二系统效应(second system effect)的受害者。所谓第二系统效应,意思是在首个系统(如CTSS)创建成功后,打算创建一个新系统,修正旧系统的遗留问题,还要添加每个人期望的新特性,结果常常是塞了太多不同东西进去,最终得到过于复杂的系统

“在某一时刻,我发现离实现一个操作系统仅有3周之遥了。”他需要写三个程序,每周写一个:用来创建代码的编辑器;将代码转换为PDP-7能运行的机器语言的汇编器;再加上“内核的外层——操作系统齐活了”。

正如他在2019年一次采访中所说,“一周,一周,再一周,我们就有了Unix。”无论以何种方式来度量,这都体现了真正的软件生产力。

1969年年中至年末,有明确Unix特征的系统就已在运行,可以说那就是Unix诞生的时间了。

◆ 第4章 第6版(1975)

归根结底,系统调用就是操作系统,因为它们定义了系统提供的服务。

shell是运行其他程序的程序

shell的另一主要服务是I/O重定向。

管道也许是Unix中最引人注目的创新。管道是一种机制,由操作系统提供,并通过shell轻松访问

“在与霍普克罗夫特(Hopcroft)[10]及厄尔曼(Ullman)[11]合著的《计算机算法的设计与分析》(The Design and Analysis of Computer Algorithms)一书中,阿尔·阿霍为某个算法写了个例程,那正是egrep的第一个实现

egrep技术卓越,但除非你知道标准方法的性能有多差,否则就会视若无睹。”

第一份广泛传播的C语言说明书是《C程序设计语言》(The C Programing Language)(图4-5),这本书是我和丹尼斯在1978年出版的,第2版于1988年推出。

◆ 第5章 第7版(1976—1979)

Yacc结合了先进的解析技术、极高的效率和方便的用户界面,成为早期语法分析器生成软件中的仅存硕果。今天,除了以完整的独立软件形式出现,它还在其他软件(如由它衍生出来的Bison)中存在,并且在另外几种编程语言中得以重新实现、继续发挥作用。

Lex程序由一连串的模式(正则表达式)组成,这些模式定义了要识别的“词元”(lexical token)。对于编程语言来说,这些标记是保留字、变量名、运算符、标点符号等元素

Yacc和Lex紧密协同。解析过程中,Yacc会反复调用Lex,Lex每次读取足够多的输入来构造完整词元,并将其传回给Yacc。Yacc/Lex组合将编译器的前端组件机械化,能够同时处理复杂的语法和词法结构

[插图]

程序帮你写的代码会比你自己手写的更正确、更可靠。如果改进了生成器,例如能生成更好的代码,那么每个人都会受益;相反,对手写程序的改进并不能改善其他程序

阿尔·阿霍写了几本广泛使用的课本,包括1977年与杰夫·厄尔曼合写的名作“龙书”《编译原理》(Principles of Compiler Design)(图5-12),还有与杰夫及约翰·霍普克罗夫特(John Hopcroft)合写的《计算机算法的设计与分析》(Design and Analysis of Computer Algorithms)

乔恩·本特利在《ACM通讯》上的专栏文章结集成《编程珠玑》(Programming Pearls)一书。数学中心的迈克·加里(Mike Garey)和戴维·约翰逊(David Johnson)用Troff和Eqn为他们的大作《计算机和难解性:NP完全性理论导引》 (Computers and Intractability: A Guide to the Theory of NP Completeness)排版

◆ 第8章 派生物

不过,Plan 9确实为世界贡献了一件无比重要的东西:Unicode的UTF-8编码。

◆ 第9章 遗产

GNU(“GNU’s not Unix”的递归缩写[1])是一个大型软件集合,大部分基于Unix模式,以源代码的形式免费提供给所有人使用:有了它,Unix上几乎所有东西都可以使用,甚至包括更多工具

GNU加上Linux操作系统,相当于免费版的Unix。Unix命令的GNU实现是开源的,可以被使用和扩展。唯一的限制是,如果发布了改进,成果必须免费提供给每个人,不可以私有。当今大量的软件开发都基于开源项目,在很多情况下就是基于GNU的实现。

1993年电影《侏罗纪公园》(Jurassic Park)中有个著名场景,13岁的莱克斯·墨菲[Lex Murphy,阿丽亚娜·理查兹(Ariana Richards)饰]说:“这是个Unix系统! 我会用。”她浏览文件系统,找到大门控制装置,锁上了门,从而使大家免于被迅猛龙吃掉(图9-1)。这一幕可以说是极客们的高峰时刻。