През далечната 2013 г. един от разработчиците на Microsoft обясни

...
През далечната 2013 г. един от разработчиците на Microsoft обясни
Коментари Харесай

Защо все пак Windows е толкова по-бавен от Linux?

През далечната 2013 година един от разработчиците на Microsoft изясни в детайли какви са били главните механически проблеми при създаването на ядрото на Windows NT. Десет години по-късно Windows 10/11 работи със същото ядро и доста от старите проблеми остават нерешени.

Въпреки че Windows превъзхожда Linux в редица задания, в множеството проби тази Оценка за съвместимост в действителност е по-бавна. Според разработчика това закъснение се задълбочава, а повода е „ обществена “. В последна сметка става дума за това по какъв начин е проведен процесът на разработка и по какъв начин се вършат измененията в операционната система. Ако в света на отворения код това е отворен развой, който е потребен и усъвършенства системата, то в света на корпоративния програмен продукт измененията постоянно се вършат по аргументи, свързани с нарцисизъм, предпочитание за кариерно израстване, популярност и така нататък Всичко това води до утежняване на качеството на продукта.

Времето за осъществяване на най-често употребяваните команди на Git в Ubuntu и Windows 11 (в секунди, колкото по-кратко, толкоз по-добре). Източник: OpenBemchmarking.org

Проблемите с ядрото на Windows NT

Истината е, че в Microsoft обособените групи за разработка „ имат “ обособените систематични съставни елементи и нормално са намерено враждебни към външните кръпки. Дори в случай че вие, като разработчик на даден съставен елемент, приемете външен пач, това разгневява вашия началник (защото би трябвало да поддържате пача и да оправдаете непланираната смяна в дизайна). И да, разгневява отдела за тестване (той би трябвало да се увери, че смяната не нарушава нищо, а вие единствено сте му упълномощили работа). Също по този начин разгневява и ръководителя на плана (заради смяната в графика на създаването поради пача). В последна сметка няма никакъв тласък да се одобряват външни промени.

Производителност на играта Starfileld под Linux и Windows 11 (FPS). Източник: Computer Base

Освен това няма никакъв тласък да вършиме промени сами. При създаването на ядрото на Linux, в случай че подобрите продуктивността на обхождане на директориите с 5%, ви хвалят и всички са ви признателни. В Оценка за съвместимост Windows, даже в случай че кодът ви премине около притежателите на съставния елемент и влезе в основата на основите, управлението не го е грижа. Разбира се, огромните усъвършенствания могат да бъдат видяни на върха и това ще помогне на кариерата ви. Но това е по този начин, в случай че оптимизацията е в действителност огромна. Що се отнася до елементарните усъвършенствания, те просто нервират всички и няма да повлияят по никакъв метод на кариерата ви (освен да я влошат). След известно време разработчиците осъзнават, че е по-добре да не правят непланирана работа.

Гугъл и другите съперници непрекъснато притеглят най-умните и надарени експерти. Наблюдава се отлив на гении. Microsoft е принудена на тяхното място да наема студенти непосредствено от колежа. Крайният резултат е момчета на равнище SDE и SDE II да поддържат големи системи с доста код. Те желаят да създадат най-хубавото и са задоволително умни, само че не схващат за какво преди време са били взети избрани решения. Те не схващат тънкостите на работата на системите си и най-важното – не желаят да трансформират това, което към този момент работи. Тези млади разработчици също по този начин са склонни да усъвършенстват системата, като вкарват напълно нови функционалности, вместо да усъвършенстват старите. Ако погледнете последните версии, Microsoft не поправя старите функционалности, а прибавя нови (следва цитат):

Новите функционалности са доста по-полезни за напредъка в кариерата, в сравнение с усъвършенстването на старите. Ето по какъв начин се появи PowerShell. Много хора желаеха да подобрят cmd.exe, само че нямаше по какъв начин.

Ето няколко образеца за това, по какъв начин протича процесът на разработка в Microsoft, по думите на един чиновник:

