AppleがmacOSやiOSで採用しているDarwinオペレーティングシステムの一部「XNU kernel」のソースコードがGitHubで公開されました(Neowin、Reddit、Hacker News)。今回はこれまで削除されていたarm/arm64関連のファイルも含まれているようです。
XNUは「XNU is Not Unix」の略称で、カーネギーメロン大学で開発されたMachカーネルとFreeBSDのコンポーネント、およびIOKitと呼ばれるドライバーを記述するためのC++ APIラッパーから構成されています。XNUはI386、X86_64のシングル/マルチコアプロセッサー構成で動作します。
公開されたソースコードの構成は以下の通り:
config
- configurations for exported apis for supported architecture and platformSETUP
- Basic set of tools used for configuring the kernel, versioning and kextsymbol management.EXTERNAL_HEADERS
- Headers sourced from other projects to avoid dependency cycles when building. These headers should be regularly synced when source is updated.libkern
- C++ IOKit library code for handling of drivers and kexts.libsa
- kernel bootstrap code for startuplibsyscall
- syscall library interface for userspace programslibkdd
- source for user library for parsing kernel data like kernel chunked data.makedefs
- top level rules and defines for kernel build.osfmk
- Mach kernel based subsystemspexpert
- Platform specific code like interrupt handling, atomics etc.security
- Mandatory Access Check policy interfaces and related implementation.bsd
- BSD subsystems codetools
- A set of utilities for testing, debugging and profiling kernel.
GitHub上には、実際にソースコードからカーネルをビルドする方法も掲載されています。
iOSやmacOS全体のソースコードが公開されたわけではありませんが、カーネルのソースコードが公開されたことで、ソフトウェアがどのようにカーネルと連携するのか、開発者がデバッグ・調査する手助けとなる事が期待できます。
Appleはこれ以外にも各種ソフトウェアのソースコードを公開していて、詳細はApple Open Sourceで確認可能です。