![]() |
Модераторы: xvr |
![]() ![]() ![]() |
|
v4567 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 6.8.2007 Репутация: нет Всего: нет |
Подскажите пожалуйста аналог, библиотеки в которой есть заголовочный файл dos.h, в linux.
Необходимо работать с видеоадаптером на низком уровне, писать в видеопамять и т.д. Скорее всего в linux эта библиотека называется не так как в windows? Подскажите пожалуйста её название. |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 16 Всего: 196 |
эта библиотека называется libc. в ней есть open/read/write/close/ioctl. для работы с аппаратурой большего и не надо. Если для адаптера нет драйвера в ядре, то надо его написать.
Добавлено через 2 минуты и 49 секунд Кстати, работать с ресурсами аппаратуры может ТОЛЬКО ядро. В *nix все известные ядру устройства, предполагающие работу с пользовательским ПО, представлены в виде файлов, которые находятся в каталоге /dev. Чтобы ядро могло работать с устройством, необходим драйвер. Если устройство относительно стандартное, то драйвер давно есть. Если самопальное, то придется писать самому. |
|||
|
||||
500mhz |
|
|||
![]() шайтан ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1017 Регистрация: 5.5.2008 Где: Киев / Italy Репутация: нет Всего: 14 |
Эта библиотека называется svgalib (нужен рут для работы).
-------------------- |
|||
|
||||
v4567 |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 6.8.2007 Репутация: нет Всего: нет |
наверное не совсем то вот есть код под дос
вот ещё
мне его надо в linux реализовать я тут поспрашивал и понял что один в один не получится сделать, в libc есть функции для записи в порт в память и прерывания, делать на низком уровне придётся через них, но один в один код на linux перенести не получится. Или я ошибаюсь? |
||||||
|
|||||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 16 Всего: 196 |
очень странно. по идее, это быть не должно. так как в отличие от DOS все современные ОС защищают доступ к аппаратным ресурсам системы от пользовательских процессов. Таким образом, даже если ты и попытаешься это сделать, то ядро твой процесс моментально прибьет с сообщением segmentation fault. Если хочешь запустить свою программу на современной ОС, тебе необходимо переписать все функции работы с видеокартой на какие-нибудь библиотечные. Думаю, тебе стоит взглянуть на библиотеку SDL. |
|||
|
||||
Kekek |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 71 Регистрация: 19.8.2007 Где: Северодонецк Репутация: нет Всего: 3 |
В Юниксах работа с текстовой консолью обычно осуществляется через библиотеки ncurses или slang. Работать в графике лучше через X-Window. Причём, лучше использовать какую-нибудь высокоуровневую библиотеку, например, GTK+ или QT. Прямое обращение к портам ввода-вывода возможно только из ядра, для прикладной программы невозможно.
|
|||
|
||||
rsm |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 999 Регистрация: 16.3.2005 Репутация: 3 Всего: 62 |
Вообще-то возможно: iopl (2), хотя и с ограничениями. Другое дело, что попытка порулить видеопамятью напрямую может обрушить всю систему. |
|||
|
||||
ller |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 325 Регистрация: 4.8.2008 Где: г. Таганрог Репутация: нет Всего: 4 |
ну с правами рута можно писать в порты outb, outw, outl. Только это очень черевато
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "С/С++: Программирование под Unix/Linux" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |