For the complete documentation index, see llms.txt. This page is also available as Markdown.

读者来信

邮箱插图

来信专栏作家,你好:

在你把这封信像那些 IRS 通知一样扔进 /dev/null 之前,请注意——如果我时间掐得准——马上就会有一位送货司机敲你的门,送上一加仑手工意式冰淇淋,全都为了从你那里换到一个有用的回答。

普通系统管理员对嵌入式系统需要了解什么?

——多半预期被嘲笑,遗憾

亲爱的 BAD:

英勇的尝试。不过,你的邮件被 greylisting 拦了一下,所以邮件在送货卡车之后才到。我不知道你在哪儿找到腌三文鱼和榴莲口味的意式冰淇淋,但我钦佩你为达到新的恶俗高度所付出的努力。干得漂亮。你天生就是当系统管理员的料。

系统管理员对嵌入式系统需要了解什么?嵌入式系统就是计算机。嵌入式系统和普通主机有什么不同?毫无不同,只是你必须把每件事都做对。

普通主机可以调优。当 Web 服务器上的 /var/log/ 占用过多磁盘空间时,你可以调整日志轮转条件,或微调日志记录内容。即便是在那些僵化企业里——其严苛的变更控制流程由一位专制走卒执行,此人发现自己在出生时机上晚了点,未能给 Gaius Julius Caesar Germanicus 当无薪实习生而心灵受创——系统调优也比你改动真正的嵌入式系统要宽松。改动嵌入式系统需要系统更新,而这些设备多久重新刷写一次?没错,从来不。也许你会让流媒体设备在下载新固件后重启,可你上次更新冰箱是什么时候?我处理这类问题的方法是走进家电卖场,说:“卖我什么都行,只要它完全不具备互联网连接。”他们会立刻把我领到“20 世纪陈列室”。我买回一台抵抗僵尸网络的洗碗机。贵,但值得。如果你连这个问题都要问,那你的选择已经错了。

配置不够完美的嵌入式系统会停止工作。也许是“停止正确工作”,也许重启一下又能用,也许彻底变砖。无所谓。当然可以修。许多嵌入式系统按“换件维修”设计。少数有终端可以查看磁盘是否满或进程是否卡死,但都被藏起来。硬盘都有固件,许多厂商提供隐秘技巧访问终端。从 DB9 串口接几根线到硬盘的指定针脚,敲入密码,砰——你就直接连入硬盘那可怜的小脑袋了。居然还有菜单系统。剔除那些坑蒙拐骗之后,菜单主要还是谎言,但确实存在。

一切都是嵌入式系统。一路向下都是。

你的 RAID 控制器?它运行一个嵌入式操作系统,让它能模拟一个完全不同的 1980 年代 RAID 控制器,因为系统管理员坚持要能设置一个“条带大小”,而这个大小与实际存储介质中的任何东西都对不上。开机时按 F1 或 DELETE,你就进入了主板的嵌入式系统。顺便说一句,“BIOS Log”是满的。满了好多年了。自从你的前任入职以来,没有记录过任何有用的东西。你计算机里的一切都是独立的嵌入式系统,支撑着你的非嵌入式系统。你的“裸金属”服务器并不是裸金属,因为“裸金属”根本不存在。

我抱怨过虚拟化许多次,但一切都是虚拟的,整个世界都值得同样的鄙夷。

为什么要把操作系统塞进硬盘、主板或 USB 芯片组里?硬件改动昂贵,需要和厂商打交道。软件改动便宜,可以塞进既有硬件。我们用另一种有 bug 的软件绕过硬件 bug。没错,发布正确的硬件会更好,但掌权者告诉我们那不可能,于是现实又一次证明:看似好主意的东西其实是可怕的主意。嵌入式系统为厂商省钱,却增加了痛苦。

别那样看我。所有计算机都增加痛苦。

系统的目的就是它所做的事,而计算机做的就是制造痛苦。

我们用更多计算机来应对痛苦。

系统管理的第一条法则是“计算机是个错误”,而你计算机里那摇摇欲坠的灾难性系统堆栈对心理健康的影响就证明了这一点——更别说你车里的那些系统了。别提你那辆车。要求美国每个人借、买或以其他方式“获取”一件多吨动能武器本来就够糟糕了,再给刹车、油门、空调分别配上独立计算机,恭喜!你造出了一辆“滚动灾难”。当你的线控转向捕获到 SIGABRT 时,唯一的问题是这场灾难轮到谁——你还是路人。我本想说“无辜的路人”,但如今人人都在用计算机,所以谁都不无辜。即便那些想保持洁净的人也被迫使用网站或 app,因为有罪之人通过把所有人都拖下水来让自己心里好过些。(“来我的派对吧!会很棒的!别管水里漂着什么!”)

你还能找到一台没有任何多余嵌入式系统的计算机吗?当然。那叫算盘。我的算盘有一串五位字节,外加一个两位字节的独立寄存器。相当精巧。操作系统由手部位置实现。最棒的是,没人给算盘写过 TCP/IP 协议栈。

坏消息是,嵌入式系统比以往任何时候都更容易接触。你最不讨厌的那家零售商就能买到廉价低功耗系统,让你想搭什么小系统来控制整个家都行。如果你想给存放多吨动能武器的大库房门做一个定制遥控器,只需花上百来块硬件、几个人月的工作量,再加上你的求生欲。

那么,你对嵌入式系统应该了解什么?如果你摊上一台嵌入式系统,它坏了,就装傻,打电话给技术支持。否则,你会钻进系统里,发现设计师为了所谓的系统稳定犯下了哪些暴行。那不会通向任何美好的地方。

有问题想问 Michael? 发送至 letters@freebsdjournal.org

Michael W Lucas 是《Absolute FreeBSD》《Dear Abyss》《SSH Mastery》等书的作者。《Networking for System Administrators》的新版刚刚逃出牢笼。https://mwl.io

最后更新于