Совместимость бинарника со всеми Linux

Общие вопросы программирования, алгоритмы и т.п.

Модератор: Модераторы

Re: Совместимость бинарника со всеми Linux

Сообщение скалогрыз » 29.09.2023 18:25:38

alexs писал(а):Из личной практики - важно учитывать разрядность

оказывется и эту проблему уже почти победили.
https://en.wikipedia.org/wiki/Executabl ... _for_Linux
FatELF is an ELF binary-format extension that adds fat binary capabilities. It is aimed for Linux and other Unix-like operating systems. Additionally to the CPU architecture abstraction (byte order, word size, CPU instruction set etc.), there is the potential advantage of software-platform abstraction e.g., binaries which support multiple kernel ABI versions. As of 2021, FatELF has not been integrated into the mainline Linux kernel.


гоогле перевод:
FatELF — это расширение двоичного формата ELF, которое добавляет возможности «толстого» двоичного кода. Он предназначен для Linux и других Unix-подобных операционных систем. В дополнение к абстракции архитектуры ЦП (порядок байтов, размер слова, набор инструкций ЦП и т. д.) существует потенциальное преимущество абстракции программной платформы, например, двоичные файлы, которые поддерживают несколько версий ABI ядра. По состоянию на 2021 год FatELF не интегрирован в основное ядро Linux.
скалогрыз
долгожитель
 
Сообщения: 1803
Зарегистрирован: 03.09.2008 02:36:48

Re: Совместимость бинарника со всеми Linux

Сообщение RRYTY » 29.09.2023 20:46:49

скалогрыз писал(а):оказывется и эту проблему уже почти победили

Побеждают это одним примитивным способом - выбрасывают поддержку x86-32 из дистрибутива вообще. Начинается это с разработчиков, поставляющих предкомпилированный софт. В эпоху "импортозамещения" ситуация стала критической и принуждает организации отказываться от процессоров, не поддерживающих x64-архитектуру.

Добавлено спустя 6 минут 1 секунду:
WAYFARER писал(а):Если мне кто то скажет что для разработки под Windows надо изучить меньше, то я скажу что этот человек не знает о чем говорит.


Добавлю, что "и надеется не узнать". Ошибается человек.
При разработке софта для windows сколько раз приходилось ради совместимости 98/XP/W7 одно и то же на этапе компиляции разными способоми решать, а значит знать, как решить несколькими способами. Обычно это касалось кодировок, разрядности и перехвата/значения/последовательности событий. Да еще смена копонентов при переходе от версии к версии серды разработки (это еще ума хватало не использовать всякие сторонние несбалансированные компоненты)... Бррр... Топтание на подмоченном... Это забылось, как страшный сон, при переходе на Linux в качестве базы.
RRYTY
постоялец
 
Сообщения: 187
Зарегистрирован: 25.12.2021 10:00:32

Re: Совместимость бинарника со всеми Linux

Сообщение Снег Север » 30.09.2023 05:59:53

WAYFARER писал(а):Собственно в Linux, тоже есть подобные средства, но используются в основном на серверах и их использование требует некоторых продвинутых навыков

Примерно о том и речь - в винде откатиться может любая домохозяйка, а в линухе - ну вышел я в безопасный режим - и что делать дальше? Никаких подсказок и никаких намеков, как убрать валящую систему приблуду.

Добавлено спустя 5 минут 30 секунд:
RRYTY писал(а):При разработке софта для windows сколько раз приходилось ради совместимости 98/XP/W7 одно и то же на этапе компиляции разными способоми решать

Не могу даже представить, какие вообще проблемы надо было решать на этом переходе, разве что - если вы интенсивно лазили на уровень winAPI, то от 98 к ХР бьыли проблемы, но кто вам доктор? В линухах такие проблемы вообще неразрешимы. А переход от ХР на семерку вообще ни у кого из известных мне разработчиков не вызывал проблем.
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 2997
Зарегистрирован: 27.11.2007 16:14:47

Re: Совместимость бинарника со всеми Linux

Сообщение RRYTY » 30.09.2023 07:29:52

Снег Север писал(а):Примерно о том и речь - в винде откатиться может любая домохозяйка, а в линухе - ну вышел я в безопасный режим - и что делать дальше? Никаких подсказок и никаких намеков, как убрать валящую систему приблуду.


Все верно. Цель виндопользователей - уровень домохозяйки, еще ниже, еще тупее, даешь!
Выбираю - ни строчки кода для домохозяйки. Желающих её окучить хватает, это омерзительно. Пишу только то, что облегчает труд.