Тъй като не можете даже да докоснете именуваните канали, дано да прибавим %INTERNAL_NOTIFICATION_SYSTEM%! И да го създадем несъответстващ с съвсем всички други именувани примитиви на ядрото. Не можем да покажем на света %INTERNAL_NOTIFICATION_SYSTEM%, тъй като не желаеме да попълняме маса документи. И продажбите не спадат заради обстоятелството, че единствено античните API на Win32 от 90-те години са обществено налични. Не може да се пипа DCOM. Затова сътворяваме още един %C#_REMOTING_FLAVOR_OF_THE_WEEK%! XNA. Какво да прибавим тук? Защо някой би желал архивен формат, който поддържа файлове, по-големи от 2 GB? Никой няма потребност от това. Нека да поддържаме символни линкове, само че тъй че никой да не може да ги употребява и да не бъдем упрекнати в накърнимост. (Чудесно! Сега изглеждаме мъдри и виновни!). Не може да се пипа Source Depot (фирмената система за надзор на версиите на Microsoft), по тази причина дано хакнем SDX! Не можете да се пипа SDX, по тази причина дано се преструваме, че за четири издания прекосяваме към TFS, само че в действителност не променяме нищо! Кодът на NTFS е викторианска история на ужасите, която употребява световни рекурсивни блокировки и SEH за надзор на потока. Нека вместо това напишем ReFS. (И дано стартираме с прекопирване и слагане на изходния код на NTFS и унищожаване на половината функционалности! ) След това дано прибавим контролни суми, тъй като контролните суми са готини и в този момент сме толкоз положителни, колкото ZFS с контролни суми, нали? А и на кого му трябват квоти?).

Забележка: файловата система NTFS е доста надеждна и добре тествана и се поддържа от някои от най-талантливите и опитни разработчици. Но това не анулира грозотата на кода, макар че зад грозния код може да се крият положителни и надеждни съставни елементи, а грозотата по своята същина е субективна). Същото може да се каже и за редица други съществени съставни елементи на ядрото на Windows NT.

Този пост на разработчик от Microsoft е написан преди 10 години, само че не е изгубил своята новост. Очевидно в процеса на разработка няма доста промени.

Присъщата на Windows тромавост се демонстрира и в последната актуализация Windows 11 24H2, която въобще не се конфигурира на по-старите компютри. И даже на конфигурации, на които Windows 11 наскоро можеше да се конфигурира с лека ръка.

Според предварителната информация тази компилация не е съвместима с процесорите, които не поддържат инструкцията POPCNT. Малко познатата директива, известна като инструкцията на NSA, преброява броя на битовете в машинната дума и в актуалните процесори е част от набора указания SSE4 ( процесорите на Intel и AMD надлежно от 2008 година и 2007 г.). Въпреки че е изцяло допустимо запалянковците да намерят метод да заобиколят това ограничаване.

Преди време също по този начин беше обявено, че криптирането на целия диск BitLocker в Оценка за съвместимост Windows забавя систематичния SSD диск с 45%. Като заобиколен вид беше препоръчано да се деактивира вградената функционалност на Windows (да се преинсталира операционната система с изключен BitLocker) и вместо това да се употребява хардуерно криптиране на диска.

Известно е даже явлението, наречено „ отмалялост от Windows “, когато се работи с операционната система на Microsoft за дълъг интервал от време. Дългогодишните консуматори на Windows изпитват носталгия по Windows XP и Windows 7, които бяха най-хубавите операционни системи на своето време. За страдание последните версии на Windows 11 не провокират такива позитивни страсти. Така да вземем за пример в тестванията на OpenBemchmarking.org Оценка за съвместимост Windows 11 22000.51 губи от Windows 10 21H1 в съвсем всички проби, което значи, че новата версия е по-бавна от остарялата.

Бенчмаркът DaCapo, тест на Java: Tradesoap (в секунди, колкото по-малко, толкоз по-добре). Източник: OpenBemchmarking.org

Може би част от проблемите с утежняването на положението на системата се дължат на нуждата да се поддържат по-старите функционалности и по-старите версии на операционната система. Кодовата база се разраства, броят на функционалностите непрестанно се усилва и вследствие на това софтуерът се забавя по-бързо, в сравнение с хардуерът се форсира (правило, известно като закон на Уирт). Това се дължи на непрекъснатото разпълзяване на функционалностите (feature-creep), които са се трансформирали безусловно във „ валутата “ в корпоративната разработка.

Многобройни изследвания демонстрират, че при избора на артикул потребителите позитивно правят оценка броя на неговите функционалности:

Едва откакто стартират да употребяват продукта, несъразмерната функционалност и мудността на системата стартират да нервират хората:

Поддръжката на старите версии

Интересно е, че даже най-старите версии на Windows към момента се употребяват в производството. Например GULP Experts United, една от най-големите немски организации за набиране на личен състав, неотдавна разгласи свободна позиция за систематичен админ на Windows 3.11.

От претендентите се изисква да имат знания за Windows 3.11 и MS-DOS, като е желателно да имат опит в железопътната промишленост.

Така че наследяването и потреблението на остарялото продължава доста дълго…

Как се създаваше Linux ядрото

