Линук кернел

Управљање Линук кернел модулима

Управљање Линук кернел модулима

Разумевање Линук кернела

Линук језгро је језгро оперативног система Линук. Садржи главне компоненте за адресирање хардвера и омогућава комуникацију и интеракцију између корисника и хардвера. Линук кернел није монолитни систем, већ је прилично флексибилан, а кернел је проширен такозваним кернел модулима.

Шта је кернел модул?

Генерално, модул језгра је „део кода који се може учитати и истоварити у кернел на захтев. Проширују функционалност језгра без потребе за поновним покретањем система “[1]. То доводи до велике флексибилности током рада.

Даље, „кернел модул се може конфигурисати као уграђени или за учитавање. Да би се динамички учитао или уклонио модул, он мора бити конфигурисан као модул који се може учитати у конфигурацији језгра “[1]. То се ради у изворној датотеци језгра / уср / срц / линук /.цонфиг [2]. Уграђени модули су означени са „и“, а модули за учитавање са „м“. Као пример, списак 1 показује ово за СЦСИ модул:

Списак 1: Изјава о употреби СЦСИ модула

ЦОНФИГ_СЦСИ = и # уграђени модул
ЦОНФИГ_СЦСИ = м # модул за учитавање
# ЦОНФИГ_СЦСИ # променљива није постављена

Не препоручујемо директно уређивање конфигурационе датотеке, већ употребу команде „маке цонфиг“, „маке менуцонфиг“ или „маке кцонфиг“ за дефинисање употребе одговарајућег модула у Линук кернелу.

Команде модула

Линук систем долази са низом различитих наредби за руковање модулима језгра. То укључује попис модула који су тренутно учитани у Линук кернел, приказ информација о модулима, као и учитавање и истоварање кернел модула. У наставку ћемо детаљније објаснити ове наредбе.

За тренутне Линук кернеле, следеће команде пружа пакет кмод [3]. Све наредбе су симболичке везе са кмод.

Листа тренутно учитаних модула са лсмод

Почињемо са лсмод командом. лсмод скраћује „списак модула“ и приказује све модуле који су тренутно учитани у Линук кернел лепо обликовањем садржаја датотеке / проц / модулес. Листинг 2 приказује свој излаз који се састоји од три колоне: име модула, величина која се користи у меморији и други модули језгра који користе овај специфични.

Списак 2: Коришћење лсмод

$ лсмод
Величина модула који користи
цтр 12927 2
ццм 17534 2
снд_хртимер 12604 1
снд_сек 57112 1
снд_сек_девице 13132 1 снд_сек

$

Пронађите доступне модуле за ваше тренутно језгро

Можда постоје доступни модули језгра којих још увек нисте свесни. Они се чувају у директоријуму / либ / модуле. Уз помоћ финд-а, у комбинацији са наредбом унаме, можете да одштампате листу ових модула. „Унаме -р“ само штампа верзију тренутно покренутог Линук језгра. Списак 3 то показује за старије 3.16.0-7 Линук
кернел, и приказује модуле за ИПв6 и ИРДА.

Унос 3: Приказивање доступних модула (избор)

$ финд / либ / модулес / $ (унаме -р) -наме '*.ко '
/ либ / модулес / 3.16.0-7-амд64 / кернел / нет / ипв6 / ип6_вти.ко
/ либ / модулес / 3.16.0-7-амд64 / кернел / нет / ипв6 / кфрм6_туннел.ко
/ либ / модулес / 3.16.0-7-амд64 / кернел / нет / ипв6 / ип6_туннел.ко
/ либ / модулес / 3.16.0-7-амд64 / кернел / нет / ипв6 / ип6_гре.ко
/ либ / модулес / 3.16.0-7-амд64 / кернел / нет / ирда / ирнет / ирнет.ко
/ либ / модулес / 3.16.0-7-амд64 / кернел / нет / ирда / ирлан / ирлан.ко
/ либ / модулес / 3.16.0-7-амд64 / кернел / нет / ирда / ирда.ко
/ либ / модулес / 3.16.0-7-амд64 / кернел / нет / ирда / ирцомм / ирцомм.ко
/ либ / модулес / 3.16.0-7-амд64 / кернел / нет / ирда / ирцомм / ирцомм-тти.ко

$

Прикажите информације о модулу користећи модинфо

Команда модинфо вам говори више о траженом модулу језгра („информације о модулу“). Као параметар, модинфо захтева или целу путању модула или једноставно име модула. Списак 4 показује ово за ИрДА модул језгра који се бави стеком протокола инфрацрвеног директног приступа.

Унос 4: Приказ информација о модулу

$ / сбин / модинфо ирда
назив датотеке: / либ / модулес / 3.16.0-7-амд64 / кернел / нет / ирда / ирда.ко
алиас: нет-пф-23
лиценца: ГПЛ
опис: Линук ИрДА Протоцол Стацк
аутор: Даг Браттли & Јеан Тоуррилхес
зависи: црц-ццитт
вермагиц: 3.16.0-7-амд64 СМП мод_унлоад модверсионс
$

Излаз садржи различита информациона поља као што су пуна путања за модул језгра, његово име алиас, софтверска лиценца, опис модула, аутори, као и интерни језгра. Поље „зависи“ показује од којих других модула језгра зависи.

Поља са информацијама разликују се од модула до модула. Да би ограничио излаз на одређено информационо поље, модинфо прихвата параметар „-Ф“ (скраћеница од „-поље“) праћен именом поља. На листи 5, излаз је ограничен на информације о лиценци доступне помоћу поља за лиценцу.

Листинг 5: Прикажите само одређено поље.

$ / сбин / модинфо -Ф лиценца ирда
ГПЛ
$

У новијим Линук кернелима доступна је корисна сигурносна функција. Ово покрива криптографски потписане модуле језгра. Као што је објашњено на веб локацији пројекта Линук кернел [4], „ово омогућава повећану сигурност кернела онемогућавањем учитавања непотписаних модула или модула
потписан неважећим кључем. Потписивање модула повећава сигурност отежавањем учитавања злонамерног модула у језгро. Проверу потписа модула врши кернел, тако да није неопходно имати „поуздане битове корисничког простора.”Доња слика показује ово за
модул парпорт_пц.

Прикажите конфигурацију модула помоћу модпробе

Сваки модул језгра долази са одређеном конфигурацијом. Команда модпробе праћена опцијом "-ц" (скраћено од "-сховцонфиг") наводи конфигурацију модула. У комбинацији са греп, овај излаз је ограничен на одређени симбол. Списак 6 то показује за ИПв6 опције.

Списак 6: Прикажи конфигурацију модула

$ / сбин / модпробе -ц | греп ипв6
алиас нет_пф_10_прото_0_типе_6 дццп_ипв6
алиас нет_пф_10_прото_33_типе_6 дццп_ипв6
алиас нф_цоннтрацк_10 нф_цоннтрацк_ипв6
алиас нф_нат_10 нф_нат_ипв6
алиас нфт_афинфо_10 нф_таблес_ипв6
алиас нфт_цхаин_10_нат нфт_цхаин_нат_ипв6
алиас нфт_цхаин_10_роуте нфт_цхаин_роуте_ипв6
алиас нфт_екпр_10_рејецт нфт_рејецт_ипв6
алиас симбол: нф_дефраг_ипв6_енабле нф_дефраг_ипв6
алиас симбол: нф_нат_ицмпв6_репли_транслатион нф_нат_ипв6
алиас симбол: нфт_аф_ипв6 нф_таблес_ипв6
алиас симбол: нфт_рејецт_ипв6_евал нфт_рејецт_ипв6
$

Прикажи зависности модула

Линук језгро је дизајнирано да буде модуларно, а функционалност је распоређена на више модула. То доводи до неколико зависности модула које се могу поново приказати помоћу модпробе. Листинг 7 користи опцију “-схов-зависи” да би се навеле зависности за модул и915.

Списак 7: Прикажи зависности модула

