Amazon áá¯áá¹ááá®
Bottlerocket (á áá¬ážá¡á¬ážááŒáá·áºá á¡áááºáá¯áẠá¡áááºáá±á¬ááºá¡ááŸá¯áá·áº áá¯á¶ážáá»á¶áááºáá»á¬ážáᯠá¡áááºáá±ážáá¬ážáá±á¬) ááẠááœááºááááºáá¬áá»á¬ážá¡ááœáẠááááá¯á¶áž OS ááá¯ááºáá±á¬áºáááºáž AWS áááºáá±á¬ááºááŸá¯áá»á¬ážááŸáá·áº áá°áááºážáá±á«ááºážá ááºážááŸá¯ááŒá±á¬áá·áº áá»ááºááŒáá·áºáá¬ááœááºááŸááááºá á áá áºááẠAmazon cloud áá±á«áºááœáẠá¡á¬áá¯á¶á áá¯ááºáá¬ážáá±á¬áºáááºáž open source code ááẠáááºááá·áºáá±áá¬ááœááºáááᯠáááºáá±á¬ááºááá¯ááºáááº- ááŒááºááœááºážá áá¬áá¬áá áºáá¯á Raspberry Pi ááœááºá ááŸááºááŒáá¯ááºáá±ááá·áº áááºááá·áº cloud ááœááºáááá¯á ááœááºááááºáá¬áá²á·áááºáááºážáá»ááºááááºá
áááºážááẠRed Hat ááŒáŸá¯ááºááŸá¶áá¬ážáá±á¬ CoreOS ááŒáá·áºááŒá°ážááŸá¯á¡ááœáẠáá¯á¶ážáááá¯ááºáááºáá±á¬ á¡á
á¬ážááá¯ážááŸá¯áá
áºáá¯ááŒá
áºáááºá
ááááºáá±á¬á·á Amazon Web Services áá¬áááœá²ááœáẠáááŒá¬áá±ážáá®á áááºážá áá¯ááááá¬ážááŸááºážááœáẠááœááºáá¬ááá·áº Amazon Linux ááŸáááŒá®ážááŒá
áºáááº- áááºážááẠDocker container ááœáẠááá¯á·ááá¯áẠLinux KVMá Microsoft Hyper-V ááŸáá·áº VMware ááŒáá·áº áá¯ááºáá±á¬ááºááá¯ááºáá±á¬ áá±áá°áá»áááºááœááºáá»áẠááŒáá·áºááŒá°ážááŸá¯ááŒá
áºáááºá ESXi hypervisors áá»á¬ážá áááºážááᯠAWS cloud ááœááºáááºáááºááẠá¡áá±á¬ááºážáá¯á¶ážááŒááºáááºáá¬ážáá±á¬áºáááºáž Bottlerocket áá¯ááºáá±ááŸá¯ááŸáá·áºá¡áá°á áá°ááá¯ááºážááẠááá¯ááá¯áá¯á¶ááŒá¯á¶áá±á¬á áá±ááºáá®ááŒá®áž á¡áááºážá¡ááŒá
áºáááºážáá«ážáá±á¬á¡áá¯á¶ážááŒá¯ááá·áºá
áá
áºá¡áá
áºááá¯á· á¡ááá·áºááŒáŸáá·áºáááºááẠááá¯ááºááœááºážáá¬ážáááºá
AWS á០Bottlerocket ááá¯ááŒá±ááŒá¬áá²á·áááºá
á¡ááœááºá¡áááºáž á¡áááºážáááºáá»áŸáá¬ááŒá áºáááºá
ááœááºááááºáá¬áá»á¬ážááá¯áááºáááºááẠLinux ááẠáááá¯á¡ááºááá·áºá¡áá¬á¡á¬ážáá¯á¶ážááᯠáááºááŸá¬ážáá¬ážáááºá áá¯áá¹ááá®áá¡ááá¯á¡á á€áá®ááá¯ááºážááẠááá¯ááºááá¯ááºááŸá¯áá»ááºááŸá¬ááŒááºááᯠáá»áŸá±á¬á·áá»áá±ážáááºá
ááá¯ááá¯áááºááŸá¬ OS ááᯠáááºáááºááááºážááááºážáááºááŸáá·áº á¡ááºááááºáá¯ááºááẠááá¯ááá¯ááœááºáá°á á±ááá·áº á¡ááŒá±áá¶á áá áºááœáẠáááºáá±á·áá»áºáá»á¬ážááᯠáááºážáá«ážáá¬á á±ááẠáááºáááºáá¬ážááŒááºážá ááŸá®ááá¯ááŸá¯áá»á¬ážááŒá±á¬áá·áº ááŒá¿áá¬áá»á¬áž ááŒá áºááá¯ááºááŒá±ááᯠáá»á±á¬á·áááºážá á±ááŒá®áž á¡áááºážá¡ááŒá áºá¡áá¯á¶ážááŒá¯ááŸá¯ááᯠáá»áŸá±á¬á·áá»áá±ážáááºá á¡ááŒá±áá¶á¡á¬ážááŒáá·áºá á€áá±áá¬ááŸá á¡áá¬á¡á¬ážáá¯á¶ážááẠáá®ážááŒá¬ážááœááºááááºáá¬á¡ááœááºážááœáẠá¡áá¯ááºáá¯ááºááŒááŒá®áž á¡áááºážáá¶á áá áºááẠáááºááœá±á·ááœáẠááá¬ááŒá áºáá±áááºá
Amazon ááẠá¡ááœá¶áá»á¬ážááŸáá·áº á áá¬ážááŒááºáá»á¬ážá¡á¬ážáá¯á¶ážááᯠáááºááŸá¬ážáá²á·ááŒá®áž áááºážááá¯á·ááᯠá¡áá¯á¶ážááŒá¯áá¶áááŒááºáž ááá¯á·ááá¯áẠá¡áá¯á¶ážááŒá¯áá°áá»á¬áž á¡ááœáá·áºáá°ážáá»á¬áž ááá±á¬áºáá ááá¯ážáá¬áá±ááá·áº á¡áá¹ááá¬ááºááᯠáááºááŸá¬ážáá±ážáá«áááºá á¡áááºážáááºáá»áŸáá¬ááŸáá·áº áá¯á¶ááŒá¯á¶áá±ážá¡ááœááºá á¡ááŒá±áá¶áá¯á¶ááœáẠá¡áááá·áºáá±ážááá·áºááŸá²ááºá SSH áá¬áᬠááá¯á·ááá¯áẠPython áá²á·ááá¯á· á¡áááá¹áá¬ááºááŒááºááá¯áá¬ážáá±á¬ áá¬áá¬á áá¬ážáá»á¬áž ááá«áááºáá«á á á®áá¶ááá·áºááœá²áá° áááááá¬áá»á¬ážááᯠáá¯á¶ááŸááºá¡á¬ážááŒáá·áº ááááºáá¬ážááá·áº áá®ážááŒá¬ážáááºáá±á¬ááºááŸá¯ ááœááºááááºáá¬ááœáẠáá¬ážááŸááá¬ážáááºá
á áá áºá¡á¬áž API ááŸáá·áº orchestration ááŸáááá·áº áááºážáááºážááŸá áºáá»áá¯ážááŒáá·áº á á®áá¶ááá·áºááœá²áá«áááºá
áá±á¬á·ááºáá²áá áºáá¯áá»ááºážá á®ááᯠá¡ááºááááºáá¯ááºááá·áº áááºáá±á·áá»áºáááºáá±áá»á¬á¡á á¬áž Bottlerocket ááẠááŒá®ážááŒáá·áºá á¯á¶áá±á¬ ááá¯ááºá áá áºáá¯á¶áá áºáá¯á¶ááᯠáá±á«ááºážáá¯ááºáá¯ááºááŒá®áž áááºážáá²ááá¯á· ááŒááºáááºá áááºáááºá áááºáá¯ááºáááºááá¯ážáá áºáᯠáá»ááºááœááºáá«á áááºážááẠá¡ááá¯á¡áá»á±á¬áẠááŒááºááŸáá·áºááœá¬ážáááºááŒá áºááŒá®áž á¡áá¯ááºáááºáá»áá¯á·ááœááºážááŸá¯áá áºáá¯ááẠááá¯ááºááá¯ááºááŒááºááŸáá·áºááŒááºáž (API ááŸáá áºááá·áº á¡áááá·áºáá±ážááŸá¯) ááᯠá¡á áá»áá¯ážááá¯ááºáááºá
áá°áá±á¬áẠ/etc
RAM ááœáẠááá¯ááºá
áá
áºááŒáá·áº áááºáááºáá¬ážáááºá /etc
ááá¶á·ááá¯ážáá«- áááºáááºáá»á¬ážááᯠááááºážáááºážááẠáááºááẠAPI ááᯠá¡áá¯á¶ážááŒá¯ááá·áºááẠááá¯á·ááá¯áẠáá¯ááºáá±á¬ááºááá¯ááºá
áœááºážááᯠáá®ážááŒá¬áž ááœááºááááºáá¬áá»á¬ážááá¯á· ááœáŸá±á·ááá·áºáááºá
API á¡ááºááááºá¡á
á®á¡á
ááº
áá¯á¶ááœá¯á¶ááŸá¯
ááœááºááááºáá¬áá»á¬ážááᯠLinux kernel á á
á¶ááá¹ááá¬ážáá»á¬áž - cgroupsá namespaces ááŸáá·áº seccomp ááá¯á·á០áááºáá®ážáá¬ážááŒá®áž á¡ááá¯á¡áá®ážáá»ááºááŒááºážá¡ááœáẠá¡áááºážá¡ááŒááºáááºáá±á¬ááºááááºážáá»á¯ááºááŸá¯á
áá
áºá¡ááŒá
Ạá¡áá¯á¶ážááŒá¯áá«áááºá
áá¯á¶ááŸááºá¡á¬ážááŒáá·áºá ááœááºááááºáá¬áá»á¬ážááŸáá·áº kernel á¡ááŒá¬áž á¡áááºážá¡ááŒá áºáá»á¬ážááᯠáá»áŸáá±ááẠáá°áá«ááá»á¬ážááᯠááœáá·áºáá¬ážáááºá á¡áá¯á¶ážááŒá¯áá°áá»á¬áž ááá¯á·ááá¯áẠáááá¯ááááºáá»á¬ážááᯠáááºážááá¯á·áá¯ááºáá±á¬ááºááŒááºážá០áá¬ážáá®ážááẠBinaries áá»á¬ážááᯠá¡áá¶áá»á¬ážááŒáá·áº áá¬ááœááºáá¬ážáááºá ááá¯ááºá áá áºááá¯á·áá±á¬ááºááœá¬ážáá«á Bottlerocket ááẠááŒá¯áá¯ááºáá¬ážáá±á¬ áááºááá·áºááŒá±á¬ááºážáá²ááŸá¯áá»á¬ážááá¯áááᯠá á áºáá±ážááŒá®áž ááŒá±áá¬áá¶ááẠtool áá áºáᯠáá±ážáá«áááºá
á
ááºáá
á¹á
ááºáž-mapper-verity áá¯ááºáá±á¬ááºáá»ááºá¡á¬ážááŒáá·áº âá¡áááºááŒá¯ááŒá®ážáá±á¬ bootâ áá¯ááºááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºááẠ(
á
áá
áºááœáẠfilter áá
áºáá¯áááºážááŸááááºá
á¡áá±á¬ááºá¡áááºáá±á¬áºááŸá¯áá¯á¶á
á¶
á¡áá¯á¶ážááŒá¯áá°áááºááŸááºáá¬ážáááºá
á
á¯á
ááºážááŸá¯
áá¯á¶ááœá¯á¶ááŸá¯
áá»ááºááœááºáá¯ááº
á¡áááºážá¡ááŒá
áºáá»á¬ážááᯠááá°áá«á
á¡áá¯á¶ážááŒá¯áá°ááá¯
áá¯ááºáááºáž
áá¯ááºáá²á·
áááºááá·áº
á¡áá¯á¶ážááŒá¯áá°á¡ááœáá·áºá¡áá±áž
ááŒá¬ážááŒááºáá¯ááºáá±á¬ááºááŒááºážá
á
áá
áºáá±á«áºááá¯ááŸá¯á á¡ááŸá¬áž
á¡ááá
áá¯ááºáááºáž
á¡áááºáá°áá»áŸá
á¡ááŒáááº
á¡áááºáá°áá»áŸá
kernel á¡ááááºáááá·áº
ááŒá±á¬ááºá·
GMP
á¡ááŒá
áºá¡áá»ááº
áá¯ááºáá²á·
JITá CO-RE
á¡áááºááŒá¯ááŒááºážá JIT
á¡ááŸá¬ážááŒá
á¬
á¡ááá·áºá¡áááºááŸááá±á¬ á¡áá°á¡áá®áá»á¬áž
BPF ááẠáá¯á¶ááŸááºá¡áá¯á¶ážááŒá¯áá° ááá¯á·ááá¯áẠkernel á¡ááá·áºáá¯ááºááŸáá·áº áááºááá¯á·ááœá¬ááŒá¬ážááááºážá
Bottlerocket ááẠ"á á®áá¶ááá·áºááœá²áá±ážááá¯ááºáá¬á¡ááœáá·áºáá°ážáá»á¬ážááŒáá·áº áá¯ááºáá¯ááºááá·áºáá¬áá¬áá»á¬ážááá¯á· áá»áááºáááºááŸá¯áá»á¬ážááᯠáá¬ážáá®ážááŒááºážááŒáá·áº áá¯á¶ááŒá¯á¶áá±ážááᯠááá¯ááá¯ááá¯ážááŒáŸáá·áºáá±ážááá·áº áááºáááºááŸá¯áá¯á¶á á¶ááᯠá¡áá¯á¶ážááŒá¯áá¬ážáááº" ááŸáá·áº "á¡áááºááŸááºáá áºáŠážá á®ááᯠááááºážáá»á¯ááºááá·áºáááºáá¬ážááá·áº ááŒá®ážáá¬ážáá±á¬ááŒáá·áºáá±ááŸá¯á áá áºáá»á¬ážá¡ááœáẠááá·áºáá»á±á¬áºáááº" áᯠAWS á០ááŒá±á¬ááŒá¬ážáá²á·áááºá
á
áá
áºá
á®áá¶ááá·áºááœá²áá°áá»á¬ážá¡ááœáẠá
á®áá¶ááá·áºááœá²áá°ááœááºááááºáá¬ááᯠáá±ážáá¬ážáááºá ááá¯á·áá±á¬áº AWS ááẠBottlerocket ááœáẠá
á®áá¶ááá·áºááœá²áá° áááŒá¬áá áá¯ááºáá±á¬ááºááẠááá¯á¡ááºáááá·áºááẠááááºáá«- "áá®ážááŒá¬áž Bottlerocket á
á¶ááá°áá¬ááá¯á· áá±á¬á·ááºá¡ááºáá¯ááºááŒááºážááẠáááŒá¬áá áá¯ááºáá±á¬ááºááŸá¯áá»á¬ážá¡ááœáẠáááºááœááºáááº- á¡ááá·áºááŒáá·áº á¡ááŸá¬ážááŸá¬ááŒááºááŒááºážááŸáá·áº ááŒá¿áá¬ááŒá±ááŸááºážááŒááºáž"
áá¶áá»á±ážááẠáá¬áá¬á áá¬áž
Kernel áááááºááœáẠOS áááááá¬áááºáá¬ááá¬ááᯠá¡áá»á¬ážá¡á¬ážááŒáá·áº Rust ááŒáá·áºáá±ážáá¬ážáááºá á€áá¬áá¬á
áá¬ážááẠáááºážáááá±á¬ááá¬áá¡áááŒá
áºáááºá
áá±á¬ááºáá¯ááºááá·áºá¡áá« á¡áá¶áá»á¬ážááᯠáá°áááºážá¡ááá¯ááºáž á¡áá¯á¶ážááŒá¯áá«áááºá --enable-default-pie
О --enable-default-ssp
executable files áá»á¬ážá address space ááᯠrandomization áá¯ááºááẠ(
C/C++ áááºáá±á·áá»áºáá»á¬ážá¡ááœááºá áá±á¬ááºááẠá¡áá¶áá»á¬áž áá«áááºáááºá -Wall
, -Werror=format-security
, -Wp,-D_FORTIFY_SOURCE=2
, -Wp,-D_GLIBCXX_ASSERTIONS
О -fstack-clash-protection
.
Rust ááŸáá·áº C/C++ á¡ááŒááºá á¡áá»áá¯á·áá±á¬ packages áá»á¬ážááᯠGo ááœááºáá±ážáá¬ážáááºá
AWS áááºáá±á¬ááºááŸá¯áá»á¬ážááŸáá·áº áá±á«ááºážá ááºááŒááºážá
á¡áá¬ážáá°ááœááºááááºáá¬áááºáááºááŸá¯á áá áºáá»á¬ážááŸáá·áºááœá¬ááŒá¬ážáá»ááºááŸá¬ Amazon ááẠBottlerocket ááᯠAWS ááœááºáááºáááºáááºá¡áá±á¬ááºážáá¯á¶ážááŒááºáááºááŒá®áž á¡ááŒá¬ážáá±á¬ AWS áááºáá±á¬ááºááŸá¯áá»á¬ážááŸáá·áºáá±á«ááºážá ááºááŒááºážááŒá±á¬áá·áºááŒá áºáááºá
áá°ááŒáá¯ááºá¡áá»á¬ážáá¯á¶áž ááœááºááááºáá¬áá¶á
á¯á¶áá®ážááá¯ááºážááẠKubernetes ááŒá
áºáá±á¬ááŒá±á¬áá·áº AWS ááẠáááºážáááá¯ááºááá¯áẠEnterprise Kubernetes Service (EKS) ááŸáá·áº áá±á«ááºážá
ááºážááŸá¯ááᯠááááºáááºáá²á·áááºá Orchestration áááááá¬áá»á¬ážááẠáá®ážááŒá¬ážááááºážáá»á¯ááºááŸá¯ ááœááºááááºáá¬áá
áºáá¯ááœáẠáá«ááŸááááºá
ááááºá á¡áá¬ážáá°áá¯ááºáá±á¬ááºááŸá¯á¡áá»áá¯á· áá»ááºááœááºáá²á·áá±á¬ááŒá±á¬áá·áº Bottlerocket áá¯ááºááœá¬ážááŒááºáž ááŸááááŸáááᯠááŒáá·áºááŸá¯ááẠá
áááºáááºá
á¬ážááœááºáá±á¬ááºážáá«áááºá á¥ááá¬á¡á¬ážááŒáá·áºá Vmware á០PhotonOS ááẠá¡áá±ážááá¯ááŸá¯áááŸááá² RedHat ááẠCoreOS ááŸáá·áº áááºáá°áá²á·áááºá
Bottlerocket á AWS áááºáá±á¬ááºááŸá¯áá»á¬ážááœáẠáá±á«ááºážá
ááºážááŒááºážááẠá€á
áá
áºááᯠáááºážáááá¯ááºááá¯ááºáááºážáááºážááŒáá·áº áá°ážááŒá¬ážá
á±áááºá á€áááºááŸá¬ á¡áá»áá¯á·áá±á¬á¡áá¯á¶ážááŒá¯áá°áá»á¬ážááẠCoreOS ááá¯á·ááá¯áẠAlpine áá²á·ááá¯á·áá±á¬ á¡ááŒá¬ážáá±á¬ distro áá»á¬ážááẠBottlerocket ááᯠááá¯ááá¯ááŸá
áºáááºááá¯ááºáááá·áº á¡áááá¡ááŒá±á¬ááºážáááºážááŒá
áºááá¯ááºáááºá á
áá
áºááẠEKS ááŸáá·áº ECS ááá¯á·ááŸáá·áº á¡áá¯ááºáá¯ááºááẠá¡á
ááá¯ááºážááœáẠáá®ááá¯ááºážáá¯ááºáá¬ážáá±á¬áºáááºáž áááºážááẠáááá¯á¡ááºááŒá±á¬ááºáž áá»áœááºá¯ááºááá¯á· áááºááŒá±á¬áá«áááºá ááááŠážá
áœá¬ Bottlerocket áá¯ááºááá¯ááºáááº
Bottlerocket á¡áááºážá¡ááŒá
áºáá¯ááºááᯠApache 2.0 ááá¯ááºá
ááºá¡á±á¬ááºááœáẠGitHub ááœáẠáá¯ááºáá±áá¬ážáááºá Developer ááœá±á ááŸáááŒá®ážáá¬ážáá«á
ááŒá±á¬áºááŒá¬á¡ááŒá áº
VDSina áááºážááŸááºážááŸá¯
source: www.habr.com