我是如何从一个电脑爱好者成为职业系统管理员和 Linux 粉丝的。html
故事得从 1980 年中期我父母给家里购买苹果 ][c 开始。尽管很喜欢打游戏,但我仍是很快被实用又好玩的 BASIC 编程迷住了。那个年代的人们仍是把电脑看成小一点的打字机对待,因此拥有“高级电脑技能”的人能够轻松使用他们的魔法。linux
以用 BASIC 和点阵打印机自动生成惩罚做业来举个例子。被罚写两百遍道歉时,我问老师我可不能够用打字代替手写。通过赞成后,我写了 5 行 BASIC 语句来自动生成做业。另一个小技巧是用非可视化文本编辑器,好比用 AppleWorks 微调字体、行距和边距,把学期论文“拉长”到要求的篇幅。git
对电脑的痴迷很快让我获得了带有内存驱动卡和 x86 协处理器的苹果 ][gs。那时候,调制解调器和 BBS 刚开始火起来,有了这样的双处理器系统后,我就能够安装各类琳琅满目的软件。可是因为调制解调器 2400bps 的速度限制,对我天天都要下载几 KB 的有趣东西造成了阻碍。我对苹果痴迷一段时间,不久以后就换了。程序员
个人本科专业是计算机信息系统,研究生专业是计算机科学。本科教育主要使用我的电脑,不多涉及大型分时系统。研究生的时候才开始真正有意思起来,拨号进入带有互联网链接的 Unix 简直打开了新世界的大门。尽管我依然用着个人双处理器 ][gs 来使用调制解调器还有写写论文,不过 Unix 系统真正吸引了个人注意力,由于它能够访问通用的 Telnet 游戏、文件传输协议(FTP)、在线邮箱和进行 C 语言编程。当时 Gopher 很是受欢迎,特别是在咱们这群终端用户当中。github
被分到学院计算机部门是我研究生命运的转折点,这个部门主管学校的计算机服务。学生们可使用 X Window 终端来登陆基于 Ultrix 的系统。大部分都是灰度的黑白界面,彩色处理在当时很是占用 CPU,也很影响系统性能。也有一些彩色系统还不错,可是这些机器都很慢。编程
我很喜欢那个时候,我有系统管理员权限并且工做是维护系统和网络。我有一些很好的导师,他们对我选择从事系统管理员而不是程序员起了关键做用(尽管我至今仍然热爱编程)。服务器
稀缺是创造之母,当须要分享匮乏的学校电脑系统资源的时候,咱们学生们变得富有创造力。须要用电脑的学生是 Ultrix 工做站承受量的三到五倍,因此寻找资源每每是个难题(特别是要交付项目的时候)。在不须要图形化显示的时候,咱们有一个 56k 的点对点协议的调制解调器池可供远程系统访问接入。可是找到一个有空余资源的机器并共享系统进行源码编译一般会致使进度缓慢。和大部分人同样,我发现晚上工做一般会有所帮助,但我还须要其它一些东西让个人项目迭代快一点。网络
后来学校的一个系统管理员建议我去看一个免费提供的 Unix 系统。那就是 Linux,它被装在 3.5 英寸的软盘里。多亏咱们学校超快的 T1 线路,我很容易就搜索到新闻组和其余资源来学习如何下载它。它全是基于 32 位的英特尔 PC 机的,而我并无这一类的设备。编辑器
幸运的是,我在学校的工做让我有机会接触到堆积如山的废旧电脑,因此命运的齿轮又开始旋转起来。函数
我找到了足够多的废旧 PC 组装了一个可靠的 80386 PC,带有足够内存(我肯定不到 1GB),它有一个能用的显卡、一个细缆(同轴)以太网卡和一个硬盘。我所用的镜像是 Linux 内核 0.98,我不记得它是否是正式发行版的一部分了(多是 SLS)。我所记得的是,它有一系列的软盘镜像,第一张软盘启动内核和一个最小安装程序,而后格式化硬盘,接着要求插入每一个后续的软盘来安装 GNU 核心实用程序。在核心实用程序装好并引导系统以后,你能够下载和安装其余的软件包镜像,好比编译器之类的。
这是我学术道路上巨大的福音。在没有运行 X Window 显示服务器的状况下,这台电脑性能比学校的 Ultrix 工做站强不少。学校容许我把这台机器连到校园网络,挂载学校的学生网络文件系统(NFS)共享,而且能直接访问互联网。由于个人研究生课程用 GCC(还有 Perl 4)来完成大部分学生做业,因此我能够在本地进行开发工做。这使得我能够独享关键资源,从而使我可以更快速地迭代个人项目。
可是,这个方案不是完美的。硬件有时会有点不稳定(这可能就是它们被丢弃的缘由),但我都能搞定。真正让我感觉到的是 Linux 和 Ultrix 在操做系统和系统库层面的差别。我开始理解移植软件到其余操做系统的意义,我能够自由地在任何地方开发,可是我必须以 Ultrix 编译的二进制文件交付项目。在一个平台上完美运行的 C 语言代码可能在另外一个平台出错。这很是使人沮丧,可是我可能本能的察觉到了早期 Linux 解引用空指针的方法。Linux 倾向于把它做为空操做处理,可是 Ultrix 会当即触发核心转储和段错误 SIGSEGV。这是我第一次程序移植时的重大发现,正好在要交做业的几天以前。这同时对我研究 C++ 形成了一些麻烦,由于我粗心地同时使用了 malloc()
/free()
和自动构造函数和析构函数处理,让个人项目处处都是空指针炸弹。
研究生课程快结束的时候,我升级到了一台性能野兽工做站:一颗英特尔 486DX2 66MHz 芯片、一块 SCSI 硬盘、一块光驱和一个 1024x768 RGB 显示器,而且还用一个 16550 UART 串口卡完美地匹配了个人新 US Robotics V.Everything 牌调制解调器。它能够双启动 Windows 和 Linux 系统,但更重要的是显卡和 CPU 的速度让个人开发环境幸福感倍增。那台旧的 386 依然在学校服役,不过我我如今大部分繁重的功课和钻研都转移到了家里。
和 Mike Harris 关于 90 年代的 Linux 故事相似,我真的对当时流行的 CD 集合很着迷。我住的附近有家新开的 Micro Center 计算机商店,这个宝库充满了电脑配件、高级专业书籍和你能想到的各类 Linux(以及免费的 Unix)CD。我还记得 Yggdrasil 和 Slackware 是我最喜欢的发行版。真正让人难以置信的是 CD 存储空间的巨大容量 —— 650MB!使它成为得到软件的必不可少的载体。是的,你能够用 56k 的速度下载,可是真的很慢。更别提大部分人负担不起存档这么多供之后使用的闲置数据。
就是这些开启了我长达 25 年的系统管理员的职业生涯和开源软件的乐趣。Linux 一直是我事业和我的开发中的重要组成部分。最近我依旧醉心于 Linux(主要是 CentOS、RedHat 和 Ubuntu),但也常常从 FreeBSD 和其余炫酷开源软件中获得乐趣。
Linux 让我来到了 Opensource.com,我但愿在这里能回馈社区,为新一代电脑爱好者出一份力。
via: opensource.com/article/20/…
做者:James Farrell 选题:lujun9972 译者:Accelerator 校对:wxy