Добавлено спустя 27 минут 53 секунды:
Снег Север писал(а):Не могу даже представить, какие вообще проблемы надо было решать на этом переходе, разве что - если вы интенсивно лазили на уровень winAPI, то от 98 к ХР бьыли проблемы, но кто вам доктор?


Все верно. Был грустный период изучения Windows. Тяжелые воспоминания. :'-(
Как будто в ящике несколько лет отсидел. Вокруг жили нормальные люди, работали, что-то создавали. Иногда по ящику постукивали: "Ты там как, дышишь еще? Скоро новый ящик тебе сделают, восьмиугольный, будет бедолаге чем заняться. Говорят, десятиугольный уже мутят."
RRYTY
постоялец
 
Сообщения: 187
Зарегистрирован: 25.12.2021 10:00:32

Re: Совместимость бинарника со всеми Linux

Сообщение WAYFARER » 30.09.2023 09:56:33

Снег Север писал(а):Примерно о том и речь - в винде откатиться может любая домохозяйка, а в линухе - ну вышел я в безопасный режим - и что делать дальше? Никаких подсказок и никаких намеков, как убрать валящую систему приблуду.

Ну так разница в том, что домохозяйка уронить линукс не сможет (а если сможет, то уровень явно выше домохозяйки будет). Ей не понадобится безопасный режим.
А ежели ты получив рута лезешь не пойми куда, то предполагаются что ты знаешь что делаешь и осознаешь возможные последствия.
Это как если бы человек, не разбираясь в автомобилях перед поездкой выкинул несколько "лишних" деталей из под капота)

Я уж писал, круто что в виндовс восстановление сделано так, что им может пользоваться домохозяйка, но плохо то, что та же домохозяйка может привести систему к тому состоянию, когда это самое восстановление понадобится.
Аватара пользователя
WAYFARER
энтузиаст
 
Сообщения: 520
Зарегистрирован: 09.10.2009 00:00:04
Откуда: г. Курган

Re: Совместимость бинарника со всеми Linux

Сообщение Снег Север » 30.09.2023 10:36:15

WAYFARER писал(а):но плохо то, что та же домохозяйка может привести систему к тому состоянию, когда это самое восстановление понадобится.

В линухах почти ничего невозможно поставить или изменить без sudo - и никакой разницы с виндой в этом нет.
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 2997
Зарегистрирован: 27.11.2007 16:14:47

Re: Совместимость бинарника со всеми Linux

Сообщение Alexander » 30.09.2023 11:12:02

Это не проблема, а решение. Несовместимость создаётся разработчиками свободного ПО специально для борьбы с копирастами.
На начальном этапе развития имело место массовое нарушение GPL копирастами и их выкинули, создав несовменстимое ABI. В ядре аж пришлось менять .o на .ko, а то и туда проприетарныее модули впихнуть пытались с нарушением.

Этого и нужно придерживаться. Только через исходный код и его компиляцию. Это не всегда удобно и в чём то накладно, но зато главная задача свободного ПО при этом решается, а при стабильном ABI - нет. То есть эту задачу не нужно ни ставить, ни решать.
Аватара пользователя
Alexander
энтузиаст
 
Сообщения: 703
Зарегистрирован: 18.12.2005 19:10:00
Откуда: оттуда

Re: Совместимость бинарника со всеми Linux

Сообщение RRYTY » 30.09.2023 11:43:01

Alexander писал(а):Этого и нужно придерживаться. Только через исходный код и его компиляцию. Это не всегда удобно и в чём то накладно, но зато главная задача свободного ПО при этом решается, а при стабильном ABI - нет. То есть эту задачу не нужно ни ставить, ни решать.


Абсолютно верно!
Жаль, что нельзя приложения на Lazarus не получится поставлять в исходниках - слишком тяжёлые зависимости получаются. Но, в конце-концов, никто на fpc сервер писать не будет, так что у Lazarus своя ниша. Целиком согласен, что "эту задачу не нужно ни ставить, ни решать".
RRYTY
постоялец
 
Сообщения: 187
Зарегистрирован: 25.12.2021 10:00:32

Re: Совместимость бинарника со всеми Linux

Сообщение WAYFARER » 30.09.2023 12:04:52

Снег Север писал(а):В линухах почти ничего невозможно поставить или изменить без sudo

