10 миллионов строк кода ядра Linux

После выпуска ядра Linux 2.6.27 разработчики сосредоточили усилия на интеграции существующих заплаток для следующей версии ядра в главную ветку разработки. Это подразумевает избавление от некоторого устаревшего кода и добавление нового кода. Обычно добавляется больше чем убирается — этим достигается последовательный рост объема кода.

Настало время подвести промежуточные итоги. Если считать пустые строки, комментарии и файлы документации, то текущий объем кода оценивается примерно в 10 миллионов строк.

Программы вроде SLOCCount могут быть использованы для более точных оценок. Согласно отчету этой программы, в исходном коде ядра Linux насчитывается 6 399 191 строк эффективного кода. Более половины его объема приходится на драйвера устройств. Другая заметная часть приходится на архитектурно-зависимый код.

SLOC Directory SLOC-by-Language (Sorted)
3301081 drivers ansic=3296641,yacc=1680,asm=1136,perl=829,lex=778,
sh=17
1258638 arch ansic=1047549,asm=209655,sh=617,yacc=307,lex=300,
awk=96,python=45,pascal=41,perl=28
544871 fs ansic=544871
376716 net ansic=376716
356180 sound ansic=355997,asm=183
320078 include ansic=318367,cpp=1511,asm=125,pascal=75
74503 kernel ansic=74198,perl=305
36312 mm ansic=36312
32729 crypto ansic=32729
25303 security ansic=25303
24111 scripts ansic=14424,perl=4653,cpp=1791,sh=1155,yacc=967,
lex=742,python=379
17065 lib ansic=17065
10723 block ansic=10723
7616 Documentation ansic=5615,sh=926,perl=857,lisp=218
5227 ipc ansic=5227
2622 virt ansic=2622
2287 init ansic=2287
1803 firmware asm=1598,ansic=205
833 samples ansic=833
493 usr ansic=491,asm=2
0 top_dir (none)

Согласно SLOCCount, 96,4% кода написано на языке C, 3,3% на ассемблере. Другие языки используются в незначительных объемах. Perl, например, используется в некоторых вспомогательных сценариях и составляет не более 0,1%. Любопытно, что SLOCCount нашел 116 строк кода на Паскале. Правда, радоваться поклонникам Паскаля не стоит, т.к. эту сотню строк можно списать на ошибки интерпретации кода самим SLOCCount.

ansic: 6168175 (96.39%)
asm: 212699 (3.32%)
perl: 6672 (0.10%)
cpp: 3302 (0.05%)
yacc: 2954 (0.05%)
sh: 2715 (0.04%)
lex: 1820 (0.03%)
python: 424 (0.01%)
lisp: 218 (0.00%)
pascal: 116 (0.00%)
awk: 96 (0.00%)

Еще один интересный вопрос — сколько бы стоил труд программистов, если бы они писали ядро Linux за деньги? По оценкам программы, для этого потребовалось бы более 200 программистов и 9,5 лет работы. Заплатить пришлось бы 267 миллионов долларов.

Пока без оценки
Отправить комментарий
КАПЧА
Вы человек? Подсказка: зарегистрируйтесь, чтобы этот вопрос больше никогда не возникал. Кстати, анонимные ссылки запрещены.
CAPTCHA на основе изображений
Enter the characters shown in the image.
Яндекс.Метрика