Зашто Линук-ов системд и даље изазива поделе после свих ових година

системд је стар 10 година, али осећања у вези са њим у Линук заједници се нису смирила — сада је подложна поделама као што је икада била. Иако га користе многе велике Линук дистрибуције, тврдокорна опозиција није попустила.

Редослед покретања Линук-а

Када укључите рачунар, хардвер се покреће, а затим (према типу боот сектор ваш рачунар) или главни запис за покретање (МБР) извршава или Унифиед Ектенсибле Фирмваре Интерфаце (УЕФИ) ради. Последња радња оба ова је да се запали Линук кернел.

Кернел се учитава у меморију, декомпресује се и иницијализује. А привремени систем датотека се креира у РАМ-у, обично помоћу услужног програма који се зове инитрамфс или инитрд. Ово омогућава да се одреде и учитају потребни драјвери. Ово, заузврат, омогућава систему датотека корисничког простора да се учита и припреми за успостављање окружења корисничког простора.

Креирањем окружења корисничког простора управља процес инит, који је први процес који језгро покренуло у корисничком простору. Има а ИД процеса (ПИД) од 1. Сви остали процеси су или директни или индиректни потомци инит процеса.

Пре системд-а, уобичајени стандард за инит процес је био прерада Уник Систем В инит. Доступни су били и други избори, али Систем В инит је била стандардна опција у већини не-Беркелеи Софтваре Дистрибутион (БСД) изведене дистрибуције. Пошто је дошао директно из Систем В Уник-а — духовног претка Линук-а — многи људи га сматрају „званичним начином“ да се изврши инит.

Процес покретања покреће све демони и услуге потребне да оперативни систем функционише на смислен, интерактиван начин. Ови демони рукују стварима као што је мрежни стог, омогућавајући други хардвер унутар вашег рачунара и обезбеђујући екран за покретање.

Многи од ових позадинских процеса настављају да раде и након што почну. Они раде ствари као што су информације о догађајима у евиденцији, прате промене у хардверу док убацујете или уклањате уређаје и управљају пријављивањем корисника. Није изненађујуће да систем инит такође укључује функције за управљање услугама.

Можемо користити пс да видите процес који има ПИД 1. Користићемо опције ф (листинг у пуном формату) и п (ПИД):

ps -fp 1

Видимо да је процес са ПИД 1 системд. Покретање исте команде на Мањаро Линук-у дало је другачији резултат. Процес са ПИД 1 је идентификован као /сбин/инит. Брзи поглед на ту датотеку показује да је то симболична веза до системд-а:

ps -fp 1
ls -hl /sbin/init

Користећи опцију ппид (ИД родитељског процеса) са пс-ом, можемо видети које процесе је директно покренуо системд:

ps -f --ppid 1

То је прилично дуга листа, као што можете видети на слици испод.

Тхе Алтернативес

Неколико пројеката је покушало да произведе алтернативу традиционалном Систем В инит. Један од главних проблема је, са Систем В инит, сви процеси се покрећу серијски, један за другим. Да би се побољшала ефикасност секвенце покретања, многи алтернативни пројекти користе паралелизам за покретање процеса истовремено и асинхроно.

  Како играти Бунгие-јеву серију игара Маратхон на Линук-у

Ево неких информација о некима од њих:

почетник: Развијен од стране Цаноницал, коришћен је у Убунту 9.10, црвени шешир, Ред Хат Ентерприсе Линук (РХЕЛ) 6, ЦентОС 6, и Федора 9.
Покрени: Ради даље ФрееБСД и други БСД деривати, мацОС и Соларис, као и Линук системи. Такође је укључен подразумевани инит систем Празнина Линук.
с6-линук-инит: Ова замена за Систем В инит је дизајнирана да помно прати Уник филозофија, који се често своди на звучни залогај „уради једну ствар и уради то добро“.

Постоји много других различитих функционалности и дизајна. Међутим, нико од њих створио фурор системд је урадио.

Тхе системд Ваи

системд је објављен 2010. и коришћен је у Федори 2011. Од тада су га усвојиле многе дистрибуције. Развио га је Леннарт Поеттеринг и Кеј Сиверс, два софтверска инжењера у РедХат-у.

