Минимальный Linux, упорно продолжил создание GRUB

Я думаю, что использование косвенной ссылки переменной удара нужно рассматривать буквально.

Например, Для Вашего исходного примера:

a=(one two three)
echo ${a[*]} # one two three
b=a
echo ${!b[*]} # this would not work, because this notation 
              # gives the indices of the variable b which
              # is a string in this case and could be thought
              # as a array that conatins only one element, so
              # we get 0 which means the first element
c='a[*]'
echo ${!c} # this will do exactly what you want in the first
           # place

Для последнего реального сценария я полагаю, что код ниже сделал бы работу.

LIST_lys=(lys1 lys2)
LIST_diaspar=(diaspar1 diaspar2)

whichone=$1   # 'lys' or 'diaspar'

_LIST="LIST_$whichone"[*]
LIST=( "${!_LIST}" ) # Of course for indexed array only 
                     # and not a sparse one

Лучше использовать нотацию "${var[@]}" которые стараются не портить с $IFS и расширение параметра. Вот заключительный код.

LIST_lys=(lys1 lys2)
LIST_diaspar=(diaspar1 diaspar2)

whichone=$1   # 'lys' or 'diaspar'

_LIST="LIST_$whichone"[@]
LIST=( "${!_LIST}" ) # Of course for indexed array only 
                     # and not a sparse one
                     # It is essential to have ${!_LIST} quoted
1
18.01.2014, 08:30
2 ответа

Если Вы действительно хотите испортить с созданием всего с нуля, можно попробовать Buildroot.

git clone git://git.buildroot.net/buildroot
cd buildroot
make qemu_x86_defconfig
make

См. этот блог для получения дополнительной информации.

2
27.01.2020, 23:17
  • 1
    Спасибо @yegorich, я смог создать и выполнить пользовательское ядро в полчаса. Борьба с сетями, хотя..!! –  Kamath 09.12.2013, 18:02

Я пытаюсь создать минимальный Linux, для экспериментирования с драйверами (книга LLD 3 отсылает версию 2.6.10 ядра). LFS смотрит, чтобы быть адской задачей...

Да, это. Если Вы просто хотите минимальный Linux с пользовательским ядром, Вы, конечно, не должны создавать все пространство пользователя также! Выберите цель:

  1. Эксперимент с разработкой драйвера.

    ИЛИ

  2. Создайте Linux с нуля.

Не оба, потому что, если то, что Вы действительно хотите сделать, является № 1, № 2 является просто ненужной пустой тратой времени. И не короткий промежуток времени, как Вы узнаете, хотя тот блог довольно короток, я подозреваю, что Вы собираетесь иметь намного больше проблем и вопросов, если Вы продолжаете идти.Подумай: дни. Как, целые дни, множественное число. И очень высокая вероятность, что когда-то в течение дня 2 или 3, Вы собираетесь согласиться со мной и отложить LFS вместо того, чтобы тратить впустую больше времени.

Я не хочу портить свою существующую систему, это, почему я выбрал виртуализацию.

"Портить Вашу систему" является почти наверняка не проблемой с тестированием драйверов ядра, кроме смысла того, чтобы портить состояние выполнения. Т.е. Вы не будете делать ничего плохого, который не фиксируется перезагрузкой. "Почти наверняка не" я имею в виду, является ли это риск, Вы будете знать из-за специфической природы того, что Вы делаете. Но Вы не будете путем работы через LDD 3.

Однако очень легко испортить состояние выполнения достаточно для требования перезагрузки, которая может стать утомительной стычкой и действительно рискует повреждения файловой системы, если "перезагрузка" означает щелкать переключателем, потому что ядро не выйдет из паники - который делает использование VM хорошей идеей. Я не думаю, что QEMU является лучшим выбором, тем не менее, если Вы не пытаетесь моделировать внешние аппаратные средства. Который Вы почти наверняка не делаете в этом случае.

Так, вот мой совет: если Вы находитесь на x86 или x86_64 машине, используйте x86 (_64) VM как virtualbox. Используйте любое изображение, которое Вы хотите и устанавливаете пользовательское ядро. Снова: Вы не должны создавать пространство пользователя для выполнения пользовательского ядра. Просто необходимо создать и установить ядро в существующее пространство пользователя (или изображение ОС). Просто ядро. Только ядро.Это все. Можно выполнить в этом <15 минут, хотя часам может потребоваться первый раз, читая весь материал конфигурации.

Но: Вам даже не нужно пользовательское ядро для экспериментирования со зданием модуля. Вам просто нужен источник для ядра, используемого в Вашем изображении. Хотя LDD 3 датирован, 3.x, ядро так существенно не отличается, чем 2,6 ядра. Много драйверов, и т.д., в 3.x абсолютно неизменно от 2,6.

OTOH, имея некоторый опыт, создающий ядра, может предоставить Вам понимание vis. программирование ядра.

3
27.01.2020, 23:17
  • 1
    Спасибо за Ваш ответ это, конечно, объясняет план действий моей цели. Однако мое непосредственное требование состояло в том, чтобы иметь управляемую среду для экспериментирования с драйверами. Я выбрал QEMU, потому что можно присоединить GDB к нему и отладку. При создании пользовательского ядра и файловой системы с минимальным усилием, точка, где я упорно продолжен. Buildroot является очень хорошим предложением, вот почему я принимаю ответ от @yegorich. –  Kamath 09.12.2013, 17:34

Теги

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