Өмнө нь SerpentOS гэгддэг байсан AerynOS-ийн хөгжүүлэгчид төслийн концепц болон техникийн хэрэгжилтийг нарийвчлан тайлбарласан, мөн архитектурын шийдвэрийн үндэслэлийг харуулсан дэлгэрэнгүй нийтлэл нийтэлжээ. Төслийн удирдагч Ики Дохерти AerynOS нь зүгээр л "өөр нэг тархалт" биш гэдгийг онцолж байна. Linux"гэхдээ тодорхой алсын хараатай нийцүүлэн бүтээгдсэн платформ, суурь болон хэрэгслүүдийн багц юм.
Төслийн гол санааг "Хэрэв үйлдлийн систем нь орчин үеийн дэд бүтэц шиг ажиллавал яах вэ?" гэсэн асуулт болгон тавьсан. AerynOS-ийг энэ асуултын хариулт болгон танилцуулж байна - энэ нь тархалт доторх мутацийн уламжлалт загварыг дагахын оронд эхнээс нь бүтээгдсэн систем юм. Төсөл нь Solus болон Clear зэрэг бусад тархалтыг хөгжүүлэх зохиогчдын туршлага дээр тулгуурладаг. Linux.
AerynOS-ийн үндсэн техникийн шийдлүүдийн дунд:
- GNU-ийн оронд LLVM хэрэгслийн гинжийг анхдагчаар libc++ болон compiler-rt ашиглана. Хөгжүүлэгчид энэхүү шийдвэрийг зүгээр л LLVM-ийг илүүд үзэж байгаа биш, харин илүү сайн оношилгоо ашиглах, багцын зөв байдал, зөөврийн байдлыг хангах стратегийн сонголт гэж тайлбарлаж байна. Уг систем нь musl-ийн оронд glibc-г ашигладаг бөгөөд энэ нь нийцтэй байдал, гүйцэтгэлийн төлөө санаатай сонголт юм.
Нийтлэлд дурьдсанчлан: "Glibc-ийн musl-ээс давуу тал нь, ялангуяа тооцоолол их шаарддаг ажлын ачаалал болон олон урсгалын оновчтой гүйцэтгэлийг шаарддаг програмуудын хувьд сайн баримтжуулсан байдаг." Бүтээгчид нь тэдний зорилго бол олон төрлийн хэрэглээний хувилбарт ажиллах боломжтой, ашиглах боломжтой системийг бий болгох явдал гэдгийг онцолж байна.
- "Төрөлгүй байдал" гэсэн ойлголт—багцууд нь /usr сангаас гадуур ямар ч файл агуулахыг хориглодог. Хөгжүүлэгчдийн тайлбарласнаар энэ арга нь бүх түвшинд ухаалаг анхдагч тохиргоог шаарддаг бөгөөд "багцуудыг шинэчлэх үед аймшигтай гурван талын нэгтгэх зөрчилдөөн"-ийг арилгадаг. /etc болон /var дахь бүх зүйл хэрэглэгчийн эзэмшилд байдаг бол /usr нь зөвхөн системийн эзэмшилд байдаг тул ямар ч зөрчилдөөн байхгүй. Энэхүү ойлголтыг Clear эрин үед боловсруулсан. Linux болон Solus, мөн AerynOS дээр үүнийг цаашид хөгжүүлсэн.
- Атомын шинэчлэлтүүд - хөвдний гүйлгээ бүр атомын шинж чанартай байдаг. Систем нь давхардсан кэшээс хатуу холбоосыг ашиглан шинэ /usr модыг хурдан үүсгэдэг. Амжилттай бүтээж, бэлтгэсний дараа шинэ модыг атомаар солино. Бэлтгэсэн гүйлгээг RENAME_EXCHANGE туг бүхий renameat2 ашиглан бодит /usr лавлахтай солилцдог. Шинэчлэлт нь завсрын төлөвгүйгээр бүрэн гүйцэт хийгдсэн эсвэл огт хийгдээгүй байна.
- Blsforme болон disks-rs төслүүд дээр суурилсан ачаалах менежмент. Энэхүү аргын онцлог нь систем нь үндсэн файлын системийн төхөөрөмжүүдийн супер блокуудыг унших замаар цөмийн командын мөрөнд параметрүүдийг динамикаар үүсгэдэг тул AerynOS-д "root=" параметрийг агуулсан тохиргооны файл байхгүй байна. Түүнчлэн, хөвд гүйлгээний тодорхойлогч нь цөмийн командын мөрөнд кодлогдсон бөгөөд initramfs дээр эрт ачаалах үед боловсруулагддаг. "Товчхондоо, энэ нь цөм бүр нь холбогдох үндсэн файлын системтэйгээ зөв синхрончлогдсон бөгөөд буцаах нь хямд, хялбар бөгөөд ачаалах цэснээс шууд хандах боломжтой гэсэн үг юм" гэж хөгжүүлэгчид тайлбарлав. Өөр нэг давуу тал нь /etc/default/grub байхгүй бөгөөд ESP устгагдсан тохиолдолд хөвд үүнийг эхнээс нь сэргээж чадна.
- .stone багцын формат нь ирээдүйн өөрчлөлтөд нийцэх хувилбар-агностик толгой бүхий өмчийн хоёртын багц формат юм. .stone багц бүр нь дөрвөн тусгай ачааллын төрлийг агуулдаг бөгөөд тэдгээр нь хувилбарын ачаар бие даан хөгжиж чаддаг:
- Агуулгын ачаалал нь давхардсан өгөгдлийн дараалсан блок, өөрөөр хэлбэл багц файлуудын агуулга юм.
- Индексийн ачаалал - агуулгын XXH128 хэшээр индексжүүлсэн (Blake3 руу шилжихээр төлөвлөж байгаа) агуулгын ачааллын офсетийг агуулдаг. Энэ нь өгөгдлийг үр дүнтэй олох, задлах боломжийг олгодог.
- Layout payload - багцыг ашиглах үед файлын системийн хүлээгдэж буй байршлыг, өөрөөр хэлбэл хаана, ямар файлуудыг суулгах ёстойг тодорхойлдог.
- Мета өгөгдлийн ачаалал - Багцын нэр, өгсөн боломжууд гэх мэт хүчтэй шивэгдсэн, шошготой мета өгөгдлийн бүртгэлүүдийн дараалал.
Бүх ачааллыг Zstd ашиглан шахдаг бөгөөд энэ нь шахалтын сайн харьцааг хадгалахын зэрэгцээ шахалтыг маш сайн гүйцэтгэдэг. Чулууг "суулгах" үйл явц нь бусад системээс үндсэндээ ялгаатай. Файлуудыг шууд суулгахын оронд багцыг кэш болгож, агуулгыг нь нийтлэг контент хаягтай дэлгүүр (CAS) болгон нэхдэг. Мета өгөгдөл болон байршлын мэдээллийг тусад нь хадгалж, гүйлгээ үүсгэх үед ашигладаг. Гүйлгээ бүр нь одоо байгаа хэсгийг өөрчлөхийн оронд шинэ root хуваалтыг үүсгэдэг тул энэ арга нь шинэчлэлтийн атомын шинж чанар, буцаах чадварыг баталгаажуулдаг.
Зайлшгүй багцын удирдлагыг дуурайх одоогийн арга нь "бүрэн утгагүй" бөгөөд "үнэндээ шийдэхээсээ илүү олон алдааг нэвтрүүлж байна" гэдгийг хөгжүүлэгчид тэмдэглэж байна. Гүйлгээ тус бүрд шинэ үндсэн файлын системийг бий болгодог тул ирээдүйн төлөвлөгөө нь Gentoo эсвэл Nix-тэй төстэй тунхаглалын хандлагыг ашиглан шугамын өөрчлөлтөөс татгалзаж, гүйлгээ бүрт шинэ график үүсгэх явдал юм.
Өөр нэг сонирхолтой тодруулга бол хувиршгүй байдлын тухай юм. Зохиогчид AerynOS-ийг ихэвчлэн хувиршгүй үйлдлийн систем гэж тодорхойлдог боловч "энэ нь бүрэн үнэн биш" гэдгийг тэмдэглэжээ. Хэдийгээр гүйлгээ бүр шинэ /usr модыг үүсгэдэг бөгөөд локал өөрчлөлтүүд хэвээр үлддэг ч систем нь зөвхөн унших хандалтын утгаараа өөрчлөгддөггүй. Цаашид erofs болон overlayf-уудыг ашиглан дахин ачаалах шаардлагагүйгээр жинхэнэ системийн хувиршгүй байдлыг хэрэгжүүлэхээр төлөвлөж байна.
Одоогийн байдлаар AerynOS нь идэвхтэй хөгжиж байгаа бөгөөд GNOME орчинтой ISO дүрсийг аль хэдийн гаргасан, тоглоомд тохиромжтой (NVIDIA драйверуудыг дэмждэг, Steam, Flatpak), системийн тогтвортой байдал, шинэлэг байдлыг тэмдэглэдэг бодит хэрэглэгчидтэй. Хөгжүүлэгчдийн үзэж байгаагаар төсөл нь альфа шатандаа байгаа бөгөөд асуудалгүй байгаа ч "зүгээр л ажилладаг" бүрэн системийг аль хэдийн төлөөлдөг.
Эх сурвалж: opennet.ru
