Сложность и венда
От: Sharov Россия  
Дата: 29.09.18 16:49
Оценка: 2 (2) +2
Здравствуйте.

Quora подсунула в подборке интересный вопрос об яп и исходниках венды. Среди прочего интересная статистика по исходникам.

As a side note, what most people don’t realize is the sheer size of Windows: this is a gigantic project of truly epic proportions.

The full source tree with all the code, test code and everything that together constitutes the “Windows source code” is more than a half terabyte in size, in more than 1.5 million files. You can spend a year (seriously) just drilling down the source tree, a couple of hundreds of thousands of folders containing the code for every component making up the OS workstation and server products and all their editions, and see what’s in there, read the file names and try to figure out what does what. It would take a life (or two) to read it all.

One one occasion, I left a Git branch stall for a few weeks and, when I got back to it, it was behind by almost 60,000 commits. I think one can argue that a single person cannot possibly read all the code that is added to Windows every day, let alone read what was written during the past thirty years!

Back to our topic, if you look at a Windows 10 “DVD” and consider what programming languages were used to create everything that’s on that disk, my guess is that 98% of it would be C and C++, with C getting the lion’s share.



Цифры, конечно, впечатляют -- 1.5 миллиона файлов, 60000 коммитов за пару недель. Тут безусловно, главная, а возможно и единственная, сложность в организации этого процесса. Вот это как раз и будет rocket science.
Кодом людям нужно помогать!
Re: Сложность и венда
От: kov_serg Россия  
Дата: 29.09.18 17:02
Оценка: +3
Здравствуйте, Sharov, Вы писали:

S>

S>As a side note, what most people don’t realize is the sheer size of Windows: this is a gigantic project of truly epic proportions.

S>The full source tree with all the code, test code and everything that together constitutes the “Windows source code” is more than a half terabyte in size, in more than 1.5 million files. You can spend a year (seriously) just drilling down the source tree, a couple of hundreds of thousands of folders containing the code for every component making up the OS workstation and server products and all their editions, and see what’s in there, read the file names and try to figure out what does what. It would take a life (or two) to read it all.

S>One one occasion, I left a Git branch stall for a few weeks and, when I got back to it, it was behind by almost 60,000 commits. I think one can argue that a single person cannot possibly read all the code that is added to Windows every day, let alone read what was written during the past thirty years!

S>Back to our topic, if you look at a Windows 10 “DVD” and consider what programming languages were used to create everything that’s on that disk, my guess is that 98% of it would be C and C++, with C getting the lion’s share.

Есть железные люди которые весь этот код прочитали по несколько раз и выдали сертификат ФСТЭК винде

S>Цифры, конечно, впечатляют -- 1.5 миллиона файлов, 60000 коммитов за пару недель. Тут безусловно, главная, а возможно и единственная, сложность в организации этого процесса. Вот это как раз и будет rocket science.

Посмотрите любые крупные инженерные проекты там тоже документации дофигища и что. Теперь нужно дружно переживать за винду? Большую часть этого кода которой можно смело выкинуть за ненадобностью.
Re[2]: Сложность и венда
От: koenig  
Дата: 29.09.18 21:30
Оценка: +1
_> Большую часть этого кода которой можно смело выкинуть за ненадобностью.

скорее всего на планете не осталось человека, способного это сделать не разломав винду нафиг
возможно, уже и коллектив способный на это собрать не получится, хотя теоретически это возможно
Re: Сложность и венда
От: Kolesiki  
Дата: 30.09.18 02:34
Оценка: +1 -1 :)
Здравствуйте, Sharov, Вы писали:

S>Цифры, конечно, впечатляют...


Да ладно вздохов! Это нормально — иметь для ОС такое количество кода. Ненормально — это нанимать бестолочей, которые фигачат монолитный кусок г***на, который и с тысячей файлов превращается в безумное спагетти с виагрой!
Писали бы как была писана QNX, не пришлось бы держать терабайтные винты — все проекты и модули были бы красивыми, независимыми кирпичиками, встраиваемыми в систему.
Re: Сложность и венда
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 30.09.18 03:55
Оценка:
Здравствуйте, Sharov, Вы писали:

S>Цифры, конечно, впечатляют -- 1.5 миллиона файлов, 60000 коммитов за пару недель. Тут безусловно, главная, а возможно и единственная, сложность в организации этого процесса. Вот это как раз и будет rocket science.

и ничего —
Был момент, когда все исходники драйверов для АМД Радеонов превысили по своему объёму исходники драйверов Windows. Но они были куда менее монолитными, конечно. Думаю, что ничего страшного именно в объёме исходников нет.
С тех пор многое поменялось: выкинули Каталист, полностью поменяли подход к драйверам под Линуксом, написали новые компиляторы. Живут люди.
Re[2]: Сложность и венда
От: Sharov Россия  
Дата: 30.09.18 10:51
Оценка:
Здравствуйте, Nuzhny, Вы писали:

N>С тех пор многое поменялось: выкинули Каталист, полностью поменяли подход к драйверам под Линуксом, написали новые компиляторы. Живут люди.


Дело не в размере исходников, а ч организации труда над ними при таких масштабах. Вот где сложность.
Кодом людям нужно помогать!
Re[3]: Сложность и венда
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 30.09.18 11:19
Оценка:
Здравствуйте, Sharov, Вы писали:

S>Дело не в размере исходников, а ч организации труда над ними при таких масштабах. Вот где сложность.


Это да. Но всё так фантастически воспринимается только в контексте внезапности этого знания. Всё таки сложность появилась не сиюминутно, а увеличивалась постепенно. Не было задачи придумывания структуры управления таким огромным проектом, она родилась эволюционно. С другой стороны проектами аналогичной сложности, но разрабатываемыми не внутри одной компании, а всем миром, можно управлять почти единолично, приправляя дело матюками. Хотя тут надо признать, что систему контроля версий для ядра написал тот же самый человек. Думаю, что это плюс к идейной стройности и организованности.
Re[4]: Сложность и венда
От: Sharov Россия  
Дата: 30.09.18 19:41
Оценка:
Здравствуйте, Nuzhny, Вы писали:



N>Это да. Но всё так фантастически воспринимается только в контексте внезапности этого знания. Всё таки сложность появилась не сиюминутно, а увеличивалась постепенно. Не было задачи придумывания структуры управления таким огромным проектом, она родилась эволюционно. С другой стороны проектами аналогичной сложности, но разрабатываемыми не внутри одной компании, а всем миром, можно управлять почти единолично, приправляя дело матюками. Хотя тут надо признать, что систему контроля версий для ядра написал тот же самый человек. Думаю, что это плюс к идейной стройности и организованности.


Про миллионы строк кода венды известно давно, а вот организация и структура всего этого дела впечатлила. Интересно, сколько оне софта для работы с этим делом написали... Это не просто гит, а сильно типизированная тулза, заточенная на контроль доступа,тесты, причем далеко не ют, и т.п. И все это в гигантских масштабах кодовой базы.С линуксом я бы сравнивать не стал, ибо речь только о ядре да и по устройству венда сложнее.
Кодом людям нужно помогать!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.