Сколько строк кода в windows 10
Строки кода ( LOC для краткости ; английский для строк кода в смысле количества строк программы; английский исходный код строк кода , SLOC ) - термин из программного обеспечения . Это метрика программного обеспечения ; ЧАС. мера , чтобы описать размер кода базы в компьютерной программе или ее рост. В простейшем случае Строки кода - это количество строк исходного кода , составляющих программу.
Этот показатель не позволяет прямые выводы о эффективности на программистов , так как количество строк зависит от различных факторов: выбрана архитектура, опыт программиста, выбранного решения, форматирование исходного кода, программирования языка и т.д. Кроме того, говорится Правило 80/20 гласит , что 80% строк записываются в 20% случаев. Тщательное тестирование программы может занять много времени, а количество измененных или добавленных строк программы очень мало.
Обычно ожидается продуктивность - включая все действия по проекту - от 10 до 50 строк кода на сотрудника в день. Проект разработки программного обеспечения с общим объемом работ в 1000 человеко-дней (примерно 5 человеко-лет) должен был создать от 10 000 до 50 000 строк кода.
Оглавление
Типы расчетов
Строки кода имеют несколько общих версий, которые объясняются на следующем примере на языке программирования Java :
Строки кода (LOC) Также называется физическими строками кода. Количество строк, включая пустые строки и комментарии. В приведенном выше примере 7. Часто упоминается как представитель одного из других типов расчета. Исходные строки кода (SLOC) Количество строк кода без пустых строк и комментариев. В приведенном выше примере 5. Строки комментариев кода (CLOC) Количество строк комментариев, при этом не определено, включаются ли также строки с кодом и комментариями. В приведенном выше примере это означает 1 или 2. Строки кода без комментариев (NCLOC) Также называемые исходными строками без комментариев (NCSL) или эффективными строками кода (ELOC). Количество строк кода без пустых строк и комментариев без верхних и нижних колонтитулов. Верхний и нижний колонтитулы - это, в частности, внешние открывающие и закрывающие скобки, а также (на уровне класса) операторы импорта / включения и (на уровне метода) объявления методов. В приведенном выше примере NCLOC находится на уровне метода 3 и уровне класса 5. Логические строки кода (LLOC) Также называется числом заявлений (NOS). Считает количество инструкций . Используется, например, в COCOMO . В приведенном выше примере 2. Однако в языке программирования C инструкции в циклах for являются независимыми инструкциями. В C в приведенном выше примере будет 4 LLOC.использовать
Большинство сравнений программ через LOC смотрят только на порядок величины количества строк в разных проектах. Компьютерные программы могут состоять от нескольких десятков до сотен миллионов строк программы. Объем программы в строках кода не обязательно должен позволять делать выводы о сложности или функциональности программы, поскольку использование внешних фреймворков и программных библиотек , используемый язык программирования, а также форматирование исходного текста имеют большое влияние на строки кода. В частности, выводы о вложенном рабочем времени обычно бессмысленны.
Даже при использовании логических строк кода (LLOC) понимание того, что подразумевается под инструкцией и как должна оцениваться ее сложность, зависит от используемого языка программирования. Например, в исходном коде ассемблера, который состоит из нескольких экранных страниц, одна и та же программа в конечном итоге может быть сформулирована как несколько строк на языке программирования высокого уровня .
В зависимости от программиста и используемых рекомендаций по форматированию приведенный выше пример можно переформулировать в следующем исходном коде, который полностью эквивалентен с точки зрения программирования:
Исходный код теперь состоит из четырех физических строк кода (LOC), трех SLOC, в зависимости от расчета, одной или двух строк кода комментария (CLOC), строки кода без комментариев (на уровне метода) и двух логических программ. линии (LLOC).
Поскольку сокращение строк кода, сделанное здесь, привело к снижению читабельности, сложность программы была увеличена, что, в свою очередь, отрицательно сказалось на производительности. Таким образом, меньшее количество строк кода может привести к более высоким затратам.
Размер строк кода, среди прочего, Также используется для расчета плотности ошибок программы: в зависимости от приложения, а также в зависимости от языка программирования, не должно быть превышено определенное количество ошибок программы , например B. Максимум 0,5 ошибок на KLOC (= килограмм = 1000 LOC) в военных или больничных системах.
Примеры
Вот несколько примеров количества строк программного кода в различных операционных системах и прикладных программах .
Это действительно зависит от того, как вы определяете сложность. Существует много различных метрик, используемых и комбинированных для измерения сложности программного обеспечения.
Конечно, чтобы прочитать и понять код, вам нужно было иметь представление об общей архитектуре Windows NT. Вероятно, лучшим источником информации о внутренностях Windows сегодня являются книги о Windows Internals 6th Edition (два тома).
Некоторые люди просто приравнивают сложность кода к размеру, часто измеряемому в строках кода (LOC). То, как на самом деле измеряются LOC, зависит от используемых инструментов и критериев, выбранных для точного определения того, что представляет собой строка кода на каждом языке программирования. Существует много споров о методах, используемых для подсчета строк кода, но если вы используете одни и те же критерии от одного выпуска к другому, вы можете увидеть относительное изменение размера базы кода. Сравнивать эти числа с цифрами другой ОС, которая использовала другой метод подсчета строк кода, все равно что сравнивать яблоки с апельсинами.
Тем не менее, вот некоторые лакомые кусочки о размере современной кодовой базы Windows. Строки кода здесь являются приблизительными и неофициальными , но основаны на достаточно надежных источниках. Это иллюстрирует, как база кода Windows NT развивалась с 1993 года:
- Windows NT 3.1 (1993) - 5,6 миллиона строк исходного кода (MLOC)
- Windows NT 3.5 (1994) - 8,4 MLOCs
- Windows NT 3.51 (1995) - 10,2 MLOCs
- Windows NT 4.0 (1996) - 16 MLOC
- Windows 2000 (2000) - 29 MLOC
- Windows XP (2001) - 35 MLOC
- Windows Vista (2007) - 45 MLOCs
- Windows 7 (2009) - 42 MLOCs
- Windows 8 (2012) - 50 MLOCs
- Windows 10 (2015) - 55 MLOCs
Здесь не включены 16-битные версии, выпущенные с 1985 по 2000 годы. Windows. NT была основой для всех современных 32-битных и 64-битных версий Windows. Количество строк кода в серверных версиях было таким же, как и в не серверных версиях, выпущенных в том же году (т. е. они имели одинаковую базу исходного кода).
Работа над ядром NT началась в 1988 году, она была написана с нуля как 32-разрядная превентивная многозадачная ОС. Ядро NT впервые загрузилось в июле 1989 года на процессоре Intel i860 RISC. С самого начала был сильный толчок к тому, чтобы новая ОС была переносимой на различные архитектуры ЦП и не была привязана только к архитектуре Intel x86 (IA-32). NT в конечном итоге работал на MIPS, DEC Alpha, PowerPC, Itanium и, конечно, Intel x86 и x64.
Некоторая сложность была добавлена к базе кода, прежде всего на уровне абстрагирования оборудования (HAL), для поддержки архитектур не-Intel.
Сколько строк в исходном коде Win 10? Какой язык программирования использовался?
(дайте Те вещи о программистах Помечено )
Оригинальная отделка: те штучки о программистах (id: iProgrammer)
В октябре 2013 года мы разместили на Weibo картинку (@ programmer's things) инфограмма " Сравнение кодовых баз известных программных систем.
В инфографике упоминается, что объем кода для операционных систем Windows XP и Windows 7 составляет около 40 миллионов строк.
Windows Объем исходного кода Vista составляет около 50 миллионов строк.
Следовательно, объем исходного кода Windows 10 составляет не менее 50 миллионов строк.
Какой язык программирования использовался при разработке операционной системы Windows?
Windows операционная система Кому-то должно быть интересно, какой язык программирования используется для такой масштабной кодовой базы.
Это правда? Кто-то написал на Quora с вопросом: «Разработка W ind ows 10 Какой язык программирования используется? 》
В марте 2019 года инженер ядра Microsoft Аксель Ритчин ответил на этот пост на Quora.
«Вот что о программистах»:
Axel Говорят, что Windows 10 и Windows 8.x, 7, Vista, XP, 2000 и NT имеют одинаковую кодовую базу. Каждое поколение операционных систем претерпело серьезный рефакторинг, добавив большое количество новых функций, улучшив производительность и поддержку оборудования. И безопасность при сохранении очень высокой обратной совместимости.
Ядро (ntoskrnl.exe) Большинство из них написано на языке Си . Вы можете найти просочившуюся версию Windows Research Kernel на Github.
Axel Сказал, что, хотя код WRK устарел и в основном неполный, он должен дать вам некоторое представление.
Например: каталог wrk-v1.2 / base / ntos / config - это исходный код известного реестра (Registry) .Этот компонент ядра является диспетчером конфигурации (CM).
Большинство программ, работающих в режиме ядра, также написаны на языке C. (Большинство файловых систем, сетей, большинство драйверов . ) и немного C ++.
Что касается языка программирования, на котором написано Window 10, Аксель считает, что это C и C ++, причем C составляет большинство.
Windows действительно правда В самом деле В самом деле В самом деле Очень большой
Axel Я напоминаю всем, что большинство людей не осознают огромных размеров системы Windows, огромного проекта с эпическим масштабом.
Размер полного дерева исходного кода Windows (включая все коды, тестовые коды и т. Д.) Превышает 0,5 ТБ, что включает Более 56 миллионов папок, 400 Более десяти тысяч файлов 。
Вы можете потратить год, копаясь в дереве исходных текстов и копаясь в этих файлах. Они включают в себя все компоненты рабочей станции и серверных продуктов ОС, а также все их версии, инструменты и соответствующие комплекты разработки.
Затем вы снова читаете имя файла, чтобы увидеть, что в нем и для чего они используются. Хочу закончить эти дела , Персона (Или два человека ) Боюсь закончить жизнь 。
один раз Axel Покинув ветку Git на несколько недель, он вернулся и обнаружил, что за ним почти 60 000 коммитов. Axel Я думаю, кто-то сказал бы, что никто не может читать весь код, добавленный в Windows каждый день, не говоря уже о том, чтобы читать код, написанный за последние 30 лет!
Рекомендуемая литература
(Щелкните заголовок, чтобы перейти к прочтению)
Обратите внимание на звезду "вещи программиста" и не пропустите кружок.
Чтобы разобраться вопросе, насколько может быть сложным программный код «Виндовс» мы обратились к одному из разработчиков команды Windows NT в компании Microsoft — Кену Греггу (Ken Gregg).
Кен Грегг (Ken Gregg), разработчик в составе группы Windows NT
«Могу сказать вам, что у меня был доступ к исходному коду, когда я был в команде Windows NT (NT является основой для всех настольных версий Windows начиная с XP), во время проектов разработки NT 3.1 и NT 3.5. Всё было в рамках стандартов кодирования NT Workbook — эдакой «библии» для всей проектной команды.
. Хотя я и не читал каждую строку кода, но то, с чем мне пришлось работать, было очень:
- чётким,
- модульным,
- многоуровневым,
- обслуживаемым».
Нужно исходить из того, что именно понимается под сложностью кода. Это понимание сугубо субъективное, ведь так? Благо существует множество различных метрик, используемых и комбинируемых для измерения сложности программного обеспечения в тех или иных ситуациях (та же самая модульность, многоуровневость и обслуживаемость).
Насколько сложна Windows в программном коде?
Конечно, чтобы прочитать и понять код, вам нужно было бы иметь представление об общей архитектуре Windows NT.
Вероятно, лучшим источником информации о внутренностях Windows сегодня являются книги Windows Internals 6th Edition (в двух томах).
Некоторые люди просто приравнивают сложность кода к размеру. У этого сравнения тоже есть метрика — строки кода (LOC).
Измерение LOC зависит от используемых инструментов и критериев. Их выбирают для точного определения строк кода на каждом языке программирования.
Кен Грегг (Ken Gregg)
«Существует много споров о методах, используемых для подсчета строк кода (LOC). Если использовать одни и те же критерии от одного выпуска к следующему, то получится относительное изменение размера базы кода.
Сравнивать эти числа с цифрами другой ОС, которая использовала другой метод подсчета строк кода, всё равно что сравнивать яблоки с апельсинами. То есть это некорректный подход».
Как менялся программный код Windows?
Здесь приводятся некоторые лакомые кусочки, дающие представление о размерах современной кодовой базы Windows. Строки кода здесь являются приблизительными и неофициальными, но основаны на достаточно надёжных источниках, о которых говорит Кен Грегг .
Как база кода Windows NT развивалась с 1993 года
MLOC — это количество миллионов строк исходного кода. По ним можно определить относительную сложность операционной системы, если опираться на размеры кода (LOC-методика).
- Windows NT 3.1 (1993) - 5,6 MLOC
- Windows NT 3.5 (1994) - 8,4 MLOC
- Windows NT 3.51 (1995) - 10,2 MLOC
- Windows NT 4.0 (1996) - 16 MLOC
- Windows 2000 (2000) - 29 MLOC
- Windows XP (2001) - 35 MLOC
- Windows Vista (2007) - 45 MLOC
- Windows 7 (2009) - 42 MLOC
- Windows 8 (2012) - 50 MLOC
- Windows 10 (2015) - 55 MLOC
Исходный код Windows состоит в основном из C и C++, а также небольшого количества кода на ассемблере.
Некоторые из утилит пользовательского режима и другие подобные службы пишутся на Си Шарп, но это относительно небольшой процент от общей базы кода.
Кен Грегг (Ken Gregg)
«Я намеренно не включил в список 16-битные версии ОС, выпущенные с 1985 по 2000 годы. Windows NT была основой для всех современных 32-бит и 64-бит версий Windows. Количество строк кода в серверных версиях было таким же, как и в несерверных версиях, выпущенных в том же году (то есть они имели одинаковую базу исходного кода)».
Несколько слов про ядро Windows NT
По словам Кена, работа над ядром NT началась в 1988 году. Ядро было создано с нуля в качестве 32-разрядной упреждающей многозадачной ОС.
Ядро NT впервые загрузилось в июле 1989 года на процессоре Intel i860 RISC. С самого начала был сильный толчок к тому, чтобы новая ОС была совместимой с различными архитектурами центральных процессоров и не была привязана только к архитектуре Intel x86 (IA-32).
NT в конечном итоге работал на MIPS, DEC Alpha, PowerPC, Itanium и, конечно, Intel x86 и x64.
Некоторая сложность была добавлена в базу кода на уровне абстрагирования оборудования (HAL). Это было нужно для поддержки неинтеловских архитектур.
А как вы оцениваете перспективы Windows в плане кода? Узнайте, какие версии Windows актуальны сейчас и какие ОС можно рассмотреть в качестве альтернативы.
Компания ZEL-УслугиЕсть проблемы при использовании Windows и непонятен программный код для внедрения новых бизнес-инструментов в ОС от Microsoft? Проконсультируйтесь с экспертами по ИТ-аутсорсингу и получите поддержку по любым техническим вопросам и задачам.
Читайте также: