Microsoft вече използва инструмента за отворен код на Linus Torvalds за разработка на Windows

През последните години Microsoft става все по-приятелски настроен към Линукс, дори да стигне толкова далеч, че да го обича. Сега Microsoft обяви, че приема софтуер за контрол на версиите, първоначално създаден за развитието на Linux.

Microsoft се премества в Git for Windows development

Снимка на файла: Линус Торвалдс с екипа на Microsoft в LinuxCon 2016

Git е система за контрол на версиите, използвана за следене на промените, направени в файловете. Първоначално е създаден от бащата на Linux, Линус Торвалдс. Когато Линус започна да работи върху ядрото на Linux, той използва безплатната версия на (тогава) собствена система за управление на източника, наречена BitKeeper. През 2005 г., Лари Маквой, собственик на BitKeeper, обвини Андрю Триджел, създател на Samba и rsync, на обратния инженеринг на BitKeepers протоколи и отмени свободното използване на BitKeeper.

В резултат на това Линус Торвалдс, създател на ядрото на Linux, погледна в наличния софтуер за управление на източника. Тъй като никой не отговаря на неговите критерии, той създава свой собствен и го нарича git. За името му Линус каза: „Аз съм егоистично копеле и назовавам всичките си проекти след себе си. Първо „Linux“, сега „Git“. Git е британски жаргон за някой, който е свиня начело и винаги е сигурен, че са прави.

Репо за 300 GB, пълни с Windows данни

Microsoft обяви, че ще започне да премества екипа за разработка на Windows в Git през февруари. Всичко това е част от техния проект OneCore за обединяване на процеса на разработка на Windows, за да стане модулна и слоеста платформа.

Предишната система за управление на версиите на Microsoft, SourceDepot, не може да поддържа огромния размер на разработката на Windows в едно репо. Преди превключването, той беше разделен на 65 репо съдържащи припокриващи се части на Windows.

Досега 2000 инженери на Microsoft са преминали към git с още 500, за да се преместят през следващите няколко месеца. Ето някои от статистиките от новия git repo:

  • За последните 4 месеца в историята има повече от 250 000 достъпен Git.
  • 8, 421 тласкания на ден (средно)
  • 2500 искания за изтегляне, с 6 600 рецензента на работен ден (средно)
  • 4 352 активни клонове на темата
  • 1760 официални сгради на ден

Как се сравни това с Linux?

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

Например Windows Explorer, менюто "Старт", контролният панел, Windows Media Player и Wordpad са създадени и финансирани от Microsoft. В света на Linux важни части от операционната система, като инсталатора на Calamares, работния плот MATE и PulseAudio, са създадени от различни хора, но са комбинирани от разработчиците, за да създадат дистрибуция.

Тъй като не мога да ви дам размера на дистрибуцията на Linux, ще ви дам това, което мога, с размера на ядрото на Linux. (Бих искал да благодаря на Ikey на славата на Solus Project за клониране на репо Linux ядрото и да ми каже размера, защото все още ще го свалям с бавна връзка). Считано от 27-ми, репото на ядрото на Linux е с размер 849MB и се състои от 59 804 файла.

Аз бях в състояние да намеря операционна система с отворен код, за да сравня репо Windows с размер мъдър. Операционната система Haiku следва монолитен дизайн, подобен на този на Windows, т.е. те сами строят всичко. Към 25-ти, ревюто на Haiku беше 342MB. Моля, обърнете внимание, че докато Хайку липсват някои звънци и свирки, това е функционираща ОС.

Microsoft добавя към Git

Когато Microsoft започна да прилага git, те осъзнаха, че ще трябва да направят някои промени, за да могат да работят за тях. Първата промяна, която направиха, беше създаването на Git Virtual File System. Проблемът с наличието на такова масивно РЕПО е, че не всеки трябва да клонира (копира) цялото репо на локалната си машина. Git Virtual File System позволява на всеки програмист да сваля само файловете, до които има нужда.

Вторият проблем, който трябваше да поправят, беше да променя алгоритъма, за да следи кои файлове са били достъпни от виртуалната файлова система Git. В противен случай, провеждането на проста команда като git status да се провери кои файлове са били променени, ще отнеме половин час, за да сортира 3.5 милиона файла.

И накрая, Microsoft трябваше да изгради прокси сървър за справяне с нуждите на служителите в области с по-ниска пропускателна способност. Северна Каролина се сблъскваше с по-висок отговор, но след инсталирането на git proxy, те виждат по-добри резултати от тези в Redmond.

Microsoft планира да направи тези подобрения достъпни нагоре, така че други разработчици да могат да се възползват от тях. Понастоящем Git Virtual File System не се поддържа от никакви Linux git клиенти.

Заключителни мисли

Когато чух, че Microsoft премества разработката на Windows в git, трябваше да проверя дали не съм стигнал до The Onion. След като прочетете за него, изглежда, че този ход е подходящ за Microsoft. Това би спомогнало за повишаване на тяхната ефективност на развитието и, да се надяваме, да подпомогне тяхното качество на кода.

Хубаво е да се чуе, че те ще освободят промените си в общността. Може би това ще ги вдъхнови да пуснат Windows като отворен код. Е, сега току-що пътувах във фантастична земя.

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

Какво мислите за тази новина? Работите ли за организация, която ще се възползва от добавките на Microsoft към git? Ако сте разработчик на Linux, може ли да прецените мислите си за размера на репо Windows?

Ако откриете, че тази статия е интересна, моля, споделете я с приятелите и семейството си на любимите си сайтове за социални медии.

Препоръчано

Как да се определи десен клик Touchpad не работи на Ubuntu 18.04
2019
Unity Gaming Engine пристига в Linux
2019
Как да използвате разширенията на GNOME Shell
2019