Questa pagina fornisce dettagli sul codice sorgente di Container-Optimized OS, tra cui come accedere al codice sorgente dell'immagine di Container-Optimized OS, al codice sorgente degli strumenti per i contenitori correlati e come eseguire il build dal codice sorgente.
Origine dell'immagine Container-Optimized OS
Container-Optimized OS di Google è un fork del progetto open source Chromium OS. Puoi trovare la maggior parte del codice sorgente di Container-Optimized OS nei repository COS all'indirizzo https://cos.googlesource.com.
Ecco alcune risorse utili che possono aiutarti a determinare il codice sorgente utilizzato per creare l'immagine:
All'interno dell'immagine del sistema operativo, il file
/opt/google/chrome/resources/about_os_credits.htmlcontiene informazioni sulla versione e sulla licenza di tutti i pacchetti utilizzati per compilare l'immagine.Codice sorgente del kernel: https://cos.googlesource.com/third_party/kernel/+/cos-5.15.
Configurazione del kernel (x86): https://cos.googlesource.com/third_party/kernel/+/refs/heads/cos-5.15/arch/x86/configs/lakitu_defconfig.
Configurazione del kernel (Arm): https://cos.googlesource.com/third_party/kernel/+/refs/heads/cos-5.15/arch/arm64/configs/lakitu_defconfig.
Il commit SHA1 del codice sorgente del kernel utilizzato per compilare una determinata versione è fornito anche nelle release-notes per quella versione.Altri elementi dell'immagine, tra cui sorgenti del kernel e intestazioni del kernel archiviate, sono disponibili anche in un bucket pubblico di Google Cloud Storage in
gs://cos-tools/<build-number>/. Ad esempio, gli elementi percos-dev-105-17228-0-0si trovano ings://cos-tools/17228.0.0/.
         gcloud storage ls gs://cos-tools/17228.0.0/
         gs://cos-tools/17228.0.0/about_os_credits.html
         gs://cos-tools/17228.0.0/about_os_credits.html.md5
         gs://cos-tools/17228.0.0/cos-package-info.json
         gs://cos-tools/17228.0.0/cos-package-info.json.md5
         gs://cos-tools/17228.0.0/cos_full_payload_dev.bin
         gs://cos-tools/17228.0.0/gpu_R470_version
         gs://cos-tools/17228.0.0/gpu_R470_version.md5
         gs://cos-tools/17228.0.0/gpu_default_version
         gs://cos-tools/17228.0.0/gpu_default_version.md5
         gs://cos-tools/17228.0.0/gpu_latest_version
         gs://cos-tools/17228.0.0/gpu_latest_version.md5
         gs://cos-tools/17228.0.0/kernel-headers.tgz
         gs://cos-tools/17228.0.0/kernel-headers.tgz.md5
         gs://cos-tools/17228.0.0/kernel-src.tar.gz
         gs://cos-tools/17228.0.0/kernel-src.tar.gz.md5
         gs://cos-tools/17228.0.0/kernel_commit
         gs://cos-tools/17228.0.0/kernel_commit.md5
         gs://cos-tools/17228.0.0/kernel_info
         gs://cos-tools/17228.0.0/kernel_info.md5
         gs://cos-tools/17228.0.0/manifest.xml
         gs://cos-tools/17228.0.0/manifest.xml.md5
         gs://cos-tools/17228.0.0/toolchain.tar.xz
         gs://cos-tools/17228.0.0/toolchain.tar.xz.gcs
         gs://cos-tools/17228.0.0/toolchain.tar.xz.md5
         gs://cos-tools/17228.0.0/toolchain_env
         gs://cos-tools/17228.0.0/toolchain_env.md5
         gs://cos-tools/17228.0.0/vmlinux
         gs://cos-tools/17228.0.0/vmlinux.md5
         gs://cos-tools/17228.0.0/lakitu-arm64/
         gs://cos-tools/17228.0.0/lakitu/