не могу говорить за все дистрибутивы, но в современных популярных десктопных принцип работы примерно такой же как в смартфоне.
После установки система сразу готова к работе, а приложения можно устанавливать из менеджера приложений ( как Microsoft Store в Windows), и установка из него не ломает систему никогда. Для домохозяек этого более чем достаточно.

Alexander писал(а):Это не проблема, а решение. Несовместимость создаётся разработчиками свободного ПО специально для борьбы с копирастами.

Звучит как теория заговора)
Alexander писал(а): В ядре аж пришлось менять .o на .ko, а то и туда проприетарныее модули впихнуть пытались с нарушением.

Соглашение использовать расширение .ko было принято только для того что бы избежать путаницы с обычными объектными файлами.
Модули ядра, в отличии от обычных объектников содержат дополнительные данные необходимые для загрузки модулей.
А с нарушителями GPL борются более классическим образом - в судах


Добавлено спустя 1 минуту 13 секунд:
Alexander писал(а):То есть эту задачу не нужно ни ставить, ни решать.

Здесь полностью поддерживаю
Аватара пользователя
WAYFARER
энтузиаст
 
Сообщения: 520
Зарегистрирован: 09.10.2009 00:00:04
Откуда: г. Курган

Re: Совместимость бинарника со всеми Linux

Сообщение Alexander » 30.09.2023 12:41:07

> слишком тяжёлые зависимости получаются.

Но если их можно как-то понять, то может быть поставить эту проблему перед разработчиками ?
Я использовал MSEgui для такой цели -- там зависимостей немного. А проект на Лазарусе так и оставил в виде проекта на Лазарусе (без Makefile).
Но может при таком взгляде на проблему с Лазарусом она станет решаемой ?
Сделать тестовый проект, указать всё как надо и посчитать сколько и чего будет в зависимостях.
То есть сделать это вопрос наглядным для разработчиков.
А может и не так уж много этих зависимостей окажется, а просто больше, чем у остальных. Ведь сам Лазарус вполне собирается на обычном комплекте пакетов.
Но понять это действительно надо.
Аватара пользователя
Alexander
энтузиаст
 
Сообщения: 703
Зарегистрирован: 18.12.2005 19:10:00
Откуда: оттуда

Re: Совместимость бинарника со всеми Linux

Сообщение WAYFARER » 30.09.2023 13:23:34

Alexander писал(а):Но если их можно как-то понять, то может быть поставить эту проблему перед разработчиками ?

Проблемы никакой нет. Пользователь не хочет собирать программы из исходных кодов, не надо ему этого красноглазия. Пользователь хочет просто работать.
Потому ПО распространяется в виде бинарников, но при этом исходный код доступен.
Не надо возвращаться на 30 лет назад. Я помню времена когда установка системы была тем еще квестом, когда ты обложившись распечатанными на целой пачке бумаги мануалами несколько дней собираешь и конфигурируешь систему и ПО. Нафиг оно надо.
Аватара пользователя
WAYFARER
энтузиаст
 
Сообщения: 520
Зарегистрирован: 09.10.2009 00:00:04
Откуда: г. Курган

Re: Совместимость бинарника со всеми Linux

Сообщение Alexander » 30.09.2023 14:44:09

Ну я использую Дебиан. Это очень даже двоичный дистрибутив. Но там же и исходники. Дело не в "красноглазии" -- от сборки из исходников одни плюсы и для пользователя, а в скорости установки - обновления. Компилятор Си медленный и отсюда только и проблема. Всё равно часть программ и в Дебиан ставятся только из исходников: патчи, оптимизация под процессор, сборка с другим чем в дистрибутиве набором функций, другая версия, отсутствие в репозитории, свои программы ... Во многих случаях под машину собирается ядро -- под особенности "железа" -- иначе оно не запустится. Так что для ускорения ставится Дебиан, а затем на него дособираются нужные программы с нужными свойствами. Для свободных программ распространяемое двоичное представление скорее форма кеширования из-за медленного компилятора. При быстром компиляторе двоичная форма распространения вообще бы не потребовалась. Даже для Си есть Arch Linux, Gentoo, .. которые только на исходниках и они ультрасовременные, а не "тридцатилетней давности".
Аватара пользователя
Alexander
энтузиаст
 
Сообщения: 703
Зарегистрирован: 18.12.2005 19:10:00
Откуда: оттуда

Re: Совместимость бинарника со всеми Linux

Сообщение RRYTY » 30.09.2023 15:33:33