системд је много више од инит замене. Уместо тога, то је пакет од приближно 70 бинарних датотека које рукују иницијализацијом система, демонима и услугама, евидентирањем и вођењем дневника и многим другим функцијама којима су већ управљали наменски модули у Линуку. Већина њих нема никакве везе са иницијализацијом система.

Неки од демона које обезбеђује системд су:

системд-удевд: Управља физичким уређајима.
системд-логинд: Управља пријављивањем корисника.
системд-ресолвед: Пружа резолуцију имена мреже локалним апликацијама.
системд-нетворкд: Управља и открива мрежне уређаје и управља мрежним конфигурацијама.
системд-тмпфилес: Креира, брише и чисти нестабилне и привремене датотеке и директоријуме.
системд-лоцалед: Управља поставкама локализације система.
системски машински: открива и надгледа виртуелне машине и контејнере.
системд-нспавн: Може да покрене команду или други процес у лаганом контејнеру именског простора, дајући функционалност сличну цхроот.

И то је само врх леденог брега, који је уједно и суштина ствари. системд је одавно превазишао оно што се захтева од инит система, што је, према његовим противницима, сама дефиниција пузања опсега.

„То је превелика. То чини превише.”

Противници системд-а истичу велику, чудну комбинацију функционалности коју он обухвата. Све ове функције су већ постојале у Линуку и, можда, некима од њих је било потребно освежење или нови приступ. Међутим, удружити све ове функционалности у оно што би требало да буде инит систем је архитектонски збуњујуће.

системд је назван једном тачком отказа за превише критичних функција, али то изгледа неоправдано. Додуше, баца Уник филозофија стварања малих алата који раде заједно уместо великих комада софтвера који све раде ван прозора. Иако системд није стриктно монолитан (састоји се од многих бинарних датотека, а не од једног огромног), он укључује много различитих алата за управљање и команди под једним кишобраном.

Иако можда није монолитан, велики је. Да бисмо стекли представу о размери, избројали смо редове текста у бази кода кернела 5.6.15 и мастер грани системд ГитХуб спремишта.

  Како направити Виндовс УСБ диск на Линук-у са ВоеУСБ-ом

Ово је била релативно груба метрика. Бројао је редове текста, а не само редове кода. Дакле, ово је укључивало коментаре, документацију и све остало. Међутим, то је било слично поређење и дало нам је једноставно мерило:

( find ./ -name '*.*' -print0 | xargs -0 cat ) | wc -l

Кернел је имао скоро 28 милиона (27,784,340, тачније) редова текста. Насупрот томе, системд је имао 1,349,969, или скоро 1,4 милиона. Са нашом срећном метриком, системд има око 5 процената величине кернела, што је сулудо!

Као друго поређење, број линија за модерну имплементацију Систем В инит за Арцх Линук дистрибуцију је износио 1.721 ред.

Песништво очигледно нема обзира на Институт инжењера електротехнике и електронике (ИЕЕЕ) Цомпутер Социети, нити Интерфејс преносивог оперативног система (ПОСИКС) стандард. У ствари, он подстицао програмере да игноришу ПОСИКС:

„Дакле, набавите себи копију Линук програмског интерфејса, занемарите све што пише о ПОСИКС компатибилности и хакирајте свој невероватан Линук софтвер. То је прилично олакшавајуће!”

Постојале су оптужбе да је системд Ред Хат пројекат који користи само Ред Хату, али се насилно уноси у шири Линук свет. Да, рођен је у оквиру Ред Хата и њиме се управља и управља. Међутим, од 1.321 сарадника, само мали део ради за Ред Хат.

Дакле, које су предности Ред Хата?

Јим Вхитехурст, председник ИБМ-а, који је био једном је генерални директор Ред Хата рекао:

„Ред Хат је размотрио многе доступне опције и чак је користио Цаноницалов Упстарт за Ред Хат Ентерприсе Линук 6. На крају, изабрали смо системд јер је то најбоља архитектура која обезбеђује проширивост, једноставност, скалабилност и добро дефинисане интерфејсе за решавање проблема које видимо данас и предвидети у будућности.”

Вајтхурст је такође рекао да виде предности и у уграђеним системима. Ред Хат је партнер са „највећим добављачима уграђених уређаја на свету, посебно у телеком и аутомобилској индустрији где су стабилност и поузданост на првом месту.

