История изменений
Исправление SZT, (текущая версия) :
Использовать int 0x80 в 64-бит смысла нет. Оно медленно работает и аргументы там принимаются 32-битные (т.е. системным вызовом read ты не сможешь например заполнить массив в памяти процесса, если этот массив по адресу, который в 32-битный регистр не влазит). Кое-какие системные вызовы через int 0x80 недоступны (посмотри в /usr/include/asm/unistd_32.h и /usr/include/asm/unistd_64.h). Кроме того, оно может не заработать если ядро собрано без поддержки 32-битных вызовов. В 64-битной ОС лучше использовать инструкцию sysenter. См. https://stackoverflow.com/questions/46087730/what-happens-if-you-use-the-32-b...
Кстати, даже в 32-битных ОС int 0x80 лучше не юзать т.к. есть способы быстрее
Исправление SZT, :
Использовать int 0x80 в 64-бит смысла нет. Оно медленно работает и аргументы там принимаются 32-битные. Кое-какие системные вызовы через int 0x80 недоступны (посмотри в /usr/include/asm/unistd_32.h и /usr/include/asm/unistd_64.h). Кроме того, оно может не заработать если ядро собрано без поддержки 32-битных вызовов. В 64-битной ОС лучше использовать инструкцию sysenter. См. https://stackoverflow.com/questions/46087730/what-happens-if-you-use-the-32-b...
Кстати, даже в 32-битных ОС int 0x80 лучше не юзать т.к. есть способы быстрее
Исходная версия SZT, :
Использовать int 0x80 в 64-бит смысла нет. Оно медленно работает и аргументы там принимаются 32-битные. Кое-какие системные вызовы через int 0x80 недоступны (посмотри в /usr/include/asm/unistd_32.h и /usr/include/asm/unistd_64.h). Кроме того, оно может не заработать если ядро собрано без поддержки 32-битных вызовов. В 64-битной ОС лучше использовать инструкцию sysenter.