Как отредактировать исходный код Linux?

Я хочу изменить исходный код для Linux. Я не знаю от того, где запустить.

Я хочу изучить код и затем изменить его и видеть изменения путем выполнения его.С чего начать? Я - колледж passout, и я знаю C и C++, но никогда не редактировал исходный код Linux. Я хочу маленький легкий Linux, который имеет маленькие файлы исходного кода так, чтобы я мог изучить его и ультрасовременно. Создать мой собственный. Который Linux будет лучшим для меня и как я начинаю с редактированием кода soucre? Будет, просто установив Linux, также дают мне его исходный код?

25
задан Peter Mortensen 13 July 2010 в 09:39
поделиться

9 ответов

Ядро Линукса - монстр дерева исходных текстов (по крайней мере, в том смысле, что оно не маленькое). Старые ядра имеют меньший размер, так что на них имеет смысл посмотреть, если вам нужно маленькое ядро linux, чтобы посмотреть и поиграть с ними.

Однако, если все, что вам нужно - это какое-то unix-подобное ядро для игры, Minix 3 может быть другим возможным выбором.

Для подробностей установите любой дистрибутив linux, затем установите пакет исходных текстов ядра (Gentoo, вероятно, установит его по умолчанию; спецификация имени пакета исходных текстов ядра зависит от вашего дистрибутива).

.
1
ответ дан 28 November 2019 в 20:45
поделиться

Можно рассмотреть дистрибутивы BSD, их намного проще скомпилировать из исходных текстов

Я знаю, что Вы говорили Linux, но дистрибутивы , такие как NetBSD, также являются разновидностью Unix, и они гораздо более доступны с точки зрения компилятора-все, что угодно-из исходных текстов.

  • Обычно гораздо меньшая по умолчанию или минимальная установка
  • Базовая система собирается как единая система с make. Linux - это набор утилит и пакетов из множества разных мест, которые собираются по отдельности, в то время как дистрибутивы BSD имеют специальное дерево исходных текстов, которое можно собрать сверху /usr/src одной командой.
  • Намного проще перекомпилировать, если вам это понадобится.

В дистрибутивах BSD одно дерево исходных текстов содержит базовую систему, и между внутренними и внешними элементами проведена четкая разделительная линия. Проекты распределяют все свои системы в готовом к компиляции виде

.
1
ответ дан 28 November 2019 в 20:45
поделиться

Установка дистрибутива Linux, конечно же, является разумным условием - Linux сам по себехостинга, в том, что он может (вероятно) быть скомпилирован только под системой GNU/Linux (с помощью gcc и библиотеки Си gnu - хотя библиотека Си используется только в инструментах во время компиляции - она не компонована в ядро). Для компиляции Linux также требуется множество других инструментов, которые задокументированы.

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

Самый простой способ "попробовать" программирование ядра - это написание модуля ядра - они могут быть динамически загружены (что означает, что вы можете проверить свой код без перезагрузки - при условии, что это не приведет к аварийному завершению работы системы)

Вокруг много примеров модулей ядра, однако почти все они устарели из-за быстро меняющихся внутренних API в самом ядре (даже система сборки меняется относительно быстро).

Модули ядра могут делать практически всё, что не связано с непосредственным изменением части ядра - существует множество функций "перехвата" (в основном register_something для регистрации устройства, перехвата, протокола и т.д.), которые могут быть использованы для расширения API пользовательского пространства ядра или модификации его поведения каким-либо образом.

.
0
ответ дан 28 November 2019 в 20:45
поделиться

Термин "Linux" может означать несколько разных вещей.

Ядро Linux

Это настоящий Linux, и его можно найти по адресу http://kernel.org/.

Вы не найдете ни маленькой, ни легкой версии. Ядро - это ядро. (Тем не менее, вы можете отключить функции во время компиляции, что полезно, если вы нацелены на маломощное оборудование, например, для встраиваемых устройств).

Дистрибутивы Linux

Это ядро Linux, в комплекте с большим стеком другого программного обеспечения, необходимого для его полезной работы. Исходный код различных частей программного обеспечения доступен отдельно.

Сетевая установка Debian даёт вам ядро системы в виде небольшого файла для скачивания. Она имеет систему управления пакетами, которая позволяет легко получить исходный код различных программ, доступных для неё.

.
18
ответ дан 28 November 2019 в 20:45
поделиться

Что именно вы хотите отредактировать из дистрибутива Linux?

Linux сам по себе всего лишь ядро, но этот термин также используется для обозначения операционных систем, использующих ядро. Если вы хотите работать с программами с графическим интерфейсом, вы можете установить дистрибутив Linux, а затем загрузить исходные тексты этих программ отдельно. Если вы хотите работать с самим ядром, то исходный текст можно получить по ссылке kernel.org. Каждый дистрибутив Linux имеет свой собственный набор программ и возможностей, которые вы можете менять по своему усмотрению, но я сомневаюсь, что вы захотите редактировать все , что поставляется в стандартном дистрибутиве типа Ubuntu, так как перекомпиляция всего каждый раз, чтобы увидеть изменения, займет некоторое время.

Linux - это много , в который вы можете погрузиться для первого таймера в поле OS. Для обучения существует большая Unix-подобная операционная система меньшего размера под названием MINIX. Я считаю, что загружаемые исходные тексты примерно 2.2M, и они используются в качестве учебного пособия во многих курсах по разработке операционных систем по всему миру. Лично я бы немного погрузился в это перед тем, как взять Linux, но выбор за вами, так что получайте удовольствие! Соберите его, сломайте и попробуйте перестроить снова! Это отличный учебный опыт.

15
ответ дан 28 November 2019 в 20:45
поделиться

Если вы хотите модифицировать ядро Linux или одно из "core" приложений, которые обычно образуют дистрибутив, и если у вас нет большого опыта работы с Linux или его модификации, я рекомендую посмотреть Linux From Scratch. Это поможет вам понять процесс установки системы Linux исключительно из ее основных компонентов и позволит вам действительно понять а) что на самом деле является частью Linux и б) что делает каждая часть.

После того, как вы сделали это, вы должны знать, где находятся исходные тексты, как их скомпилировать и как внедрить изменения. Следующий шаг - просто запустить ваш любимый редактор и изменить его.

6
ответ дан 28 November 2019 в 20:45
поделиться

Вот хороший учебник по компиляции ядра Linux.

Совет: используйте виртуальную машину типа VirtualBox для запуска модифицированного ядра - так вы сможете легко экспериментировать, не причиняя вреда реальному оборудованию.

5
ответ дан 28 November 2019 в 20:45
поделиться

Если вы просто хотите узнать об операционных системах в целом, Minix может быть хорошим местом для начала: http://www.minix3.org. Minix использует довольно маленькое (<5000) линейное микроядро, так что с его базовой работой довольно легко познакомиться. Запуск его виртуально (например, под vmware) - это самый простой способ начать работу.

.
2
ответ дан 28 November 2019 в 20:45
поделиться

Установка Ubuntu

Узнайте, как загрузить, скомпилировать и установить собственное ядро

Читайте и редактируйте код

Перекомпилируйте и установите отредактированное ядро

.
6
ответ дан 28 November 2019 в 20:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: