
Emacs-ը NetBSD microVM-ում՝ smolBSD-ի միջոցով
The Emacs Cat կեղծանունով ծրագրավորողը պատմել է, թե ինչպես է Emacs-ը գործարկել NetBSD-ի փոքրիկ microVM-ում, որը կառուցվել է smolBSD-ով. միջուկը բեռնվում է 26 միլիվայրկյանում, իսկ ողջ վիրտուալ մեքենան զբաղեցնում է մոտ 180 MB հոսթի հիշողություն։
The Emacs Cat կեղծանունով բլոգ վարող ծրագրավորողը պատմել է, թե ինչպես է Emacs-ը գործարկել NetBSD-ի microVM-ում, որը կառուցվել է smolBSD-ով՝ BSD UNIX-ի նվազագույն վիրտուալ մեքենայով, որը բեռնվում է մի քանի միլիվայրկյանում։ Ելակետը սովորական ինժեներական խնդիր էր. նա ուզում էր համոզվել, որ C-ով գրված իր ցանցային գրադարանը և կոմպիլյատորի ողջ գործիքաշարը NetBSD-ում նույնպես կառուցվում են, ինչպես Ubuntu-ում և macOS-ում։
Ինչու NetBSD
NetBSD-ը բաց կոդով Unix-անման համակարգ է, որը հայտնի է տեղափոխելիությամբ։ Այն աշխատում է ժամանակակից x86-64 և aarch64 սերվերներից ու աշխատակայաններից մինչև ներկառուցված համակարգեր և վինտաժ մեքենաներ (օրինակ՝ VAX և m68k)։ Այդ պատճառով էլ նրա վաղեմի կարգախոսը հնչում է այսպես՝ «Of course it runs NetBSD»։ Հեղինակը նշում է, որ սա ըստ էության հին, լավ 4.3BSD-ն է։ Տանը առանձին NetBSD մեքենա չունենալով՝ նա ընտրել է վիրտուալ մեքենան։
SMOLerfile՝ Dockerfile-ի ոճով
Միկրո-VM-ի պատկերը նկարագրում է SMOLerfile-ը՝ smolBSD-ի կոնֆիգուրացիոն ֆայլը նվազագույն NetBSD ծառայության համար։ Այն օգտագործում է Dockerfile-ի ծանոթ հրահանգները (FROM, RUN, CMD), սակայն չի իրականացնում ամբողջ սպեցիֆիկացիան։ Հեղինակի Dockerfile.devsh-ը սկսվում է base,etc,comp փաթեթով՝ միջուկային համակարգը, կոնֆիգուրացիայի կմախքը և կոմպիլյատորի գործիքաշարը՝ header ֆայլերով, լինքերով ու make-ով։
Պիտակները սահմանում են devsh ծառայության անունը, pkgin, curl, rsync ու sqlite3 փաթեթները, PTY կոնսոլը և 2 ԳԲ-անոց սկավառակի պատկերը, որը կտրվում է նվազագույնին գումարած 512 MB։
Emacs-ը հյուր համակարգում
Պահանջները քիչ էին՝ ինտերակտիվ shell (NetBSD-ում լռելյայն ksh-ն է), կոմպիլյատորի գործիքաշարը՝ gcc, make և ld, և Emacs-ը։ NetBSD-ն ունի նախապես տեղադրված vi (ոչ vim)՝ 1.81.6-2013-11-20nb4 տարբերակով. հեղինակը Emacs-ը տեղադրեց pkgin-ով՝ որպես emacs-nox11, և լռելյայն bsdmake-ի փոխարեն ավելացրեց GNU make (gmake)։
Նվազագույն ~/.emacs ֆայլը միացնում է սյունակի համարները, փակագծերի ընդգծումը և 4 բացատանոց ներդիրը C-ի stroustrup ոճով։ QEMU-ն Ctrl-A-ն օգտագործում է որպես իր escape ստեղն, այդ պատճառով Ctrl-A-ն հյուր համակարգին չի հասնում. կրկնակի սեղմումը օգնում է, բայց հեղինակը beginning-of-line-ը տեղափոխեց M-a ստեղնի վրա։
26 միլիվայրկյան և 180 MB
Պատկերը մեկնարկում է փոքր սքրիպտով. startnb.sh-ը վերցնում է կառուցման ժամանակ ստեղծված կոնֆիգուրացիան (-f), PTY կոնսոլը (-P), թույլ է տալիս անջատել մեքենան ksh-ից (-n 2) և հոսթի պանակը կցում է հյուրի /mnt ուղուն (-w)։
Հին Dell Latitude 7400 նոութբուքում NetBSD-ի միջուկը բեռնվում է 26 միլիվայրկյանում, իսկ ողջ վիրտուալ մեքենան սկզբում զբաղեցնում է 180 MB հոսթի հիշողություն։
Գրառման մեջ նկարագրված է ամբողջ ճանապարհը՝ smolBSD-ի տեղադրումից մինչև պատկերի կառուցումն ու մեկնարկը։
SiTech — AI-ով հզորացված վեբ մշակում
Ստեղծում ենք արագ ու ժամանակակից կայքեր և AI-ը ներդնում իրական բիզնես գործընթացներում։ Ունե՞ք նախագիծ կամ հարց։ Ուրախ կլինենք օգնել։