$ / сбин / модпробе - схов-зависи и915
инсмод / либ / модулес / 3.16.0-7-амд64 / кернел / дриверс / и2ц / и2ц-цоре.ко
инсмод / либ / модулес / 3.16.0-7-амд64 / кернел / дриверс / и2ц / алгос / и2ц-алго-бит.ко
инсмод / либ / модулес / 3.16.0-7-амд64 / кернел / дриверс / тхермал / тхермал_сис.ко
инсмод / либ / модулес / 3.16.0-7-амд64 / кернел / дриверс / гпу / дрм / дрм.ко
инсмод / либ / модулес / 3.16.0-7-амд64 / кернел / дриверс / гпу / дрм / дрм_кмс_хелпер.ко
инсмод / либ / модулес / 3.16.0-7-амд64 / кернел / дриверс / ацпи / видео.ко
инсмод / либ / модулес / 3.16.0-7-амд64 / кернел / дриверс / ацпи / дугме.ко
инсмод / либ / модулес / 3.16.0-7-амд64 / кернел / дриверс / гпу / дрм / и915 / и915.ко
$

Да би се зависности приказале као стабло слично наредби „стабло“ или „лсблк“, пројекат модтрее [5] може помоћи (погледајте доњу слику за стабло модула и915). Иако је бесплатно доступан на ГитХуб-у, потребне су му неке прилагодбе како би се удовољило правилима бесплатног софтвера и како би постао део Линук дистрибуције као пакет.

Учитавање модула

Учитавање модула у покренуто језгро може се извршити помоћу две наредбе - инсмод („инсерт модуле“) и модпробе. Имајте на уму да постоји мала, али важна разлика између ово двоје: инсмод не решава зависности модула, али модпробе је паметнији и то чини.

Списак 8 показује како уметнути ИрДА модул језгра. Имајте на уму да инсмоде ради са пуном путањом модула, док је модпробе задовољан именом модула и сам га тражи у стаблу модула за тренутни Линук кернел.

Списак 8: Уметање модула језгра

# инсмод / либ / модулес / 3.16.0-7-амд64 / кернел / нет / ирда / ирда.ко

# модпробе ирда

Истовар модула

Последњи корак бави се истоваром модула из покренутог језгра. Поново постоје две команде доступне за овај задатак - модпробе и рммод („уклони модул“). Обе наредбе очекују име модула као параметар. Листинг 9 ово показује за уклањање ИрДА модула из покренутог Линук језгра.

Списак 9: Уклањање кернел модула

# рммод ирда

# модпробе -р ирда

Закључак

Руковање Линук кернел модулима није велика магија. Само неколико команди које треба научити, а ви сте господар кухиње.

Хвала вам

Аутор се захваљује Акел-у Бецкерт-у (ЕТХ Зурицх) и Саиф-у Плессис-у (Хотхеад Студио Цапе Товн) на помоћи током припреме чланка.

Везе и референце

  • [1] Кернел модул, Арцх Линук вики, хттпс: // вики.арцхлинук.орг / индекс.пхп / кернел_модуле
  • [2] Конфигурација језгра, хттпс: // тлдп.орг / ХОВТО / СЦСИ-2.4-ХОВТО / кцонфиг.хтмл
  • [3] кмод, хттпс: // гит.кернел.орг / пуб / сцм / утилс / кернел / кмод / кмод.гит
  • [4] Објекат за потписивање кернел модула, хттпс: // ввв.кернел.орг / доц / хтмл / в4.15 / админ-водич / потписивање модула.хтмл
  • [5] модтрее, хттпс: // гитхуб.цом / фалцонинди / модтрее
Најбољи емулатори играће конзоле за Линук
Овај чланак ће навести популарни софтвер за емулацију играће конзоле доступан за Линук. Емулација је слој компатибилности софтвера који опонаша хардве...
Најбољи Линук Дистрос за игре у 2021
Линук оперативни систем далеко је превалио свој изворни, једноставни изглед заснован на серверима. Овај ОС се изузетно побољшао последњих година и сад...
Како снимити и стримовати своју играћу сесију на Линук-у
У прошлости се играње игара сматрало само хобијем, али с временом је играчка индустрија забележила огроман раст у погледу технологије и броја играча. ...