Верно, нет проблем. Но если из исходников программу на lazarus'е, то и lazarus - из исходника. Раз так, то, по зависимости - и fpc из исходника. Это уже процесс, требующий определенной arch-, gentoo-, lfs-квалификации. Кроме того - ну на кой пользователю в системе целый паскалевый тулчейн, ради одной lazarus-программы? Это как куча оригинальных библиотек ради одного приложения, чепуха какая-то. Не, чистота - залог здоровья. Уважая ресурсы пользователя (время, дисковое пространство и т.п.) - бинарник. Но, как правильно замечено, исходник доступен, разработчик контактен.
Этим бесят разработчики системного ПО на питоне. Один пишет под 3.10, другой на 3.11 пересел. Один гений вообще у себя держит 2.6 и в ус не дует. Получается, держи в системе два интерпретатора (с надеждой, что 3.10 как-то совместится с 3.11) этого дерьмища, разработчику в подляк время на актуализацию тратить, на базовом же СИшном тулчейне - религия запрещает и IQ не хватает. Без системных инструментов никуда не денешься. Черт с ними, со словами благодарности компилируем этот террариум - и что? Какая-то гнида, видите ли, считает, что для его задач перебора строчек в потоке больше всего подходит perl. Это тоже интерпретатор. И начинаем компилировать ещё и перловку ...
Но это ещё цветочки. Хочешь firefox, оптимизированный на стадии компиляции, из исходника? Не проблема, только мега-модный тулчейн rust'а надо впилить, он говорят, время дэвам сильно экономит. Исходничек же firefox'а уже за полгигабайтика перевалил, времени дэвы не жалеют, на русте извращенческие свои скриптики пиндюрят, собаки. Rust собирается столько же, сколько базовый монстр - gcc. Да эти мразотные руст-модули потом, чтобы в браузер собраться, столько же времени захотят. Так что в бинарный firefox уже взгляд с симпатией упирается, и за то, что его компилят разработчики - спасибочки.
Извиняюсь за эмоциональность.

Добавлено спустя 59 минут 57 секунд:
Alexander писал(а):... Даже для Си есть Arch Linux, Gentoo, .. которые только на исходниках ...


От gentoo в свое время отпочковался создатель под свой же проект fantoo, предкомпиленные пакеты, как в том же debian, только с portage, автоустановщиком и ледями. Кроме того, также бинарный дистрибутив calculate. Оба базируются на portage gentoo. Да и сам gentoo не отрицает бинарник. Только философское отношение к нему там, как к исходнику в debian'е. Если root так решил - никто спорить не станет, но плачущий от поломки root - достоин сожаления, а где и осмеяния.
RRYTY
постоялец
 
Сообщения: 187
Зарегистрирован: 25.12.2021 10:00:32

Re: Совместимость бинарника со всеми Linux

Сообщение Alexander » 30.09.2023 17:41:53

> FatELF

Вспоминается в связи с этим названием: (Никлаус Вирт: Долой "жирные" программы) http://hosting.vspu.ac.ru/~chul/wirth/fatpr/fatpr.htm

> больше всего подходит perl.

Ну да, кто-то сделал модными интерпретаторы. И пошло.

Касаемо Лазаруса, MSE и ФПК, то они и так взаимосвязаны и среды при работе требуют исходников. А программа на них написана далеко не одна. И создать полную среду для Паскаль-программ нормальное дело.
Аватара пользователя
Alexander
энтузиаст
 
Сообщения: 703
Зарегистрирован: 18.12.2005 19:10:00
Откуда: оттуда

Re: Совместимость бинарника со всеми Linux

Сообщение Сквозняк » 30.09.2023 21:45:45

grot писал(а):Есть ли какие подходы заставить это работать ?


Во первых, новые компиляторы должны быть так собраны, чтобы делали бинарники совместимыми с древними линуксами. Если не запускается, то надо пересобрать компилятор в федоре 17 или убунте 12.04 lts - с древними либами. А во вторых, никаких опций O3 и O1 при компиляции. Заметил, что с такой оптимизацией иногда подтормаживает передача значений глобальной переменной от потока к потоку. Просто пишешь и компилируешь паскалевскую программу на линуксе с чуть более древними ядром и окружением, чтобы случайно не подцепить ненужную зависимость, а потом она нормально работает и на более новых линуксах.
Сквозняк
энтузиаст
 
Сообщения: 1110
Зарегистрирован: 29.06.2006 22:08:32

Пред.След.

Вернуться в Общее

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 41

Рейтинг@Mail.ru