Доклад

Ни строчки C: Java 25 на железе без посредников

Java давно перестала быть только языком бэкендов — но между JVM и реальным железом всегда стоял неудобный мост из JNI-обёрток и C-кода. В этом докладе разберемся, как из Java разговаривать с микроконтроллерами, датчиками и шинами GPIO/I2C/SPI и почему раньше это требовало кросс-компиляции, Docker-конвейеров и отладки сквозь два языка. Пройдем по эволюции нативных вызовов — JNI, JNA, JNR и DMA-подходы вроде pigpio — и посмотрим, какую цену платил за каждый из них разработчик. Затем перейдем к FFM API из Java 25: как устроены Arena, MemorySegment и Linker, где проходят границы применимости технологии, что происходит с гарантиями по времени исполнения и как контролировать memory footprint нативных вызовов.

На примере open-source проекта Pi4J v4, в который вошел мой FFM-код, сравним старую и новую архитектуру: как библиотека избавилась от нативных библиотек целиком и стала работать на любом Linux и железе — от Raspberry Pi до RISC-V. Подкрепим разговор бенчмарками: где FFM дает кратный выигрыш, где упирается в физику шины и почему инициализация стала дороже.

Покажу живые примеры работы с настоящими датчиками и обсудим подводные камни. После доклада вы будете понимать, когда FFM — правильный выбор, а когда за микросекундами все еще нужно идти к ядру или микроконтроллеру.

Доклады