LINUX.ORG.RU
ФорумTalks

Дурацкий вопрос про то, что такое linux.


0

1

Я юзер, кернел-хакингом не занимался. Понятно, что linux - это ядро. Ну то есть это то, что лежит на kernel.org или ещё где-то в модифицированном/пропатченном виде. Это в конце-концов бинарь, который собирается в bzImage, помещается в память загрузчиком и на который передаётся управление.

Вопрос такой - если встаёт вопрос о переносе linux на новую платформу, то какой процент исходников, которые я качнул с kernel.org, приходится под конкретную платформу портировать?

Ну например - есть файловая система ext4. Как я понимаю, это код, работающий на довольно высоком уровне с файлом раздела (например /dev/sda1), а уже файлы раздела появляются в результате работы драйвера, знающего про конкретные порты ввода-вывода, адреса в памяти для работы с конкретным типом железки. Где-то scsi-диск, где-то флешка на плате телефона - и под всё свой драйвер, который выкидывает в файловую систему файлы разделов на этом носителе.

Ещё есть планировщик, который, в основном, является высокоуровневым кодом, логически управляющим очерёдностью выполнения процессов, учитывая всякие там nice и т.п., но помимо этого может учитывать особенности конкретного процессора. Например в каком-то процессоре есть ring0...ring3, а в каком-то нет. Какие участки кода linux будет затрагивать появление нового типа процессора?

В какой-то архитектуре примитивы синхронизации такие, в другой сякие (другой выбор атомарных операций) - где это учитывается? Это вообще относится к ядру? То есть, когда я пишу pthread_mutex_lock() - это обращение в ядро?

В общем, сколько основных моментов в ядре linux, которые учитывает человек, портирующий ядро под какой-нибудь новый смартфон?

Ответ на: комментарий от Kindly_Cat

В сравнении с кодом драйвера, предоставляющим этот высокий уровень в виде последовательности блоков /dev/sda.

kiverattes ★☆
() автор топика

Какие участки кода linux будет затрагивать появление нового типа процессора?

Качайте исходники ядра и смотрите содержимое директории arch. Это и есть платформозависимая часть ядра, разложенная по полочкам.

В общем, сколько основных моментов в ядре linux, которые учитывает человек, портирующий ядро под какой-нибудь новый смартфон?

Не так уж и много - система команд, прерывания, DMA, MMU, IOMMU (если есть), всяческие адреса ввода-вывода, специфические устройства и т.п.

Deleted
()

Какие участки кода linux будет затрагивать появление нового типа процессора?

Добавится одна директория с кучей шаблонного низкоуровневого кода в ./arch/ и поправятся пара заголовков и несколько строк в Kconfig'овских файлах.

CYB3R ★★★★★
()

какой процент исходников, которые я качнул с kernel.org, приходится под конкретную платформу портировать?

как минимум - как работать с процессором(или чем-то аналогичным), памятью и т.д.

Pinkbyte ★★★★★
()

I. http://rutracker.org/forum/viewtopic.php?t=525497
II.

В общем, сколько основных моментов в ядре linux, которые учитывает человек, портирующий ядро под какой-нибудь новый смартфон?

1. Упереть блобы с оригинальное прошивки
2. Скопировать их в «свое» ядро
3. Прописать загрузку модулей
4. Ловить «стабильность»
5. Пытаться в стабильность
Таки да, стоит учесть, что собрать тот же CM совсем не равно взять ядро с kernel.org
Если кратко, то все зависит от опыта и количества времени человека. При сопутствующей удаче и умении пользоваться гуглом, портировать сможет даже обезьяна не выходя из winrar'а.

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