作者最初的目标是创建一个完全用 Swift 编写的微型操作系统内核,能够在 QEMU 模拟器上运行而不依赖任何底层操作系统。通过使用 Embedded Swift —— 一种专为裸机环境设计的语言实验子集 —— 项目瞄准了 aarch64‑none‑none‑elf 三元组,这代表一个没有提供 OS 或 C 运行时的 64 位 ARM CPU。最初的目标仅是打印一条消息然后停止,这作为一个学习练习,以了解在没有标准库或内核服务可用的情况下,程序启动需要什么。

为了使 Swift 代码能够在裸机上运行,作者提供了一个自定义的 toolset.json,该文件禁用了标准库,启用了 Embedded 和 Volatile 实验特性,关闭了栈保护,并指示 Swift 编译器使用 LLD 链接器以及 -nostdlib、-static 和手编写的链接器脚本。链接器脚本将可执行文件的入口点放置在 0x40080000,定义了栈,并显式保留 ELF 元数据段以避免孤段错误。一个汇编文件 boot.S 为核心 0 设置栈,跳转到带有 @c 属性的 Swift 函数(kernel_main),然后停止。在 kernel_main 中,作者提供了缺失的 C 函数 putchar 和 memmove:putchar 将一个字节写入内存映射的 PL011 UART 寄存器地址 0x09000000,而 memmove 则正向或反向复制字节以处理重叠区域,这两个函数均用 Swift 编写并带有 @c 和 @unsafe 属性。

使用 `swift build --triple aarch64-none-none-elf --toolset toolset.json --build-system native` 构建并通过 `qemu-system-aarch64 -machine virt -cpu cortex-a57 -nographic -kernel .build/aarch64-none-none-elf/debug/kernel` 启动时,模拟器会打印 “Hello, Embedded Swift 😊” 然后进入无限循环。后续修订添加了一个轮询循环,读取 UART 标志寄存器以回显键入的字符,从而提供一个类似 REPL 的简单提示。该内核仍然是一个学习练习:它没有清除 .BSS 区域,使用了故意大小的 128 kB 栈,依赖轮询而非中断进行 I/O,且没有任何调度器或内存管理,但它表明在提供必要的胶水代码的情况下,Swift 可用于低级固件开发。