- Gli elementi delle immagini per le immagini basate su Arm sono disponibili nel
bucket Cloud Storage pubblico in 
gs://cos-tools/<build-number>/lakitu-arm64/. Ad esempio, gli elementi percos-arm64-dev-105-17228-0-0si trovano ings://cos-tools/17228.0.0/lakitu-arm64/. 
        gcloud storage ls gs://cos-tools/17228.0.0/lakitu-arm64/
        gs://cos-tools/17228.0.0/lakitu-arm64/about_os_credits.html
        gs://cos-tools/17228.0.0/lakitu-arm64/about_os_credits.html.md5
        gs://cos-tools/17228.0.0/lakitu-arm64/cos-package-info.json
        gs://cos-tools/17228.0.0/lakitu-arm64/cos-package-info.json.md5
        gs://cos-tools/17228.0.0/lakitu-arm64/gpu_R470_version
        gs://cos-tools/17228.0.0/lakitu-arm64/gpu_R470_version.md5
        gs://cos-tools/17228.0.0/lakitu-arm64/gpu_default_version
        gs://cos-tools/17228.0.0/lakitu-arm64/gpu_default_version.md5
        gs://cos-tools/17228.0.0/lakitu-arm64/gpu_latest_version
        gs://cos-tools/17228.0.0/lakitu-arm64/gpu_latest_version.md5
        gs://cos-tools/17228.0.0/lakitu-arm64/kernel-headers.tgz
        gs://cos-tools/17228.0.0/lakitu-arm64/kernel-headers.tgz.md5
        gs://cos-tools/17228.0.0/lakitu-arm64/kernel-src.tar.gz
        gs://cos-tools/17228.0.0/lakitu-arm64/kernel-src.tar.gz.md5
        gs://cos-tools/17228.0.0/lakitu-arm64/kernel_commit
        gs://cos-tools/17228.0.0/lakitu-arm64/kernel_commit.md5
        gs://cos-tools/17228.0.0/lakitu-arm64/kernel_info
        gs://cos-tools/17228.0.0/lakitu-arm64/kernel_info.md5
        gs://cos-tools/17228.0.0/lakitu-arm64/manifest.xml
        gs://cos-tools/17228.0.0/lakitu-arm64/manifest.xml.md5
        gs://cos-tools/17228.0.0/lakitu-arm64/toolchain.tar.xz
        gs://cos-tools/17228.0.0/lakitu-arm64/toolchain.tar.xz.gcs
        gs://cos-tools/17228.0.0/lakitu-arm64/toolchain.tar.xz.md5
        gs://cos-tools/17228.0.0/lakitu-arm64/toolchain_env
        gs://cos-tools/17228.0.0/lakitu-arm64/toolchain_env.md5
        gs://cos-tools/17228.0.0/lakitu-arm64/vmlinux
        gs://cos-tools/17228.0.0/lakitu-arm64/vmlinux.md5
Chi ha dimestichezza con il sistema di build di Chromium OS potrebbe trovare utili anche le ricette di build all'indirizzo https://cos.googlesource.com/cos/overlays/board-overlays/+/master/project-lakitu/.
Gli archivi del codice sorgente effettivi dei singoli pacchetti sono disponibili anche in uno dei mirror dei pacchetti gestiti dal sistema di build di Chromium OS. Puoi accedervi aggiungendo il nome del file tarball corretto a uno dei seguenti URL:
https://storage.googleapis.com/chromeos-mirror/gentoo/distfiles/https://storage.googleapis.com/chromeos-localmirror/distfiles/Ad esempio, per scaricare la versione 1.19.2 di Kubernetes, utilizza
https://storage.googleapis.com/chromeos-localmirror/distfiles/kubernetes-server-linux-amd64-1.19.2.tar.gz.
Le Domande frequenti sulla compilazione di Chromium OS e altra documentazione relativa alla compilazione di Chromium OS spiegano il funzionamento del sistema di compilazione e dei mirror dei pacchetti.
Origine container
Container-Optimized OS di Google viene fornito con alcuni strumenti che scaricano i container in fase di esecuzione. Anche questi container sono open source. La tabella seguente elenca i contenitori, la loro posizione di origine e la posizione di rilascio.
| Container | Posizione di rilascio | 
|---|---|
| Cassetta degli attrezzi | Container Registry gcr.io/cos-cloud/toolbox | 
| Cos-gpu-installer | Container Registry gcr.io/cos-cloud/cos-gpu-installer | 
| Agente di logging cloud | Container Registry gcr.io/stackdriver-agents/stackdriver-logging-agent | 
| Agente Konlet | Container Registry gcr.io/gce-containers/konlet | 
Creazione dal codice sorgente
Segui le istruzioni riportate nella sezione Creazione da open source per creare un'immagine disco di Container-Optimized OS dall'origine.
Contributi al codice sorgente
Container-Optimized OS non accetta contributi diretti da parte del pubblico.