在macOS上原生构建Linux内核:一次充满挑战的旅程

2025-07-03
在macOS上原生构建Linux内核:一次充满挑战的旅程

作者在macOS上原生构建Linux内核(RISC-V架构)的经历,并非易事。过程中遇到一系列问题:老旧的make版本、macOS的ld与Linux的不兼容、缺少elf.h和byteswap.h头文件,以及uuid_t和sed工具的版本冲突。作者通过Homebrew安装更新的工具链(make, llvm, lld, libelf, gnu-sed),并编写了补丁文件来解决头文件缺失和类型定义冲突等问题,最终成功构建内核。虽然macOS原生构建速度比Docker快,但增量构建则反之。作者认为持续解决构建问题如同持续集成一样,是一个永无止境的过程。

阅读更多
开发

Starina:将虚拟机作为库的微内核操作系统

2025-05-20
Starina:将虚拟机作为库的微内核操作系统

本文介绍了Starina操作系统中一种创新的Linux兼容性方案:将虚拟机监控器(VMM)作为库集成到应用程序中。不同于传统的独立进程式VMM,Starina的`starina_linux::Command` API允许开发者以类似于`std::process::Command`的方式运行Linux程序,并通过虚拟文件系统(virtio_fs)与虚拟机进行交互。这种设计简化了开发流程,并有潜力实现比原生Linux环境更快的启动速度。目前,该方案已支持基本的文件I/O操作,未来将扩展网络、持久化存储等功能,并进一步提升容器化体验。

阅读更多
开发

在Starina操作系统中构建RISC-V虚拟机:从Hello World到Linux内核启动

2025-05-17
在Starina操作系统中构建RISC-V虚拟机:从Hello World到Linux内核启动

本文记录了作者在Starina操作系统中构建一个基于RISC-V H扩展的轻量级虚拟机的历程。作者首先利用QEMU模拟RISC-V H扩展进行测试,逐步实现了进入访客模式、处理系统调用、运行简单的Hello World程序以及最终启动Linux内核。过程中,作者克服了页面映射、设备树、定时器支持以及MMIO等挑战,并详细介绍了解决这些问题的步骤和方法,最终成功在Starina虚拟机上运行Linux。

阅读更多
开发