Обзоры:
Виртуальная файловая система /proc - каталог sys
Опубликовано 29 Сен 2005 (Чт) в 16:54:17
Тема: Настройка
сетевых параметров хостов
В ОС Linux виртуальная файловая система /proc содержит файлы с текущей информацией о процессах и системе в целом. Файловая система создается в оперативной памяти компьютера в процессе загрузки и используется в качестве интерфейса обмена данными со структурами ядра. Использование файлов /proc/* в большинстве случаев позволяет избавиться от необходимости чтения и записи в устройство /dev/kmem. Большинство расположенных в структуре /proc файлов доступны пользователям только для чтения, а для записи требуют полномочий root.
Для поддержки виртуальной файловой системы /proc при компиляции ядра должна быть включена опция /proc file system support.
Для поддержки различных бинарных форматов нужно сначала смонтировать файловую систему binfmt_misc с помощью команды
mount binfmt_misc -t binfmt_misc /proc/sys/fs/binfmt_misc
Для регистрации нового типа бинарных файлов нужно поместить в файл /proc/sys/fs/binfmt_misc/register строки описания формата, имеющие вид
:name:type:offset:magic:mask:interpreter:
Таблица 5 Поля описания формата бинарных файлов
Поле |
Описание |
name |
Строка идентификации формата (имя). В каталоге /proc/sys/fs/binfmt_misc будет создан файл с соответствующим именем. |
type |
Способ распознавания формата – M для распознавания по сигнатуре, E для распознавания по расширению. |
offset |
Смещение сигнатуры в бинарном файле, заданное в байтах. По умолчанию предполагается нулевое смещение. |
magic |
Сигнатура, используемая для идентификации формата. Сигнатуры могут содержать буквы, цифры и шестнадцатеричные коды символов (например, x0a или xA4). Если вы задали распознавание по расширению имени, в качестве сигнатуры нужно указать строку расширения без точки перед ней. Строки расширения задаются в символьном виде с учетом регистра. |
mask |
Необязательная маска, для исключения некоторых битов при сравнении с заданной сигнатурой. При сравнении сигнатуры маска накладывается с помощью логической операции AND (И). По умолчанию значение маски равно 0xff. |
interpreter |
Полный путь к программе, которая должна использоваться для загрузки (запуска) бинарного файла. |
Для добавления строк описания фв файл можно использовать команду echo, как показано в приведенных ниже примерах
Ограничения
1. размер строки регистрации формата не должен превышать 255 символов;
2. сигнатура должна располагать в первых 128 байтах файла (т. е., сумма смещения и размера сигнатуры не должна превышать 127);
3. размер поля interpreter не должен превышать 127 символов.
Примеры использования
Для использования различных бинарных форматов требуется сначала смонтировать файловую систему binfmt_misc. Вы можете сделать это вручную с помощью команды
mount -t binfmt_misc none /proc/sys/fs/binfmt_misc
или добавить строку
none /proc/sys/fs/binfmt_misc binfmt_misc defaults 0 0
в файл /etc/fstab для автоматического монтирования при загрузке системы.
Чтобы включить поддержку приложений em86 можно использовать команду:
echo ':i386:M::x7fELFx01x00x00x00x00x00x00x00x00x00x00x00x02x00x03:xffxffxffxffxffxfexfexffxffxffxffxffxffxffxffxffxfbxffxff:/bin/em86:' > /proc/sys/fs/binfmt_misc/register
или
echo ':i486:M::x7fELFx01x00x00x00x00x00x00x00x00x00x00x00x02x00x06:xffxffxffxffxffxfexfexffxffxffxffxffxffxffxffxffxfbxffxff:/bin/em86:' > /proc/sys/fs/binfmt_misc/register
Для включения поддержки упакованных приложений DOS подойдет команда:
echo ':DEXE:M::x0eDEX::/usr/bin/dosexec:' > /proc/sys/fs/binfmt_misc/register
Для использования исполняемых файлов Windows с помощью прогграммы wine можно ввести команду:
echo ':DOSWin:M::MZ::/usr/local/bin/wine:' > /proc/sys/fs/binfmt_misc/register
Для включения поддержки приложений Java можно использовать команды:
echo ':Java:M::xcaxfexbaxbe::/usr/local/bin/javawrapper:' > /proc/sys/fs/binfmt_misc/register
для Jar-файлов:
echo ':ExecutableJAR:E::jar::/usr/local/bin/jarwrapper:' > /proc/sys/fs/binfmt_misc/register
для Java-апплетов:
echo ':Applet:E::html::/usr/bin/appletviewer:' > /proc/sys/fs/binfmt_misc/register
или:
echo ':Applet:M:: /proc/sys/fs/binfmt_misc/register
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.