Prieš kelias valandas prasidėjo WWDC25 – renginys, kuriame „Apple“ pristatė naujas savo operacinių sistemų versijas. pagrindinė mintis Trumpai buvo aptartos „iOS“, „iPadOS“, „tvOS“, „macOS“, „watchOS“ ir „visionOS“, o dabar jos suvienodino savo numerius ir visos turi skaičių 26. Dėl šių konferencijų trukmės jos net negali aptarti daugelio savo sistemų funkcijų, o yra ir kitų dalykų, kuriuos galima atrasti tik kitais būdais. Tarp jų, Konteineriai, kuris nėra distro dėžutė nei „Apple WSL“, bet jis šiek tiek artimas abiem koncepcijoms.
Virtualizacija ir konteinerizacija sukėlė revoliuciją programų kūrime, leisdamos komandoms kurti visiškai izoliuotos ir atkartojamos aplinkos efektyviai diegti programinę įrangą ir valdyti išteklius. „Apple“, suprasdama šių technologijų svarbą tiek kūrimo, tiek gamybos procese, žengė žingsnį į priekį, pristatydama savo konteinerizavimo sistemą, optimizuotą „Apple Silicon“ įrenginiams ir procesoriams.
Kas yra konteinerizacija pagal „Apple“?
El Konteinerių rūšiavimo sistema „Apple“ yra atvirojo kodo programinės įrangos paketas, sukurtas naudojant „Swift“ leidžia programoms valdyti „Linux“ konteinerius tiesiogiai „macOS“ sistemoje „Apple Silicon“ įrenginiuose (gerai žinomuose šio prekės ženklo ARM lustuose). Skirtingai nuo tradicinių sistemų, kuriose keli konteineriai dalijasi vienu pagrindinės operacinės sistemos branduoliu arba didele virtualia mašina, „Apple“ pasirenka kiekvieną konteinerį paleisti savo lengvoje virtualioje mašinoje.
Šis metodas leidžia pasiekti unikalią pusiausvyrą: Tai išlaiko konteinerių efektyvumą ir perkeliamumą, tačiau prideda virtualių mašinų patikimumą ir izoliaciją. Kiekvienas konteineris veikia savo virtualioje aplinkoje, nesidalindamas branduoliu su kitais ar pagrindine sistema, todėl itin sunku atlikti potencialią konteinerių eskalaciją ar nutekėjimo atakas tarp konteinerių.
Motyvacija ir kontekstas: konteineriai „macOS“ sistemoje
Iki „Apple“ sprendimo atsiradimo kūrėjai, kurie naudojo „Mac“ kompiuterius ir kuriems reikėjo „Linux“ aplinkos, griebėsi alternatyvų, tokių kaip Docker, Podman, Orbstack arba LimaTačiau šie įrankiai turėjo didelių našumo, išteklių suvartojimo ir, ypač, saugumo apribojimų dėl monolitinių virtualių mašinų, kuriose talpinami keli konteineriai, ir intensyvaus branduolio bendrinimo.
Jautrioje aplinkoje, Izoliacijos problemos ir galimas proceso nuotėkis privertė daugelį įmonių ir organizacijų atsisakyti šių sistemų gamybinei aplinkai. Pristatydama savo sistemą, „Apple“ užpildo šias spragas ir siekia tapti etalonu saugaus ir efektyvaus „Linux“ konteinerių vykdymo „Mac“ kompiuteriuose srityje.
Konteinerių rūšiavimo sistemos techninės charakteristikos
- Bendra izoliacija vienam konteineriui: Kiekvienas konteineris veikia nepriklausomoje, itin lengvoje virtualioje mašinoje, užtikrinant branduolio lygio izoliaciją ir užkertant kelią pabėgimams ar įsilaužimams, kurie galėtų paveikti kitas aplinkas ar pagrindinę sistemą.
- Optimizavimas „Apple Silicon“: Ši sistema parašyta „Swift“ kalba ir remiasi „Virtualization.framework“, pasinaudodama „Apple“ ARM procesorių aparatinės įrangos spartinimu, todėl konteineriai paleidžiami per sekundės dalį ir sunaudojama labai mažai išteklių.
- Išplėstinis vaizdų ir tinklo valdymas: Sistema leidžia valdyti atvaizdus pagal OCI standartą, sąveikauti su nuotoliniais registrais ir priskirti kiekvienam konteineriui dedikuotus IP adresus, taip pašalinant prievadų susiejimo sudėtingumą ir palengvinant paslaugų aptikimą bei balansavimą.
- Pasirinktinė branduolio konfigūracija: Kūrėjai gali pasirinkti konkrečias branduolio konfigūracijas kiekvienam konteineriui, pritaikydami kiekvieną aplinką prie tikslių savo programų reikalavimų ir tikrindami versijų suderinamumą.
- Bazinės sistemos minimizavimas: Kiekviena VM naudoja minimalią bazinę sistemą, kurioje yra tik „vminitd“ – statiškai kompiliuojama init sistema be jokių dinaminių bibliotekų ar įprastų įrankių, taip sumažinant atakų paviršių.
- „Rosetta 2“ palaikymas: Tai leidžia paleisti x86_64 atvaizdus ARM kompiuteriuose be pastebimų problemų, todėl lengviau pereiti prie mišrių ar pasenusių aplinkų ir jas prižiūrėti.
„Apple“ siūlomos architektūros privalumai
- Padidintas saugumas: Kadangi nėra dalijamasi branduoliais ar priklausomybėmis, kiekvienas konteineris yra visiškai izoliuotas, laikantis nulinio pasitikėjimo saugumo principų. Ypatingas inicijavimo sistemos minimalizmas ir išnaudojamų įrankių trūkumas smarkiai sumažina privilegijų eskalavimo ar duomenų nutekėjimo riziką.
- Išteklių naudojimo efektyvumas: Itin lengvos virtualios mašinos išteklius naudoja tik tada, kai yra aktyvios. Nereikia rezervuoti RAM ar CPU konteinerių telkiniui, kuris gali būti nenaudojamas, todėl optimizuojamas bendras sistemos naudojimas.
- Supaprastintas ir lankstus tinklas: Dedikuotas IP adresų paskirstymas pašalina istorinius prievadų susiejimo ir vidinio tinklo valdymo konteineriuose galvos skausmus, palengvindamas mikropaslaugų sujungimą ir horizontalų mastelio keitimą.
- Suderinamumas ir perkeliamumas: Standartinių OCI atvaizdų palaikymas ir sklandi integracija su registrais leidžia tiems patiems CI/CD srautams ir konteinerių ištekliams veikti tiesiogiai „Mac“ kompiuteryje be jokių pakeitimų ar pritaikymų.
„Apple Framework“ komponentai
- Konteinerių Swift paketas: Bazinė biblioteka, teikianti API atvaizdams, registrams, failų sistemoms, procesams valdyti ir integracijai su vietine inicijavimo sistema ir pasirinktiniais branduoliais.
- vminitd: Minimalistinė inicijavimo sistema, parašyta „Swift“ kalba ir kompiliuota naudojant „Static Linux SDK“, kuri veikia kaip pirmasis procesas kiekvienoje virtualioje mašinoje. Jai nereikia jokių dinaminių bibliotekų ar sistemos įrankių ir ji teikia „gRPC“ API per „vsock“, kad būtų galima valdyti procesų gyvavimo ciklus ir aplinkos konfigūraciją.
- Optimizuoti branduoliai: Minimalizuotos „Linux“ branduolių konfigūracijos, pritaikytos greitam paleidimo laikui ir minimaliam energijos suvartojimui, nors galima pasirinkti arba kompiliuoti pasirinktines konfigūracijas sudėtingesniems naudojimo atvejams.
- Vartotojo įrankiai: cctl Tai pagrindinis CLI įrankis, leidžiantis paprastai valdyti vaizdus, paleisti konteinerius ir testuoti platformos API, panašiai kaip įprastomis „Docker“ komandomis.
Kaip tai veikia praktiškai: nuo kodo iki diegimo
Ši sistema siūlo API ir CLI įrankius šiems procesams:
- OCI vaizdų valdymas ir manipuliavimas.
- Saugus bendravimas su nuotoliniais registrais.
- „Ext4“ failų sistemų kūrimas ir formatavimas.
- Pažangus tinklo valdymas naudojant „Netlink“ lizdus ir individualų IP adresų priskyrimą.
- Procesų vykdymas ir stebėjimas konteineriuose dėka patentuotos init sistemos.
- Vykdymo aplinkų valdymas kiekvienoje VM, naudojant API, skirtas branduolio, versijų ir konteineriui būdingų konfigūracijų pasirinkimui.
- Integracija su „Rosetta 2“ skirtas x86_64 atvaizdų naudojimui „Apple Silicon“ sistemose ir kryžminio suderinamumo patikrinimui.
Kiekvieno konteinerio pradžia yra nedelsiant (sekundės dalimis), daugeliu atvejų pranokstantis „Docker“ ar „Podman“ paleidimo patirtį, o išteklių valdymas yra visiškai dinamiškas.
Reikalavimai ir suderinamumas
Norėdami naudoti „Apple“ sistemą, jums reikia:
- Turi „Mac“ su „Apple Silicon“ (M1, M2 serijos ir vėlesnės).
- „macOS 15“ arba naujesnė versija, nors ir siekiant išnaudoti visas galimybes ir išvengti apribojimų, Rekomenduoju „macOS 26 Beta 1“.
- „Xcode 26 Beta“ ir atnaujinti „Swift“ kūrimo įrankiai.
Kai kurios funkcijos, pvz., konteinerių tarpusavio ryšys tame pačiame tinklo segmente, visiškai įjungiamos tik „macOS 26“ ir naujesnėse versijose.
Kūrėjo duomenys ir darbo eiga
Įprastas kūrėjo, naudojančio šią sistemą, darbo procesas apima:
- Įdiekite rekomenduojamas priklausomybes: „Swiftly“, „Swift“, „Static Linux SDK“ ir teisingas „grpc-swift“ bei „swift-protobuf“ versijas.
- Sudarykite paketą iš šaltinių naudodami pateiktus scenarijus ir programas.
- Naudojant cctl, testuoti ir manipuliuoti atvaizdais, paleisti konteinerius, valdyti šaknines failų sistemas ir automatizuoti diegimo ar testavimo užduotis.
- Jei reikalinga kokia nors konkreti funkcija, neįtraukta į numatytąją konfigūraciją, vadovaudamiesi saugyklos dokumentacija, pritaikykite branduolį.
- Integracija su standartiniais CI/CD srautais ir registrais, skirtais bendradarbiavimui kuriant ir diegiant mišriose komandose.
Oficialioje dokumentacijoje pateikiamos nuoseklios instrukcijos, kaip atlikti pradinį nustatymą, dažnai šalinti triktis ir automatizuoti dažniausiai atliekamus darbo eigą.
Palyginimas su kitais sprendimais: „Docker“, „Podman“ ir „Apple“ modelis
dokininkas ir kiti sprendimai leidžia paleisti konteinerius „Mac“ kompiuteriuose, tačiau jie tai daro per vieną „Linux“ virtualią mašiną, kurioje yra visi konteineriai, o tai reiškia:
- Didesnis bazinių išteklių sunaudojimas (VM visada aktyvi).
- Fragmentacija ir sudėtingumas bendrinant failus tarp pagrindinio kompiuterio, virtualios mašinos ir konteinerių.
- Didesnis atakos paviršius ir izoliacijos problemos, nes gedimas gali paveikti visus esamus konteinerius.
- Sunku priskirti unikalius IP adresus ir palaikyti ryšį tarp konteinerių ir pagrindinių serverių paslaugų.
„Apple“ modelis, kai virtualios mašinos kuriamos kiekviename konteineryje, pašalina šias kliūtis. Nors iš pradžių gali atrodyti, kad tai mažiau efektyvu, itin lengvos virtualios mašinos ir selektyvus išteklių naudojimas daro jį pranašesniu saugumo ir lankstumo požiūriu, ypač aplinkose, kuriose prioritetas teikiamas izoliacijai ir atitikčiai reikalavimams.
Esamų darbo eigų suderinamumas ir perkėlimas
Vienas iš dažniausiai kylančių rūpesčių pereinant prie naujų technologijų yra išteklių ir darbo eigų suderinamumas. „Apple“ sistema išlaiko visišką suderinamumą su standartiniais OCI atvaizdais, o tai reiškia, kad esami atvaizdai veiks, o registrai ir srautai gali likti nepakeisti. Tokie įrankiai kaip cctl Jie naudoja komandas, panašias į „Docker“, todėl mokymosi kreivė yra nedidelė.
Įnašai ir bendruomenė
Projektas yra atvirojo kodo ir laukia išorinių indėlių, o dalyvavimą palengvina modulinė „Swift“ architektūra ir aiškios indėlio gairės. Paketo kūrėjai skatina kodo indėlius, siūlomus patobulinimus ir problemų ataskaitas, kad paspartintų kūrimą ir diegimą.
Versijų modelis garantuoja dvejetainį stabilumą tarp nedidelių leidimų, suteikdamas pasitikėjimo tiems, kurie nori pradėti naudoti sistemą ankstyvajame jos gyvavimo ciklo etape.
Idealūs naudojimo atvejai ir pritaikymai
„Apple“ konteinerizavimo sistema yra ypač įdomi:
- Programuotojams, kuriems reikia saugiai ir tinkamai išbandyti ir diegti „Linux“ programas „Mac“ kompiuteriuose.
- Įmonės ir organizacijos, kur saugumas ir izoliacija yra privalomos (finansų sektorius, sveikatos apsauga, dirbtinis intelektas ir kt.).
- Organizacijos, investavusios į OCI kanalus ir norinčios panaudoti esamus kanalus be suderinamumo rizikos.
- Mišrios komandos, kurios migruoja iš x86 į ARM architektūras ir kurioms reikalingas sklandus perėjimas.
- Projektai, kuriems reikalingi skirtingi branduoliai arba pasirinktinės konfigūracijos skirtingiems konteineriams.
Lankstumas, įgimtas saugumas ir mažos eksploatavimo išlaidos paverčia sistemą labai patraukliu pasirinkimu modernizuojant darbo eigą ir gerinant duomenų bei sistemų apsaugą.
Projekto apribojimai ir būsena
Sistema yra versija 0.1.0, o tai reiškia, kad jis yra pradinėje fazėje, nors ir visiškai funkcionalus eksperimentams ir kontroliuojamiems diegimams. Kai kurios išplėstinės funkcijos, pvz., konteinerių tarpusavio tinklas „macOS 15“, nėra visiškai prieinamos, išskyrus „macOS 26“ ir naujesnes versijas.
„Apple“ įspėja, kad API stabilumas garantuojamas tik tarp nedidelių leidimų, todėl ankstyvieji naudotojai turėtų peržiūrėti leidimo pastabas ir teisingai nurodyti priklausomybes, kad išvengtų problemų būsimuose atnaujinimuose.
Konteinerizavimas iOS mobiliųjų įrenginių aplinkoje
Konteinerizacijos politika taip pat atsispindi „iOS“ įrenginių valdyme ir saugume, kur administratoriai gali naudoti MDM (mobiliųjų įrenginių valdymo) sistemas, kad apribotų programų ryšį, prieigą prie tam tikrų paslaugų, konfigūracijų ir sertifikatų diegimą, taip pat apribotų neleistinų programų diegimą ir nesaugius ryšius. Ši politika, nors ir skiriasi nuo tradicinės programinės įrangos konteinerizacijos, siekia... apsaugoti įmonės informaciją ir užkirsti kelią duomenų nutekėjimui tarp programų ir paslaugų „Apple“ ekosistemoje.
Konteinerių kūrimo ateitis, anot „Apple“
„Apple“ žingsnis, atveriant sistemą ir reklamuojant savo įrankius, galėtų žymėti tai, kaip saugios programos kuriamos ir diegiamos „Mac“ ekosistemoje, ir tai, kaip jos keičiasi. Privalumai saugumo, efektyvumo ir suderinamumo srityse Taikydami atvirus standartus, jie darys spaudimą tradiciniams žaidėjams ir skatins naujų sprendimų bei patobulinimų atsiradimą šiame sektoriuje.
„Apple“ konteinerizacija yra ne tik alternatyva, bet ir tradicinio modelio evoliucija, sukurta atsižvelgiant į šiandienos saugumo ir mobilumo poreikius, atveriant kelią saugesnėms, efektyvesnėms ir lengviau valdomoms kūrimo ir gamybos aplinkoms „Mac“ aparatinėje įrangoje.