## 揭秘 Linux 内核 大多数 Linux 入门教程侧重于 shell 命令,将内核视为隐藏组件。本次探索旨在改变这种状况,展示内核只是一个可编译和可运行的二进制文件。 内核充当应用程序和硬件(CPU、内存、设备)之间的抽象层,提供统一、安全的接口。它管理资源、控制访问,并提供防火墙和文件系统等功能,作为计算机的“运行时”。你通常可以在 `/boot` 目录下找到它,通常命名为 `vmlinuz-*`。 实验涉及使用 QEMU 直接启动此内核。最初的尝试会导致“内核崩溃”,因为内核需要一个根文件系统才能运行。这可以通过创建一个最小的 `initramfs` 来解决——一个包含基本“init”程序(此处使用 Go 创建)的临时文件系统,用于启动系统。 成功使用 `initramfs` 启动,证明了一个功能完备但简单的 Linux 发行版。关键收获:内核是一个文件,发行版是内核加上程序,进程(例如我们的 PID 为 1 的 Go 程序)在“内核空间”或“用户空间”中运行。这种动手实践的方法能够建立对 Linux 系统如何运作的基础理解。
一位经验丰富的移动开发者感叹人工智能对其自由职业的影响。过去15年,项目都很直接——需求明确,开发集中,客户对想法变为现实感到满意。现在,人工智能生成的代码的兴起正在制造混乱。
最初,人工智能在小片段代码方面有所帮助,但其建议已经升级到大型代码块,由于风格不一致,需要大量修改才能集成到现有项目中。更令人担忧的是“氛围编码”的出现——客户直接提交编写糟糕、充满表情符号的人工智能代码(通常全部在一个`ContentView`文件中),而没有适当的版本控制。
这导致项目难以维护,甚至无法编译,即使那些已经在App Store上线的项目也不例外。这位开发者认为该职业正在被贬值,既定的最佳实践和有意义的协作正在被质量让位于数量所取代。他对多年来培养的标准被侵蚀感到悲伤。