Termin „obszar użytkownika” może odnosić się do wielu rzeczy w różnych kontekstach, ale tutaj interpretuję „obszar użytkownika GNU” vs. „obszar użytkownika BSD” jako domyślny, minimalny zestaw programów dostarczanych z dystrybucją.
Główna główna różnica polega na tym, że dwie obszary użytkownika zaczynają się od zupełnie innego kodu źródłowego. Kod źródłowy kota GNU Kod źródłowy kota NetBSD . Już z tego prostego w koncepcji programu widać, że kot NetBSD używa tradycyjnych, jednoliterowych flag wiersza poleceń. Programy GNU mają zwykle flagi jednoliterowe, ale także --something-long
opcje typu. Programy GNU również dążą do zgodności z POSIX.
Ta różnica w kodzie źródłowym spowoduje, że dwie obszary użytkownika będą się różnić w niektórych przypadkach.
Wygląda również na to, że NetBSD (przynajmniej) używa własnej wersji libc, standardowej biblioteki C. Wchodzę tutaj, ale libc i dynamiczne linkowanie są dziwnie powiązane między sobą. Ponownie, inny kod źródłowy prowadzi do różnych zachowań.
Myślę, że jako użytkownik powłoki odkryłbyś, że ps
działałby inaczej i ls
mógłby dać ci nieco inne wyniki niż zwykle. W przypadku niektórych programów musisz znaleźć równoważne flagi --long-option
linii poleceń.
Historycznie rozumiem, że obszar użytkownika BSD schodzi bardziej bezpośrednio z V6 i V7 Bell Labs Unix, przez port 32 V do sprzętu VAX. Obszar użytkownika GNU jest nowszy, napisany przynajmniej w odpowiedzi na próby AT&T, by na początku lat 80. zachować ściśle strzeżony sekret kodu. Po zbyciu Bell System w 1983 r. AT&T próbował „zarabiać” na Uniksie. Częściowo miało to na celu licencjonowanie kodu źródłowego w sposób, który uniemożliwiłby większość ludzi go zobaczyć. Richard Stallman i inni mieli z tym problemy. Ich projekt GNU istniał specjalnie po to, aby stworzyć swobodnie udostępniany system podobny do Uniksa.
W międzyczasie do 1993 r. AT&T pozwał system University of California o systemy BSD („B” to Berkeley, gdzie mieści się University of California). Ludzie w Berkeley zastąpili wszystkie oryginalne źródła AT&T nowym kodem, a ten nowy kod stał się przodkiem przynajmniej obszaru użytkownika NetBSD. AT&T i UCB zawarły ugodę w 1994 r., Ujawnione publicznie w 2004 r.
Oczywiście przynajmniej pomysły zapylają się wzajemnie, więc istnieje przynajmniej podobieństwo koncepcyjne między obszarem użytkownika GNU i BSD, ale przypadki narożne zdecydowanie się różnią.