Запуск ядра Linux (процесс загрузки)

Другое решение awk :

$ awk 'FNR==NR{if(!NF){a[FNR]=1}next}a[FNR]{print"\n"$0;next}{print}' file1.txt file2.txt
1234|oneflewovercuckoosnest^asgoodasitgets
5678|theshining

4321|batmanbegins^darkknight
  • При чтении file1.txt мы отмечаем номер строки в массиве a , если строка пуста.
  • При чтении file2.txt мы получаем пустой номер строки в массиве a и печатаем перед ним пустую строку. Остальные строки мы печатаем как обычно.
1
28.09.2018, 14:02
1 ответ

Is the kernel compiled from its C source code and how is the kernel actually executed.

На данный момент код ядра уже скомпилирован и находится в форме, которую можно передать прямо в процессор. Слова файл сжатого изображения относятся не к изображению, такому как файл.JPG или.GIF, а к изображению в памяти-1 :1 представление (после распаковки )реального машинного кода ядра.

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

When control is passed to the kernel how is this actually done?

Зависит от прошивки+архитектуры системы. В традиционном BIOS x86 прошивка и загрузчик обычно представляют собой 16-битный -код, который в принципе может работать на самом первом IBM PC/AT :, управление передается, по сути, просто выполнением инструкции перехода из кода загрузчика. в код ядра и никогда не возвращается.

Первые части кода ядра будут включать процедуру распаковки, которая распаковывает остальную часть кода ядра, собирает любую полезную информацию, оставленную BIOS, которая в противном случае была бы перезаписана, и переключает процессор на полные 32 или 64 -битовый режим. При этом код загрузчика в оперативной памяти может быть перезаписан, и поэтому идея когда-либо вернуться из кода ядра обратно в загрузчик станет бессмысленной.

На современных ПК с прошивкой UEFI спецификация UEFI включает стандартный протокол переключения между прошивкой/загрузчиком и фактической операционной системой.но в конечном итоге это заканчивается выполнением процессором инструкции перехода от одного блока кода (= части прошивки/загрузчика )к другому блоку (= первой части ядра )с намерение не возвращаться.

1
27.01.2020, 23:42

Теги

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