作者NoPTT (小绿绿就是赞)
看板specialman
标题Fw: [问卦] 有GNU/Linux那有BSD/Linux吗?
时间Sun Jun 12 23:27:30 2022
※ [本文转录自 Gossiping 看板 #1YfMm8dM ]
作者: jserv (松鼠) 看板: Gossiping
标题: Re: [问卦] 有GNU/Linux那有BSD/Linux吗?
时间: Sun Jun 12 12:30:49 2022
※ 引述《wei115 (社畜)》之铭言:
: 大家都知道
: 林姓商人发明的作业系统linux只是核心,不能单独使用
: 通常会和理教主(理察·斯托曼)发明的GNU套件一起使用
: 那其实另外一个作业系统BSD,上面也有BSD套件
: 两个同样都符合POSIX标准 照理来说只要重新编译就能把BSD套件移植到linux上用
: 那有BSD/Linux吗?
: 有卦吗?
: p.s 最近才知道FreeBSD居然不是UNIX.......然後BSD套件有够难用= =
回答这问题之前,我们应该先思考「什麽是 BSD?」
依据 FreeBSD 网站 [1] 的描述,FreeBSD 衍生自 BSD,後者则是 "the version of
UNIX developed at the University of California, Berkeley",其中 UNIX 字眼後方
特别标注注册商标 R (圆圈内有字母 R; U+00AD) [2],就是源於加州大学柏克莱分校
(常用缩写是 UC Berkeley 或 Cal,以下简称 Cal)。
至於 UNIX 为何跟 Cal 有关?这要从 UNIX 共同发明人 Ken Thompson [1] 谈起,他是
Cal 校友 (学士和硕士学位),在 1975 年向 Bell 实验室申请休假研究 (sabbatical
leave) [4],当时的 Bell 实验室气氛类似大学院校,允许像 Thompson 这样从 1966 年
就加入的资深研究人员带薪休假,鼓励他们在学术机构交流,Thompson 选择回母校 Cal,
他帮 Cal 安装 1975 年五月才发布的 UNIX 第 6 版 (Version 6 UNIX,这在作业系统的
领域有着里程碑的意义,不仅因为大部分用 C 语言撰写,也是 AT&T 的默许,成为早期
广泛散布的 UNIX 作业系统 -- 在 AT&T 的律师祭以高额授权金和法律手段之前。以下
简称 UNIX 第 6 版为 V6),这个热腾腾的 V6 立刻就轰动 Cal 校园,毕竟前一年 Cal 的
Bob Fabry 教授 [5] 才向 Bell 实验室申请一套 UNIX 并购买 PDP-11/45,在 1975 年
刚添购更进阶 PDP-11/70 的 Cal 就遇上 Thompson 带来「原厂支援」和第一手资讯,
鼓舞着若干作业系统和电脑网路 的先驱,其中就包含 Bill Joy [6],他不仅是 BSD 的
早期维护人,也是 vi 的原始作者,更是广泛采纳的 TCP/IP 通讯协定的实作开创者。
在 AT&T 的法务留意到 UNIX 的商机前,V6 仍是相当小众的作业系统,不过因为 Cal
师生的推波助澜,在 V6 的基础上陆续扩充工具程式,并修正若干错误,致使其他学术
机构对 Cal 改良的版本有着高度兴致。在 1977 年 Bill Joy 整理 Cal 版本的 UNIX,
称为 Berkeley Software Distribution (BSD),而第一个公开释出的 BSD 是 1BSD
(版本号码在 "BSD" 字样之前),发布於 1978 年 3 月,後续加入以分页 (paging) 为
基础的虚拟记忆体和高速档案系统一类现代作业系统的特徵。尔後 BSD 纳入真正能用的
TCP/IP 实作,直接改变我们所处的资讯世界面貌 ——最初 Cal 的 CSRG 依据 DARPA
的协议,本要纳入 BBN 公司 [7] 的 TCP/IP 实作,但 Bill Joy 觉得 BNN 公司的程式
码品质不佳、效率更是低落,於是出手重写 (後来由 Sam Leffler 接手),造就当时的
奇蹟:与 DARPA 签订高额合约的 BNN 公司,投入可观的工程资源,最後但却不如一位
Cal 硕士生的成果,让 BNN 公司只好邀请 Bill Joy 开会,以得知怎麽一回事。只见
Bill Joy 穿着当时仍略带轻浮意味的 T-shirt 到这间知名技术承包商,回答:
"It's very simple — you read the protocol and write the code."
BSD 在 1980 年代就开创作业系统的新局面,融合 TCP/IP 在内的产业标准和学术研究
最前沿的成果,可将 BSD 看作技术发展的温床,Cal 师生和当时学术单位一同酝酿的
前瞻 [8] 技术也实际在 AT&T 自家的 UNIX 系统中现身,但收取高额授权金的单位却是
AT&T,这埋下日後冲突的种子,并在 1990 年代爆发。
随着 BSD 的成熟,人们意识到掺杂 AT&T 最初 UNIX 的程式码,意味着高价的授权金与
使用上的各式限制,无法藉由方兴未艾的以太网路进行广泛散播。在许多贡献者的投入,
1989 年六月,Networking Release 1 (Net/1) 诞生,不需 AT&T 授权也可使用,当时
一项划时代的变革就是将 BSD 授权 (BSD License) 声明含入:只要在新的游戏规则,
都可自由再发布。我们也可从这原始的四项被授权人的条件限制中 [10],看出对於原始
程式与二进位执行档的散播形式 (需保有授权与免责声明)、於程式本体提及 Net/1 研发
背後的加州大学、禁止以贡献者或加州大学之名,行衍生软体之背书、推广、促销等
行为,意思就是为这崭新的系统,制定得以自由使用的规则。
看准 UNIX 作业系统在新式微处理器的商机 (包含当时崛起的 Intel 公司的物美价廉
CPU 产品),1991 年 Rick Adams 协同 CSRG 的成员成立 Berkeley Software Design
Inc. (公司延续到 2002 年),主要产品源於 1991 年 CSRG 发布的 4.3BSD Networking
Release 2 (Net/2) [11],其发布声明提到:
: This software suite is Copyright (C) 1991 The Regents of the University of
: California and may be freely redistributed without further charge.
: No previous license, either from AT&T or Berkeley is required.
Net 除了是 networking 的简称 (完整的 TCP/IP stack 是 BSD 最令人瞩目的特徵),在
英语中,"net" 也有不受污染、纯净的意思,Net/1 和 Net/2 的命名伴随着弦外之音,
声称该系统的使用者不受 AT&T 的约束,可用的纯粹 Cal 技术。
BSDi 公司采用 Berkeley Software Distribution 相似的名称,暗示 Cal 这票前瞻技术
开创者作正规生意。BSDi 贩卖 BSD/OS (原名称为 BSD/386) 的软体授权和技术支援。
这时间很微妙,恰好是当时赫尔辛基大学部学生 Linus Torvalds 不满 MINIX 的封闭,
於是另起炉灶开发 Linux 核心,致敬 Richard Stallman 的 GNU 计画的起点。
1992 年 1 月,BSDi 发布 BSD/386,整套系统包含原始程式码售价 995 美元,同时期
AT&T 的 UNIX System V 从 1980 年代起就要价超过 20,000 美元。1991 年底,AT&T
旗下的 Unix System Laboratories (USL) 控告 BSDi,宣称後者的 BSD/386 [9] 里含有
AT&T 的商业机密 —— BSDi 公司的电话号码 ITS-UNIX (从商标到电话号码,都被 AT&T
视为资产来保护) 是引发 AT&T 官司诉讼的导火线。BSDi 的说法是,4.3BSD 衍生发行
版本 Net/2 已移除源於 AT&T 的程式码,不过这诉讼仍旷日废时,还拉入 BSDi 的技术
源头 Cal,直到 1993 年六月 Novell 卖下 USL,隔年二月 Novell 和 Cal 和解,撤销
告诉,其一条件是 Cal 要发表不包含 Novell/AT&T 宣称的原始码的 4.4BSD 系统,称为
4.4BSD-Lite,亦即,这个 "Lite" 不是字面上的轻量级,而是妥协的结果。这样的诉讼
也导致 CSRG 的解散,BSD 陷入一度黑暗期,时空背景却是资讯科技产业高速发展的
1990 年代,这给 Linux 核心极好的发展舞台。就技术延续的意义上来说,1991 年七月
发布的 Net/2 是最後一个 BSD,尽管 1995 年仍有最终的 4.4BSD-Lite Release 2,但
後者是更多是 CSRG 配合 AT&T 的和解条件而生。
至此,我们知道:
- Linux 核心公开发布 1991 年,一开始只是来自一位大学生的玩具,不能与 CSRG 维护
的 BSD 相提并论
- 1991 年底 BSD 发展陷入黑暗期,同时微处理器市场也因 Intel 一类厂商的产品,有
相当物美价廉的选择,快速改变产业生态,这给予 Linux 核心发展的良好契机
- BSD License 源於 Net/1 (1989 年六月发布),订定新的游戏规则,不同於 AT&T 商业
条款和保障 Software Freedom 的 GNU GPL (同样制定於 1989 年,但由於用语的不
精确,实际广泛采纳的是 1992 年颁订的 GNU GPL version 2),用相当宽松的条款,
鼓励人们自由散布 (即 BSD 的 "D" 字母背後的 distribution 本意)
采用宽松的条款来发布重要软体的方式,BSD Net/1 并非第一个,源於 MIT 的 X Window
System (简称 "X") 在 1985 年的 Version 6 就附带宽松的授权条款,於是人们以 MIT
X License 称之,也可简称 MIT License。不难发现 BSD 和 X 都源自前瞻的研究机构,
发布者希望以宽松且自由的方式,让软体得以流通。
做完背景描述後,我终於可回覆原提问者说的「有 BSD/Linux 吗?」
Linux 核心至今仍留着一部分 BSD 的血液,例如 TCP/IP stack 就移植自 BSD,还有个
系统呼叫名为 bpf [12],是 Berkeley Packet Filters 的简称,指源於 Cal 的技术,
後来被 Linux 核心大幅扩充 (和变造),改名为 eBPF,即 Extended BPF [13]。Linux
核心虽然不是 UNIX 相容作业系统,但保留时代演化的轨迹,例如:
档案 include/uapi/linux/route.h 开头的授权声明
: INET
: An implementation of the TCP/IP protocol suite for the LINUX operating
: system. INET is implemented using the BSD Socket interface as the means of
: communication with the user level.
: Authors: Original taken from Berkeley UNIX 4.3, (c) UCB 1986-1988
: for the purposes of compatibility only.
而 FreeBSD 和 NetBSD 这样现代 BSD 则源自 386BSD [13],後者是 Net/2 的延续,
首次发布於 1992 年,当年 AT&T, BSDi, 和 Cal 的官司并未波及到 386BSD,尽管後者
仍包含部分 AT&T 宣称的部分原始程式码 (源於 4.3BSD)。在 386BSD 首个版本 v0.0
发布的前一年 (又是 1991 年!),386BSD 作者 William Jolitz 夫妇於知名的电脑刊物
Dr. Dobb's Journal (DDJ) 连载 18 个月的 "Porting Unix to the 386" 专栏 [15],
详尽揭露 BSD UNIX 如何在 80386 微处理器移植和运用 GCC 在内的 GNU Toolchain 来
建构整个作业系统。
FreeBSD 一开始是 386BSD 的 patchkit (可想像为中华民国宪法的「增修条款」,後者
实际定义台北政府管辖的疆域,而非「固有疆域」这样令人无所适从的模糊词汇),由於
William Jolit 无意纳入这些改进,於是 Nate Williams, Rod Grimes 和 Jordan
Hubbard 等人询问了当时的使用者意见後,决定建立 FreeBSD 计画,并找到 Walnut
Creek CD-ROM 公司商讨,着眼於改进 FreeBSD 的发行通路,让那些不便存取电脑网路的
人亦可简单的取得 FreeBSD。Walnut Creek CD-ROM 不只赞成 CD-ROM 来发行 FreeBSD,
还提供具备高速网路连线的主机,来散布 FreeBSD,这就是 1993 年十二月的 FreeBSD
1.0,采用 4.3BSD-Lite (即 Net/2) 及许多来自於 386BSD 和自由软体基金会的元件为
根基。
FreeBSD 1.0 的发布这好的开始,但很快就因为接手 USL 的 Novell 对 Cal 的官司,
让 FreeBSD 核心开发团队 (core team) 措手不及:UC Berkeley 承认大部份的 Net/2
的程式码都是「侵占来的」且是属於 Novell 的财产,後者继承自 AT&T 的 USL。最後
当 4.4BSD-Lite 终於发行,便不再是侵占行为,所有现有 Net/2 使用者都被强烈建议
更换新版本,这包括 FreeBSD。但「新版」不意味着更好,因为 Cal 的 CSRG 已删除
大量在建立可开机执行的系统所需要的程式码 (基於若干法律上的要求),且
4.4BSD-Lite 在 Intel 平台的移植不完整,於是这让开发团队苦不堪言。直到 1994 年
十二月,FreeBSD 才发布完全没有授权疑虑的 v2.0,而同年 Linux 核心发布 v1.1,被
1994 年一月由杨致远 (Jerry Yang) 和 David Filo 创立的 Yahoo! 公司,用作伺服器
的作业系统 (搭配使用 FreeBSD)。
FreeBSD 一直给人的印象是稳定可靠,而 Linux 核心则是充斥着多种创新和灵活 (因为
授权条款,Linux 核心可用 BSD 授权的模组,但 FreeBSD 核心却不能引入 Linux 核心
在内的 GNU GPL 授权的程式码),且伴随着 Red Hat 一类的「Linux 概念股」,Linux
成为世人所熟知。不过 FreeBSD 和 Linux 与其说是竞争,不如说是合作多於竞争,毕竟
包含 Apache httpd 和 MySQL 在内的知名软体,都在 Linux 和 FreeBSD 技术社群带来
广大影响力,从而奠定各式商业服务的基础,像是 Netflix 这样的公司,甚至是同时
采用 Linux 和 FreeBSD [23]。
或许原发者真正的问题不是「在 Linux 核心上面执行 BSD 系统」,而是「在 Linux
核心上面执行采用 BSD 授权发行的 userland」,若是如此,这样的案例就很显着,甚至
阅读这篇文章的你就使用着 ——Google 公司主导开发的 Android 作业系统就采用 Linux
核心搭配若干取自 NetBSD 和 FreeBSD 的关键软体元件,例如 bionic libc [16] 是
Android 的 C 执行时期函式库 (libc)、数学标准函式库 (libc),和动态连结器 [17]
的实作,其中 libc 源於 NetBSD,并针对 Linux 核心特有的机制,例如 futex [18],
进行改写,使其支援 Linux 核心的 NPTL [19],这样的案例尚有 epoll 和 memfd,尽管
FreeBSD 和 Linux 都是 UNIX-like (因为 UNIX 实际上指的是商标和产品认证的流程,
所以二者都不能宣称自己是 UNIX) 作业系统,但基於各自的发展方向,就会有特有的
系统呼叫。至於规范在 1980 年代的 POSIX,则是参考的 API、系统工具和开发介面的
规范,在本世纪尽管仍有更新,但幅度相当微小。
原发问者提到的「照理来说,只要重新编译就能把 BSD 套件移植到 Linux 上用」,不算
精准的表达,毕竟 FreeBSD 和 NetBSD 都具备特有的系统呼叫,一旦程式码使用这些
系统呼叫,就必须要有对等的 Linux 模拟或者替代实作,否则光是「重新编译」,不足
以让这些程式在 Linux 核心上执行。而且还要考虑到标准函式库的行为落差,例如近期
任职於 Google 的工程师 Tavis Ormandy 将 1990 年的 Lotus 1-2-3 for UNIX 执行档
借由 GNU Toolchain 重新链结和改写特定符号,解决 COFF 到 ELF 与绕过授权检查的
几个问题,最终让原本的 Lotus 1-2-3 for UNIX 执行档 (COFF 格式) 得以重新连结为
ELF/linux-i386 执行档 [22],尽管目前 Lotus 1-2-3 在 Linux 初步可执行,但细部
仍存在问题 (快来提交 pull request,这专案很好玩,上个月我改程式码不小心就忘了
睡觉,只好在茶杯塞入六片茶包,才勉强讲课),在 System V UNIX 的 system() 函式
会等待程式执行结果,但 GNU/Linux 的 system() 函式则会等待 "wait" (这是 signal)
的结果,於是就要额外加入 WEXITSTATUS 的处理 (这段程式码刚好是我加入的),但这样
也会破坏行为的一致 [22]。
Android 这样采用 Linux 核心,搭配 BSD License 的 userland 并非孤例,一直都有
开发者尝试建构,另一个案例是 Chimera Linux [20]。Chimera 是希腊神话中会喷火的
怪物,传闻它上半身像狮子,中间像山羊,下半身像毒蛇。Chimera Linux 借用希腊
神话的典故,描写作业系统底层使用 Linux 核心 (山羊的部位?第三个头会喷火),
系统工具则取自 FreeBSD,并利用 LLVM 来建构系统,从而摆脱对 GNU Toolchain 的
依赖。
原本我只是品嚐早餐时翻到这则提问,没想到一回覆就到中午,先写到这里。欢迎对照看
「从 Revolution OS 看作业系统生态变化」:
https://hackmd.io/@sysprog/revolution-os-note
最後广告时间:Linux 核心课程 [24] 预计在今年七月下旬到八月中旬安排暑期课程,
采用全线上方式进行、全程免费。大部分教材 (含解说录影) 可公开存取,但顾及教学
资源,课程要求报名者先通过先决测验题。请留意以下公告:
https://www.facebook.com/JservFans
[1]
https://www.freebsd.org/about/
[2] 符号 R 表示 Registered (即「已注册」),通常标示於品牌右上或右下方,藉此
告知消费者与竞争同业,该品牌已是注册商标,若他人使用相同或近似商标於相同或
类似商品/服务上,商标专用权人可对其提起商标侵权诉讼。换言之,符号 R 宣示其
己获得该商标专用权,要求他人勿任意使用或仿冒,犹如警示作用。
[3] Ken Thompson 出生於 1943 年 2 月 4 日,现年 79 岁。可在 YouTube 看到他的前
同事 Brian Kernighan 教授对 Thompson 的访谈录影 (摄於 2019 年 5 月 4 日):
https://youtu.be/EY6q5dv_B-o
当时 Thompson 中气十足,并穿着书写 UNIX 原始程式码的 T-shirt,对应到 UNIX 第
6 版 Lions' Commentary 的第 2238 行:
* You are not expected to understand this.
*/
if (rp->p_flag&SSWAP) {
rp->p_flag =& ~SSWAP;
aretu(u.u_ssav);
}
[4] 休假 (sabbatical) 通常是指持续工作两个月至一年的时段中,所获得的休息时间,
而 sabbatical 的源自希伯来语的 shabbat,即圣经中的 Sabbath (安息日),原意
是「休息之日」。sabbatical 是上帝在创造宇宙後的休息,也用在人们身上,因此
安息日被教徒认为可适当地休息,为次日的任务做准备。sabbatical leave 目的是
提供研究人员充实学识的机会、促进教学、提升课程发展、提升创意创造。
[5] Bob Fabry 教授最知名的成就就是取得 DARPA 经费,大幅扩展 UNIX 功能,并主持
Computer Systems Research Group (CSRG):
https://en.wikipedia.org/wiki/Bob_Fabry
[6] Bill Joy:
https://engineering.berkeley.edu/bill-joy-co-founder-of-sun-microsystems/
[7] BBN Technologies 前身是 Bolt, Beranek and Newman 公司是美国高科技和国防
承包商,在 1960 年代到 1970 年代被誉为美国麻州哈佛和 MIT 之外的第三大学
("third university" of Cambridge)。2009 年美国大型国防工业承包商雷神
(Raytheon) 公司以 3.5 亿美元收告 BBN 多次分拆後的主体公司 BBNT Solutions
LLC。
我以前看这些历史时,对於 BBN 没有特别认知,直到我有幸跟 IPSec 规格 (和一
系列工业标准,BBN 公司具备重要影响) 起草人邵家健 (John K. Zao) 博士共事,
才辗转得知二十世纪资讯科技的风起云涌。以後我们会专门做一期影片为大家讲解
(咦?)
[8] 我因故参与若干项政府计画的审查,希望能帮纳税人多作一层把关,不过几年过去,
对於「前瞻」这词已感到麻木。上面是「前瞻」原本的意思,而非台湾政府风格的新
「寓意」。
[9] 请不要将 BSD/386 和 386BSD 搞混!BSD/386 是 BSDi 公司的产品,而 386BSD 是
Net/2 的 80386 处理器移植,由 William Jolitz 和其妻 Lynne Jolitz 主导开发。
386BSD 奠定 NetBSD 与 FreeBSD 的基础,同时,这两个专案也继承 BSD 授权条款,
作为发行的方针。在长期的病痛纠缠後,386BSD 作业系统的创始人 William Jolitz
(也称为 Bill Jolitz) 在 2022 年三月过世。在 386BSD 的网站上,开头写着:
386BSD was the first open source Berkeley UNIX operating system. It was
the progenitor of Linux, iOS, and Android. Beginning with "A Modest
Proposal" in 1989, 386BSD broke from proprietary systems by having
publicly accessible code and documentation.
[10] 原始的 BSD License 也称为 BSD 4-Clause:
https://spdx.org/licenses/BSD-4-Clause.html
[11] Net/2 的发布声明:
https://gunkies.org/wiki/Net/2
[12] bpf 系统呼叫:
https://man7.org/linux/man-pages/man2/bpf.2.html
[13] 关於 Extended BPF,可参见本人的讲座:
https://hackmd.io/@sysprog/linux-ebpf
[14] 386BSD:
https://386bsd.org/
[15] "Porting Unix to the 386" 全文:
https://386bsd.org/releases
[16] bionic:
https://android.googlesource.com/platform/bionic/
[17] 可参见本人讲座:
连结器和执行档资讯:
https://hackmd.io/@sysprog/c-linker-loader
动态连结器:
https://hackmd.io/@sysprog/c-dynamic-linkage
执行阶段程式库 (CRT):
https://hackmd.io/@sysprog/c-runtime
[18] futex:
https://man7.org/linux/man-pages/man2/futex.2.html
[19] 参见本人讲座:
https://hackmd.io/@sysprog/linux-process
[20] Chimera Linux:
https://chimera-linux.org/
[21] Lotus 1-2-3 for UNIX 在 Linux 原生移植的历程很精彩:
https://lock.cmpxchg8b.com/linux123.html
[22] 123elf 的移植议题:
https://github.com/taviso/123elf/issues/89
[23] 可参见 FOSDEM 2019 年的演讲:
https://papers.freebsd.org/2019/fosdem/looney-netflix_and_freebsd/
[24] Linux 核心课程:
http://wiki.csie.ncku.edu.tw/linux/schedule
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.116.246.163 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Gossiping/M.1655008264.A.9D6.html
1F:推 t81511270: 老师好 111.246.112.48 06/12 12:31
2F:推 alittleghost: 嗯,跟我想得一样 114.34.179.94 06/12 12:31
3F:推 pinkowa: 教授 你好好钓喔~~~y 114.43.192.240 06/12 12:32
4F:推 g5637128: 先推 101.12.18.141 06/12 12:32
5F:推 SyunYin:150.117.243.240 06/12 12:32
6F:推 rs6000: 老师好 175.176.71.15 06/12 12:33
7F:推 GSHARP: 原来如此 1.169.105.90 06/12 12:33
8F:推 Mtcat: 妈呀你也太专业 114.36.206.174 06/12 12:37
9F:推 cmpunk66: TL DR 61.58.180.225 06/12 12:37
10F:→ jserv: @pinkowa, 欢迎推坑,相关主题我也想讲140.116.246.163 06/12 12:37
11F:→ jserv: @cmpunk66, 这些故事如今只能在八卦板聊140.116.246.163 06/12 12:38
12F:推 nh60211as: 大师 125.228.71.204 06/12 12:39
13F:推 flysonics: 每次听老师讲这些发展史都觉得很有趣 42.73.176.218 06/12 12:39
14F:→ flysonics: 希望有机会可以多听点 42.73.176.218 06/12 12:39
15F:推 pinkowa: 谢谢老师,老师的优质课程大家有目共睹。 114.43.192.240 06/12 12:40
16F:→ jserv: @Mtcat, 我只是回忆我的童年,练习打字140.116.246.163 06/12 12:40
17F:推 ddoy7: 专业给推 1.160.26.106 06/12 12:40
18F:推 DPP48: 原来是宅瑟夫教授 193.148.16.249 06/12 12:41
19F:推 observer0117: 推 114.35.225.56 06/12 12:43
20F:→ jserv: @DPP48, 请认明「宅色夫」,多采多姿的色140.116.246.163 06/12 12:44
21F:→ jserv: @flysonics, 去问「有没有电脑历史」的八卦140.116.246.163 06/12 12:46
22F:推 psee: 好文推 223.137.21.167 06/12 12:46
23F:推 blanka: FreeBSD相容性还是比不过Linux 狠可惜122.116.150.230 06/12 12:48
24F:→ blanka: 最近TrueNAS也弃FreeBSD转Linux了122.116.150.230 06/12 12:48
25F:推 ts05593818: 先推 怕被笑 27.52.9.250 06/12 12:49
26F:→ sxbear: 老师好 118.167.128.82 06/12 12:50
27F:推 SigmundFreud: 老师好 42.73.234.91 06/12 12:51
28F:推 millaker0820: 老师好 请问有GNU Hurd的故事吗 220.132.86.77 06/12 12:53
29F:推 a6268538: 看不完推101.137.255.200 06/12 12:53
30F:推 YAYA6655: 太夸张,我的老天鹅阿223.136.119.147 06/12 12:54
31F:推 socotia: 老师好 180.218.137.31 06/12 12:55
32F:推 WindSucker: 4 111.252.46.47 06/12 12:55
33F:→ jserv: @millaker0820, 你发文,我就来讲 Hurd140.116.246.163 06/12 12:57
34F:推 kamichu: 大神 114.42.12.164 06/12 12:57
35F:推 pregnpig: 不推不行 175.180.54.152 06/12 12:58
36F:推 yeangigi: 因为这段历史,我还找机会去Berkeley2次 36.225.1.93 06/12 12:59
37F:推 sdbb: 为什麽要移植lotus123?为了浪漫?试算表软 123.204.126.1 06/12 13:00
38F:→ sdbb: 体并不缺这一套,接下来换移植dBASE 123.204.126.1 06/12 13:00
39F:推 Xiphity: 推老师 223.141.75.83 06/12 13:00
40F:推 woifeiwen: 吃饭配优文== 61.224.61.161 06/12 13:02
41F:推 wkuochen: 真是高手!!!!! 175.183.67.111 06/12 13:06
42F:推 ericpan70096: 推,超专业 101.53.21.100 06/12 13:08
43F:推 milicic2103: 有神快拜123.240.175.134 06/12 13:10
44F:推 badruid: 老师好 211.21.4.38 06/12 13:11
45F:推 Agdanpanda: 大神推114.137.137.201 06/12 13:11
46F:推 justboa: 先推再说! 39.9.106.103 06/12 13:12
47F:→ Wangdy: 嗯,跟我想的一样 49.217.192.227 06/12 13:15
48F:推 andyjaw: 大神推 180.176.98.150 06/12 13:18
49F:推 drajan: 好文 82.8.204.225 06/12 13:20
50F:推 speq: 哈哈 223.136.162.55 06/12 13:24
51F:推 a75088285: 烦,又要跪着看了 114.36.204.220 06/12 13:30
52F:推 alfredc: 推!太赞118.169.231.211 06/12 13:30
53F:推 YeaPa: 老师好,这篇我居然看得懂 116.241.140.32 06/12 13:30
54F:推 ashs92223: 推推 112.78.88.19 06/12 13:32
55F:推 g89227: 推 1.164.100.235 06/12 13:33
56F:推 shi21: 这篇是不是该m118.167.160.138 06/12 13:35
57F:→ jserv: @YeaPa, 知音难寻140.116.246.163 06/12 13:43
58F:推 yymeow: 推个 114.37.50.214 06/12 13:44
59F:→ jserv: @sdbb, 让30年前的软体可复活,是检验工具140.116.246.163 06/12 13:47
60F:→ jserv: 和软工程手法的极佳案例140.116.246.163 06/12 13:49
61F:推 ShangLai: 推223.138.179.207 06/12 13:52
62F:推 fenllo: 哇 42.77.20.172 06/12 13:58
63F:推 hakosaki: 大神又有热情教学只能推 111.249.145.48 06/12 14:19
64F:推 sdbb: 收到,就是技术展现aka恐龙复活 工程师浪漫 123.204.126.1 06/12 14:46
65F:推 Mashiro17: 大神快拜… 1.160.127.101 06/12 14:47
66F:推 Kimheeche: 推 101.10.94.180 06/12 15:04
67F:推 theedge: 谢谢老师但是我比较喜欢听业界八卦 42.72.169.61 06/12 15:12
68F:推 gowellplayer: 太神了 推 114.44.144.232 06/12 15:13
69F:推 zero11995: 推114.136.153.133 06/12 15:16
70F:推 holebro: 准备好报名上课 116.241.111.87 06/12 15:24
71F:推 PhilHughes: 想学 39.9.168.103 06/12 15:30
72F:推 dave123: 推 101.10.12.64 06/12 15:32
73F:推 violetflames: 在写论文吗!?101.137.209.194 06/12 16:02
74F:推 southernwood: 推 111.83.91.212 06/12 16:11
75F:推 DarkerDuck: 推推 60.249.215.220 06/12 16:26
76F:推 legendd: J大推推 110.26.196.68 06/12 16:31
77F:→ jserv: @theedge, 关於产业八卦,我开专门课程探讨140.116.246.163 06/12 16:54
79F:→ jimjim951357: 推 140.114.88.144 06/12 16:58
80F:推 hhbbookao: 和其他高手发文的氛围相比看你文最舒服 61.62.234.33 06/12 16:59
81F:→ jserv: @violetflames, 我(论)文组,当然要写论文140.116.246.163 06/12 16:59
※ 编辑: jserv (140.116.246.163 台湾), 06/12/2022 17:22:28
82F:嘘 daye2012: 抄wiki一堆表列的废文 118.231.210.90 06/12 17:13
83F:推 yuiweq1999: 松鼠大必推 223.136.85.19 06/12 17:23
84F:→ jserv: @daye2012, 来自 116 的废文,感谢肯定140.116.246.163 06/12 17:23
85F:推 rongyaya: 老师好114.137.210.133 06/12 17:43
86F:推 mion0723: 推 101.12.35.58 06/12 18:07
87F:→ jserv: @holebro, 可先从去年的题目开始:140.116.246.163 06/12 19:53
89F:推 saedn: 老师耶!!! 可以上课了!!! 114.39.153.238 06/12 20:29
90F:推 mynewid: 詾m -rf 101.12.54.47 06/12 21:33
91F:→ jserv: @mynewid, 你想讨论 rm -rf 出现在何时吗?140.116.246.163 06/12 21:46
92F:推 wulouise: 看完的时候我已经跪在地上 61.231.136.143 06/12 22:39
93F:推 kamichu: 工程人员的浪漫是不是都藏在注解里面 114.42.12.164 06/12 22:45
94F:推 splasky: 嗯嗯 和我想的一样 114.46.92.55 06/12 22:49
95F:→ jserv: @kamichu, 除了 "You are expected to140.116.246.163 06/12 23:02
96F:→ jserv: understand this" 这样的注解 (出现於 V6)140.116.246.163 06/12 23:02
97F:→ jserv: 还有很多有趣的注解,欢迎推坑给我140.116.246.163 06/12 23:03
※ 发信站: 批踢踢实业坊(ptt.cc)
※ 转录者: NoPTT (36.228.237.96 台湾), 06/12/2022 23:27:30
98F:推 yzfr6: 不是 System V 跟 BSD 两大体系的差异吗 07/05 07:36