Je li dizajn jezgre Linuxa zastario?

Je li dizajn jezgre Linuxa zastario?

Linux je godinama postigao velike korake, napredujući daleko dalje od mjesta na kojem je bio kad je započeo. No, jedan se redditor nedavno pitao pati li Linux od zastarjelog dizajna jezgre. Postavio je svoje pitanje u Linuxu subreddit i dobio nekoliko zanimljivih odgovora.

Ronis_BR je započeo nit s ovim komentarima:

Korisnik sam Linuxa od 2004. Znam puno o tome kako koristiti sustav, ali ne razumijem previše o tome što je ispod haube jezgre. Zapravo se moje znanje zaustavlja u tome kako kompajlirati vlastiti kernel.

Međutim, želio bih ovdje pitati računalne znanstvenike koliko je Linux kernel zastario s obzirom na njegov dizajn? Mislim, pokrenut je 1992. godine i neke se karakteristike nisu promijenile. S druge strane, pretpostavljam da je vrhunsko stanje dizajna jezgre OS-a (ako ovo postoji ...) trebalo puno napredovati.

Je li moguće navesti u kojim je točkama dizajn Linux jezgre napredniji u odnosu na dizajn Windows, macOS, FreeBSD kernela? (Primijetite da mislim na dizajn, a ne na to koji je bolji. Na primjer, HURD ima izvrstan dizajn, ali prilično je jednostavno reći da je Linux danas puno napredniji).

Više na Redditu

Njegovi kolege reditelji Linuxa odgovorili su svojim razmišljanjima o dizajnu jezgre:

ExoticMandibles : "" Zastarjelo "? Ne. Dizajn jezgre Linux dobro je informiran o modernom dizajnu jezgre. Samo što treba donijeti odluke, a Linux je krenuo s tradicionalnim.

Napetost u dizajnu jezgre je između "sigurnosti / stabilnosti" i "performansi". Mikro jezgre promiču sigurnost po cijenu performansi. Ako imate sitno-majušnu ​​minimalnu mikro jezgru, u kojoj jezgra olakšava razgovore s hardverom, upravljanjem memorijom, IPC-om i još malo toga, imat će relativno malu površinu API-ja što otežava napad. A ako imate upravljački program datotečnog sustava / upravljački program grafike / itd., Vozač se može srušiti bez uklanjanja jezgre i vjerojatno se može bezazleno ponovo pokrenuti. Vrhunska stabilnost! Vrhunska sigurnost! Sve dobre stvari.

Loša strana ovog pristupa je vječna, neizbježna režija cijelog tog IPC-a. Ako vaš program želi učitati podatke iz datoteke, mora pitati upravljački program datotečnog sustava, što znači da IPC obrađuje preklopnik konteksta procesa i dva prijelaza prstena. Tada upravljački program datotečnog sustava traži kernel da razgovara s hardverom, što znači dva prijelaza prstena. Tada upravljački program datotečnog sustava šalje svoj odgovor, što znači više prijelaza u dva prstena IPC-a i još jedan kontekstni prekidač. Ukupni režijski troškovi: dva preklopnika konteksta, dva IPC poziva i šest prijelaza zvona. Vrlo skupo!

Monolitna jezgra savija sve pokretačke programe uređaja u jezgru. Dakle, programski upravljački program s programskim pogreškama može ukloniti jezgru, ili ako ima sigurnosnu rupu, mogao bi se iskoristiti za ugrožavanje sustava. Ali! Ako vaš program treba učitati nešto s diska, on poziva jezgru koja vrši prijelaz prstena, razgovara s hardverom, izračunava rezultat i vraća rezultat, radeći još jedan prijelaz prstena. Ukupni troškovi: dva prijelaza u prsten. Puno jeftinije! Puno brže!

Ukratko, mikrojedrični pristup kaže "Odustanimo od performansi za vrhunsku sigurnost i stabilnost"; monolitni pristup jezgri kaže "zadržimo performanse i samo popravimo probleme sa sigurnošću i stabilnošću dok se pojave." Čini se da svijet prihvaća, ako ne i više, takav pristup.

