Co pozwala BSD na uruchamianie plików binarnych Linuksa (i innych uniksopodobnych), ale Linux (i w większości innych Uniksów w większości) nie może uruchamiać plików binarnych BSD?
Co pozwala BSD na uruchamianie plików binarnych Linuksa (i innych uniksopodobnych), ale Linux (i w większości innych Uniksów w większości) nie może uruchamiać plików binarnych BSD?
Odpowiedzi:
Siły rynkowe.
Istnieje wiele innych programów skierowanych specjalnie na Linuksa niż na * BSD. Wiele kodów źródłowych oprogramowania jest na tyle przenośnych, że można je skompilować na obu urządzeniach, ale wielu producentów oprogramowania, które dostarczają binaria Linuksa, nie zadaje sobie trudu, aby to zrobić dla BSD, ponieważ mają one mniejszy udział w rynku niż Linux. ¹
Jeśli oprogramowanie jest dostępne tylko w formie binarnej dla innego systemu operacyjnego, emulacja ABI jest jednym ze sposobów jego uruchomienia, co robią BSD2.
Dawno, dawno temu, kiedy x86 Unix posiadał większość rynku w stosunku do Linuksa, do systemu Linux dodano funkcję iBCS, aby umożliwić uruchamianie plików binarnych zbudowanych dla SCO Unix i tym podobnych. Zainteresowanie tą funkcją zmniejszyło się wraz ze wzrostem udziału Linuksa w rynku, więc pozwolono mu popaść w ruinę podczas serii programistycznej Linux 2.3 .³ Pozwy SCO pomogły nam wyprowadzić tę funkcję z Linuksa, ale uważam, że jest to drugorzędne znaczenie dla utraty rynku siła, która zrodziła tę funkcję.
Nie ma technicznego powodu, dla którego Linux nie mógłby kiedyś uzyskać funkcji podobnej do iBCS do uruchamiania plików binarnych BSD, ale nie jest to prawdopodobne, chyba że z jakiegoś powodu pozycja rynkowa BSD i Linux zmieni się.
Dzisiaj nie ma takiej potrzeby. Ile znasz programów binarnych dla BSD, o których nie wiesz, że są też zbudowane dla Linuksa? Musi być kilka, ale chyba większość z nich dotyczy wbudowanych BSD, takich jak Junos . Taka funkcja nie zostanie utworzona, jeśli nie pozwoli na uruchomienie ważnego zestawu programów w systemie Linux, które w innym przypadku nie byłyby uruchomione
Przypisy:
Nie liczę tutaj OS X jako BSD, ponieważ jest to osobny problem z kompatybilnością binarną. FreeBSD, OpenBSD i NetBSD używają ELF na x86, podczas gdy OS X używa zupełnie innego formatu wykonywalnego . Dynamiczne powiązanie jest również bardzo różne w OS X niż w tradycyjnych BSD x86.
Zobacz to pytanie, aby uzyskać więcej informacji na temat historii zgodności binarnej systemu Linux ⇔ OS X.
Podobnie jak w przypadku niektórych gatunków rekinów , oprogramowanie, które przestaje się poruszać, umiera. Zjawisko to nazywamy gniciem bitowym, a nie uduszeniem, gdy dzieje się to z oprogramowaniem, ale przyczyna i skutek są takie same.
Kontrastuj z NDISwrapper , który pozwala Linuksowi uruchamiać tylko binarne sterowniki kart sieciowych napisane dla Windows XP. Potrzeba jest zidentyfikowana, a potrzeba jest zaspokojona. Gdzie jest taka potrzeba uruchamiania plików binarnych tylko BSD?
binfmt_misc
modułu, co umożliwia rejestrowanie dowolnych programów obsługi formatu binarnego. Niektóre osoby uruchamiają w ten sposób aplikacje Mono, choć myślę, że to rzadkość. Ale jak mówisz, nikt nie miał wiele powodów, aby napisać program obsługi binfmt * BSD.