Минимизировать исходники Linux
От: Mike  
Дата: 15.11.22 06:20
Оценка:
Здравствуйте!

Родилась такая мысль:
Linux Kernel конфигурируется через make menuconfig.
А есть ли возможность получить минимальные исходники, соответствующие конфигу?
(то есть без "лишних" файлов, а то и без "лишних" (неиспользуемых) функций, дефайнов, enum и пр.)

Конечно, идея может показаться ненужной, но хотя бы just for fun?
Re: Минимизировать исходники Linux
От: Слава  
Дата: 15.11.22 08:42
Оценка:
Здравствуйте, Mike, Вы писали:

M>А есть ли возможность получить минимальные исходники, соответствующие конфигу?

M>(то есть без "лишних" файлов, а то и без "лишних" (неиспользуемых) функций, дефайнов, enum и пр.)

M>Конечно, идея может показаться ненужной, но хотя бы just for fun?


Для этого вам потребуется clang и несклолько лет времени.
Re: Минимизировать исходники Linux
От: RedUser Россия  
Дата: 15.11.22 08:57
Оценка:
.C-файлы ненужные отсеять по идее несложно.
Можно собрать compilation database для сборки с нужным конфигом:
https://clang.llvm.org/docs/JSONCompilationDatabase.html
Далее выкинуть все .C-файлы, которые там не используются.
Re[2]: Минимизировать исходники Linux
От: aik Австралия  
Дата: 15.11.22 09:10
Оценка:
Здравствуйте, Слава, Вы писали:

С>Для этого вам потребуется clang и несклолько лет времени.


Зачем? make x86_64_defconfig, собрать, посмотреть что скомпилилось, и из этого оставить только те папки в сырцах (можно ограничиться для начала только drivers/fs/arch, потому что с KVM и include не пройдет), от которых остались следы в виде .o. Будет весьма и весьма компактный результат.
Re: Минимизировать исходники Linux
От: σ  
Дата: 15.11.22 09:52
Оценка: 5 (1)
M>Родилась такая мысль:
M>Linux Kernel конфигурируется через make menuconfig.
M>А есть ли возможность получить минимальные исходники, соответствующие конфигу?
M>(то есть без "лишних" файлов

Ну промониторь к каким файлам обращаются при сборке.
(Для минимизации докеровских образов, например, есть тулзы которые мониторят какие файлы реально используются при работе контейнера и потом собирают образ только с этими файлами)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.