Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
幻灰龙
Intro-OSSD
提交
5571af9c
I
Intro-OSSD
项目概览
幻灰龙
/
Intro-OSSD
与 Fork 源项目一致
Fork自
CSDN 技术社区 / Intro-OSSD
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
I
Intro-OSSD
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
5571af9c
编写于
8月 30, 2022
作者:
SoftwareTeacher
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update story
上级
8848c9f1
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
32 addition
and
6 deletion
+32
-6
chapters/KenThompson.md
chapters/KenThompson.md
+32
-6
未找到文件。
chapters/KenThompson.md
浏览文件 @
5571af9c
...
@@ -44,17 +44,18 @@ Ken觉得,既然领导不给预算,那就将就着先用这个吧。 他先
...
@@ -44,17 +44,18 @@ Ken觉得,既然领导不给预算,那就将就着先用这个吧。 他先
下一步,怎么来测试这个算法呢? 需要写一个磁盘 I/O 程序,这样就能往磁盘上读写大量数据。
下一步,怎么来测试这个算法呢? 需要写一个磁盘 I/O 程序,这样就能往磁盘上读写大量数据。
到这儿,离实现一个简单的操作系统只差三个模块了:
到这儿,离实现一个简单的操作系统只差三个模块了:
一个是用来创建代码的编辑器
一个是把代码编译为 PDP-7 汇编语言的汇编器
-
一个是用来创建代码的编辑器
还有一个能运行命令的环境,用行话叫 “操作系统的外壳” (Shell)
-
一个是把代码编译为 PDP-7 汇编语言的汇编器
-
还有一个能运行命令的环境,用行话叫 “操作系统的外壳” (Shell)
这个时候,Ken的妻子正好带着一岁大的孩子离开了三星期,他就利用这三周的时间,把上面提到的三个模块都写出来了。
这个时候,Ken的妻子正好带着一岁大的孩子离开了三星期,他就利用这三周的时间,把上面提到的三个模块都写出来了。
三个模块完成后,一个小型的操作系统就做出来了,这就是 Unix 的最初版本。他们最初起 Unix这个名字,也是对 Multics 的一个玩笑,因为 Multi
c 是多的意思, Uni (Unix?
)是单独的意思。
三个模块完成后,一个小型的操作系统就做出来了,这就是 Unix 的最初版本。他们最初起 Unix这个名字,也是对 Multics 的一个玩笑,因为 Multi
- 是多的意思, Uni-(Unix
)是单独的意思。
对了,除了这个操作系统,Ken也确实发明了一个 B 语言,这个语言后来演化为 C 语言, 成为现代 IT 产业应用最广泛的语言之一,也是后来很多语言发展的源头。
对了,除了这个操作系统,Ken也确实发明了一个 B 语言,这个语言后来演化为 C 语言, 成为现代 IT 产业应用最广泛的语言之一,也是后来很多语言发展的源头。
后来,随着 Unix 的兴旺发展,
热爱 Unix
都有一些共性,比如大家都是都是用命令行,各种参数都记得,喜欢用各种工具的组合等等。在使用这个系统的过程中,大家的共性,就被总结成了一个成文的 Unix 设计哲学。
后来,随着 Unix 的兴旺发展,
Unix 社区的成员
都有一些共性,比如大家都是都是用命令行,各种参数都记得,喜欢用各种工具的组合等等。在使用这个系统的过程中,大家的共性,就被总结成了一个成文的 Unix 设计哲学。
例如:简单就是美。这一点,你比较一下 COBOL 和 C 语言的 Hello World 的程序,就能发现不同。
例如:简单就是美。这一点,你比较一下 COBOL 和 C 语言的 Hello World 的程序,就能发现不同。
...
@@ -65,9 +66,34 @@ Unix 的另一个设计哲学就是:只做一件事,把它做好。
...
@@ -65,9 +66,34 @@ Unix 的另一个设计哲学就是:只做一件事,把它做好。
Ken曾经说过自己对于计算机为什么这么熟悉,他说自己从小喜欢鼓捣电器,去加州大学伯克利分校读电子工程的时候,因为他已经玩了 10 年的电器,所以很轻松地学完了电子学的课程。
Ken曾经说过自己对于计算机为什么这么熟悉,他说自己从小喜欢鼓捣电器,去加州大学伯克利分校读电子工程的时候,因为他已经玩了 10 年的电器,所以很轻松地学完了电子学的课程。
后来,他迷上了电脑(大型机)。就经常在午夜时分进到学校的机房,一待就是一晚上。他非常享受这样的过程,因为在第二天早上 8 点之前,这就一直是他一个人的计算机。那时的他很快乐,他自己说 “我毫无雄心壮志,是一个没有目标的工作狂”。 我认为,把计算机玩的精通,这个也是非常了不起的雄心壮志。
后来,他迷上了电脑(大型机)。就经常在午夜时分进到学校的机房,一待就是一晚上。他非常享受这样的过程,因为在第二天早上 8 点之前,这就一直是他一个人的计算机。那时的他很快乐,他自己说 “我毫无雄心壮志,是一个没有目标的工作狂”。 我认为,把计算机玩的精通,这个也是非常了不起的雄心壮志。
### 心流时刻
大家一定都听说过“心流”的概念。当我们进入心流时刻,就可以全身心投入工作而忘记了时间的流逝,在这种状态下,人会有一种幸福感,工作的开展就像水流一样自然。
并不是所有工作都需要进入心流的状态才能变得高产,但对于设计,开发,写作这样的创造性劳动,心流是必须的。 它的首要的条件就是“不被打扰”。一旦被打扰后,我们需要一个缓慢的过程来再次进入心流,也许今天就再也回不到这样的高效率状态了。
这个心流时刻,未必就是在家上班,在新冠疫情开始之后的两年多来,很多公司尝试着让员工在家上班,但是有员工反映,在家上班效率很低,为什么低呢?一个重要原因是:有家人,特别是小孩打扰。小孩可不管你在上班,他就是要找你。
同样的,如果你作为领导,让员工来上班,但是又不断随意打扰他们,不就是和小孩一样了么?这些像小孩子一样的领导,没注意到 ‘大人’ 正在写代码呢,什么小事都要直接问,而且非得马上要结果。
注意我们在上面的话中,有意无意把领导和小孩等同起来,因为他们幼稚地认为,跟你讲几句话,有什么大不了的,而且我的需求那么紧急!这种幼稚的打扰对于工程师的劳动生产率是一个巨大的折磨。
有一个公式可以定义员工上班的效率: E = 不被打断的小时数 / 全部工作的小时数
例如,你上班 8 小时,如果你不被打断的小时数量只有 1 个小时,那么, 你的 E 值只有 1/8 = 0.125
我们前面讲 Ken Thompson 用三周完成 Unix 雏形的工作的时候,是这么描述他的工作状态的:
“每27-28小时才睡一次,每次睡 6 个小时,每次睡到自然醒。工作状态非常好,比被孩子哭闹吵醒要强多了”
这么看来,Ken的E等于多少呢? 应该是 100% 吧?注意到,他是在家里写程序,没有上班,开组会,也没有被产品经理叫过去询问怎么填一个PPT 的某个数字,或者被同事打扰,等等。
那如果他的小孩也在家里,你觉得他的 E 会是多少呢? 同样,在大学里,你的学习效率是多少?
E = 不被打断的小时数 / 全部学习的小时数
### 总结
### 总结
你从 Ken Thompson 的故事中获得了什么呢?
你从 Ken Thompson 的故事中获得了什么呢?
Playful cleverness?
专注,心流,做自己想做的事情,
Playful cleverness?
### 注解
### 注解
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录