一位开发者采用了一种独特的夜间常规,旨在加深他们对系统级编程和计算机架构的理解。通过使用一台 14 年前的 Asus eeePC 701——这是一款 2007 年产的 32 位 Celeron 网状笔记本——作者为编写 x86 汇编语言创建了一个专门的环境。硬件的选择是刻意的;该设备的小键盘和有限的功能(例如较差的现代网页浏览能力)提供了一个无干扰的空间,与标准的桌面开发机器相比,它更能鼓励一种接纳学习的心态。

一台放在床上的复古 Asus eeePC 701 网状笔记本
2007 年的 Asus eeePC 701 是作者用于 x86 汇编编程的专用环境。ratfactor.com

作者使用这款特定的 32 位 Celeron 网状笔记本来创建一个无干扰的系统级编程学习空间。

主要项目涉及将最初用 GAS(GNU Assembler)编写的 JonesForth 系统移植到 NASM(Netwide Assembler)。由于 GAS 和 NASM 使用不同的语法和助记符,这一转变带来了巨大的技术障碍。例如,GAS 经常将操作的数据大小包含在助记符中,而 NASM 则遵循不同的惯例。作者指出,即使是将基本的宏从 GAS 移植到 NASM 也花费了数周的研究。为了管理复杂性,开发者使用自定义的 `.bash_profile` 来自动导航到项目目录,并利用一系列脚本来启动 Vim 和 GDB 调试器,并预设断点。

与其仅仅关注最终产品,作者强调学习过程才是主要目标。为了对抗匆忙完成翻译的冲动,他们采用了“慢速路径”策略:修复语法错误直到代码能够汇编,然后手动走查每一条指令,以确保其按预期工作。这种有条理的方法通过会话转录和日志文件进行了记录。最终目标是从汇编转向学习 Forth 编程语言,将当前的汇编工作视为长期教育旅程中的基础步骤。该项目被强调为“保证成功的”,因为前进的路径清晰明确,无论材料本身的难度如何,都能确保稳步前进。