LINUX.ORG.RU

Объём исходников типичной «базовой» системы Linux

 


0

3

Нашёл за сегодня много интересного, например,

https://sources.debian.org/stats/#sloc_current

https://dwheeler.com/sloc/redhat71-v1/redhat71sloc.html

Но теперь пытаюсь решить такую задачу: есть типичная голая десктопная инсталляция современного линукса, скажем, Убунты.

Сколько строк кода в её исходниках?

Нигде не нашёл инфы, скачиваю пакеты исходников для всех пакетов, поставленных в моей подходящей виртуалке, с тем, чтобы их потом подходящей программкой (cloc) подчитать, но боюсь, что виртуалка + дачный интернет = fail.

★★★★★

но боюсь, что виртуалка + дачный интернет = fail.

Почему? Что мешает арендовать хостинг на несколько часов и провести эксперимент там?

i-rinat ★★★★★
()

прикинь примерно сколько потребно сишных строк на килобайт, потом прикинь сколько там килобайт бинарного кода в «обычной инсталяции» и перемножь два числа.

alysnix ★★★
()
Последнее исправление: alysnix (всего исправлений: 1)
Ответ на: комментарий от alysnix

Это не нужно, есть cloc. Меня другое смущает, было 1281 пакетов (ubuntu 20.04 + lxde), а скачалось с помощью apt-get source только 773 архива .orig.

Простыню я частично залистнул, да и что в ней искать - не знаю.

den73 ★★★★★
() автор топика
Последнее исправление: den73 (всего исправлений: 1)
Ответ на: комментарий от den73

было 1281 пакетов (ubuntu 20.04 + lxde), а скачалось с помощью apt-get source только 773

Это от того, что один пакет Сырцов генерит несколько бинарников

IvanRia
()
Ответ на: комментарий от den73

Msbuild script, D, ObjC, Pascal, Java, JavaScript в базовой системе, во помойку развели!

cobold ★★★★★
()
Ответ на: комментарий от den73

Интересные результаты. Интересно сколько в этом всем багов…

realbarmaley ★★
()

cloc

Если нет предубеждений против Раста, то рекомендую попробовать Tokei.

dataman ★★★★★
()

Следует помнить, что cloc довольно кривой и многое анализирует неправильно.

Например, исходные файлы компилятора GCC (который давно уже на C++) он помечает как сишные, просто потому что разработчики GCC по каким-то одним только им известным причинам пишут код на C++ в файлах с расширением *.c, что сбивает cloc с толку.

https://gcc.gnu.org/git/?p=gcc.git;a=blob;f=gcc/passes.c;h=6ff31ec37d7fd9f21bfa49a3102c112cebd0cbe0;hb=HEAD

Хотя наверное в современных версиях этого компилятора они перешли наконец-то на правильное расширение.

В общем, подобных проблем много, поэтому все эти SLOC’и вещь относительная.

EXL ★★★★★
()

Сколько строк кода в её исходниках?

> ls -1 /var/lib/dpkg/info | sed 's/\.list$//' | sort -u | xargs -n1 -I{} apt-get source --download-only {}

Mirage1_
()

Объём исходников типичной «базовой» системы Linux

Сколько строк кода в её исходниках?

> ndisasm -b 64 /boot/vmlinuz-5.10.0-9-amd64 | wc -l

2728887

Mirage1_
()
Ответ на: комментарий от EXL

Ну мне так, плюс-минус километр.

den73 ★★★★★
() автор топика
Ответ на: комментарий от Mirage1_

ndisasm -b 64 /boot/vmlinuz-5.10.0-9-amd64

А оно расжимает из bzImage или во что там ядро сжато?

EXL ★★★★★
()
Последнее исправление: EXL (всего исправлений: 1)

Есть же отличный язык программирования Хѣръ или как-то так, там счетчик LOC пишется за пять минут.

Ну и прочие такой же важности задачи тоже легко решаются.

thesis ★★★★★
()
Последнее исправление: thesis (всего исправлений: 1)
Ответ на: комментарий от den73

А оно расжимает из bzImage или во что там ядро сжато?

Маловато как-то получается.

Точно. Забыл про сжатие. Два миллиона строк - это несерьёзный энтерпрайз.

> ndisasm -b 64 /boot/vmlinuz-5.15.19 | wc -l

2048436

> ndisasm -b 64 /usr/src/linux-5.15.19/arch/x86/boot/compressed/vmlinux.bin | wc

13305288 49347980 515526648 # wc - print newline, word, and byte counts

> echo 'scale=213305288/2048436' | bc -q 

6.49
Mirage1_
()
Ответ на: комментарий от Mirage1_

Всё равно маловато, говорили, что в исходниках ядра что-то 22 млн строк. Но может они там как-то по модулям раскладываются?

den73 ★★★★★
() автор топика
Ответ на: комментарий от den73

в исходниках ядра что-то 22 млн строк

Ну так я половину модулей выкинул при make menuconfig.

И это ^ величина кода в строках ассемблерных, а не сишных.

Mirage1_
()
Ответ на: комментарий от Mirage1_

Да, в том и дело, что сишных, значит ассемблерных должно быть в несколько раз больше (наверное).

den73 ★★★★★
() автор топика
Ответ на: комментарий от Mirage1_

Хм, надо бы это выяснить.

den73 ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.