Един от състудентите на Линус Торвалдс си спомня за ранните дни на Linux и за това по какъв начин е почнало всичко. От историческа позиция записките на Ларс Вирзениус съдържат доста забавни обстоятелства. Те дават визия за концепциите, които са повлияли върху основаването на ядрото на Linux. Общността на отворения код е изцяло друг свят от корпоративната разработка.

Ларс се среща с Линус Торвалдс през първата година от образованието си в Университета в Хелзинки (и двамата приказват шведски, което ги сближава). Те също по този начин получават достъп до Unix сървър и инцидентно откриват Usenet, когато неправилно вкарват командата rn вместо rm. След като служат в армията през 1990 година, момчетата посещават курс по програмиране на C и Unix, който включва проучване на архитектурата на ядрото на Unix. Ларс и Линус също се интересували и изучили ядрата и на други операционни системи, като QNX и Plan 9.

Легендарната операционна система Plan 9 е първата, която ползва концепцията за услуги посредством файлова система и разпределени калкулации. При нея всеки компютър може да употребява всичките запаси на различен компютър като свои лични. Това са файловете, процесите, дисковете, мрежата, графиката, клавиатурата и мишката.

Ядрото на Linux е написано от студенти, мощно повлияни от Unix. През август 1991 година Линус за първи път загатва за своя план в конференцията comp.os.minix echo. Първоначално системата се е наричала Freax. През 1992 година е пусната първата дистрибуция Softlanding Linux System (SLS) и системата X11 е пренесена в Linux, което оказва огромно въздействие върху известността на Linux.

Когато Линус програмирал на служебния си компютър, той се дразнел от бавността на машината – по тази причина прекарва през целия ден в пренаписване на анализатора на командния ред в ядрото. При това на езика асемблер (след това той е пренаписан назад на C). След това Линус играл няколко дни на Quake, като го представял за стрес тест за ръководство на паметта на ядрото.

Както и да е, разработчиците на Linux през цялото време имат мислене, насочено към продуктивността, пишат на C и асемблер и като цяло това е солидна и мощна идея. Вероятно това е една от разликите с ядрото на Windows NT, върху което работят хиляди програмисти в Microsoft, единствено че без единна визия.

През пролетта на 1994 година Linux ядрото беше в по-голямата си част приключено, тъй че Ларс провежда показване на Linux 1.0 в пресата

По време на презентация на 30-ти март 1994 година Линус Торвалдс се майтапи, че комерсиалният лиценз за Unix е толкоз безценен, че е по-лесно да се напише лична операционна система.

Превъзходството на Linux

Повишената продуктивност зависи значително от съответното приложение и хардуер. За някои игри синхронизацията на NT не е тясно място, тъй че ускоряване няма да има. При други обаче нарастването на FPS е 50-150%. В таблицата са показани данните за FPS на разнообразни игри на друг хардуер от няколко консуматори:

ИграТекущ FPSntsync, FPSПодобрениеAnger Foot699943%Call of Juarez99,8224,1125%Dirt 3110,6860,7678%Forza Horizon 510816048%Lara Croft: Temple of Osiris141326131%Metro 2033164,4199,221%Resident Evil 22677196%The Crew265196%Tiny Tina’s Wonderlands130360177%Total War Saga: Troy10914634%

Сега *nix е най-популярната операционна система в света, която работи на милиарди устройства и господства в сървърите и мобилните устройства.

Делът на уеб уеб страниците под разнообразни операционни системи. Статистиката на W3Tech за февруари 2024 година

Linux ядрото е в основата на Android и доста други системи. Могат да се създадат разнообразни догатки за какво една система, написана от студенти, е превзела света. Една от аргументите е интелигентната и къса архитектура на ядрото, което още в самото начало е насочено към продуктивност по сходство на Unix, QNX и Plan 9.

Служител на Microsoft споделя, че в компанията също има хора, които се пробват да създадат света по-добър и да усъвършенстват продуктивността. Но те съвсем постоянно се провалят. Microsoft няма публична или неофициална систематична стратегия за възстановяване на продуктивността. Започвайки с Windows XP SP3, компанията стартира да се грижи за сигурността, тъй като тя се трансформира в екзистенциална опасност за бизнеса. Но слабата продуктивност в действителност не е такава опасност. На този проблем не се дава приоритет.

P. S. За страдание, разлагането на функционалностите, утежняването на продуктивността и съсипването на софтуера не е проблем само на ядрото на Windows, а е необятно публикувано събитие.

Източник: kaldata.com

СПОДЕЛИ СТАТИЯТА


Промоции

КОМЕНТАРИ
НАПИШИ КОМЕНТАР