Programavimas

Ar „Linux“ branduolio dizainas yra pasenęs?

Ar „Linux“ branduolio dizainas yra pasenęs?

Per daugelį metų „Linux“ padarė didelę pažangą ir žengė toli už savo pradžios ribų. Tačiau vienas redditoras neseniai domėjosi, ar „Linux“ kenčia nuo pasenusio branduolio dizaino. Jis uždavė savo klausimą „Linux subreddit“ ir gavo įdomių atsakymų.

Ronis_BR pradėjo giją šiais komentarais:

„Linux“ vartotoju esu nuo 2004 m. Aš daug žinau, kaip naudotis sistema, bet per daug nesuprantu, kas yra po branduolio gaubtu. Tiesą sakant, mano žinios sustoja, kaip sukompiliuoti savo branduolį.

Tačiau norėčiau čia paklausti informatikų, kiek pasenęs yra „Linux“ branduolys, atsižvelgiant į jo dizainą? Turiu omenyje, kad jis buvo pradėtas 1992 m., O kai kurios savybės nepasikeitė. Kita vertus, spėju, kad OS branduolio projektavimo pažanga (jei tokia egzistuoja ...) turėtų būti gerokai pažengusi į priekį.

Ar galima nurodyti, kokiais momentais „Linux“ branduolio dizainas yra pažangesnis, palyginti su „Windows“, „macOS“, „FreeBSD“ branduolių dizainu? (Atkreipkite dėmesį, kad turiu omenyje dizainą, o ne tai, kuris yra geresnis. Pavyzdžiui, HURD turi puikų dizainą, tačiau gana paprasta pasakyti, kad „Linux“ šiandien yra kur kas pažangesnė).

Daugiau „Reddit“

Jo kolegos „Linux redditors“ atsakė mintimis apie branduolio dizainą:

ExoticMandibles: „„ Pasenęs “? Ne. „Linux“ branduolio dizainas yra gerai informuotas apie šiuolaikinį branduolio dizainą. Tiesiog reikia rinktis, o „Linux“ atitiko tradicinį.

Branduolio kūrimo įtampa yra tarp „saugumo / stabilumo“ ir „našumo“. Mikrokerneliai skatina saugumą savikaina. Jei turite mažų mažų mažiausių mikrobranduolių, kur branduolys palengvina kalbėjimąsi su aparatūra, atminties valdymu, IPC ir dar šiek tiek kitu, jis turės palyginti mažą API paviršių, todėl jį sunku užpulti. Ir jei turite klaidų failų sistemos tvarkyklę / grafikos tvarkyklę / ir tt, tvarkyklė gali sugesti nenukeldama branduolio ir tikriausiai gali būti paleista iš naujo nekenksmingai. Aukščiausias stabilumas! Aukščiausias saugumas! Visi geri dalykai.

Šio požiūrio trūkumas yra amžina, neišvengiama pridėtinė viso to NPK dalis. Jei jūsų programa nori įkelti duomenis iš failo, ji turi paprašyti failų sistemos tvarkyklės, o tai reiškia IPC, kad procesas apdorotų proceso konteksto jungiklį ir du žiedinius perėjimus. Tada failų sistemos tvarkyklė paprašo branduolio kalbėtis su aparatūra, o tai reiškia du žiedo perėjimus. Tada failų sistemos tvarkyklė siunčia savo atsakymą, o tai reiškia daugiau IPC dviejų žiedinių perėjimų ir kitą konteksto jungiklį. Bendra pridėtinė kaina: du konteksto jungikliai, du IPC skambučiai ir šeši skambučių perėjimai. Labai brangus!

Monolitinis branduolys sulanksto visus įrenginio tvarkykles į branduolį. Taigi, bagažinės grafikos tvarkyklė gali pašalinti branduolį, arba, jei jame yra saugumo spraga, jį galima panaudoti pakenkiant sistemai. Bet! Jei jūsų programai reikia ką nors įkelti iš disko, ji iškviečia branduolį, kuris perkelia žiedą, kalbasi su aparatūra, apskaičiuoja rezultatą ir grąžina rezultatą, atlikdamas kitą žiedo perėjimą. Bendra pridėtinė suma: du žiediniai perėjimai. Daug pigiau! Daug greičiau!

Trumpai tariant, mikrobranduolių metodas sako: „Atsisakykime našumo, kad būtų užtikrintas aukštesnis saugumas ir stabilumas“; monolitinio branduolio metodas sako: „išlaikysime našumą ir tiesiog išspręskime saugumo ir stabilumo problemas, kai jos išaugs“. Panašu, kad pasaulis priima šį požiūrį, jei ne.

