Несколько ламерских вопросов
1) Пусть меня установлен пакет с известнам названием. Где мне искать помощь к нему?
2) Как в линуксе устанавливаются драйвера? Какой формат они имеют? Где их взять? 3) Где можно найти FAQ для СОВСЕМ ламеров, вроде меня (линукс 3 дня назад поставил) |
Цитата:
Цитата:
Цитата:
|
1. man "имя пакета"
|
1 Пр справке :
man ИМЯ_ПРОГРАММЫ info ИМЯ_ПРОГРАММЫ /usr/share/doc/имя_пакета для некоторых больших или важных пакетов надо ещё установить пакет ИМЯ_ПАКЕТА.doc 2 Как таковых (в Windous понимании) , драйверов в Linux нет, a есть : Стандартные драйвера : - модули ядра, для поддержки аппаратуры (входят в ядро) (расширение .o или .ko) http://kernel.org - модули графического сервера (например, модули Xorg) (динамические библиотеки -.so) http://x.org - модули поддержки системы печати для конкретного принтера (в зависимости от того, какая система печати установлена - наиболеее часто установленная - cups) (расширение .ppd) - модули поддрежки сканеров для системы поддержки сканеров (sane) (*.usb и *.fv) http://www.meier-geinitz.de/sane/index_ru.html Впрочем всё это уже есть в нормальном дистрибутиве Linux Проприетарные драйвера для отдельных модемов, принтеров и видеокарт - ищутся на сайте производителя, например : http://www.nvidia.ru/object/linux_ru.html https://support.ati.com/ics/support/...ge&folderID=27 FAQ |
ruslandh
>> .o .ko .so А может ли быть файл драйвера вообще без расширения? Я почему спрашиваю. Вот всякое "о" по сути - ELF'овский файл. ЕНМИП, в виндах, в COFF-файлах, есть разница между файлами-драйверами и файлам-екзешниками (вообще-то не кажется, а точно есть), в словах заголовка и т.п. А в ELF? Ведь загрузчик ОС определяет тип файла не по расширению, а по словам заголовка. Тогда 1. если разница в заголовке ELF (драйвер-недрайвер) есть, загрузчик должен игнорировать расширение файла. 2. если разницы в заголовке ELF (драйвер-недрайвер) нет, загрузчик должен уметь загрузить что угодно, как драйвер - значит, загрузчик должен игнорировать расширение файла. Тогда получается, что расширение может быть вообще любое. Я понимаю, что расширения .ko приделывается скорее для красоты, нежели в обязательном порядке. Но всё-так, можно ли обозвать файл драйвера как угодно, или есть какие-то ограничения (например, modprobe не будет работать, или ещё что-то страшное произойдёт)? P.S. Под словом "загрузчик ОС" подразумевалась та часть ОС, которая отвечает за запуск программ: считку файла в память, загрузку и проверку библиотек модуля, выделение памяти, создание контекста процесса и прочих всяких таких премудростей. А не кто-то типа grub. |
hasherfrog
Да ты вроде сам сказал в чем ограничения. Я так понял, главное чтобы начинка была соответствуущая. Ведь также можна привести пример в Win среде. Да и в юникс тоже. Измени расширение bmp файла на png, например. Открой во вьювере. Открывается само-собой. А если бы например txt переименивать в png, то оно не открылось бы. Мне кажется что в этом примере и в твоём причины одинаковые. Мне кажется расширение не имеет значение. Но я могу ошибаться, ведь в Линуксе я только начинающий. ИМХО. |
>> А если бы например txt переименивать в png, то оно не открылось бы.
А почему? Потому что расширение txt не проассоциировано с вьювером или потому что вьювер не смог открыть файл из-за неизвестного формата? Тут запутанный вопрос (точнее, мы его ещё больше запутываем сейчас своими примерами :]). Вот если с файла драйвера убрать "executable" через chmod -x , он будет грузится? Предполагаю, что не будет. Тут вопрос про то получается, на каком уровне (в каком месте) идёт определение того, что это файл "выполняемый" и что это "файл драйвера". Ведь если, например, ELF-заголовки драйверов (kernel?-библиотек?) и обычных динамических библиотек (so) не отличаются внутренним форматом, то можно ли драйверы (эти файлы) использовать в обычных программах для линковки? Или нет? |
hasherfrog
xoomer Цитата:
windows работает с файлом, исходя их его расширения, причем использует данные, хранящиеся в реестре (можете добавить туда ассоциации с расширениями, или убрать и проверить :)) unix и unix-оподобные системы для идентификации типов файлов используют сигнатуры - признаки типов файлов (обычно занимающие первые байты фалойв). Так работает программа file и остальное (часто, кстати через нее). Опять-таки, имеется база данных сигнатур - очень полезная для того же программирования. Чтобы сделать файл исполняемым в *nix надо выставить признак исполнения. Но ничто не мешает снять этот признак и запустить, скажем perl-овый скрипт так : Код:
perl наш_скрипт Это по части запутывания, - не знаю, удалось ли распутать, или запутать еще больше :) А вот формат драйвера linux - это вопрос отдельный. Тут я боюсь наврать при теоретизировании, благо проверить сейчас не на чем :) |
mar
Цитата:
|
xoomer
Цитата:
скрипт perl script.vasya_petya запустится. Запустится и просто script.vasya_petya , если он будет исполняемым (атрибут x от exequite - исполнять, 755 например) и если (это же скрипт) в нем будет правильный шебанг (например #!/usr/bin/perl). Расширения в unix используются скорей для собственного удобства, а не для системы. В отличие от windows, понимающей тип файла только по расширению. |
Цитата:
Цитата:
В данном случае : Модуль ядра : file bpa10x.ko bpa10x.ko: ELF 32-bit LSB relocatable, Intel 80386, version 1 (SYSV), not stripped file gscd.ko gscd.ko: ELF 32-bit LSB relocatable, Intel 80386, version 1 (SYSV), not stripped Исполняемый файл : file arch arch: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.4.1, dynamically linked (uses shared libs), stripped Динамическая библиотека : file libdes425.so.3.0 libdes425.so.3.0: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), stripped xoomer Файл с таким заголовком ядро само запустит через перл, даже если в нём нет никакого расширения #!/usr/bin/perl5 |
Т.е. файл с таким заголовком можно запустить командой
>petya [hasherfrog] Цитата:
Модуль ядра не имеет атрибута "выполняемый" Формат как вы видите чуть-чуть отличается. Для линковки - а почуму бы и не попробовать ? Только не будет работать, т.к. в модулях ядра используется "API" ядра, а не функции glibc (модули предназначены для работы в области ядра, а не пользовательской области), другое дело, если вы пишите свой модуль ядра. Цитата:
|
ruslandh
Цитата:
|
>> тот же file
Да, меня всегда удивлял этот способ, и я всегда про него забываю. :] dos-windows, трудное детство. Всё, мой вопрос снят, как решённый (что расширение файлу драйвера всё-таки нужно). |
И всё-таки нет.
Надежда умирает последней. Всё дело в том, что я хотел задачку одну решить однообразно под виндами и в *nix (мне ещё солярка требуется, не только разные linux'ы). Смысл такой - программа-сервер (в виде 1 файла )запускается либо как служба, либо как драйвер, либо как просто программа. И вроде в Windows это у меня вышло (во всяком случае, ы теории - точно решено, даже кое-что реализовнао и в коде). А вот в *nix, видимо, так вообще не получится, да? Просто драйвер этот мне нужен для повышения... как бы это... для затруднения реверс-инжениринга. |
Цитата:
Если закрытый, то не нарушаю лицензию GNU, надо внимательно подбирать средства разработки (что можно использовать из открытого кода, что нет). |
>> а смысл под Linux - если код открытый ?
Код не открытый, с какой стати? Сервер лицензирования ПО. |
А что в его коде может быть закрытого ?
|
ruslandh
Алгоритмы формирования (расшифровки) ключа, например. |
Цитата:
Версия? Платформа? |
На например 5.8 sparc. Мне ничего не требуется :] Вопрос такой: можно ли так организовать файл (через ELF-хидер али ещё как), чтобы его можно было грузить как драйвер и в тоже время запускать как обычное приложение в *nix. Я думаю, ушёл далеко за рамки темы...
|
hasherfrog
А аллах-его-знает. Пробовать то мы (у себя в конторе) можем что угодно, только вот системных программеров у меня в штате нет :sorry: Опять же, гм. 5.8 - уже малехо устарела ,особенно по сравнению с 10й. |
hasherfrog
Я уже вроде ответил, что нельзя :) |
ruslandh
Надежда умирает последней... Увы мне :-) |
hasherfrog
кстати, вполне можно использовать opensolaris для i386 (если sparc-ов нет) |
Время: 23:15. |
Время: 23:15.
© OSzone.net 2001-