为什么要自己动手

作者: Kyle Rankin

重拾 DIY 精神,从您自己的 Linux 服务器开始。

不久之前,我们还生活在一个普通人自己动手做事被认为是理所当然的社会。当时人们普遍认为你会对家用物品进行基本维修,对你的汽车进行一般维护和修理,修剪草坪,烹饪食物和缝补衣服。你周围的物品也反映了这种假设,例如可见且易于接触的螺丝,缝在衬衫底部的备用纽扣以及用户可更换的零件。

然而,多年以来,文化已经朝着更加注重便利性的方向转变。“机会成本”这一微观经济学概念(即你可以为每个行动方案分配价值,并将其与你未采取的其他行动进行权衡)导致许多收入可观的人得出结论,他们几乎应该什么都不要自己做。

典型的想法是这样的:如果我的时薪高于园林绿化服务的时薪成本,即使园林绿化服务要花我的钱,但它仍然比我自己修剪草坪更便宜,因为我可以利用这些时间去做其他能赚取时薪的事情。同样的计算最终证明了更换机油和园林绿化服务、微波炉电视晚餐以及物品损坏时更换而不是自己修理是合理的。结果是转向了以服务为导向的经济,廉价、更易于丢弃的物品应运而生,它们的螺丝被隐藏起来,汽车的发动机罩下几乎是密封的。

同样的便利文化也渗透到了技术领域,硅谷的企业家们绞尽脑汁地思考他们可以发明哪些新服务来为你完成一些新的任务。Linux 和开源运动总体而言是少数几个仍然可以找到这种自己动手精神的地方之一。

当提到专有软件时,Linux 用户过去常说“你不会买一辆引擎盖焊死的汽车!”。使用 Linux,你可以探究引擎盖下,确切地了解系统的运行方式。比喻意义上的螺丝是外露的,如果你愿意,你可以拆开软件并自己修理。但说实话,现在很多人买一辆引擎盖焊死的汽车。他们也乐于购买比喻意义上焊死的电脑和软件,这一切都以便利性和机会成本为理由。

然而,在大多数这些机会成本计算中,都遗漏了一些东西——当你弄清楚事物是如何运作以及如何修理它们时,从知识和技能增长中获得的那些不太明显的益处,以及当你看到自己努力的成果时所感受到的满足感和自豪感。当你自己动手做事时,神秘感开始消退,你会意识到你周围的大多数事物远没有你曾经认为的那么复杂、神奇或遥不可及。修理台灯时获得的信心可能会鼓励你去弄清楚如何更换家中那个故障的灯开关。

随着云服务的兴起,让别人为你设置 Linux 和开源服务变得非常容易,当它们出现故障时,你可以丢弃它们并从头开始。然而,这种便利性本身也是有代价的,而不仅仅是你的服务器的每小时费用。这些服务和抽象层使事物更易于使用,但也更难理解。它为技术增添了神秘感,并使其看起来比引擎盖下的实际情况复杂得多。它还使人们很容易避免学习事物是如何实际运作的,也很难学习如何修复它们。

当我开始在桌面上使用 Linux 时,我基本上在软件开发、网络和系统管理方面接受了教育,而这仅仅是使 Linux 正常工作的一部分。将 Linux 用作服务器平台使我更加沉浸在计算机基础知识中。通过弄坏一些东西然后再自己修复它,我学到的关于 Linux 的知识比我在认证课程中或交给技术支持学到的还要多。通过物理连接两台 Linux 服务器并尝试让它们相互通信,我学到的关于网络基础知识的知识比我在云仪表板中单击几个按钮所学到的还要多。

如今,Linux 变得更容易使用,但随着这种便利性的提高,我们失去了大多数内置的学习机会。现在的新初级工程师如何学习网络是如何真正工作的?他们如何学习修复损坏的 Linux 服务器?我想鼓励你们去寻找这些学习机会。了解引擎盖下发生了什么。购买一个备用的 Raspberry Pi,并从头开始设置你自己的 Web、DHCP、DNS 和电子邮件服务器。

最终,该服务器会崩溃,如果你不放弃,通过一些研究和故障排除,你将能够自己修复所有问题。在这个过程中,你会发现这些东西真的没有你想象的那么复杂,你会发现自己想知道:我还能自己做什么

当你自己动手做时,你还会获得其他东西——独立性、自由和控制权。专有软件的真正风险之一是,控制权(和自由)被剥夺了,因为你不得不依赖软件供应商来修补错误和添加功能。有无数的例子表明,开发人员之所以开始接触开源软件,是因为他们想为现有程序添加一个额外的功能,修复一个恼人的错误,或者让某个随机的硬件正常工作。由于源代码是可用的,他们可以自由地检查它,了解软件是如何工作的,并弄清楚如何自己更改它。

因此,下次当云服务器出现 500 个错误,而你不知道为什么时,请抵制杀死它并生成一个新服务器的诱惑。花一分钟时间探究引擎盖下,看看你是否可以自己找出问题所在。下次你需要在家周围添加一些新服务时,请抵制购买一些闪亮的 IoT 小工具的冲动。看看你是否可以用 Raspberry Pi 或 Arduino 和一些软件自己制作出来。毕竟,这就是大多数 IoT 设备在闪亮外壳下的本质。当然,这可能需要更多的时间,但是当你的邻居的 IoT 设备开始大规模 DDoS 互联网时,你将拥有帮助排除故障的技能。

Kyle Rankin 是 Linux Journal 的技术编辑和专栏作家,以及 Purism 的首席安全官。他是 Linux Hardening in Hostile Networks, DevOps Troubleshooting, The Official Ubuntu Server Book, Knoppix Hacks, Knoppix Pocket Reference, Linux Multimedia HacksUbuntu Hacks 的作者,也是许多其他 O'Reilly 书籍的贡献者。Rankin 经常在安全和开源软件方面发表演讲,包括在 BsidesLV、O'Reilly Security Conference、OSCON、SCALE、CactusCon、Linux World Expo 和 Penguicon 上。你可以在 @kylerankin 上关注他。

加载 Disqus 评论