Исходный код Linux

Исходный код Linux

Я ищу исходный код для общих системных команд, используемых/доступных в Linux, таких как cal, su, sudo, ls, dir, pwdи т. д. Я хочу использовать исходный код, чтобы узнать больше об администрировании системы Linux.

Где находится исходный код для таких системных двоичных файлов, как этот, — код, который находится за пределами ядра Linux, но распространяется с большинством вариантов GNU/Linux?

Какой дистрибутив Linux лучше всего подходит для изучения и просмотра исходного кода этих команд?

Можно ли изменить код, чтобы узнать, как они на самом деле работают?

решение1

Стоит помнить, что "Linux" относится только к ядру. Основные команды приходят изGNU Coreutilsпакета, а также из многих других подобных пакетов.

Когда я ищу такие вещи, я обычно иду вРепозиторий FreeBSD SVN, который я нахожу более удобным для навигации, чем несколько пакетов GNU. Например, исходный код lsможно найти здесь:

решение2

Если вы ищете дистрибутив Linux с исходным кодом, вам следует рассмотреть установкуГенту.

В противном случае вы можете пойти более «ручным» путем и попробовать заточить зубы с помощьюLinux с нуля, что, кажется, то, что вы ищете. Это пошаговое руководство по созданию пригодной для использования системы Linux с нуля. В нем подробно объясняется, что такое каждый пакет и как их собрать. Это немного пугает, и вам определенно следует следовать ему сЗа пределами Linux с нуля, целью которого является наличиефункциональныйСистема Linux.

Если все, что вам нужно, это просмотреть эти распространенные приложения, вы можете просто загрузитьCoreutilsупаковка.

решение3

В общем, вы можете просто поискать в Google источники соответствующих утилит. В дистрибутивах на основе Debian вы можете использовать apt-getдля загрузки (дебианизированных) исходников: например, apt-get source sudoзагрузит и распакует исходники для sudo. Чтобы узнать, к какому пакету относится утилита, вы можете использовать dpkg -S /usr/bin/sudoили, если вы можете использовать apt-fileдля поиска файлов в неустановленных пакетах.

решение4

Вы можете получить исходный код пакетов, установив исходный пакет или загрузив исходный код с веб-сайта пакета. Пакет, который вас интересует, называется coreutils. Как установить исходный пакет, будет зависеть от дистрибутива Linux, который вы используете. Но если вы хотите загрузить исходный код с веб-сайта пакета, вы можете посетитьcoreutils скачать ftp сайт.

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

Связанный контент