Ово изгледају као технички оправдани разлози. Можете разумети потребу компаније за поузданошћу, и није неразумно да Ред Хат води рачуна о сопственим интересима, али да ли би сви остали требало да следе њихов пример?

Пијете системд Коол-Аид?

Неки противници системд-а кажу да дистрибуције и људи само слепо следе Ред Хат-ово вођство и усвајају га.

Међутим, баш као и фраза, „попити Коол-Аид“, то није сасвим тачно. Кован 1978. после вођа култа, Џим Џонс, приморао је својих преко 900 пратилаца да изврше самоубиство пијући течност са укусом грожђа прожету цијанидом, фраза погрешно срамоти Коол-Аид. Група је заправо пила Флавор Аид, али Коол-Аид је од тада био катрањен од те четке.

Плус, Линук дистрибуције не прате слепо Ред Хат; они усвајају системд након озбиљног разматрања. Дебата је беснела о Дебиан маилинг листе већ дуже време. Међутим, 2014. године заједница је гласала за усвајање система као подразумевани инит систем, али и да подржава алтернативе.

Дебиан је важан пример јер није изведен из РедХат-а, Федора-е или ЦентОС-а. На Дебиан-у из Ред Хат-а није примењено управљање. И Дебиан, као и ПИД 1, има много потомака, укључујући Убунту и његове бројне спин-офф-ове.

  Како пратити напредак Линук команди (са пв-ом и напретком)

Одлуке које доноси Дебиан заједница су далекосежне. О њима се такође жустро расправља и гласа се за употребу Цондорцетов метод гласања. Ни заједница не доноси олако такве изборе.

Поново је гласала у децембру 2019 да се настави фокусирати на системд и да настави да истражује алтернативе. Супротно слепом праћењу, ово је заправо уџбенички пример демократије и слободе избора на делу.

Ограничења избора

Обично не можете да бирате да ли ћете користити системд са одређеном Линук дистрибуцијом. Уместо тога, саме дистрибуције бирају да ли желе да га користе, а ви можете да изаберете коју дистрибуцију Линука преферирате. Можда је Линук дистрибуција коју волите прешла на системд. Попут омиљеног музичара који мења жанрове, ово може бити неугодно.

Људи који користе Дебиан, Федора, ЦентОС, Убунту, Арцх, Солус, и опенСУСЕ, и приговоре на усвајање системд-а, могли би осетити да су избачени из употребе своје дистрибуције избора. Ако се осећају довољно снажно у вези са било којим архитектонским избором, смањењем обима или занемаривањем ПОСИКС-а, можда ће сматрати да је неодрживо да наставе да користе ту дистрибуцију.

Постоји спектар, наравно. На једном крају имате људе који не разумеју проблеме (или их је чак брига), а са друге стране имате страствене приговараче. Негде у средини су они који не воле промене, али им то није довољно да би прескочили брод. Али шта је са дистрибутивним избеглицама, које због својих преференција или принципа не могу да остану на својој дистрибуцији?

Нажалост, није тако једноставно као само инсталирање било ког инит система који желите. Немају сви техничку могућност да то ураде, без обзира на потешкоће које настају када апликације или десктоп окружења, као што је ГНОМЕ, имају зависности од системд.

Шта је са преласком на другу дистрибуцију? Неки воле Девуан, појавио се као несистемски форкс дистрибуција (у овом случају Дебиан) који је усвојио системд. Коришћење Девуана би требало да буде слично родитељској дистрибуцији, али то није случај за све несистемске виљушке. На пример, ако напустите Федору и пређете на АнтиКс, Гентоо, или Слацкваре, имаћете сасвим другачије искуство.

Не иде нигде

Свиђа ми се нешто од онога што системд ради (једноставни и стандардизовани контролни механизми за процесе). Не разумем разлоге за неке од онога што ради (бинарни дневники). Не свиђа ми се и нешто од онога што ради (преуређење кућних фасцикли — ко је то тражио?).

Дистрибуције попут Дебиана раде паметне ствари и истражују алтернативе како би његове опције биле отворене. Међутим, системд је у томе на дуге стазе.

Ако администрирате Линук машине за друге, научите системд као што знате Систем В инит. На овај начин, без обзира на шта наиђете, моћи ћете да обављате своје дужности.

Само користите Линук код куће? Ако јесте, изаберите дистрибуцију која задовољава ваше техничке потребе и допуњује вашу Линук идеологију.