Отправляет email-рассылки с помощью сервиса Sendsay

Linux Info

  Все выпуски  

В 36 выпуске сразу две статьи: "Общий файл подкачки для


Информационный Канал Subscribe.Ru

Linux Info
  Рассылка: "Linux Info" version 0.36
 
  Редактор рассылки: Осинцев Владимир oc(at)nm.ru
 
:[ Поиск по архиву рассылки
Поиск по архиву рассылки
"Linux Info"


:[ Релиз
В последнее время рассылка выходит не регулярно, поэтому этот выпуск больше обычного. В 36 выпуске сразу две статьи: "Общий файл подкачки для Windows и Linux" - хорошая статья, публикуется, только для того чтобы показать возможности Linux системы, практиковать же такое настоятельно не рекомендую... и "Безопасное распределение ресурсов в драйверах устройств ввода-вывода через отображаемую память" - перевод, посвещённый теме написанию драйверов для linux, рускоязычной информации по теме мало, поэтому читайте...
 
:[ /tmp/news
Электронная Москва - шанс для Linux?
Цитата:
"...В настоящее время появилась альтернатива использованию программного обеспечения на основе "закрытого" кода и использования закрытых форматов данных. Появилось системное, офисное и прикладное программное обеспечение, разработанное на основе открытого исходного кода. В государственных и муниципальных органах других стран (Германия, Австралия, Эстония, Бразилия, Китай и ряд других стран) последние два года сформировалась тенденция отказа от использования "закрытого" ПО и переход на ПО с открытым исходным кодом. Одной из причин такого перехода стала с одной стороны необходимость для государства обеспечить информационную безопасность путем сертификации и контроля за соблюдением условий сертификации такого ПО. Другая причина заключается в возможности разработки специализированных дистрибутивов, состав которых определяется целями и задачами информационных систем органов власти. Городские структуры и органы власти, как пользователи такого ПО, должны иметь юридическую возможность передачи функций его совершенствования и поддержки другим лицам, если эти лица будут предлагать лучшие условия и качество работ..."Подробнее...
Полупрозрачные окна в X
Гильберт Бауман перевел XFree86 на OpenGL. TransluXentM - это реализация XFree86, использующая OpenGL там, где ранее применялся драйвер видеокарты. В результате стало возможным легко реализовать такие эффекты как полупрозрачные окна (ради чего проект и был изначально создан). В свете последних событий с XFree86 автор решил превратить его в одну из реализаций "нового" X, построенную на OpenGL.Подробнее...
Firebird недоволен
Воистину не везет с именами "мини-браузеру" Phoenix. Вторая по счету попытка его переименования, видимо, тоже закончится неудачей. Phoenix/Photon/Aston было решено переименовать в Firebird, однако и это имя оказалось занятым. Так называется open-source клон Interbase, разработчики которого весьма разочарованы этим совпадением, и уговаривают разработчиков и пользователей браузера в очередной раз сменить имя. Некоторые читатели MozillaZine согласны с ними и считают, что так будет удобнее для всех. Может быть, и вправду, как написано в документации к Squid, "все хорошие имена уже заняты"?
HP отказывается от Gnome2
В пользу CDE. Hewlett-Packard больше не будет делать вложений в Gnome, поскольку в будущих релизах HP-UX будет использоваться CDE. По мнению компании, процесс разработки Gnome 2.0 не успеет стабилизироваться за то время, которое ожидалось ранее. Это и вынудило HP внести коррективы в свои планы.
WineX 3.0 is out!
Улучшения работы в полном экране, поддержка на уровне железа (NVidia, конечно) Vertex Shaders, улучшения в многопоточности, поддержка драйверов ALSA, улучшение скорости работы, новые пакеты. Изменения, Homepage
Office 2000: с нами не соскучишься
У корпоративных клиентов Microsoft появилась новая головная боль. Как оказалось, в регистрационном коде корпоративной версии MS Office 2000 SR1 присутствует ошибка, вынуждающая этот продукт постоянно требовать регистрации. Комичность ситуации состоит в том, что изначально этот код проектировался для того, чтобы запретить регистрацию Office 2000 после 15 апреля 2003 года. Microsoft, как всегда, "работает над этим вопросом", а Newsforge опубликовал простой, как и все гениальное, патч для данной проблемы: "Установите OpenOffice.org". Подробнее
Студия Лукаса перешла на Linux и Intel
Компания Industrial Light and Magic (ILM), разрабатывавшая спецэффекты для фильмов "Звёздные войны", "Гарри Поттер" и "Парк Юрского периода", отказалась от использования рабочих станций Silicon Graphics с RISC-процессорами и операционной системой IRIX в пользу Linux и Intel.Подробнее
Обновились драйверы для nForce. Теперь 2.56
В новой версии добавлены следующие вещи:
    -> В аудио драйвере добавлена поддержка SPDIF;
    -> Обновлены бинарники для поддержки последних версий ядер в Red Hat Linux;
    -> Теперь аудио драйвер является самодостаточным и не зависит от i810_audio драйвера;
    -> Устранена проблема с аргументами компилятора между версиями gcc3.X и gcc2.X;
    -> Изменён установочный скрипт с целью использования наименьшего из возможных чисел при перечислении сетевого и аудио устройств в modles.conf;
    -> Добавлен раздел FAQ в release notes
Скачать...
Pingus 0.6.0
Вышла первая нормально играбельная версия леммингов в виде пингвинов. Как утверждают авторы - теперь проблем в игре нет. Стандартная поставка включает в себя 22 уровня.Homepage, Картинка, Скачать
DARPA отзывает свой грант
Причины не сообщаются. Defense Advanced Research Projects Agency (DARPA) внезапно отозвала грант в размере 2 миллиона долларов, предназначавшийся проекту OpenBSD и Университету Пенсильвании. Причины этих действий не сообщаются, но Тео де Раадт (Theo de Raadt), лидер проекта OpenBSD, полагает, что оборонному ведомству не понравилась антивоенная статья, опубликованная им в одной канадской газете. Дискуссия на Slashdot
Запрещается: исполнять Microsoft Visual FoxPro в Linux
Основание: Лицензионное Соглашение Конечного Пользователя (EULA). Вил Хенцен (Whil Hentzen) в минувшую среду намеревался провести семинар, посвященной запуску Microsoft Visual FoxPro под Linux. Но незадолго до этого мероприятия г-ну Хенцену позвонил Кен Леви (Ken Levy), менеджер по маркетингу MSVFP, и сообщил, что демонстрация войдет в противоречие с условиями лицензионного соглашения конечного пользователя (EULA) на этот продукт (судя по всему, "...Вы не можете эмулировать, ...", - прим. перев.). После недолгих переговоров Хенцен решил отложить практическую демонстрацию до следующего раза. Курьезность ситуации состоит в том, что ранее г-н Хенцен уже демонстрировал MSVFP в Linux без всяких юридических проблем. Он даже написал в Microsoft письмо с просьбой сертифицировать этот вид деятельности, но пока не дождался ответа. Более того, оказалось, что на каждую Linux-систему, исполняющую приложения Visual FoxPro, должна иметься отдельная лицензия, тогда как в Windows требуется всего одна лицензия (на машину разработчика). "Кажется, Microsoft старается привязать свои средства разработки к своей операционной системе",-подытожил г-н Хенцен. Подробнее
 
:[ /usr/share/Дистрибутивы&Атрибутика

Доставка продукции осуществляется интеренет-магазином LinuxCenter

FreeBSD 4.8 (2CD)
FreeBSD - очень неприхотливая система, которая сможет превратить ваш старый 386/486 компьютер в DNS-сервер или мощный маршрутизатор с возможностью фильтрации пакетов. Наличие исходных кодов для всей системы и большинства приложений, обеспечивает гибкую настройку системы под любые задачи: от разработки программ для автоматизации работы предприятия до автоматического управления спутниковой антенной. О высокой надежности этой системы говорит факт использования FreeBSD на серверах Walnut Creek CDROM, Yahoo!, Microsoft HotMail, Nokia, Sony и др.
ALT Linux Master 2.2 (9CD, 5 книг, коробочный вариант)
ALT Linux Master 2.2 - универсальный дистрибутив GNU/Linux, предназначенный для построения корпоративных информационных систем, применения в качестве серверной платформы, разработки клиентских и серверных приложений, использования в образовательных учреждениях, а также применения в качестве настольной операционной системы. При составлении ALT Linux Master 2.2 применён ответственный подход к обеспечению защищённости, а внутренняя организация дистрибутива направлена на повышение эффективности работы пользователя. Благодаря этому вы сможете в кратчайшие сроки установить и настроить надёжную серверную систему или многофункциональную рабочую станцию. Дистрибутив распространяется на 9 дисках CD и с 5-ю руководствами общим объемом около 1000 страниц.
Футболка Linux/Linux
Футболка Linux/Linux - это стильный атрибут линуксоида, с надписью-перевертышем. Преимущества футболки:
    -> Надпись LINUX одинаково хорошо читается как у Вас на груди, так и в глазах окружающих!
    -> Одеваясь утром, взгляните в зеркало, и прочитайте там волшебное слово LINUX - Вы получите заряд бодрости на целый день...
    -> Футболка сделана из 100% хлопка.
    -> Надпись на футболке выполнена шелкографией, так что футболку можно смело стирать, главное следите за температурой воды - она не должна быть горячее 40 градусов по Цельсию.
    -> Размеры футболки - M,L,XL,XXL Надпись крупным планом
 
:[ Общий файл подкачки для Windows и Linux

Автор: Rafter
rafter(at)xakep.ru

Как ОС Windows, так и ОС Linux используют так называемую подкачку, чтобы восполнить нехватку оперативной памяти. Когда компьютер выключен, область подкачки содержит ненужные данные и любой ОС не важно, что в действительности находится в области подкачки. Вопрос состоит в следующем: поскольку в один момент времени работает только одна из ОС, возможно ли, чтобы Windows и Linux использовали одну и ту же область на диске для подкачки. Некоторая сложность состоит в том, что Windows использует для подкачки файл, а Linux - для этих же целей раздел на диске. (Конечно, и в Linux возможно использовать для подкачки файл, но этого делать не рекомендуется). Если попытаться выделить отдельный раздел для подкачки и разместить там файл подкачки Windows, а затем запустить Linux, которая будет использовать тот же раздел для тех же целей, то будет перезаписан загрузочный сектор, FAT и другие таблицы, и при загрузке Windows эта ОС, потеряв файл подкачки на этом разделе, не долго думая создаст его на своем загрузочном диске.

Поэтому для решения этой задачи нам необходимо сохранять важные с точки зрения Windows данные с начала раздела подкачки в каком-нибудь файле, находящемся в разделе Linux. А при каждом запуске Linux надо будет проверить, кем в последний раз использовалась область подкачки - Linux или Windows. Если это был Linux, то просто разрешается подкачка, в противном случае надо будет сохранить служебные данные с начала раздела в файле, создать раздел подкачки на диске командой mkswap /dev/winswap и затем разрешать подкачку. И теперь мы готовы настроить систему на использование общей области подкачки. Правда, стоит отметить, что при современных объемах винчестера это не столь актуально, но придает некую завершенность совместному размещению Windows и Linux на одном винчестере вашего компьютера.

Процедура на самом деле не сложна и требует выполнения следующих шагов:

1. Загружаемся в Linux, отключаем файл подкачки, отредактировав файл /etc/fstab (закомментировав все строки, которые его описывают).

2. Перезагружаемся в Windows и форматируем раздел, на котором будут находиться файлы подкачки Windows и раздел подкачки Linux в FAT16.

3. В Windows устанавливаем файл подкачки фиксированного размера на этот раздел.

4. Поскольку содержимое файла подкачки неважно, достаточно сохранить загрузочный сектор, сектора с FAT и корневой каталог, так называемые специальные сектора. Количество секторов, которые надо сохранить определяется по формуле: T = r + (s * f) + (d / 16)
где: r - Reserved Sectors; f - Number of FATs; s - Sectors per FAT; d - Root entries
В нашем случае: T = 1 + (251 * 2) + 512 / 16 = 535

Значения, используемые в формуле можно получить, используя любой дисковый редактор. Главное, чтобы он мог видеть все пространство вашего диска. Можно воспользоваться DiskEdit из пакета Norton Utilities 2002 или штатным дисковым редактором Win'2k - Disk Probe, для чего нужно с дистрибутива Windows из папки Support\Tools установить дополнительные инструменты, в том числе установится и Disk Probe. Подойдет и утилита PartitionInfo из пакета Partition Magic, для вызова которой надо загрузить пакет Partition Magic, выделить раздел, нажать правую кнопку мыши и выбрать соответствующий пункт контекстного меню Info, а в открывшемся окне выбрать вкладку - FAT Info. Автор воспользовался двумя последними программами.

5. Определим точный размер раздела подкачки, воспользовавшись одним из дисковых редакторов. Если ваш выбор - Disk Probe, то значение поля Large sectors умножьте на значение поля Bytes per sector, то есть 256977 * 512 = 131572224 Byte. Или же воспользовавшись утилитой PartitionInfo из пакета Partition Magic на вкладке Partition Info найдите значение Total physical sectors 256977 и умножьте его на своеобразный стандарт для жестких дисков - 512 Byte и получите тоже значение, что и при использовании Disk Probe - 131572224 Byte. Я показываю использование двух разных инструментов в связи с ответственностью этих вычислений и исключения возможных ошибок.

6. Перезагружаемся в DOS и удаляем каталог RECYCLED, конечно он при загрузке Windows появится снова, но это будет уже не важно. (Не совсем понятно зачем... -- прим. редактора)

7. Загружаемся в Linux, и входим в него как root.

8. При необходимости, используйте команду fdisk, чтобы узнать название раздела и его размер в блоках (в моем случае hda5 и размер 256977 блоков).

9. Поскольку название этого раздела может попасть в конфигурационные файлы в разных местах, создаем символьную ссылку /dev/winswap, указывающую на этот раздел, следующей командой:

    # ln -s /dev/hda7 /dev/winswap
(Обратите внимание на какой раздел делать сим.линк, здесь он hda7, у вас же может быть совсем другим -- прим. редактора)

10. Для создания копии специальных секторов в сжатом виде в файле /etc/winswap.gz в приглашении командной строки наберите:

    # dd if=/dev/winswap bs=512 count=T | gzip -9 > /etc/winswap.gz
где T - число так называемых специальных секторов (в нашем случае 535), вычисленных в п.4).

11. Подготовим два отдельных файла, под названиями swapinit.sh и swaphalt.sh. Примеры этих файлов, которые будет работать в Red Hat Linux, даны в приложении. Поместите эти файлы в каталог /etc/rc.d/init.d Проставьте им флаг "исполняемых" командами:

    # chmod +x swapinit.sh
    # chmod +x swaphalt.sh
12. Проверим имя файла инициализации системы, скорее всего это будет /etc/rc.d/rc.sysinit Он должен, содержать команду "swapon -a", вместо этой команды добавьте следующую строку:
    /etc/rc.d/init.d/swapinit.sh
В зависимости от того, где находится команда swapon, заменяем ее в скрипте swapinit.sh на команду /etc/swapon, если она в каталоге /etc, или же на /bin/swapon - если она в каталоге /bin. То же самое сделаем с командой mkswap.

13. Проверим имя скрипта завершения работы системы, скорее всего это будет файл /etc/rc.d/init.d/halt. Обычно в этом файле будет команда "swapoff -a". Замените эту команду на "swapoff /dev/winswap".

14. Добавьте следующие строки в этот скрипт. Поместите эти строки после всех команд, которые могут потребовать подкачку. Проверьте, что если скрипт завершения работы автоматически находит все разделы подкачки и отключает их, то не требуется заменять команду swapoff $SWAPS на swapoff -a. В этом случае, просто добавьте команду /etc/rc.d/init.d/swaphalt.sh к файлу /etc/rc.d/init.d/halt [ -x /sbin/accton ] && /sbin/accton /etc/rc.d/init.d/swaphalt.sh

15. Включаем подкачку в Linux, убрав комментарий со строки с разделом подкачки в файле /etc/fstab (который вы добавили ранее). Это конечно необязательно, так как больше не используется /etc/fstab для задания разделов подкачки. Также нет никакой необходимости добавлять /dev/winswap в файл /etc/fstab. Вероятно, это вообще нельзя делать.

16. Перезагрузите Linux.

17. Однако если Linux аварийно завершит работу без выполнения /etc/rc.d/init.d/halt, то вам придется перезагрузиться, загрузить Linux и выйти из него. Или же загрузившись в Windows, отформатировать раздел подкачки в FAT16 и перенести на него файл подкачки.

Приложение 1. Скрипт swapinit.sh
Этот скрипт инициализирует область подкачки на разделе1.

Приложение 2. Скрипт swaphalt.sh
Этот скрипт сначала проверяет сигнатуру области подкачки Linux, а затем восстанавливает на разделе файловую систему Windows.

 
:[ Безопасное распределение ресурсов в драйверах устройств ввода-вывода через отображаемую память

Автор: Dr B Thangaraju
Перевод: Андрей Киселев
Источник: http://gazette.linux.ru.net

Драйвер устройства (или просто драйвер) -- это программа, обеспечивающая доступ к устройству. Разработка драйверов гораздо более сложная задача, чем написание обычных приложений. Поскольку любой динамически подгружаемый модуль драйвера присоединяется к ядру, малейшая ошибка в драйвере может вызвать крах системы. Распределение ресурсов -- одна из важнейших составляющих успеха для разработчиков драйверов. Ресурсы устройства -- это память для буферов ввода-вывода, векторы прерываний и порты ввода-вывода. Здесь будут рассмотрены способы безопасного распределения ресурсов для динамически загружаемых драйверов устройств в Linux.

Введение

В быстро развивающемся мире Информационных Технологий, постоянно появляются новые устройства и их разнообразие просто поражает. Доступ к периферии (жесткие диски, CD-ROM, терминалы, принтеры, сетевые адаптеры и пр.) осуществляется через подсистему ввода-вывода. Модули ядра, управляющие устройствами, называются "драйверы устройств". Подсистема ввода-вывода отвечает за перемещение данных между устройством и памятью. Все устройства ввода-вывода подразделяются на блочные и символьные, в зависимости от типа доступа. К символьным можно отнести клавиатуру, мышь, консоль и модем. Обмен с ними выглядит как поток байтов (символов). Блочные устройства (жесткие диски, CD-ROM и др.) передают и принимают данные целыми блоками.

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

Как правило, работа драйвера заключается в передаче данных между компьютером и дополнительными устройствами. Ими могут быть устройства дополнительной памяти (например, Flash-модули прим. перев.), устройства связи, терминалы и т.п.. Возможны три варианта обработки ввода-вывода: PIO (PIO от англ. Programmed Input/Output -- режим программного ввода/вывода, когда вводом/выводом занимается процессор, что отнимает какую-то часть процессорного времени прим. перев.), ввод-вывод по прерываниям и DMA (DMA -- от англ. Direct Memory Access -- способ обмена данными между внешним устройством и памятью без участия процессора, что может заметно снизить на него нагрузку и повысить общую производительность системы прим. перев.). Передача данных между системой и устройствами может осуществляться двумя способами: через порты ввода-вывода и через отображаемую память. В этой статье обсуждаются основные положения организации ввода-вывода через отображаемую память и макроопределения, используемые при написании драйверов, для распределения областей памяти (идущие с примерами хорошо отлаженного кода). Поскольку драйвер является частью ядра, любая попытка вторгнуться в уже занятые адреса памяти приведет к краху системы. Таким образом, драйвер должен сначала проверить свободен ли заданный диапазон адресов и если нет, то вернуть управление системе с кодом ошибки. В противном случае этот диапазон резервируется за данным устройством. Основы устройств ввода-вывода через отображаемую память

Драйверы накрепко связаны с аппаратурой обслуживаемого устройства. Они принимают на себя всю ответственность по взаимодействию CPU (CPU от англ. Central Processor Unit - Устройство Центрального Процессора, для архитектуры PC равносильно понятию "микропроцессор" прим. перев.) и устройства. Существует два основных способа передачи данных между устройством и ядром -- PIO и DMA. PIO задействует процессор, передача информации выполняется байт за байтом по мере готовности в процессе обработки прерываний, либо по опросу. Устройствам DMA передаются адрес источника (source address), адрес назначения (destination address) и размер блока данных. Устройство само перемещает данные в/из память(и). А после окончания передачи информации -- генерирует прерывание, чтобы уведомить ядро об окончании операции. Как правило, режим PIO используется для низкоскоростных устройств, таких как модемы, принтеры. И наоборот, для дисковых накопителей, графических терминалов используется режим DMA.

Для PIO-устройств есть два способа передачи данных. Выбор конкретного способа зависит от аппаратной архитектуры. Для архитектуры Intel x86 -- это порты ввода/вывода, для архитектуры Motorola 680x0 -- это ввод/вывод через отображаемую память. Кроме того, большинство устройств с шиной ISA (Industry Standard Architecture) поддерживают ввод/вывод через порты, в то время как устройства с шиной PCI (Peripheral Component Interconnect) поддерживают обмен через отображаемую память. Драйверу должны передаваться различные параметры, такие как адреса портов ввода/вывода или диапазон адресов в памяти. Иногда требуется передача драйверу дополнительных параметров, которые помогут ему обнаружить соответствующее устройство или включить/выключить некоторые специфические функции. В своей предыдущей статье на Linux Focus (http://linuxfocus.org/English/November2002/article264.meta.shtml), я рассказывал об основах управления устройствами и проблемах безопасного выделения портов ввода/вывода драйверам устройств в Linux. Так что снова к этой теме я возвращаться не буду. С точки зрения разработчика распределение отображаемой памяти для устройства во многом похоже на распределение портов ввода/вывода, поскольку внутренние механизмы распределения похожи друг на друга. Макроопределения, используемые при выделении отображаемой памяти ввода/вывода

Проверка на занятость диапазона адресов выполняется следующим макросом: int check_mem_region (unsigned long start, unsigned long length);

Где первый аргумент start -- начальный адрес, второй аргумент length -- размер блока памяти. Возвращаемое значение равно нулю, если диапазон адресов свободен, в противном случае возвращается значение меньше нуля.

Для "захвата" требуемого диапазона адресов отображаемой памяти используется макрос: void request_mem_region (unsigned long start, unsigned long length, char *device_name);

Где char *device_name -- это название (имя) устройства, за которым резервируется требуемый диапазон памяти.

Перед тем как драйвер будет выгружен из памяти, он должен освободить память следующим макросом: void release_mem_region (unsigned long start, unsigned long length);

Пример выделения области памяти ввода/вывода
#include <linux/module.h>
#include <linux/init.h>
#include <linux/fs.h>
#include <linux/ioport.h>

static int Major, result;
struct file_operations fops;

unsigned long start = 0, length = 0;

MODULE_PARM (start, "l");
MODULE_PARM (length, "l");

int Wipro_init (void) {
Major = register_chrdev (0, "Wipro_device", &fops);
if (Major < 0)
{
printk (" Major number allocation is failed \n");
return (Major);
}
printk (" The Major number of the device is %d \n", Major);

result = check_mem_region (start, length);
if (result < 0)
{
printk ("Allocation for I/O memory range is failed: Try other range\n");
return (result);
}

request_mem_region (start, length, "Wipro_device");
return 0;
}

void Wipro_cleanup (void) {
release_mem_region (start, length);
printk (" The I/O memory region is released successfully \n");

unregister_chrdev (Major, "Wipro_device");
printk (" The Major number is released successfully \n");
}

module_init (Wipro_init);
module_exit (Wipro_cleanup);
Первые четыре строки подключают заголовочные файлы, которые содержат объявления макроопределений и функций в ядре. Затем следуют объявления переменных. Макросы MODULE_PARM выполняют начальную установку переменных во время загрузки модуля. Этим макрокомандам передаются два параметра, первое -- имя переменной, второе -- тип переменной, в данном случае "l" означает long int. Сохраните исходный код примера в файле "io_mem.c".

В функциях Wipro_init и Wipro_cleanup производится инициализация и финализация (завершение работы) модуля драйвера. Функция Wipro_init сначала регистрирует устройство Wipro_device в системе, размещая старший номер устройства динамически. Затем она пробует зарезервировать заданную область памяти. Если заданный диапазон адресов уже занят, функция возвратит код ошибки, в противном случае она зарезервирует за устройством этот диапазон памяти. Функция Wipro_cleanup освобождает выделенную ранее память и возвращает старший номер устройства в систему (производит дерегистрацию устройства).

Скомпилируйте модуль. В результате должен получиться файл io_mem.o. На моей машине, с ядром 2.4, раскладка памяти и список устройств выглядят следующим образом:

    $cat /proc/devices
    Character devices:
    1 mem
    2 pty
    ...
    180 usb

    $cat /proc/iomem
    00000000-0009fbff : System RAM

    ... e0000000-e3ffffff : Silicon Integrated Systems [SiS] 620 Host
    ffff0000-ffffffff : reserved

Загрузите модуль командой
    $insmod ./io_mem.o start=0xeeee0000 length=0xeeee
Если загрузка прошла успешно, то можно увидеть, что устройство зарегистрировано под старшим номером 254 и за ним зарезервирован заданный диапазон памяти. Теперь перечень устройств и раскладка памяти выглядят следующим образом:
    $cat /proc/devices
    Character devices:
    1 mem
    2 pty
    ...
    180 usb
    254 Wipro_device

    $cat /proc/iomem 00000000-0009fbff : System RAM

    ... e0000000-e3ffffff : Silicon Integrated Systems [SiS] 620 Host
    eeee0000-eeeeeeed : Wipro_device
    ffff0000-ffffffff : reserved

Заключение

В этой статье мы обсудили важность безопасного выделения ресурсов для устройств с поддержкой ввода/вывода через отображаемую память в драйверах для Linux. Рассмотрели основы устройств ввода/вывода через отображаемую память и макрокоманды, используемые при распределении памяти. В качестве практического примера выделения ресурсов для устройства ввода/вывода через отображаемую память был приведен кусок кода из уже отлаженного драйвера. Был объяснен порядок регистрации устройства в системе и выделения ему диапазона адресов в памяти.

Благодарности

Я хотел бы выразить свою признательность Mr.V.Jayasurya и Dr. Sanjay Gupta, Talent Transformation, Wipro Technologies, India.

Ссылки
1. Linux Device Drivers (2nd Edition), by Alessandro Rubini and Jonathan Corbet. Книга издательства O'Reilly :http://linux.oreilly.com/
[Online версию книги "Linux Device Drivers, 2nd Edition" вы найдёте по адресу http://www.xml.com/ldd/chapter/book/index.html. Прим.ред.]

Ваши замечания и предложения
в том числе и деловые буду рад обнаружить на
oc(at)nm.ru



http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное