На прошлой неделе я пошел еще дальше и собрал демку с этим фреймворком в Debian 2.0. Эта версия дистрибутива Linux была выпущена в июле 1998 года.

На нем программка работает, конечно, неидеально, но работает. Даже с учетом того, что я портировал все доступные функции библиотеки с Windows на Linux.

При этом на современных дистрибутивах Linux вроде Debian 13 она продолжает работать как ни в чем не бывало.

Возможно, код также будет правильно работать и на BSD, и на SerenityOS, но не в случае с Slackware 2.0 (на втором скриншоте), поскольку там в основном используется устаревший формат исполняемых файлов a.out, который плохо умел в динамическую привязку библиотек, что являлось хорошим аргументом к переходу на ELF в Linux 1.2, выпущенное в марте 1995 года.

Несмотря на то, что данная версия Slackware содержит ядро Linux 1.2, компилятор GCC тех лет поддерживал компиляцию в a.out по умолчанию.

Да и ELF’ы от второго Debian на Slackware не будут запускаться. Скорее всего, поддержка ELF тогда была зачаточной, так как ELF стал стандартом де-факто в UNIX-подобных ОС только к 1998 году.
Показать больше