Hoʻopuka ʻo Amazon i ka Bottlerocket 1.0.0, kahi hoʻolaha Linux e pili ana i nā ipu kaʻawale

Hui Amazon hōʻike ʻia ka hoʻokuʻu nui mua ʻana o kahi hoʻolaha Linux i hoʻolaʻa ʻia ʻO Bottlerocket 1.0.0, i hoʻolālā ʻia e holo i nā ipu kaʻawale me ka maikaʻi a me ka palekana. Ua kākau ʻia nā mea hana a me nā ʻāpana hoʻomalu i ka Rust a pālahalaha aku ma lalo o nā laikini MIT a me Apache 2.0. Ke kūkulu ʻia nei ka papahana ma GitHub a loaʻa i ke komo ʻana e nā lālā o ke kaiāulu. Hoʻokumu ʻia ke kiʻi hoʻonohonoho ʻōnaehana no x86_64 a me Aarch64 architecture. Hoʻololi ʻia ka OS e holo ma Amazon ECS a me AWS EKS Kubernetes pūʻulu. Hāʻawi ʻia nā mea hana no ka hana ʻana i kāu mau hui ponoʻī a me nā paʻi, hiki ke hoʻohana i nā mea hana orchestration ʻē aʻe, nā kernels a me ka manawa holo no nā ipu.

Hāʻawi ka hāʻawi ʻana i ka kernel Linux a me kahi kaiapuni ʻōnaehana liʻiliʻi, me nā ʻāpana wale nō e pono ai e holo i nā ipu. Ma waena o nā pūʻolo i komo i ka papahana ʻo ka system manager systemd, ka hale waihona puke Glibc, a me nā mea hana hui
Buildroot, GRUB bootloader, mea hoʻonohonoho pūnaewele hewa, manawa holo no nā ipu kaʻawale ipu, kahua hoʻokani pahu pahu Kubernetes, aws-iam-authenticator, a me Amazon ECS agent.

Hoʻonui ʻia ka hāʻawi ʻana i ka atomically a hāʻawi ʻia ma ke ʻano o kahi kiʻi ʻōnaehana indivisible. Hoʻokaʻawale ʻia nā ʻāpana disk ʻelua no ka ʻōnaehana, aia kekahi o ka ʻōnaehana hana, a ua kope ʻia ka mea hou i ka lua. Ma hope o ka hoʻopuka ʻia ʻana o ka hoʻonui, lilo ka ʻāpana ʻelua i mea ikaika, a ma ka mea mua, a hiki i ka hōʻea hou ʻana, mālama ʻia ka mana mua o ka ʻōnaehana, kahi e hiki ai iā ʻoe ke ʻōwili i hope inā pilikia nā pilikia. Ho'okomo 'akomi 'ia nā mea hou me ka 'ole o ka luna ho'omalu.

ʻO ka ʻokoʻa koʻikoʻi mai nā hāʻawi like e like me Fedora CoreOS, CentOS / Red Hat Atomic Host ka mea nui i ka hāʻawi ʻana. palekana kiʻekiʻe i loko o ka pōʻaiapili o ka hoʻoikaika ʻana i ka pale ʻana i ka ʻōnaehana mai nā mea hoʻoweliweli hiki ke paʻakikī, ʻoi aku ka paʻakikī o ka hoʻohana ʻana i nā nāwaliwali i nā ʻāpana OS a me ka hoʻonui ʻana i ka hoʻokaʻawale ʻana o nā ipu. Hana ʻia nā pahu me ka hoʻohana ʻana i nā mīkini kernel Linux maʻamau - cgroups, namespaces a me seccomp. No ka hoʻokaʻawale hou aku, hoʻohana ka hāʻawi ʻana iā SELinux i ke ʻano "hoʻokō", a hoʻohana ʻia ka module no ka hōʻoia cryptographic o ka pono o ka ʻāpana kumu. dm-ʻoiaʻiʻo. Inā ʻike ʻia kahi hoʻāʻo e hoʻololi i ka ʻikepili ma ka pae o ka mea poloka, hoʻomaka hou ka ʻōnaehana.

Hoʻokomo ʻia ka ʻāpana kumu i ka heluhelu-wale, a ua kau ʻia ka ʻāpana hoʻonohonoho / etc i tmpfs a hoʻihoʻi ʻia i kona kūlana mua ma hope o ka hoʻomaka hou ʻana. ʻAʻole kākoʻo ʻia ka hoʻololi pololei ʻana o nā faila ma ka papa kuhikuhi /etc, e like me /etc/resolv.conf a me /etc/containerd/config.toml - no ka mālama mau ʻana i nā hoʻonohonoho, pono ʻoe e hoʻohana i ka API a i ʻole e hoʻoneʻe i ka hana i loko o nā pahu ʻokoʻa.

Ua kākau ʻia ka hapa nui o nā ʻōnaehana ma Rust, e hāʻawi ana i nā hiʻohiʻona palekana hoʻomanaʻo e pale aku i nā nāwaliwali i hoʻokumu ʻia e ka hoʻomanaʻo hoʻomanaʻo ma hope o ka manuahi, nā kuhikuhi kuhikuhi null, a me nā overruns buffer. Ke kūkulu ʻia ma ke ʻano maʻamau, hoʻohana ʻia nā ʻano hui "--enable-default-pie" a me "--enable-default-ssp" e hiki ai i ka randomization o ka wahi helu o nā faila hiki ke hoʻokō (pai) a me ka hoʻopaʻa ʻana i ka overflow ma o ka hoʻololi ʻana i nā canary.
No nā pūʻolo i kākau ʻia ma C/C++, hoʻokomo ʻia nā hae hou
"-Wall", "-Werror=format-security", "-Wp,-D_FORTIFY_SOURCE=2", "-Wp,-D_GLIBCXX_ASSERTIONS" a me "-fstack-clash-protection".

Hāʻawi kaʻawale ʻia nā mea hana orchestration pahu pahu hoʻomalu, hiki ke hoʻohana ʻia e ka paʻamau a mālama ʻia ma o API a me AWS SSM Agena. Loaʻa i ke kiʻi kumu kahi pūpū kauoha, SSH server a me nā ʻōlelo unuhi (no ka laʻana, ʻaʻohe Python a i ʻole Perl) - aia nā mea hana hoʻokele a me nā mea hana debugging i loko. ipu lawelawe kaawale, ka mea i pio ma ka paʻamau.

Source: opennet.ru

Pākuʻi i ka manaʻo hoʻopuka