Saya telah membaca banyak di Unix & Linux tentang BSD dan GNU, dll. Tapi saya masih tidak mengerti apa perbedaan yang sebenarnya dan praktis antara BSD dan GNU, meskipun fakta bahwa mereka sering disebutkan. Bisakah seseorang menjelaskan?
Saat menjawab, mohon jelaskan koneksi historis, mengingat bahwa saya belum hidup cukup lama untuk mengalami saat ketika GNU / Linux bukan UNIX arus utama (kecuali OS X).
Jawaban:
Istilah "userland" dapat merujuk ke banyak hal dalam konteks yang berbeda, tetapi di sini saya menafsirkan "GNU userland" vs "BSD userland" sebagai set default, minimum program yang datang dengan distribusi.
Perbedaan utama yang besar adalah bahwa kedua lahan pengguna mulai dengan kode sumber yang sama sekali berbeda. Kode sumber kucing GNU Kode sumber kucing NetBSD . Hanya dari program konsep sederhana, Anda dapat melihat bahwa kucing NetBSD menggunakan bendera baris perintah huruf tunggal tradisional. Program GNU cenderung memiliki flag satu huruf, tetapi juga
--something-long
opsi jenis. Program-program GNU juga cenderung menuju kompatibilitas POSIX.Perbedaan dalam kode sumber akan memberikan dua perilaku yang berbeda pada pengguna.
Sepertinya NetBSD (setidaknya) menggunakan versi libc-nya sendiri, pustaka C standar. Saya mendapatkan lebih dari kepala saya di sini, tetapi libc dan menghubungkan dinamis anehnya saling terkait. Sekali lagi, kode sumber yang berbeda akan menyebabkan perilaku yang berbeda.
Saya berpikir bahwa sebagai pengguna shell, Anda akan menemukan bahwa itu
ps
akan bertindak berbeda, danls
mungkin memberikan Anda output yang sedikit berbeda dari sebelumnya. Anda harus menemukan flag baris perintah yang setara untuk beberapa program, jika Anda menggunakan--long-option
jenis flag baris perintah.Secara historis, pemahaman saya adalah bahwa BSD userland turun lebih langsung dari V6 dan V7 Bell Labs Unix, melalui port 32V ke perangkat keras VAX. GNU userland lebih baru, ditulis setidaknya sebagai reaksi terhadap upaya AT&T untuk menjaga kode rahasia yang dijaga ketat di awal 80-an. Setelah divestasi Sistem Bell 1983, AT&T mencoba "menguangkan" Unix. Bagian dari itu adalah melisensikan kode sumber dengan cara yang mencegah sebagian besar orang melihatnya. Richard Stallman dan yang lainnya memiliki masalah dengan ini. Proyek GNU mereka ada secara khusus untuk menciptakan sistem seperti Unix yang dapat dibagikan secara bebas.
Sementara itu, pada tahun 1993, AT&T menggugat sistem University of California atas sistem BSD ('B' adalah Berkeley, tempat University of California berada). Orang-orang di Berkeley telah mengganti semua sumber asli AT&T dengan kode baru, dan kode baru itu menjadi leluhur dari setidaknya tanah pengguna NetBSD. AT&T dan UCB mencapai penyelesaian pada tahun 1994, diungkapkan kepada publik pada tahun 2004.
Secara alami, setidaknya ide melakukan penyerbukan silang, jadi setidaknya ada kesamaan konseptual antara GNU dan BSD pengguna lahan, tetapi kasus sudut pasti berbeda.
sumber
sed
tersedak input panjang ataugrep
segfault pada data biner.