История изменений
Исправление mittorn, (текущая версия) :
Потому что в линуксе нету такой банальной штуке как portable executable. Угадай как проще всего собрать игру чтобы работала под линуксами и при этом не собирать её отдельно под 100500 дистров, при этом не сожрав гигабайт-другой на flatpak?
Правильно, мать его, виндовый exe, который прекрасно работает на win32s, win9x/dos, winnt, wine и будет работаьь пока x86 не умрёт совсем
Потому что в линуксе решили - а давайте мы загрузчик ,so, реализацию сокетов поверх сисколов, аллокатор и другие никак не связанные с C системные вещи пихнём в glibc, а в glibc будем держать только одностороннюю совместимость. В итоге glibc хоть и гарантирует запуск всего старого софта, но чтобы собрать софт так чтобы он работал на большом спектре систем придётся собирать его со всеми зависимостями в старом glibc. И никто не делает никакого portable linux тулчейна чтобы разработчики игр могли под этот ваш линукс собирать портабельные игры.
Тем временем в винде для этого libc полностью отделён от системных API и ты можешь положить себе свою libc, opengl загрузит свою и никаких флетпаков не нужно.
Вот представь себе если бы портабельная программа всё содержимое system32 кроме drivers на windows тащила с собой? А мы тут в линуксах такой дичью занимаемся вообще-то теперь
Суть драммы, вот нашёлся баг в glibc в функции возведения в степень, вот и добавили новую `pow` с новой версией, нельзя же менять поведение старого софта? А то софт собранный под грёбанные RHEL6 будет работать чуть по другому. В итоге теперь при линковке с новым glibc весь софт тащит новую версию симвала. А тут очнёлся сисадми со своим любимым дебианом и у него софт не работает! И тут он, насмотревшийся на свой любимый докер изобретает... flatpak. ДАвайте все зависимости пихнём в контейнер.
Потом ой.. а у нас блоб невидии не загрузился, пихаем его тожа...
Потом на всех форумах когда i965 заменили на iris ой... у нас аппаратное декодирвоание видео отвалилось.
А оперативки тем временем наш хвалёный флетпак жрёт в 2 раза больше потому что мы грузим mesa llvm системный и из контейнера. А в дебиане мы ещё грущим библиотеки под все gpu сразу, а вдруг они пригодятся. И у нас одно запущенное gtk3 приложение с маленьким окошком выжирает аж 4 гига рамы, браво!
Исходная версия mittorn, :
Потому что в линуксе нету такой банальной штуке как portable executable. Угадай как проще всего собрать игру чтобы работала под линуксами и при этом не собирать её отдельно под 100500 дистров, при этом не сожрав гигабайт-другой на flatpak?
Правильно, мать его, виндовый exe, который прекрасно работает на win32s, win9x/dos, winnt, wine и будет работаьь пока x86 не умрёт совсем
Потому что в линуксе решили - а давайте мы загрузчик ,so, реализацию сокетов поверх сисколов, аллокатор и другие никак не связанные с C системные вещи пихнём в glibc, а в glibc будем держать только одностороннюю совместимость. В итоге glibc хоть и гарантирует запуск всего старого софта, но чтобы собрать софт так чтобы он работал на большом спектре систем придётся собирать его со всеми зависимостями в старом glibc. И никто не делает никакого portable linux тулчейна чтобы разработчики игр могли под этот ваш линукс собирать портабельные игры.
Тем временем в винде для этого libc полностью отделён от системных API и ты можешь положить себе свою libc, opengl загрузит свою и никаких флетпаков не нужно.
Вот представь себе если бы портабельная программа всё содержимое system32 кроме drivers на windows тащила с собой? А мы тут в линуксах такой дичью занимаемся вообще-то теперь