Container-Optimized OS は、Chromium OS のオープンソース プロジェクトの上に構築されています。Container-Optimized OS のソースコードの大部分は、COS リポジトリ https://cos.googlesource.com で公開されています。
イメージをビルドするために使用されたソースコードを特定する上で、次のリソースが役立ちます。
OS イメージ内の
/opt/google/chrome/resources/about_os_credits.html
ファイルには、そのイメージをビルドするために使用されたすべてのパッケージのバージョンとライセンスの情報が含まれています。カーネルソース: https://cos.googlesource.com/third_party/kernel/+/cos-5.4
カーネル構成: https://cos.googlesource.com/cos/overlays/board-overlays/+/refs/heads/master/project-lakitu/sys-kernel/lakitu-kernel-5_4/files/base.config-x86_64。
特定のバージョンをビルドするために使用されたカーネルソースの commit SHA1 も、そのバージョンのリリースノートに記載されています。アーカイブされたカーネルソースやカーネル ヘッダーなど、その他のイメージ アーティファクトも
gs://cos-tools/<build-number>/
で一般公開されている Google Cloud Storage バケット内にあります。たとえば、cos-dev-70-11021-11-0
のアーティファクトはgs://cos-tools/11021.11.0/
にあります。
$ gsutil ls gs://cos-tools/11021.11.0/
gs://cos-tools/11021.11.0/kernel-headers.tgz
gs://cos-tools/11021.11.0/kernel-src.tar.gz
gs://cos-tools/11021.11.0/kernel-src.tar.gz.md5
Chromium OS ビルドシステムに精通している方には、https://cos.googlesource.com/cos/overlays/board-overlays/+/master/project-lakitu/ にあるビルドレシピも役立ちます。
個々のパッケージの実際のソースコード アーカイブは、Chromium OS ビルドシステムによって維持されているパッケージ ミラーでも見つけることができます。パッケージ ミラーにアクセスするには、以下の URL のいずれかに、適切な tarball 名を追加してください。
- https://storage.googleapis.com/chromeos-mirror/gentoo/distfiles/
- https://storage.googleapis.com/chromeos-localmirror/distfiles/
たとえば、kubernetes バージョン 1.19.2 をダウンロードするには、https://storage.googleapis.com///chromeos-localmirror/distfiles/kubernetes-server-linux-amd64-1.19.2.tar.gz を使用します。
Chromium OS ビルドに関するよくある質問とその他の Chromium OS ビルドに関するドキュメントでは、ビルドシステムとパッケージ ミラーの仕組みについて説明しています。
ソースからのビルド
ソースから Container-Optimized OS ディスク イメージをビルドするには、オープンソースからの構築の手順に従ってください。
ソースコードへの貢献
メインの Chromium リポジトリにコードを提供する手順については、http://dev.chromium.org/developers/contributing-code をご覧ください。