作者は、基盤となるオペレーティングシステムなしでQEMUエミュレータ上で動作する、Swiftのみで書かれた小さなオペレーティングシステムカーネルを作成することを目指しました。組み込み向けのSwift(Embedded Swift) — ベアメタル環境向けに意図された言語の実験的なサブセット — を使用し、プロジェクトはaarch64‑none‑none‑elfトリプルを対象としました。これはOSやCランタイムが提供されない64ビットARM CPUを表します。最初の目標は単純にメッセージを表示して停止することであり、標準ライブラリやカーネルサービスがない状態でプログラムが起動するために必要なことを学ぶための演習となりました。

ベアメタルでSwiftコードを動作させるために、著者は標準ライブラリを無効にし、EmbeddedとVolatileの実験的機能を有効にし、スタック保護をオフにし、LLDリンカーを使うようSwiftコンパイラに指示するカスタムtoolset.jsonを提供しました。リンカースクリプトは実行可能ファイルのエントリポイントを0x40080000に配置し、スタックを定義し、孤立セクションエラーを避けるためにELFメタデータセクションを明示的に保持します。アセンブリファイルboot.Sはcore 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でも低レベルファームウェアに使用できることを示しています。