p.s. „Windows NT“ niekada nebuvo grynas mikrobranduolys, tačiau ilgą laiką jis buvo mikrokernelinis. NT 3.x turėjo grafikos tvarkykles kaip vartotojo procesą, ir sąžiningai, NT 3.x buvo ypač stabilus. NT 4.0 perkėlė grafikos tvarkykles į branduolį; jis buvo mažiau stabilus, bet daug efektyvesnis. Tai buvo paprastai populiarus žingsnis “.

F22Rapture: „Praktinė monolitinio branduolio požiūrio nauda, ​​kaip ir„ Linux “, yra tai, kad jis verčia aparatūros pardavėjus įtraukti savo tvarkykles į branduolį, nes nedaug aparatinės įrangos gamintojų nori patys neatsilikti nuo branduolio sąsajos pakeitimų. Kadangi dauguma vairuotojų yra medyje, sąsajas galima nuolat atnaujinti, nereikalaujant palaikyti senų API. Branduolys tik garantuoja, kad jie nesulaužys naudotojų srities, o ne branduolio srities (tvarkyklių), ir yra daugybė klaidų, kai kalbama apie tas tvarkyklių sąsajas, kurios verčia pardavėjus sutvarkyti savo tvarkykles. „Nvidia“ yra vienas iš nedaugelio pardavėjų, kurį galiu sugalvoti ir kuris turi išteklių išlaikyti savo „out-of-tree“ tvarkyklę, pagrįstą visiškai nuosavais komponentais.

Įtariu, kad jei vairuotojai būtų jų pačių mažos salos, kurias skiria stabilios sąsajos, galbūt neturėsime tiek daug bendrovių, kurios norėtų atidaryti savo kodą. “

Mallardtheduck: „Šiame kontekste„ monolitinis “nereiškia, kad (beveik) visas branduolio ir tvarkyklės kodas yra viename šaltinio medyje, tai reiškia, kad visas branduolys ir tvarkyklės veikia kaip viena„ užduotis “viename adreso erdvė.

Tai skiriasi nuo „mikrobranduolio“, kur įvairūs branduolio elementai ir tvarkyklės vykdomos kaip atskiros užduotys su atskiromis adresų erdvėmis.

Kaip minėta, „Windows“ branduolys iš esmės yra monolitinis, tačiau tvarkyklės vis tiek kuriamos atskirai. „macOS“ naudoja tam tikrą hibridinį branduolį, kurio branduolys naudoja mikroranduolį, tačiau vis tiek turi beveik viską vienoje „užduotyje“, nepaisant to, kad beveik visus tvarkykles sukūrė / tiekė „Apple“.

Plotumas: „Žmonės tai ginčijasi nuo 2004 m.. Tanenbaumo ir Torvaldso diskusijos 1999 m. 1992 m. Yra puikus pavyzdys tarp mikrokernelio ir monolitinio branduolio dizaino.

Aš asmeniškai esu mikrobranduolių stovyklos dalis. Jie švaresni, saugesni ir nešiojami. Šiuo atžvilgiu branduolio dizainas buvo pasenęs jo sukūrimo momentu.

... „Linux“ įveikė daugybę problemų, susijusių su monolitinio branduolio dizainu. Jis tapo moduliniu, griežta kodų politika išlaikė jį palyginti saugų ir nemanau, kad kas nors prieštarautų, koks jis yra nešiojamas. “

TEchnicolourSocks: „Yra tik vienas teisingas branduolio kūrimo būdas ir„ TempleOS “būdas.

Parašyta „HolyC“, be tinklo, tik žiedas-0. Kaip Dievas ketino “.

Skandalousmambo: „Tokios sudėtingos sistemos, kaip„ Linux “branduolys, kūrimo pobūdis reiškia, kad ji visada bus„ pasenusi “, pasak žmonių, buvusių aukštose kėdėse, kai ji buvo sukurta pirmą kartą.

Ši operacinė sistema greičiausiai atspindi dešimtis milijonų žmogaus darbo valandų.

Ar galima jį pakeisti? Aišku. Ar tai? Ne. “

Grumbelis: „Kalbant tik praktiškai, tai neturi jokio didelio skirtumo. Tą dieną HURD buvo savotiškas dalykas su savo vartotojo erdvės failų sistemomis ir pan. Tačiau „Linux“ nuo to laiko įgijo didžiąją dalį šios funkcijos. Jei norite parašyti failų sistemą, USB tvarkyklę ar įvesties įrenginį vartotojų srityje, galite, nereikia įsilaužti į branduolį. Dabar, jei tikrai norite, galite net užtaisyti branduolį vykdymo metu.

Atrodo, kad „Linux“ filosofija tiesiog nerašyti klaidingų tvarkyklių, kurios sugadina branduolį, užuot padariusios ją ypač tvirtą prieš šmaikščius tvarkykles, realiame pasaulyje taip pat veikia gana gerai. Tikriausiai turime už tai padėkoti USB, nes aparatinės įrangos, kuri apibūdina save, nereikėjo rašyti naujos tvarkyklės kiekvienai naujai programai, kurią prijungiate prie kompiuterio.

Taigi visos diskusijos dėl dizaino dabar yra dar akademiškesnės, nei buvo anksčiau, nes tiesiog neliko daugybės funkcijų, kurias įgytumėte vien atlikę dizaino pakeitimus ir kurių negalėtumėte įdiegti į monolitinį branduolį “.

KugelKurt: „Nors čia daug diskutuojama apie mikrobrandelius ir monolitinį branduolį, naujesni tyrimai buvo atlikti programavimo kalbų srityje.

Jei šiandien sukūrėte visiškai naują branduolį, tikėtina, kad tai nebus parašyta C. „Microsoft“ projektuose „Singularity“ ir „Midori“ buvo tiriama C # / valdomų kodų branduolių galimybė.

Labiausiai žinoma ne tyrimų OS, be C branduolio, tikriausiai yra „Haiku“, parašyta C ++. “

„OmniaVincitVeritas“: „Jis buvo pasenęs, kai buvo sukurtas, ir yra iki šiol. Tačiau, kaip žinome, techninė pažanga beveik niekada neveikia taip, kad techniškai / moksliškai geresnis sprendimas per trumpą laiką iškiltų į viršų; tiek daug kitų dalykų taip pat turi įtakos sėkmei.

Jei taip būtų, mes paleistume 100% saugius mikrobrandelius, parašytus Haskell'e. Apsaugos bendrovių nebūtų. Aš turėčiau vienaragio / ponio hibridą, veikiantį saulės šviesoje “.

Daemonpenguin: „Yra keletas sąvokų, kurios teoriškai gali suteikti geresnį branduolio dizainą. Pavyzdžiui, yra „Rust“ branduolys, kuris gali šoniniu būdu pakoreguoti daugybę atminties atakos vektorių. Teoriškai mikrokerneliai turi keletą labai gerų dizaino variantų, dėl kurių jie gali būti nešiojami, patikimi ir gali patys save koreguoti.

Tačiau klausimas yra daugiau teorija nei praktika. Nesvarbu, kokia gera teorija yra, žmonės beveik visada perims tai, kas praktiška (t. Y. Dirba dabar), kad suprastų geresnį dizainą. „Linux“ branduolys turi tiek daug aparatinės įrangos palaikymo ir tiek daug įmonių, kurios finansuoja plėtrą, kad vargu ar kiti branduoliai (nepaisant jų šaunių dizaino pasirinkimų) pasivys.

Pavyzdžiui, „MINIX“ yra tvirto dizaino ir kai kurių nuostabių funkcijų, tačiau turi labai mažai techninės įrangos palaikymo, todėl beveik niekas netobulėja platformai. “

Daugiau „Reddit“

„DistroWatch“ peržiūri 4MLinux 21.0

„Linux“ siūlo daug įvairių rūšių platinimų. Kai kurie turi daugiau programinės įrangos, o kiti - mažiau. „4MLinux“ yra skirta tiems, kurie nori lengvo paskirstymo. „DistroWatch“ rašytojas turi išsamią „4MLinux 21.0“ apžvalgą.

Joshua Allenas Holmas praneša „DistroWatch“:

„4MLinux“ yra lengvas „Linux“ paskirstymas, sukurtas keturioms pagrindinėms funkcijų sritims teikti. Turėdamas tik ISO programinę įrangą, „4MLinux“ teikia daugybę programų, skirtų sistemos priežiūrai atlikti; groti daugelio rūšių daugialypės terpės failus; siūlyti miniserverį pagrindiniam interneto serveriui suteikti; ir jis turi deramą žaidimų pasirinkimą, kurį platinimas priskiria kategorijai, kurią jis vadina paslaptimi. Šios keturios funkcijos yra paskirstymo pavadinimo pagrindas. Keturi dalykai, prasidedantys „M“, taigi 4MLinux.

