DKMS

Материал из Неолурк, народный Lurkmore
Перейти к навигации Перейти к поиску

DKMS (Dynamic Kernel Module Support) — фреймворк для Linux, созданный для автоматической пересборки и установки модулей ядра при обновлении версии ядра операционной системы. DKMS должен решать проблему несовместимости бинарных модулей ядра между различными версиями ядра Linux, чтобы не произошло так сказать сгавка системы.

Описание[править]

DKMS была разработана компанией Dell в начале 2000-х годов для упрощения управления драйверами в корпоративной среде. Первоначально система создавалась для внутренних нужд Dell, потом выпущена как открытое программное обеспечение. После этого технология оказалась восрана во многие дистрибутивы Linux, в числе которых такие властные, как Ubuntu, Debian, Fedora, openSUSE.

Основная идея DKMS заключается в хранении исходного кода модулей ядра в специальной директории (обычно /usr/src/) вместе с инструкциями по их сборке. При установке нового ядра или обновлении существующего DKMS автоматически компилирует все зарегистрированные модули для новой версии ядра, для чего потужно исследует конфигурационные файлы.

При добавлении модуля в систему DKMS регистрирует его исходный код и конфигурационный файл dkms.conf, содержащий информацию о названии модуля, версии и параметрах сборки. При обновлении ядра система автоматически запускает процесс сборки для всех зарегистрированных модулей. После успешной компиляции модули автоматически устанавливаются в директории для новой версии ядра, обычно в /lib/modules/$(uname -r)/.

Проприетарные графические драйверы NVIDIA и AMD используют DKMS для обеспечения совместимости с различными версиями ядра. Драйверы для специализированного оборудования разнообразных вторичных устройств также радуются существования DKMS, ибо оно значительно опрощает им жизнь.

Существует несколько альтернативных вариантов. Некоторые дистрибутивы предпочитают включать драйверы непосредственно в основное ядро Linux, это устраняет необходимость в сторонних модулях. Механизм модулей ядра с подписью обеспечивает безопасность, но не решает проблему совместимости версий. AKMS, используемый в Mageia, делает нечто похожее, но в своём собственном, вялом стиле.

Структура[править]

Основная утилита командной строки dkms предоставляет интерфейс для управления модулями. Конфигурационный файл dkms.conf для каждого модуля определяет параметры сборки, зависимости и специфические настройки компиляции. Система использует хуки пакетного менеджера, которые автоматически запускаются при установке или удалении пакетов ядра. Директория /var/lib/dkms/ служит для хранения метаданных о состоянии модулей, включая информацию о том, для каких версий ядра модули были собраны.

Базовые команды DKMS: dkms add для добавления модуля в систему, dkms build для компиляции модуля для текущего ядра, dkms install для установки скомпилированного модуля, dkms remove для удаления модуля из системы, и dkms status для просмотра состояния всех зарегистрированных модулей.

03ef4f7db0cccdf39bf013566aed31bd.jpg Системы, без которых машина просто откажется работать
СистемыAndroidDOSFreeBSDHaikuЛинуксMenuetOSMacOS (OS X) / Хакинтош / iOSOS/2ReactOSWindows / ВиндаРусОСФантом ОСUnixHarmony OSWindows vs. LinuxАстра ЛинуксMATEKaiOSChimbalixIOS 18WinGetThe Amnesic Incognito Live SystemTemple OSGrapheneOSKernel.orgWindows 3.11
СредыGNOMEGNU EmacsKDEЛинус Торвальдс vs x86 64SELinuxWindows UpdateИгры из репозиториевТерминалОптимизация WindowsПасьянс КосынкаEnd of 10Windows AeroАптаймОтечественные операционные системы в образованииPurble PlaceWindows vs Linux, Халяль или Харам
ЛюдиБалмерГенерал ФейлорПоттерингСтоллманТорвальдсФолькердингРуслан КармановRealme (компания)AnduinOSОболочка операционной системы
Дистрибутивы LinuxArchDebianFedoraFinnixGentooLFSUbuntu (BolgenOS) • СлакаUncom OSTiny10Tiny11Дешёвые ключи для Windows
Версии виндыWindows 95Windows 98Windows 2000Windows XPWindows VistaWindows 7Windows 8Windows 10Windows 11Windows Phone 7Windows Phone 8ГовносборкиWindows MEWindows ШкольникГрафики в Windows CalculatorKasperskyOSQuick machine recoveryBypassNROCtrl+Shift+Win+BLiquorix
ПользователиАдминБздун • Виндузятник • КрасноглазикЛинуксоидЯблочникФайл подкачкиСпермопроблемыDistro hoppingLinux на сервере
Площадки/s/LORru macru.os.cmpstoplinux.org.ruНеофициальная Windows Вики
Мемы/dev/null • BSD, not LSD • GIFGNOME vs. KDEMac vs. PCOS-tanrm -rfSystem32TRUE-DEATH-PRIMITIVE-LINUX-MITOLLWindows vs LinuxБубенВендекапецГномикиДаунгрейдЕсли бы…Ждём ебилдовКЛБМаздайПатчить KDE2 под FreeBSDПереустановка WindowsПриборчикРаспечатать лицензию на ЛинуксTuxТупые свитчерыФениксНе работай под рутомБлокировка Windows в РоссииОСВзлом Windows через MetasploitЭффект ПьюдипаяTempleOS (аниме)
Достойные упоминанияAmigaСтарая копипаста:ШindowsЛинуксоидное ХанжествоСкотный Двор имени Линуса Торвальдса
App.png Весьма полезная вещь, позволяет машинам работать с помощью коммандычей
МетаПрограммаDRM (SecuROMStarForceАналоговая дыра) • БагБот (Автоответчик) • Варез (Repack) • ГлюкГуйДонатКопирайт (By design) • ЛогНюкРут (Не работай под рутом) • Спортивное программированиеМегапиксельКомпьютерВерсия 2.0КодОбфускацияСкриншотДатамайнПлагинТекстовый файлБольшие данныеАльфа и бета-тестыТаймстампКэшШаблоныHello WorldНейросетиФайлИнсталляцияВидеоМощный сбой Microsoft 19 июля 2024 годаCrowdStrikeПроект GNUUserscriptDxvkVkd3dБратан хорош давай давай впередКонечный автоматLumenЗаступник (приложение)NeeUnreal MCPОптимизацияДрайверТестированиеТройная буферизацияQBitTorrentСинтезаторОбрыв загрузки файла на 99%Polycount.comГрок написал программу о себеВредоносTamTamАппликацио
ФичиБагрепорт12309BSODCookiesEmbrace, extend and extinguishFL StudioSheep.exeWinlogon.exeБубенЗащита от дуракаКостыльМашинный переводПасхальное яйцоСвистелки и перделкиСм. рис. 1Съешь ещё этих мягких французских булокTermuxGNU MetroИндусский кодНескучные обои • Сжатие (За сжатие ДжипегаШакалШкала) • Работает — не трогайРандомайзерPDF (Распознавание PDF) • Дело Google в ФАСЧат-ботXMLМакросКритическая ошибкаФреймворкСинонимайзерSourceТрёхмерное отслеживаниеТрассировка фотоновHZB OcclusionДаунгрейд RTX 4070TressFXАвтопереводчикVSCodiumThorium BrowserShovelwareФайл подкачкиTea Dating AdviceSingle-Page ApplicationАптаймSafenSoft SysWatchМолния (мессенджер)C SharpОбновлениеOneDriveChatGPT Atlas
ВредоносноеБотнетБрутфорсВинлокЗвонилкаКитайские пингвиныПиксель смертиТроянЧервь МоррисаBonziBuddyMediaGetBrowser hijackingTinderМиссис МажорУтечка буфера обменаWin 10 TweakerОпараш Mozilla FirefoxЯндекс.МузыкаКрэкерБезопасность через умолчаниеGrifter.aviTrojan.Winlock.DeathМиссис МажорСредаDirectStorageDriverpackГенератор случайных чиселDisable Core 0РомхакингDDrawCompatWingetCreateWinGetCoowonЯндекс МессенджерVCPkgSELinuxXfireYouTube Auto-ResumeTape OperatorBotFatherMTProtoSignalDoubleClickFixGiteeБотофермаMalwareCeno BrowserLagoFastYouareanidiot
КомпанииApple / Apple (AppleScript) • GoogleMicrosoftSAPЯндексExiled Exchange 2BraveAdNauseamСкурвление FirefoxCafe BazaarAMD FEMFXPPSSPPАвтохукQuick machine recoveryПутинский мессенджер MAXBypassNROWizTreeJTubeGallium NineFalconRu-WireGuardМобильное приложениеWebRenderСмс-бомберInstaller-SHProton GEProcess LassoParkControlDolby AccessDevToolsDxWrapperБойкот мессенджера MaxFirejailLenzaБезопасность мессенджера MAXЦифровое гетто ГабенаQuasarRATGame MakerБрайан ЛандукСтарые форматы видеофайловMAX в школахdom.storage.default_quota
ЛюдиВеб-мастерLovinGODБалмерГейтсГенерал ФейлорДжобсМитникПоттерингде РаадтСпольскиСтоллманТорвальдсШахиджанянAche666Марк ЦукербергЕвгений ПоповДенис КумпонМассовая компьютерная безграмотностьKomet ClientРеверс-инжинирингКроссплатформенность
Команды^H^WAlt+F4Ctrl+Alt+Delman/me/quitrm -rf