Показать полную графическую версию : Несколько ламерских вопросов
1) Пусть меня установлен пакет с известнам названием. Где мне искать помощь к нему?
2) Как в линуксе устанавливаются драйвера? Какой формат они имеют? Где их взять?
3) Где можно найти FAQ для СОВСЕМ ламеров, вроде меня (линукс 3 дня назад поставил)
1) Пусть меня установлен пакет с известнам названием. Где мне искать помощь к нему?
www.google.com
2) Как в линуксе устанавливаются драйвера? Какой формат они имеют? Где их взять?
В линуксе драйверов нет. Есть так называемые модули которые подгружаются к ядру.
3) Где можно найти FAQ для СОВСЕМ ламеров, вроде меня (линукс 3 дня назад поставил)
www.google.com
must die
19-10-2006, 07:49
1. man "имя пакета"
ruslandh
19-10-2006, 07:50
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/default.asp?deptID=894&task=knowledge&folderID=27
FAQ
hasherfrog
20-10-2006, 18:46
ruslandh
>> .o .ko .so
А может ли быть файл драйвера вообще без расширения? Я почему спрашиваю. Вот всякое "о" по сути - ELF'овский файл. ЕНМИП, в виндах, в COFF-файлах, есть разница между файлами-драйверами и файлам-екзешниками (вообще-то не кажется, а точно есть), в словах заголовка и т.п. А в ELF? Ведь загрузчик ОС определяет тип файла не по расширению, а по словам заголовка. Тогда
1. если разница в заголовке ELF (драйвер-недрайвер) есть, загрузчик должен игнорировать расширение файла.
2. если разницы в заголовке ELF (драйвер-недрайвер) нет, загрузчик должен уметь загрузить что угодно, как драйвер - значит, загрузчик должен игнорировать расширение файла.
Тогда получается, что расширение может быть вообще любое.
Я понимаю, что расширения .ko приделывается скорее для красоты, нежели в обязательном порядке. Но всё-так, можно ли обозвать файл драйвера как угодно, или есть какие-то ограничения (например, modprobe не будет работать, или ещё что-то страшное произойдёт)?
P.S. Под словом "загрузчик ОС" подразумевалась та часть ОС, которая отвечает за запуск программ: считку файла в память, загрузку и проверку библиотек модуля, выделение памяти, создание контекста процесса и прочих всяких таких премудростей. А не кто-то типа grub.
hasherfrog
Да ты вроде сам сказал в чем ограничения. Я так понял, главное чтобы начинка была соответствуущая. Ведь также можна привести пример в Win среде. Да и в юникс тоже. Измени расширение bmp файла на png, например. Открой во вьювере. Открывается само-собой. А если бы например txt переименивать в png, то оно не открылось бы. Мне кажется что в этом примере и в твоём причины одинаковые. Мне кажется расширение не имеет значение. Но я могу ошибаться, ведь в Линуксе я только начинающий. ИМХО.
hasherfrog
20-10-2006, 23:25
>> А если бы например txt переименивать в png, то оно не открылось бы.
А почему? Потому что расширение txt не проассоциировано с вьювером или потому что вьювер не смог открыть файл из-за неизвестного формата? Тут запутанный вопрос (точнее, мы его ещё больше запутываем сейчас своими примерами :]).
Вот если с файла драйвера убрать "executable" через chmod -x , он будет грузится? Предполагаю, что не будет.
Тут вопрос про то получается, на каком уровне (в каком месте) идёт определение того, что это файл "выполняемый" и что это "файл драйвера". Ведь если, например, ELF-заголовки драйверов (kernel?-библиотек?) и обычных динамических библиотек (so) не отличаются внутренним форматом, то можно ли драйверы (эти файлы) использовать в обычных программах для линковки? Или нет?
hasherfrog
xoomer
Тут запутанный вопрос
вопрос как раз не запутанный, а очень даже понятный (хотя детали про драйвера для linux пусть лучше объяснит ruslandh :))
windows работает с файлом, исходя их его расширения, причем использует данные, хранящиеся в реестре (можете добавить туда ассоциации с расширениями, или убрать и проверить :))
unix и unix-оподобные системы для идентификации типов файлов используют сигнатуры - признаки типов файлов (обычно занимающие первые байты фалойв). Так работает программа file и остальное (часто, кстати через нее). Опять-таки, имеется база данных сигнатур - очень полезная для того же программирования.
Чтобы сделать файл исполняемым в *nix надо выставить признак исполнения. Но ничто не мешает снять этот признак и запустить, скажем perl-овый скрипт так :
perl наш_скрипт
По поводу elf-библиотек файлов. Опять-таки, unix-подобная среда смотрит на то, что там внутри. Очень хорошо это видно при запуске linux-бинарников под FreeBSD - иногда (когда все признаки на лицо) они распознаются, как linux-ячьи и запускаются (если это разрешено в установках FreeBSD-ой среды), а иногда - нет и тогда надо объяснять системе, что мы имеем дело с linux-ым эльфом :) при помощи команды brandelf.
Это по части запутывания, - не знаю, удалось ли распутать, или запутать еще больше :)
А вот формат драйвера linux - это вопрос отдельный. Тут я боюсь наврать при теоретизировании, благо проверить сейчас не на чем :)
mar
скажем perl-овый скрипт так :
Тоисть ты имеешь ввиду запускать коммандой не perl script.pl , а запустить, например, perl script.vasya_petya . Сорри за каламбур, я имею ввиду, что тут-же расширение не имеет значения?
xoomer
расширение не имеет значения
да, совершенно верно. Расширение в unix не имеет никакого значения, да и строго говоря не являются расширенями (в DOS-овском понимании).
скрипт perl script.vasya_petya запустится.
Запустится и просто script.vasya_petya , если он будет исполняемым (атрибут x от exequite - исполнять, 755 например) и если (это же скрипт) в нем будет правильный шебанг (например #!/usr/bin/perl).
Расширения в unix используются скорей для собственного удобства, а не для системы. В отличие от windows, понимающей тип файла только по расширению.
ruslandh
21-10-2006, 02:43
А может ли быть файл драйвера вообще без расширения
- нет, потому, что в загрузке драйвера ядра участвует само ядро и insmod, а прежде чем его загрузить идёт проверка на то, что модуль соответствует ядру и по расширению и по базе модулей ядра, и по структуре, и по наличию устройства в системе, которое этот модуль должен поддерживать.
Вот всякое "о" по сути - ELF'овский файл
не обязательно, просто могут совпадать расширения.
В данном случае :
Модуль ядра :
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
ruslandh
21-10-2006, 03:01
Т.е. файл с таким заголовком можно запустить командой
>petya
[hasherfrog]
Тут вопрос про то получается, на каком уровне (в каком месте) идёт определение того, что это файл "выполняемый" и что это "файл драйвера". Ведь если, например, ELF-заголовки драйверов (kernel?-библиотек?) и обычных динамических библиотек (so) не отличаются внутренним форматом, то можно ли драйверы (эти файлы) использовать в обычных программах для линковки? Или нет?
Файл выполняемый или нет хранит файловая система (один из атрибутов файла).
Модуль ядра не имеет атрибута "выполняемый"
Формат как вы видите чуть-чуть отличается.
Для линковки - а почуму бы и не попробовать ? Только не будет работать, т.к. в модулях ядра используется "API" ядра, а не функции glibc (модули предназначены для работы в области ядра, а не пользовательской области), другое дело, если вы пишите свой модуль ядра.
расширение не имеет значения
для некоторых программ типа файловых менеджеров имеют, например - браузеры, мс и т.п. для ядра - в части пользовательских программ нет.
ruslandh
для некоторых программ типа файловых менеджеров имеют, например - браузеры, мс и т.п
ну, я вам не скажу за всю Одессу :) но konqueror (который и то, и другое) (http://konqueror.kde.org/) плюет на расширение и совершенно правильно показывает файл с именем bar1_php, как рисунок и при показе иконок в файловом мененджере и по "открыть" , а вот (неиспользуемый, правда мной) Xfce fast file manager xffm действительно ориентируется на расширение, - забавно. Так что, прав ты - от программы зависит, но в целом ничто не мешает создателям программы ориентироваться на unix-way, благо и средства (тот же file) для этого имеются.
hasherfrog
22-10-2006, 00:27
>> тот же file
Да, меня всегда удивлял этот способ, и я всегда про него забываю. :] dos-windows, трудное детство.
Всё, мой вопрос снят, как решённый (что расширение файлу драйвера всё-таки нужно).
hasherfrog
22-10-2006, 00:39
И всё-таки нет.
Надежда умирает последней.
Всё дело в том, что я хотел задачку одну решить однообразно под виндами и в *nix (мне ещё солярка требуется, не только разные linux'ы). Смысл такой - программа-сервер (в виде 1 файла )запускается либо как служба, либо как драйвер, либо как просто программа. И вроде в Windows это у меня вышло (во всяком случае, ы теории - точно решено, даже кое-что реализовнао и в коде). А вот в *nix, видимо, так вообще не получится, да? Просто драйвер этот мне нужен для повышения... как бы это... для затруднения реверс-инжениринга.
ruslandh
22-10-2006, 01:20
драйвер этот мне нужен для повышения... как бы это... для затруднения реверс-инжениринга
а смысл под Linux - если код открытый ?
Если закрытый, то не нарушаю лицензию GNU, надо внимательно подбирать средства разработки (что можно использовать из открытого кода, что нет).
hasherfrog
22-10-2006, 21:43
>> а смысл под Linux - если код открытый ?
Код не открытый, с какой стати? Сервер лицензирования ПО.
ruslandh
23-10-2006, 09:16
А что в его коде может быть закрытого ?
hasherfrog
23-10-2006, 10:26
ruslandh
Алгоритмы формирования (расшифровки) ключа, например.
мне ещё солярка требуется, не только разные linux'ы
Что именно требуется от Solaris?
Версия? Платформа?
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.