· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.RESEARCH —› Linux и функции 80-го прерывания, а также GUI

Посл.отвђт Сообщенiе


Дата: Ноя 25, 2003 04:35:01

Подскажите кто-нить или покажите документацию функции 80-го прерывания. Интересно еще, как писать GUI?


Дата: Ноя 25, 2003 05:09:33

По GUI начните с этой статьи, например:

http://freshmeat.net/articles/view/928/

А дальше man'ы и google'ы.


Дата: Ноя 25, 2003 05:44:45

документацию функции 80-го прерывания

см. кода ядра. Напрямую. Завтра с работы пример приведу.


Дата: Ноя 25, 2003 07:49:34

volodya
жду с нетерпением.....

xzazet
уже щас читаю, спасибо...


Дата: Ноя 25, 2003 13:44:50

zalexf

список функций int80h(linux 2.2), с указанием параметров и регистров, куда эти параметры засовывать,(+даны названия *.с, где эти функции определены) лежит тут:

www.informatik.htw-dresden.de/~beck/ASM/syscall_list.html


Дата: Ноя 25, 2003 19:52:25

zalexf

То, что предложил тебе intuit - это классно, однако понимание сути уходит. syscall - вполне документированная структура. И логика достаточно проста. У Windows такая же. Все syscall'ы находятся в таблице, где eax служит индексом элемента. int 80 (через #define) и eax*4 дадут нам индекс функции в ENTRY(sys_call_table). Файл: entry.S. Фрагмент выглядит так:
ENTRY(sys_call_table)
	.long sys_restart_syscall	/* 0 - old "setup()" system call, used for restarting */
	.long sys_exit
	.long sys_fork
	.long sys_read
	.long sys_write
	.long sys_open		/* 5 */
	.long sys_close
	.long sys_waitpid
	.long sys_creat
	.long sys_link
	.long sys_unlink	/* 10 */
	.long sys_execve
	.long sys_chdir
	.long sys_time

Убираешь приставку sys и имеешь обычную нормальную функцию кольца-3. sys_chdir - это chdir и т.п. Есть и специальные случаи, типа long sys_ni_syscall. О них не будем. Параметры передаются через регистры. Процедура стандартна. Подготовка регистров осуществляется кольцом-3, ядру до фени. Поэтому, если тебе интерестно прямое программирование на syscall'ax - копай libc.
Да, все, что здесь расписано, валидно для ядра 2.4/2.6. Вроле все. Помог?


Дата: Ноя 25, 2003 20:00:07

http://lowlevel.ru/articles/sys_call.htm - интерестная статья.


Дата: Ноя 26, 2003 05:44:45

всем спасибо!


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.079