Остарял ли е дизайнът на ядрото на Linux?

Остарял ли е дизайнът на ядрото на Linux?

През годините Linux постигна големи крачки, напредвайки далеч отвъд мястото, където беше, когато започна. Но един redditor наскоро се зачуди дали Linux страда от остарял дизайн на ядрото. Той зададе въпроса си в Linux subreddit и получи няколко интересни отговора.

Ronis_BR стартира темата с тези коментари:

Потребител съм на Linux от 2004 г. Знам много за това как да използвам системата, но не разбирам твърде много какво се крие под капака на ядрото. Всъщност знанията ми спират как да компилирам собственото си ядро.

Бих искал обаче да попитам на компютърните учени тук колко е остаряло ядрото на Linux по отношение на неговия дизайн? Искам да кажа, че започна през 1992 г. и някои характеристики не се промениха. От друга страна, предполагам, че състоянието на изкуството на дизайна на ядрото на ОС (ако това съществува ...) трябва да е напреднало много.

Възможно ли е да се посочи в какви точки дизайнът на ядрото на Linux е по-напреднал в сравнение с дизайна на ядрата на Windows, macOS, FreeBSD? (Забележете, че имам предвид дизайна, а не кой е по-добър. Например, HURD има страхотен дизайн, но е доста лесно да се каже, че Linux е много по-напреднал днес).

Още в Reddit

Неговите колеги Linux редактори отговориха със своите мисли за дизайна на ядрото:

ExoticMandibles : „„ Остарял “? Не. Дизайнът на ядрото на Linux е добре информиран относно съвременния дизайн на ядрото. Просто има избор, който трябва да се направи, а Linux се придържа към традиционния.

Напрежението в дизайна на ядрото е между "сигурност / стабилност" и "производителност". Микроядрата насърчават сигурността с цената на производителността. Ако имате миниатюрни миниатюрни микроядра, където ядрото улеснява разговорите с хардуер, управление на паметта, IPC и малко други, то ще има относително малка повърхност на API, което затруднява атаката. И ако имате бъги драйвер на файлова система / графичен драйвер / и т.н., драйверът може да се срине, без да сваля ядрото и вероятно може да бъде рестартиран безвредно. Превъзходна стабилност! Превъзходна сигурност! Всички хубави неща.

Недостатъкът на този подход е вечният, неизбежен режим на целия този IPC. Ако вашата програма иска да зареди данни от файл, тя трябва да попита драйвера на файловата система, което означава IPC, който обработва превключвател на контекст на процеса, и два прехода на пръстена. След това драйверът на файловата система иска ядрото да говори с хардуера, което означава два прехода на пръстена. След това драйверът на файловата система изпраща своя отговор, което означава повече IPC два прехода на пръстена и друг контекстен превключвател. Общо режийни: два контекстни превключвателя, две IPC повиквания и шест прехода на позвъняване Много скъп!

Монолитно ядро ​​сгъва всички драйвери на устройства в ядрото. Така че бъги графичен драйвер може да свали ядрото или ако има дупка в сигурността, той може да бъде използван за компрометиране на системата. Но! Ако вашата програма трябва да зареди нещо от диска, тя извиква ядрото, което прави преход на пръстен, говори с хардуера, изчислява резултата и връща резултата, като прави друг преход на пръстен. Общо режийни: два прехода на пръстена. Много по-евтино! Много по-бързо!

Накратко, микроядреният подход казва „Нека се откажем от производителността за превъзходна сигурност и стабилност“; монолитният подход на ядрото казва „нека запазим производителността и просто да решим проблемите със сигурността и стабилността, докато се появяват“. Изглежда светът приема, ако не предпочита този подход.

ps Windows NT никога не беше чисто микроядро, но дълго време беше микроядро. NT 3.x имаше графични драйвери като потребителски процес и честно казано NT 3.x беше супер стабилен. NT 4.0 премести графични драйвери в ядрото; беше по-малко стабилен, но много по-ефективен. Това беше общо популярен ход. "

F22Rapture : „Практическа полза за подхода на монолитното ядро, приложим за Linux, е, че той тласка доставчиците на хардуер да вкарат своите драйвери в ядрото, тъй като малко производители на хардуер искат да бъдат в крак с промените в интерфейса на ядрото сами. Тъй като всички по-голямата част от драйверите са в дърво, интерфейсите могат непрекъснато да се рефакторират, без да е необходимо да се поддържат стари API. Ядрото гарантира само, че няма да разбият потребителското пространство, а не пространството на ядрото (драйвери) и има много бъркотия, когато става въпрос за тези интерфейси на драйвери, което тласка доставчиците да поддържат драйверите си. Nvidia е един от малкото доставчици, за които се сещам, които разполагат с ресурси да поддържат свой собствен извънреден драйвер, базиран изцяло на патентовани компоненти.

Подозирам, че ако драйверите бяха техните малки острови, разделени от стабилни интерфейси, може да нямаме толкова много компании, които желаят да отворят своя код. "

Mallardtheduck : „В този контекст„ монолитен “не се отнася до наличието (почти) на целия код на ядрото и драйвера в едно дърво на източника, а на факта, че цялото ядро ​​и драйверите се изпълняват като една„ задача “в единично адресно пространство.

Това се различава от "микроядрото", където различните елементи на ядрото и драйверите се изпълняват като отделни задачи с отделни адресни пространства.

Както споменахме, ядрото на Windows е основно монолитно, но драйверите все още се разработват отделно. macOS използва нещо като хибридно ядро, което използва микроядро в основата си, но все още има почти всичко в една "задача", въпреки че почти всички драйвери са разработени / предоставени от Apple. "

Slabity : „Хората спорят за това от преди 2004 г. Дебатът Tanenbaum-Torvalds през 1999 г. 1992 е голям пример за аргументите между дизайна на микроядрата и монолитните ядра.

Аз лично съм част от лагера на микроядрата. Те са по-чисти, по-безопасни и по-преносими. В тази връзка дизайнът на ядрото е остарял в момента, в който е създаден.

... Linux преодоля много проблеми, които идват с монолитни конструкции на ядрото. Стана модулен, стриктната му кодова политика го запази относително безопасен и не мисля, че някой би се противопоставил колко преносим е. "

TEchnicolourSocks : „Има само един правилен начин за дизайн на ядрото и това е начинът на TempleOS.

Написано в HolyC, не в мрежа, ring-0 само. Както Бог замисли ”.

Scandalousmambo : „Естеството на разработването на толкова сложна система, колкото ядрото на Linux, означава, че тя винаги ще бъде„ остаряла “според хората, които са били на високи столове, когато е била проектирана за първи път.

Тази операционна система вероятно представлява десетки милиони човешки часове труд.

Може ли да бъде заменен? Сигурен. Ще го Не."

Грумбел : „В чисто практически смисъл това вече няма особена разлика. Навремето HURD беше доста готин със своите файлови системи от потребителското пространство и подобни. Но оттогава Linux е придобил по-голямата част от тази функционалност. Ако искате да напишете файлова система, usb драйвер или устройство за въвеждане в потребителско пространство, можете, няма нужда да хакнете ядрото. Вече можете дори да поправите ядрото по време на изпълнение, ако наистина искате.

Философията на Linux просто да не се пишат бъги драйвери, които първоначално разбиват ядрото, вместо да се прави супер стабилна срещу скапани драйвери, също изглежда доста добре в реалния свят. Вероятно трябва да благодарим на USB за това, тъй като наличието на хардуер, който се описва сам, премахна необходимостта от писане на нов драйвер за всяка нова притурка, която включите в компютъра.

Така че целият дебат за дизайна сега е дори по-академичен от преди, тъй като просто не са останали много функции, които бихте получили само чрез промени в дизайна и които не бихте могли да внедрите в монолитно ядро. "

KugelKurt : „Въпреки че голяма част от дискусията тук е за микроядрата срещу монолитното ядро, по-скорошни изследвания бяха насочени към езиците за програмиране.

Ако стартирате изцяло ново ядро ​​днес, шансовете са, че няма да бъде написано в C. Проектите на Microsoft Singularity и Midori изследваха възможността за C # / управлявани кодови ядра.

Най-широко известната неизследователска операционна система без ядро ​​C вероятно е хайку, която е написана на C ++. "

OmniaVincitVeritas : „Той беше остарял, когато беше създаден за първи път и все още е такъв. Но, както знаем, техническият прогрес почти никога не работи, така че превъзходното технически / научно решение да се издигне на върха в краткосрочен план; толкова много други неща влияят и върху успеха.

Ако беше, щяхме да използваме 100% безопасни микроядра, написани на Haskell. Охранителни компании нямаше да съществуват. Бих имал хибрид еднорог / пони, който работи на слънчева светлина. "

Daemonpenguin : „Има някои концепции, които на теория могат да осигурят по-добър дизайн на ядрото. Има например ядро ​​Rust, което може да отклони редица вектори за атака на паметта. На теория микроядрата имат някои много добри избори за дизайн, които ги правят преносими, надеждни и потенциално самокорегиращи се.

Въпросът обаче е, че те са по-скоро теория, отколкото практика. Без значение колко добра е една теория, хората почти винаги ще вземат това, което е практично (т.е. работи сега), вместо по-добър дизайн. Ядрото на Linux има толкова много хардуерна поддръжка и толкова много компании, финансиращи развитие, че е малко вероятно други ядра (независимо от техния страхотен избор на дизайн) да наваксат.

