- Как загружать и выгружать модули ядра в Linux
- Список всех загруженных модулей ядра в Linux
- Как загрузить или выгрузить (удалить) модули ядра в Linux
- Управление модулями ядра с помощью команды modprobe
- Команда Lsmod в Linux (список модулей ядра)
- Модули ядра
- Команда lsmod
- Блог о системном администрировании. Статьи о Linux, Windows, СХД NetApp и виртуализации.
- Общая информация
- Просмотр информации о ядре и управление параметрами ядра (команды управления)
- Как же нам узнать, какие модули ядра нужны, а какие можно удалить?
- Основы Linux от основателя Gentoo. Часть 2 (5/5): Модули ядра
- Модули ядра
- Знакомьтесь, «uname»
- Подробнее о uname
- Релиз ядра
- Введение в модули ядра
- Модули ядра вкратце
- lsmod
- Список модулей
- Сторонние модули
- depmod и компания
- Как получить модули
- Использование depmod
- Расположение модулей ядра
- insmod vs. modprobe
- rmmod и modprobe в действии
- Ваши помощники modinfo и modules.conf
- Структура modules.conf
- Итоги и ресурсы
- Итоги
- Ресурсы
- Об авторах
- Daniel Robbins
- Chris Houser
- Aron Griffis
Как загружать и выгружать модули ядра в Linux
Оригинал: How to Load and Unload Kernel Modules in Linux
Автор: Aaron Kili
Дата публикации: 13 июня 2017 года
Перевод: А. Кривошей
Дата перевода: июль 2017 г.
Модуль ядра — это программа, которая может быть загружена в ядро операционной системы, или выгружена из него по запросу без перекомпиляции ядра или перезагрузки системы. Модули предназначены для расширения функциональности ядра. Другими словами можно сказать, что модули похожи на плагины к программам, например к WordPress. Плагины расширяют функциональность программы без включения их в исходный код.
Аналогично, без модулей ядро должно быть собрано с включением всей необходимой функциональности непосредственно в образ ядра. Это приводит к увеличению его размеров, кроме того, для добавления любой новой функциональности системным администраторам необходимо перекомпилировать ядро.
Простой пример модуля — драйвер, который предоставляет ядру доступ к аппаратному устройству, подключенному к компьютеру.
Список всех загруженных модулей ядра в Linux
В Linux названия всех модулей заканчиваются расширением .ko, и обычно они загружаются автоматически при обнаружении оборудования во время загрузки системы. Однако системный администратор может управлять модулями с помощью специальных команд.
Для вывода списка всех загруженных модулей в Linux может использоваться команда lsmod (list modules), которая читает содержимое /proc/modules.
Как загрузить или выгрузить (удалить) модули ядра в Linux
Для загрузки модуля ядра мы можем использовать команду insmod (insert module). Здесь необходимо задать полный путь к модулю. Приведенная ниже команда загружает модуль speedstep-lib.ko.
Для выгрузки модуля ядра мы будем использовать команду rmmod (remove module). Следующая команда выгрузит модуль speedstep-lib.ko.
Управление модулями ядра с помощью команды modprobe
modprobe — это интеллектуальная команда для чтения списка, загрузки и выгрузки модулей ядра. Она производит поиск всех модулей и соответствующих файлов в директории /lib/modules/$(uname -r), но не включает в поиск альтернативные конфигурационные файлы в директории /etc/modprobe.d. Таким образом, здесь вам не нужно вводить полный путь к модулю — в этом преимущество modprobe по сравнению с ранее описанными командами.
Для загрузки модуля просто введите его имя.
Для выгрузки модуля используется флаг -r.
Замечание: в modprobe выполняется автоматическое преобразование подчеркивания, поэтому при вводе названий модулей нет никакой разницы между _ и -.
Более подробно ознакомиться с опциями можно на man-странице modprobe.
Источник
Команда Lsmod в Linux (список модулей ядра)
Модули ядра
Ядро является основным компонентом операционной системы. Он управляет ресурсами системы и является мостом между аппаратным и программным обеспечением вашего компьютера.
Ядро Linux имеет модульную конструкцию. Модуль ядра, или его часто называют драйвером, – это фрагмент кода, расширяющий функциональные возможности ядра. Модули либо скомпилированы как загружаемые модули, либо встроены в ядро. Загружаемые модули могут быть загружены и выгружены в работающем ядре по запросу, без необходимости перезагрузки системы.
Как правило, модули загружаются по требованию udev (диспетчер устройств). Вы также можете вручную загрузить модуль в ядро с помощью команды modprobe или автоматически во время загрузки с помощью файлов /etc/modules или /etc/modules-load.d/*.conf.
Модули ядра хранятся в каталоге /lib/modules/ . Чтобы найти версию выпуска работающего ядра, используйте команду uname -r.
Команда lsmod
lsmod это простая утилита, которая не принимает никаких опций или аргументов. Команда выполняет то, что читает /proc/modules и отображает содержимое файла в хорошо отформатированном списке.
Запустите lsmod из командной строки, чтобы узнать, какие модули ядра загружены в данный момент:
Команда выводит информацию для каждого загруженного модуля ядра в новой строке:
Каждая строка имеет три столбца:
- Module – В первом столбце отображается название модуля.
- Size – Второй столбец показывает размер модуля в байтах.
- Used by – Третий столбец показывает число, которое указывает, сколько экземпляров модуля используется в настоящее время. Нулевое значение означает, что модуль не используется. Разделенный запятыми список после числа показывает, что использует модуль.
Чтобы узнать, загружен ли конкретный модуль, отфильтруйте вывод с помощью команды grep. Например, чтобы узнать, загружен ли модуль kvm, вы должны выполнить:
Для получения подробной информации о модуле используйте команду modinfo.
Источник
Блог о системном администрировании. Статьи о Linux, Windows, СХД NetApp и виртуализации.
Доброго времени, уважаемые читатели www.k-max.name!
Сегодня постараюсь максимально понятно и сжато рассказать о управлении ядром Linux/UNIX. В теме постараюсь разобрать, как: с помощью шелла получать информацию о ядре и модулях ядра, загружать и удалять модули ядра в ходе работы, узнать, нужен ли вообще подключенный/отключенный модуль, настраивать операционную систему для загрузки необходимых модулей.
Общая информация
В своих статьях о этапах загрузки Linux и работе процессов в Linux я уже затрагивал вопросы работы ядра операционной системы Linux. Ядро Linux — это основа ядро вашей системы. Ядро обеспечивает инфраструктуру для работы приложений и использования различных аппаратных средств. Это код низкого уровня, который взаимодействует с интерфейсами аппаратных средств, планирует и распределяет память и т.д.
Исторически, ядро Linux выпускается под определенной версией. То есть имеет определенную маркировку нумерацию. Нумерация версии ядра Linux на текущий момент содержит четыре числа, следуя недавнему изменению в долго используемой до этого политике схемы версий, основанной на трёх числах. Для иллюстрации допустим, что номер версии составлен таким образом: A. B. C [ .D ] (например 2.2.1, 2.4.13 или 2.6.12.3).
- Число A обозначает версию ядра. Оно изменяется менее часто и только тогда, когда вносятся значительные изменения в код и концепцию ядра. Оно изменялось дважды в истории ядра: в 1994 (версия 1.0) и в 1996 (версия 2.0).
- Число B обозначает старшую версию ревизии ядра. Чётные числа обозначают стабильные ревизии, то есть те, которые предназначены для промышленного использования, такие как 1.2, 2.4 или 2.6. Нечётные числа обозначают ревизии для разработчиков, такие как 1.1 или 2.5. Они предназначены для тестирования новых улучшений и драйверов до тех пор, пока они не станут достаточно стабильными для того, чтобы быть включёнными в стабильный выпуск.
- Число C обозначает младшую версию ревизии ядра. В старой трёхчисловой схеме нумерации, оно изменялось тогда, когда в ядро включались заплатки связанные с безопасностью, исправления ошибок, новые улучшения или драйверы. С новой политикой нумерации, однако, оно изменяется только тогда, когда вносятся новые драйверы или улучшения; небольшие исправления поддерживаются числом D.
- Число D впервые появилось после случая, когда в коде ядра версии 2.6.8 была обнаружена грубая, требующая незамедлительного исправления ошибка, связанная с NFS. Однако, было недостаточно других изменений, для того чтобы это послужило причиной для выпуска новой младшей ревизии (которой должна была стать 2.6.9). Поэтому была выпущена версия 2.6.8.1 с единственным исправлением в виде исправления для этой ошибки. С ядра 2.6.11, эта нумерация была адаптирована в качестве новой официальной политики версий. Исправления ошибок и заплатки безопасности теперь обозначаются с помощью четвёртого числа, тогда как большие изменения выполняются в изменениях младшей версии ревизии ядра (число C).
Как я уже говорил, ядро — это код низкого уровня, который взаимодействует с интерфейсами аппаратных средств и управляет системой на низшем уровне. В настоящее время существует громаднейшее количество разновидностей аппаратного обеспечения, файловых систем и остальных компонентов, с которыми взаимодействует ядро системы. Если поддержку всех мыслимых и не мыслимых аппаратных средств включить в ядро, то размер ядра вырастет до неподъемных величин. Для того чтобы ядро не занимало большого количества оперативной памяти и при этом оставалось универсальным, придумали — модули ядра. Модули ядра позволяют при необходимости загрузить обеспечивающее поддержку программное обеспечение, такое как драйверы для аппаратных средств или файловые системы. Это позволяет запускать систему с небольшим ядром и затем подгружать модули по мере необходимости. Часто эта подгрузка происходит автоматически, например, при подключении устройств USB.
Команды для выполнения задач загрузки и удаления модулей ядра требуют полномочий суперпользователя root. Команды, выдающие информацию о модулях, обычно могут быть выполнены обычным пользователем. Однако, в случае, если они расположены в каталоге /sbin, они будут недоступны для обычного пользователя, так как этот каталог не включается в путь поиска PATH. Таким образом, если вы не root, вам, вероятно, надо будет использовать полное наименование пути.
Просмотр информации о ядре и управление параметрами ядра (команды управления)
Просмотр общей информации о ядре (версии, имени ОС, аппаратная платформа и т.п.) производится с помощью команды uname.
Просмотреть список подключенных модулей в данный момент возможно с помощью команды lsmod:
В приведенном примере видно, что в системе загружено множество модулей. Большинство из них поставляются вместе с ядром и имеют свободную лицензию. Бывают так же модули и проприетарные (например драйвера видеоадаптеров NVIDIA). Соответственно, модульный подход позволяет включать в ядро несвободные компоненты, если проприетарная лицензия позволяет это, что избавляет от необходимости получать данные модули от производителя железа.
В примере также можно видеть, что соответствующими модулями осуществляется поддержка таких устройств как видео, SATA, SCSI, дискеты и звуковые карты, а также сетевые устройства, например, IPV6, поддержка файловых систем, такой как ext3, и Remote Procedure Call (RPC) компании Sun.
Помимо имени модуля, команда lsmod показывает также размер, число пользователей модуля и имена пользователей.
Команда modinfo выдает информацию об одном или нескольких модулях.
В приведенном примере видно, что команда modinfo показывает информацию о модуле ipv6, которая включает такие параметры как имя файла и путь, лицензия, описание, автор модуля и др. Параметры модуля могут различаться в зависимости от модуля.
Отдельно хотелось бы затронуть параметр filename, содержащий путь к файлу модуля и имя файла. Имя файла модуля ipv6 оканчивается на .ko, это говорит нам, что данный модуль относится к версии ядра 2.6. В более ранней версии ядра — 2.4, имена модулей оканчивались на .o). Как видно, модуль расположен в подкаталогах каталога /lib/modules/2.6.26-2-686/, в данном пути, каталог 2.6.26-2-686 соответствует версии ядра (а так же выводу команды uname -r, что активно используется в написании скриптов). Структура подкаталогов указанного каталога отражает взаимосвязь модулей ядра и назначения модулей, думаю пример ниже это наглядно покажет:
В примере видно, что модули ядра расположены по подкаталогам: fs, что наводит на мысль, что тут расположены модули файловой системы, sound — модули звуковых карт и так далее.
Как же нам узнать, какие модули ядра нужны, а какие можно удалить?
А все просто: если счетчик Used By равен нулю, то модуль ядра никем и ничем не используется. Соответственно, его можно удалить.
Удаление модуля ядра происходит командой rmmod module_name.
Удаленный модуль может понадобиться в процессе работы, для загрузки модуля необходимо выполнить команду: insmod /path/to/module.ko
Интересный пример использования insmod в купе с другими командами:
Существует так же и другая команда для управления модулями: modprobe. Особенность данной команды в том, что она удаляет/добавляет модули с учетом зависимостей между модулями (зависимости между модулями прописаны в файле /lib/modules/версия/modules.dep). Пример использования:
Как уже выше было сказано, модули ядра имеют зависимости друг от друга, которые прописаны в файле /lib/modules/версия/modules.dep. Данный файл формируется командой depmod , которая при выполнении просматривает структуру каталогов /lib/modules/текущая_версия_ядра/ и формирует информацию о зависимостях.
Так же хочу отметить, что в Linux существует конфигурационный файл /etc/modules.conf, к которому обращается и modprobe и debmod. Данный файл в большинстве своем используется для корректировки алиасов модулей. Некоторые ОС используют другие конфигурационные файлы, таки как /etc/modprobe.conf или каталог с конфигурационными файлами — /etc/modprobe.d/.
Еще отличным источником информации о действующем ядре Linux является файл конфигурации ядра, который расположен в /boot/config-2.6. Используя команду grep можно получить достаточно информации (например, поддерживает ли ядро файловую систему cifs):
На сегодня все. Как всегда — буду очень рад Вашим комментариям! В следующей статье, посвященной ядру Linux мы научимся собирать свое ядро.
Источник
Основы Linux от основателя Gentoo. Часть 2 (5/5): Модули ядра
В заключительном отрывке второй части описаны основы управление модулями ядра Linux. Этот минимум неплохо знать всякому пользователю, однако, не стоит надеяться обнаружить в этом руководстве для начинающих информацию по сборке и конфигурированию модулей ядра.
Навигация по основам Linux от основателя Gentoo:
Часть I
- BASH: основы навигации (вступление)
- Управление файлами и директориями
- Ссылки, а также удаление файлов и директорий
- Glob-подстановки (итоги и ссылки)
Часть II
- Регулярные выражения (вступление)
- Назначения папок, поиск файлов
- Управление процессами
- Обработка текста и перенаправления
- Модули ядра (итоги и ссылки)
Часть III: 1, 2, 3, 4
Модули ядра
Знакомьтесь, «uname»
Команда uname дает множество интересной информации о вашей системе. Вот пример вывода на моей рабочей машине, после того, как я набрал uname -a, что говорит команде uname напечатать всю имеющуюся информацию:
$ uname -a
Linux inventor 2.4.20-gaming-r1 #1 Fri Apr 11 18:33:35 MDT 2003 i686 AMD Athlon(tm) XP 2100+ AuthenticAMD GNU/Linux
Подробнее о uname
Теперь, давайте посмотрим, какую же информацию о системе может дать uname
Интригующе! А что напечатает uname -a у вас?
Релиз ядра
А теперь небольшой трюк. Для начала выполните uname -r чтобы программа напечатала релиз ядра, которое работает в данный момент.
Теперь посмотрите в директорию /lib/modules и — опа! — Я уверен, что вы обнаружили каталог с точно таким же именем! OK, никакой магии, теперь самое время поговорить о значении каталогов в /lib/modules, а также объяснить, что такое модули ядра.
Ядро Linux это сердце того, что обычно называют «Linux» — это кусок кода, который напрямую взаимодействует с вашим железом и абстрагирует от него обычные программы. Благодаря ядру, вашему текстовому редактору не нужно беспокоиться на какой диск, SCSI или IDE, а может даже в RAM, он производит запись. Редактор просто записывает в файловую систему, а ядро заботится обо всем остальном.
Введение в модули ядра
Итак, что такое модули ядра? Они представляют собой часть ядра, которая сохраняется на диске в специальном формате. По вашей команде, они подгружаются в работающее ядро и добавляют в него новую функциональность.
Поскольку модули ядра загружаются по требованию, вы можете иметь ядро поддерживающее дополнительную функциональность, которая в обычном состоянии будет выключена и недоступна.
Но «раз в сто лет», эти модули окажутся очень полезными и смогут быть загружены — часто автоматически — для поддержки диковинной файловой системы или устройства, которое вы редко используете.
Модули ядра вкратце
В общем, модули ядра позволяют по требованию добавить возможностей в работающее ядро. Без модулей, вам бы пришлось компилировать новое ядро и перезагружаться для того, чтобы добавить поддержку чего-нибудь нового.
lsmod
Для просмотра загруженных модулей на вашей системе используйте команду lsmod:
Список модулей
Как видите, на моей системе загружено достаточно немного модулей. vmnet и vmmon модули, обеспечиваю необходимую функциональность для VMWare Workstation, которая позволяет мне запускать виртуальные машины в окне рабочего стола. Модуль nvidia выпущен NVIDIA corporation и позволяет использовать 3D-ускорение в Linux.
Дальше у меня есть набор модулей, которые используются для поддержки USB устройств ввода — mousedev, hid, usbmouse, input, usb-ohci, ehci-hcd и usbcore. Имеет смысл сконфигурировать ваше ядро для поддержки USB модулей. Почему? Потому что USB девайсы это «plug and play» (подключай и работай) девайсы и если у вас есть поддержка USB в модулях, вы можете спокойно пойти и купить новое USB устройство, подключить его, и ваша система автоматически загрузит соответствующие модули для этого устройства. Это удобный способ сделать что-то.
Сторонние модули
Завершают этот список модули: emu10k1, ac97_codec и sound, которые вместе обеспечиваю поддержку моей звуковой карты Audigy.
Следует отметить, некоторые из моих модулей доступны прямо в исходниках ядра. Например, все USB-модули были скомпилированы из стандартных исходных текстов ядра Linux. Однако, nvidia, emu10k1 и VMWare-модули были получены из других источников. Это подчеркивает другую важную особенность модулей ядра — возможность сторонних производителей добавлять необходимую функциональность в ядро и включать ее прямо в запущенное ядро. Без перезагрузки.
depmod и компания
В моей папке /lib/modules/2.4.20-gaming-r1/, есть несколько
файлов которые начинаются со строки «modules.»:
$ ls /lib/modules/2.4.20-gaming-r1/modules.*
/lib/modules/2.4.20-gaming-r1/modules.dep
/lib/modules/2.4.20-gaming-r1/modules.generic_string
/lib/modules/2.4.20-gaming-r1/modules.ieee1394map
/lib/modules/2.4.20-gaming-r1/modules.isapnpmap
/lib/modules/2.4.20-gaming-r1/modules.parportmap
/lib/modules/2.4.20-gaming-r1/modules.pcimap
/lib/modules/2.4.20-gaming-r1/modules.pnpbiosmap
/lib/modules/2.4.20-gaming-r1/modules.usbmap
Эти файлы содержат множество информации о различных зависимостях. В том числе, они содержат информацию о зависимостях для модулей — некоторые модули требуют загрузки других модулей перед тем как быть запущенными.
Как получить модули
Некоторые модули ядра разработаны для работы со специальными устройствами, как например emu10k1 — модуль для поддержки моей звуковой карты. Для этого типа модулей, приведенные выше файлы включают также информацию о PCI IDs и прочие идентификационные метки оборудования, которое они поддерживают. Эта информация может быть использована различными скриптами, например «hotplug» (который мы рассмотрим в следующих руководствах) для автоматического определения оборудования и загрузки соответствующих модулей.
Использование depmod
Информация о зависимостях может становиться не актуальной, особенно в случае установки новых модулей. Чтобы ее обновить, просто введите depmod -a. Программа depmod просканирует модули из вашей папки /lib/modules и обновит информацию о зависимостях. Она делает это сканируя модули в /lib/modules и проверяя так называемые «symbols» внутри модулей.
Расположение модулей ядра
Итак, как выглядят модули ядра? Для ядра 2.4, все файлы модулей обычно находятся в /lib/modules и имеют имя оканчивающееся на «.o» (для 2.6 «.ko» — прим. ред.). Чтобы увидеть все модули из /lib/modules, введите следующее:
# find /lib/modules -name ‘*.o’
/lib/modules/2.4.20-gaming-r1/misc/vmmon.o
/lib/modules/2.4.20-gaming-r1/misc/vmnet.o
/lib/modules/2.4.20-gaming-r1/video/nvidia.o
/lib/modules/2.4.20-gaming-r1/kernel/fs/fat/fat.o
/lib/modules/2.4.20-gaming-r1/kernel/fs/vfat/vfat.o
/lib/modules/2.4.20-gaming-r1/kernel/fs/minix/minix.o
[список обрезан для краткости]
insmod vs. modprobe
Итак, как же подгрузить модуль в работающее ядро? Один из вариантов, использовать команду
insmod и указать ей полный путь к модулю, который вы хотите загрузить:
Хотя, обычно модули загружают используя команду modprobe. Одна из приятных вещей, которую делает modprobe это автоматическая загрузка всех необходимых зависимостей для данного модуля. Кроме того, вам не нужно указывать полный путь и расширение загружаемого модуля.
rmmod и modprobe в действии
Давайте выгрузим наш модуль fat.o и загрузим его обратно используя modprobe:
Как видите, работа команды rmmod очень похожа на работу modprobe, но имеет противоположный эффект — она выгружает указанный модуль.
Ваши помощники modinfo и modules.conf
Можете воспользоваться командой modinfo, чтобы узнать пару интересных вещей о своих любимых модулях:
Также обратите внимание на файл /etc/modules.conf. Он содержит настройки для modprobe и позволяет изменять поведение modprobe. Например, указывать какие модули загруть до/после загрузки остальных, запускать скрипты до и после загрузки модуля, и многое другое.
Структура modules.conf
Синтаксис и функциональность modules.conf достаточно сложны, и мы не будем в них сейчас углубляться (наберите man modules.conf чтобы узнать все подробности), но есть несколько вещей, которые вы должны знать об этом файле.
Во-первых, многие дистрибутивы генерируют этот файл автоматически из набора файлов в других директориях, таких как /etc/modules.d/. Например, в Gentoo Linux есть такая папка, и запуск команды update-modules прочитает все файлы из /etc/modules.d/ и объединит их в новый /etc/modules.conf. Поэтому, сделав свои изменения в файлах из /etc/modules.d/ запустите update-modules, если вы используете Gentoo. В Debian, процедура очень похожа, за исключением того, что папка называется /etc/modutils/.
Для ядер версии 2.6 аналогичные по функциональности файл и папка из каталога etc называются modprobe.conf и modprobe.d соответственно. Синтаксис там упрощен, смотрите man modprobe.conf
— Примечание редактора.
Итоги и ресурсы
Итоги
Мои поздравления; вы дошли до конца этого учебника по основам администрирования Linux! Надеюсь он помог вам немного систематизировать ваши знания о Linux. Пожалуйста присоединяйтесь к нам в следующем руководстве раскрывающем более продвинутые аспекты администрирования, такие как права доступа, управление пользователями, файловую систему, монтирование и многое другое. В следующем руководстве мы будем опираться на фундамент, заложенный здесь. И помните, продолжая изучать эту серию руководств, вы уже совсем скоро будете готовы сдаче экзаменов на получение сертификата LPIC Level 1 от Linux Professional Institute.
Ресурсы
Говоря о сертификации LPIC, если вы действительно в ней заинтересованы, то я настоятельно рекомендую вам изучить следующие источники, которые были тщательно выбраны для расширения знаний полученных в этом руководстве.
В сети есть множество хороших руководств по регулярным выражениям. Вот парочка:
Можете прочитать стандарт иерархии файловой системы (Filesystem Hierarchy Standard) на http://www.pathname.com/fhs/.
В серии Bash в примерах (будет перевод), я покажу вам как использовать инструкции bash для написания ваших собственных скриптов. Это серия (особенно первая и вторая части) будет хорошей подготовкой к экзамену LPIC Level 1:
Вы можете узнать больше о sed в серии руководств Sed в примерах (будет переведено). Если вы планируете сдавать LPI экзамен, убедитесь что прочитали первые две части этой серии.
Чтобы узнать больше об awk, обратитесь к серии Awk в примерах (перевод будет).
Если вы не знакомы с редактором vi, Я настоятельно рекомендую вам посмотреть мое руководство Vi — the cheat sheet method. Этот учебник станет легким, но и стремительным введением в этот мощный текстовый редактор. Считайте, что это материал необходимый к прочтению, если вы не знаете как пользоваться vi.
Спасибо Dmitry Minsky (Dmitry.Minsky@gmail.com) за перевод.
Об авторах
Daniel Robbins
Дэниэль Роббинс — основатель сообщества Gentoo и создатель операционной системы Gentoo Linux. Дэниэль проживает в Нью-Мехико со свой женой Мэри и двумя энергичными дочерьми. Он также основатель и глава Funtoo, написал множество технических статей для IBM developerWorks, Intel Developer Services и C/C++ Users Journal.
Chris Houser
Крис Хаусер был сторонником UNIX c 1994 года, когда присоединился к команде администраторов университета Тэйлора (Индиана, США), где получил степень бакалавра в компьютерных науках и математике. После он работал во множестве областей, включая веб-приложения, редактирование видео, драйвера для UNIX и криптографическую защиту. В настоящий момент работает в Sentry Data Systems. Крис также сделал вклад во множество свободных проектов, таких как Gentoo Linux и Clojure, стал соавтором книги The Joy of Clojure.
Aron Griffis
Эйрон Гриффис живет на территории Бостона, где провел последнее десятилетие работая в Hewlett-Packard над такими проектами, как сетевые UNIX-драйвера для Tru64, сертификация безопасности Linux, Xen и KVM виртуализация, и самое последнее — платформа HP ePrint. В свободное от программирования время Эйрон предпочитает размыщлять над проблемами программирования катаясь на своем велосипеде, жонглируя битами, или болея за бостонскую профессиональную бейсбольную команду «Красные Носки».
Источник