ps Windows NT nikada nije bio čisto mikro jezgro, ali je dugo bio mikrojezgro. NT 3.x imao je grafičke upravljačke programe kao korisnički postupak, a iskreno NT 3.x bio je super stabilan. NT 4.0 premjestio je grafičke upravljačke programe u jezgru; bio je manje stabilan, ali mnogo učinkovitiji. Ovo je bio općenito popularan potez. "

F22Rapture : „Praktična prednost monolitnog pristupa jezgri koja se odnosi na Linux jest ta što tjera dobavljače hardvera da ubace svoje upravljačke programe u jezgru, jer malo dobavljača hardvera želi samostalno pratiti promjene sučelja jezgre. Budući da je sva većina pokretačkih programa ugrađena u stablo, sučelja se mogu kontinuirano refaktorizirati bez potrebe za podrškom naslijeđenih API-ja. Kernel samo jamči da neće razbiti korisnički prostor, a ne kernel prostor (upravljački programi), a velika je pomutnja kada su u pitanju ona sučelja upravljačkih programa koja dobavljače tjeraju da glavne programe upravljaju glavnim programima. Nvidia je jedan od rijetkih dobavljača kojih se mogu sjetiti, a koji ima resurse za održavanje vlastitog upravljačkog programa koji ne funkcionira u potpunosti zasnovan na vlasničkim komponentama.

Pretpostavljam da bi vozači bili njihovi mali otoci odvojeni stabilnim sučeljima, možda ne bismo imali toliko tvrtki spremnih otvoriti svoj kod. "

Mallardtheduck : „U ovom kontekstu,„ monolitno “se ne odnosi na to da imaju (gotovo) sav kôd jezgre i pokretačkog programa u jednom izvornom stablu, već na činjenicu da se čitava jezgra i pokretački programi izvršavaju kao jedan„ zadatak “u jedan adresni prostor.

To se razlikuje od "mikro jezgre" gdje se različiti elementi jezgre i pokretački programi izvršavaju kao zasebni zadaci s odvojenim adresnim prostorima.

Kao što je spomenuto, jezgra sustava Windows u osnovi je monolitna, ali se upravljački programi i dalje razvijaju zasebno. macOS koristi svojevrsnu hibridnu jezgru koja u svojoj osnovi koristi mikro jezgru, ali još uvijek ima gotovo sve u jednom "zadatku", unatoč tome što je gotovo sve upravljačke programe razvio / isporučio Apple. "

Slabity : „Ljudi to raspravljaju od prije 2004. Rasprava Tanenbaum-Torvalds 1999. godine 1992. veliki je primjer argumenata između dizajna mikrokera i monolitnih zrna.

Osobno sam dio kampa za mikrokere. Oni su čišći, sigurniji i prenosiviji. S tim u vezi, dizajn jezgre zastario je u trenutku kada je stvoren.

... Linux je prevladao mnoštvo problema koji dolaze s monolitnim dizajnom jezgre. Postao je modularan, njegova stroga politika koda učinila ga je relativno sigurnim i mislim da se nitko neće svađati protiv toga koliko je prijenosan. "

TEchnicolourSocks : „Postoji samo jedan ispravan način dizajna jezgre i to je način TempleOS-a.

Napisano u HolyC, ne umreženo, samo ring-0. Kao što je Bog naumio. "

Scandalousmambo : „Priroda razvoja sustava koji je tako složen kao Linux jezgra znači da će uvijek biti" zastario "prema ljudima koji su bili u visokim stolicama kad je prvi put dizajniran.

Ovaj operativni sustav vjerojatno predstavlja desetke milijuna radnih sati.

Može li se zamijeniti? Naravno. Hoće li? Ne."

Grumbel : „Čisto u praktičnom smislu to više nema velike razlike. Nekada je HURD bio nekako cool sa svojim datotečnim sustavima korisničkog prostora i slično. Ali od tada je Linux stekao većinu te funkcionalnosti. Ako želite napisati datotečni sustav, usb upravljački program ili uređaj za unos u korisničkom prostoru, možete, nema potrebe za hakiranjem jezgre. Sada čak možete zakrpati jezgru tijekom izvođenja ako to stvarno želite.

Čini se da filozofija Linuxa da se jednostavno ne pišu programski upravljački programi koji uopće sruše jezgru, umjesto da ga čine super robusnim protiv usranih upravljačkih programa, također funkcionira prilično dobro u stvarnom svijetu. Vjerojatno na tome moramo zahvaliti USB-u, jer je hardver koji se sam opisuje uklonio potrebu za pisanjem novog upravljačkog programa za svaki novi uređaj koji priključite na računalo.

Dakle, cijela rasprava o dizajnu sada je akademskija više nego što je bila, jer jednostavno nije ostalo puno značajki koje biste stekli samo promjenama dizajna i koje ne biste mogli implementirati u monolitnu jezgru. "

KugelKurt : „Iako se velik dio rasprave ovdje govori o mikrozrnima i monolitnom jezgru, novije istraživanje odnosilo se na programske jezike.

Ako ste danas pokrenuli potpuno novu jezgru, velika je vjerojatnost da ona neće biti napisana u C. Microsoftovi projekti Singularity i Midori istraživali su izvedivost C # / upravljanih jezgri koda.

Najpoznatiji neistraživački OS bez jezgre C vjerojatno je Haiku koji je napisan na C ++. "

OmniaVincitVeritas : „Bio je zastario kad je prvi put stvoren i još uvijek je takav. Ali, kao što znamo, tehnički napredak gotovo nikada ne djeluje tako da se tehnički / znanstveno superiorno rješenje kratkoročno izdiže na vrh; toliko mnogo drugih stvari utječe i na uspjeh.

Da jest, pokrenuli bismo 100% sigurne mikro jezgre napisane na Haskellu. Zaštitarske tvrtke ne bi postojale. Imao bih hibrid jednoroga / ponija koji radi na sunčevoj svjetlosti. "

Daemonpenguin : „Postoje neki koncepti koji u teoriji mogu pružiti bolji dizajn jezgre. Na primjer, postoji Rust kernel, koji bi mogao uskočiti niz vektora napada memorije. Mikrojezgre imaju u teoriji nekoliko vrlo dobrih dizajnerskih izbora koji ih čine prijenosnima, pouzdanima i potencijalno samokorekcijskim.

Međutim, pitanje je što su oni više teorija nego praksa. Bez obzira koliko dobra teorija bila dobra, ljudi će gotovo uvijek uzeti ono što je praktično (tj. Raditi sada) umjesto boljeg dizajna. Linux kernel ima toliko hardverske podrške i toliko tvrtki koje financiraju razvoj da je malo vjerojatno da će ih druga jezgra (bez obzira na njihov cool dizajn izbor) sustići.

Na primjer, MINIX ima solidan dizajn i neke sjajne značajke, ali ima vrlo malo hardverske podrške, tako da gotovo nitko ne razvija platformu. "

Više na Redditu

DistroWatch recenzije 4MLinux 21.0

Linux nudi mnogo različitih vrsta distribucija. Neki se isporučuju s više softvera, a neki s manje. 4MLinux namijenjen je onima koji preferiraju laganu distribuciju. Pisac u DistroWatchu ima cjelovitu recenziju 4MLinux 21.0.

Joshua Allen Holm izvještava za DistroWatch:

4MLinux je lagana Linux distribucija dizajnirana da pruži četiri ključna područja funkcionalnosti. Uz samo softver dostupan na ISO-u, 4MLinux nudi širok spektar aplikacija za obavljanje održavanja sustava; reprodukcija mnogih vrsta multimedijskih datoteka; nuđenje miniservera za pružanje osnovnog web poslužitelja; i ima pristojan izbor igara, koje distribucija smješta u kategoriju koju naziva tajnom. Te četiri funkcije daju osnovu naziva distribucije. Četiri stvari koje počinju s "M", dakle 4MLinux.

