zhevak написал:
Дмитрий, тогда уж поясняй степень несовместимости. А то после твоего сообщения создается чувство, что даже консольная программа (бинарный файл), которая работает в одном дистрибутиве в большинстве случаев не заработает в другом.
а это правильное впечатление. Просто программ, которые работают напрямую с ядром очень мало. Я вот на вскидку всего 3 вспомнил:
1) mkfs и прочее для ФС (mount, tune2fs...)
2) lsof (она правда только читает. Можно и так /proc почитать)
3) наша sysinfo (она просто заточена на любые ядра, ну в пределах разумного конечно).
А остальные работают не с ядром, а с какой-нить прокладкой. Консольные вроде stat & ls работают с glibc, в которой есть эта самая man 2 stat (стандартная функция C). Потому, можно взять бинарник ls, и он почти наверняка заработает с любой версией glibc (не младше. Если младше - то уверенности меньше).
Сама glibc работает прямо с ядром, и поменять её почти наверняка НЕ получится. А если получится - с кучей багов. Именно потому, glibc собирают специально для конкретного ядра (а не просто так).
Что касается гуёвых программ, то они тоже НЕ работают с ядром, а работают через прокладку, которая называется HAL. Естественно, это HAL нужно собирать тоже для данного конкретного ядра, иначе ничего не выйдет. За то, сама программа будет работать с любым HAL'ом, если конечно этот HAL опознает. Например XFCE до сих пор не научилась работать с новым HAL'ом, и потому ей требуется во первых старый HAL, а во вторых, она монтирует ФАТ с кракозябрами, ибо не понимает iocharset. Причём и не будет понимать, потому как старый HAL устарел и не поддерживается (правда арчевцы сами патч написали).
zhevak написал:
Ну типа точно так же как как если бы мы вендовую ехе-шку попытались запустить в Линуксе.
не так. Вы запустите программу, а она напишет: "не могу найти libastral.so версии >=6.66".
Это если вы плюнете на все предупреждения, и просто скопируете бинарник из одного дистра, в другой. Ядро тут как-бы и не причём, дело в библиотеках. Но библиотека прибита гвоздями к ядру. Как и в венде. Разница в том, что мы можем
1) поменять что-то в ядре
2) пересобрать нужные библиотеки под новое ядро
3) ?????
4) PROFIT.
Но просто так вытащить "хорошее" ядро, и сменить им "плохое" - НЕ получится. ОНО даже не загрузится.
На самом деле, юзера не должно это всё заботить - ему достаточно просто ставить ПО из дистра. Заботить это начинает юзера лишь при установке ПО с закрытыми исходниками. В этом случае создатель дистра не может запилить программу, и нам остаётся ждать, когда-же допилит сам автор. Что мы и наблюдаем и с sysinfo, и со всякими хромами.