Linux відмовляється від інтерфейсу x32 ABI: проблемний й не популярний
Розробники Linux хочуть відмовитись від інтерфейсу x32 ABI, інтегрованого в ядро ОС у 2012 році.
За інформацією Phoronix, Себастьян Анджей Сівіор з Lintronix пропонує видалити x32 ABI з ядра Linux через застарілість та не надто широке поширення з моменту появи. Якщо ця пропозиція не зустріне серйозних заперечень, цей інтерфейс може бути видалений з ядра ОС ще до 2027 року.
x32 ABI був інтегрований в ядро Linux для оптимізації споживання пам’яті 64-бітними програмами. Він був розроблений, щоб забезпечити роботу 64-бітних процесорів та програм у напівгібридному режимі 64-біт/32-біт. Завдяки цьому інтерфейсу ПЗ отримує доступ до всього 64-бітного файлу регістрів та шляху даних, однак обмежується використанням 32-бітних вказівників.
Вказівник представляє двійкове число, яке відстежує дані, що зберігаються в системній пам’яті. Це дозволяє ОС використовувати 4 ГБ ОЗП з розміром вказівників 4 байти замість 8 для 64-бітної архітектури. Різниця у розмірах є ключовою перевагою x32 ABI, оскільки зменшення розміру вказівників вдвічі збільшує обсяг даних, які можуть вміститись в кеші процесора й відповідно підвищити продуктивність.
Однак x32 ABI має й недоліки. Цей інтерфейс ускладнює роботу розробників й вимагає від компіляторів підтримки цієї функції. Найбільша технічна проблема стосується того, що окремі процеси, які взаємодіють з x32 ABI, не можуть використовувати понад 4 ГБ пам’яті через обмеження розмірів вказівників.
Однак останнім аргументом проти x32 ABI є його недостатня поширеність серед розробників ПЗ. Ймовірно, через це інтерфейс був впроваджений тільки у Linux, а не в Windows або Mac. За словами Себастьяна Анджея Сівіора, покращена продуктивність недостатня для того, щоб робочі навантаження використовували виключно x32 ABI.
Джерело: Tom’s Hardware

