Доступ к аппаратному порту ПК с 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, которое выполняет требуемый ввод-вывод.

Другие вопросы по тегам