4MLinux paleidimas iš „flash“ disko yra greitas procesas. Buvau greitai ir automatiškai prisijungęs kaip root ir galėjau pradėti dirbti darbalaukio aplinkoje. Darbalaukiui „4MLinux“ naudoja JVM kartu su „Wbar“ paleidimo priemone, esančia ekrano viršuje, kurioje pateikiamos nuorodos į pagrindines programas. Be to, „IDesk“ valdo darbalaukį, o „Conky“ teikia pagrindinę sistemos būsenos informaciją. „Wbar“, „IDesk“ ir „Conky“ galima išjungti, tačiau sistema jau yra labai lengva, kai yra numatytojoje, įjungtoje būsenoje.

Iš dėžutės „4MLinux“ yra tinkamas programinės įrangos pasirinkimas. „JVM“ programų meniu yra terminalo, interneto programų, priežiūros, daugialypės terpės, miniserverio ir paslapties nuorodos. Interneto submeniu yra nuorodos, skirtos naršyti internete, „HexChat“, skirta IRC, „Sylpheed“ el. Paštu, „Transmission for Bittorrent“, „uGet“ atsisiuntimui, programa, skirta dalytis failais per „Bluetooth“, „GNOME PPP“, kad būtų galima prisijungti prie telefono telefono, ir galimybė prisijungti prie interneto. įjungti ir išjungti „Tor“.

„4MLinux“ teikia daug programinės įrangos mažame pakete. Sistemos priežiūrai yra geras pasirinkimas turėti po ranka. Daugialypės terpės, miniserverų ir paslapčių atveju tai yra naudingas programinės įrangos pasirinkimas, tačiau yra ir kitų paskirstymų, kuriuose daugiausia dėmesio skiriama tik vienai iš tų užduočių ir tai atliekama geriau, kai yra labiau sutelktas. Tai nereiškia, kad „4MLinux“ yra blogas, tačiau bando padaryti per daug skirtingų dalykų vienu metu. Jei atvirai, manau, kad 4MLinux būtų stipresnis pasiūlymas, jei jis būtų 3MLinux ir visiškai atsisakytų paslapties. Galbūt įtraukite tik pasjansą ar kokį kitą lengvą žaidimą, kurį turėtumėte nukreipti, kai atliekamos priežiūros užduotys, ir naudokite vietą, atlaisvintą pašalinant žaidimus, kad pagal numatytuosius nustatymus būtų įtrauktos kai kurios pasirenkamos pratęsimo programos.

Daugiau „DistroWatch“

„LinuxInsider“ peržiūri „Ultimate Edition 5.4“

Kita vertus, „Ultimate Edition“ yra priešingame 4MLinux spektro gale. UE tikrai yra maksimalistinis malonumas, nes jame gausu programinės įrangos. „LinuxInsider“ rašytojas turi išsamią „Ultimate Edition 5.4“ apžvalgą.

Jackas M. Germainas praneša „LinuxInsider“:

Nebuvau sužavėta savo pradine praktine patirtimi, kai susipažinau su „Ultimate Edition 5.4“. Radau erzinantį blogų dalykų sąrašą.

Per daugelį metų peržiūrėdamas „Linux“ distributorius po diržu, pastebėjau tvirtą ryšį tarp pirmųjų „Distro“ svetainės įspūdžių ir ilgalaikių „Distro“ veiklos įspūdžių. Tarkime, kad šiuo atveju neorganizuota svetainės būklė pasireiškia naujausiame šio leidimo leidime.

Vienas nedidelis pavyzdys: niekur neradau minimalių aparatinės įrangos diegimo reikalavimų sąrašo. Tai pasirodė apmaudu. Aš sugaišau laiką bandydamas įkelti „Ultimate Linux“ į kelis senstančius kompiuterius. Kai kurie klausimai buvo susiję su atmintimi ir atmintimi. Kiti klausimai buvo susiję su grafikos plokštės trūkumais.

„Ultimate Edition“ yra skirtas naujokams „Linux“, tačiau norintiems išspręsti kai kurias problemas, susijusias su šios ne itin galutinės „Linux“ OS, gali prireikti šiek tiek daugiau susipažinti su „Linux“.

Daugiau „LinuxInsider“

Ar praleidote apvalinimą? Patikrinkite „Eye On Open“ pagrindinį puslapį, kad sužinotumėte naujausias naujienas apie atvirojo kodo ir „Linux“.