Доступ к аппаратному порту ПК с Java на Linux
Что такое Java-на-Linux, эквивалентный функциям ввода / вывода аппаратного порта C-байтовой архитектуры ПК?
Для вывода есть outb
как в этом:
tmp = inb(0x61);
if (tmp != (tmp | 0x01))
outb(0x61, tmp | 0x01);
Для ввода есть inb
как в этом:
tmp = (inb(0x61) & 0xfe);
outb(0x61, tmp);
Цель: я хочу реализовать что-то, что накладывает меньше затрат, чем это:
try { Runtime.getRuntime().exec("beep") } catch (IOException e) {}
в качестве альтернативы отправке кода 7 (символ звонка) на стандартный вывод, потому что в Ubuntu он явно отключен. Звуковой сигнал инструментария также отключен.
1 ответ
Я думаю, что вы лаете не на тот поезд.
Java - это объектно-ориентированный язык высокого уровня, компилируемый в архитектуру виртуальной машины. Инструкции ввода-вывода ассемблера зависят от аппаратного процессора. Там нет прямой эквивалентности между ними.
Лучшее, на что вы можете надеяться - это связать ваш Java-код (используя каналы, разделяемую память, сокеты и т. Д.) С собственным приложением Linux, которое выполняет требуемый ввод-вывод.