MINIX например има солиден дизайн и някои страхотни функции, но има много малко хардуерна поддръжка, така че почти никой не разработва платформата. "

Още в Reddit

DistroWatch отзиви 4MLinux 21.0

Linux предлага много различни видове дистрибуции. Някои са в комплект с повече софтуер, а други с по-малко. 4MLinux е насочен към тези, които предпочитат леката дистрибуция. Сценарист в DistroWatch има пълен преглед на 4MLinux 21.0.

Джошуа Алън Холм докладва за DistroWatch:

4MLinux е лека дистрибуция на Linux, предназначена да осигури четири ключови области на функционалност. Само със софтуера, наличен в ISO, 4MLinux предлага голямо разнообразие от приложения за извършване на поддръжка на системата; възпроизвеждане на много видове мултимедийни файлове; предлагане на miniserver за предоставяне на основен уеб сървър; и разполага с достоен избор от игри, които разпределението поставя в категория, която нарича загадка. Тези четири функции осигуряват основата на името на дистрибуцията. Четири неща, които започват с "M", така че 4MLinux.

Стартирането на 4MLinux от флаш устройство е бърз процес. Бях бързо и автоматично влязъл като root и можех да започна да работя в работната среда. За десктоп 4MLinux използва JVM, комбиниран с стартер за Wbar в горната част на екрана, който осигурява преки пътища към основните програми. Освен това има IDesk за управление на работния плот и Conky за предоставяне на основна информация за състоянието на системата. Wbar, IDesk и Conky могат да бъдат изключени, но системата вече е много лека, когато те са в състояние по подразбиране, разрешено.

Извън кутията 4MLinux се предлага с приличен избор на софтуер. В менюто на приложението JVM има преки пътища за терминал, интернет приложения, поддръжка, мултимедия, miniserver и мистерия. Подменюто Интернет съдържа връзки за сърфиране в мрежата, HexChat за IRC, Sylpheed за електронна поща, предаване за Bittorrent, uGet за изтегляне, помощна програма за споделяне на файлове чрез Bluetooth, GNOME PPP за комутируеми интернет връзки и опция за включете и изключете Tor.

4MLinux предоставя много софтуер в малък пакет. За поддръжка на системата е добър избор да имате под ръка. За мултимедия, miniserver и мистерия той предоставя полезен избор на софтуер, но има и други дистрибуции, които се фокусират само върху една от тези задачи и го правят по-добре, като са по-фокусирани. Това не означава, че 4MLinux е лош, но се опитва да прави твърде много различни неща наведнъж. За да бъда напълно честен, мисля, че 4MLinux щеше да бъде по-силна оферта, ако беше 3MLinux и изцяло изпусна мистерията. Може би да включва само пасианс или друга лека игра, която да ви е отклонение, докато се изпълняват задачи по поддръжката и да се използва освободеното пространство чрез премахване на игрите, за да се включат някои от незадължителните приложения за разширение по подразбиране.

Повече в DistroWatch

LinuxInsider преглежда Ultimate Edition 5.4

Ultimate Edition, от друга страна, е в противоположния край на спектъра от 4MLinux. UE определено е максимална наслада, тъй като е пълен със софтуер. Писател в LinuxInsider има пълен преглед на Ultimate Edition 5.4.

Джак М. Жермен отчита за LinuxInsider:

Не бях развълнуван от първоначалния си практически опит при запознаването с Ultimate Edition 5.4. Намерих досаден списък с неща, които не бяха наред с него.

С много години преглед на дистрибуциите на Linux под моя пояс, забелязах солидна връзка между първите впечатления от уебсайта на дистрибуцията и трайни впечатления от представянето на дистрибуцията. Нека просто кажем, че дезорганизираното състояние на уебсайта, в този случай, се изразява в последната версия на тази дистрибуция.

Един малък пример: Никъде не открих списък с минималните изисквания за инсталиране на хардуер. Това се оказа разочароващо. Загубих време, опитвайки се да заредя Ultimate Linux на няколко застаряващи компютъра. Някои от проблемите бяха свързани с паметта и пространството за съхранение. Други проблеми включват недостатъци на графичната карта.

Ultimate Edition е насочена към новодошлите в Linux, но онези, които се опитват, може да се нуждаят от малко повече познания за Linux, за да заобиколят някои от проблемите при работата с тази не особено добра Linux система.

Още в LinuxInsider

Пропуснахте ли обзор? Проверете началната страница на Eye On Open, за да се запознаете с последните новини за отворен код и Linux .