Dizanje 4MLinux-a s flash pogona brz je postupak. Bio sam brzo i automatski prijavljen kao root i mogao sam početi raditi u radnom okruženju. Za radnu površinu 4MLinux koristi JVM u kombinaciji s pokretačem Wbara na vrhu zaslona koji nudi prečace do glavnih programa. Uz to postoji IDesk za upravljanje radnom površinom i Conky za pružanje osnovnih informacija o statusu sustava. Wbar, IDesk i Conky mogu se isključiti, ali sustav je već vrlo lagan kad su u zadanom, omogućenom stanju.

4MLinux se isporučuje s pristojnim izborom softvera. U izborniku JVM aplikacija nalaze se prečaci terminala, internetskih aplikacija, održavanja, multimedije, miniservera i misterija. Podizbornik Internet sadrži poveznice za pregledavanje weba, HexChat za IRC, Sylpheed za e-poštu, prijenos za Bittorrent, uGet za preuzimanje, uslužni program za dijeljenje datoteka putem Bluetootha, GNOME PPP za dial-up internetske veze i opciju za uključite i isključite Tor.

4MLinux nudi puno softvera u malom paketu. Za održavanje sustava dobar je izbor imati pri ruci. Za multimediju, miniserver i misterij pruža koristan odabir softvera, ali postoje i druge distribucije koje se usredotočuju samo na jedan od tih zadataka i to bolje rade fokusiranjem. To ne znači da je 4MLinux loš, ali pokušava odjednom raditi previše različitih stvari. Da budem potpuno iskren, mislim da bi 4MLinux bio jača ponuda da je 3MLinux i u potpunosti odbacio tajnoviti aspekt. Možda uključivanje samo pasijansa ili neke druge lagane igre koju ćete preusmjeriti dok se izvršavaju zadaci održavanja i iskoristite oslobođeni prostor uklanjanjem igara kako bi prema zadanim postavkama uključili neke od dodatnih aplikacija za proširenje.

Više na DistroWatchu

LinuxInsider recenzije Ultimate Edition 5.4

S druge strane, Ultimate Edition nalazi se na suprotnom kraju spektra od 4MLinux-a. UE je definitivno maksimalistički užitak jer je prepun softvera. Pisac iz LinuxInsider-a ima cjelovitu recenziju Ultimate Edition 5.4.

Jack M. Germain izvještava za LinuxInsider:

Nisam bio oduševljen svojim početnim praktičnim iskustvima prilikom upoznavanja s Ultimate Edition 5.4. Pronašao sam dosadan popis stvari s kojima nije u redu.

S dugogodišnjim pregledom Linux distribucija ispod svog pojasa, primijetio sam čvrstu vezu između prvih utisaka na web mjestu distribucije i trajnih utisaka o performansama distribucije. Recimo samo da se neorganizirano stanje web stranice, u ovom slučaju, provlači u najnovijem izdanju ove distribucije.

Jedan mali primjer: nigdje nisam našao popis minimalnih zahtjeva za instalaciju hardvera. To se pokazalo frustrirajućim. Gubio sam vrijeme pokušavajući učitati Ultimate Linux na nekoliko starijih računala. Neki su se problemi odnosili na memoriju i prostor za pohranu. Ostala pitanja uključuju nedostatke grafičke kartice.

Ultimate Edition cilja na došljake iz Linuxa, ali onima koji to pokušavaju možda će trebati malo više poznavanja Linuxa kako bi zaobišli neke probleme u pokretanju ovog ne baš ultimativnog Linux OS-a.

Više na LinuxInsideru

Jeste li propustili pregled? Provjerite početnu stranicu Eye On Open da biste se upoznali s najnovijim vijestima o otvorenom kodu i Linuxu .