Adakah perbedaan mendasar antara Unix dan Linux dalam hal desain dan aspek lainnya? [Tutup]

24

Saya terus membaca kalimat ini:

Linux adalah sistem mirip Unix, tetapi bukan Unix.

Saya tidak tahu apa perbedaan nyata antara keduanya. Saya tahu Linux mendapat banyak ide dari Unix dan lisensi keduanya berbeda. Selain itu, karena saya bukan ahli dalam salah satu dari mereka, saya ingin tahu apakah ada perbedaan mendasar di antara mereka dalam desain atau aspek penting lainnya.

Gnijuohz
sumber
2
maukah Anda menjelaskan di mana Anda membaca itu? pencarian web menunjukkan saya Pengembangan Kernel Linux (Edisi ke-3) oleh Robert Love, apakah itu?
nyamuk

Jawaban:

30

Sistem "Unix like" mungkin sepenuhnya sesuai dengan Spesifikasi UNIX Tunggal , nama kolektif standar untuk apa yang memenuhi syarat sebagai sistem Unix, tetapi pada saat yang sama Unix adalah merek dagang terdaftar dari The Open Group dan vendor dari sistem Unix like perlu untuk mendapatkan sistem mereka terdaftar untuk secara resmi memenuhi syarat sebagai Unix. Saat ini sistem UNIX 03 yang terdaftar adalah:

  • Apple Inc .: Mac OS X Versi 10.5 Leopard pada komputer Macintosh berbasis Intel
  • Apple Inc .: Mac OS X Versi 10.6 Snow Leopard di komputer Macintosh berbasis Intel
  • Fujitsu Limited: Sistem Operasi Solaris ™ 10 pada Fujitsu PRIMEPOWER® 64-bit Platform Berbasis SPARC®
  • Hewlett-Packard Company: HP-UX 11i V3 Release B.11.31 atau lebih baru pada Server Integritas HP
  • IBM Corporation: AIX 5L untuk POWER V5.2 tertanggal 8-2004 atau lebih baru dengan APAR: IY59610, IY60869, IY61405 dengan VAC 6.0.0.8 atau lebih baru pada pSeries sistem CHRP
  • IBM Corporation: AIX 5L untuk POWER V5.3 tanggal 7-2006 atau lebih baru pada Sistem yang menggunakan arsitektur sistem CHRP dengan prosesor POWER ™
  • IBM Corporation: Sistem Operasi AIX 6 V6.1.2 dengan SP1 atau lebih baru pada Sistem yang menggunakan arsitektur sistem CHRP dengan prosesor POWER ™ dan kartu async port 2, 8 atau 128 port
  • Oracle Corporation: Oracle Solaris 11 FCS dan yang lebih baru pada platform berbasis SPARC, 32-bit dan 64-bit dan pada platform berbasis X86, 32-bit dan 64-bit
  • Oracle Corporation: Sistem Operasi Solaris 10 plus patch 118844-06 untuk X86 dan yang lebih baru, pada sistem berbasis X86 64-bit
  • Oracle Corporation: Sistem Operasi Solaris 10 dan sistem SPARC berbasis 32-bit dan 64-bit
  • Oracle Corporation: Sistem Operasi Solaris 10 dan, pada sistem berbasis X86 32-bit

Vendor sistem open source Unix like (kebanyakan Linux dan FreeBSD) biasanya tidak mendaftar dengan The Open Group, baik untuk menghindari biaya sertifikasi atau, yah, karena mereka tidak menemukan banyak nilai dalam melakukannya. Secara teori, sangat mungkin bahwa sistem seperti Unix secara teknis adalah Unix, dan yang hilang hanyalah sertifikasi.

Linux Foundation di sisi lain, menciptakan Basis Standar Linux , standar ISO , dalam upaya untuk membakukan Linux. Kepatuhan dengan POSIX adalah jantung dari SUS dan LSB, menjaga hubungan antara Unix dan Linux.

Sistem seperti Unix dan Unix cenderung lebih mirip daripada yang berbeda, secara teori semua rasa Unix yang populer, terdaftar atau tidak, adalah sesuai dengan POSIX (lengkap atau sebagian besar), sehingga mereka berbagi antarmuka pemrograman inti, kerang dan utilitas (dan banyak lainnya barang). IEEE dan Grup Terbuka mempertahankan salinan versi terbaru yang tersedia secara bebas, POSIX.1-2008 , di mana Anda dapat menemukan informasi lebih lanjut tentang apa sebenarnya arti kepatuhan POSIX.

Sekarang, terlepas dari alasan hukum dan teknis, Linux mewarisi mantra "not Unix" dari hubungannya dengan GNU , sistem operasi mirip Unix yang diprakarsai oleh Richard Stallman. GNU adalah singkatan dari "GNU's not Unix", karena niat Stallman adalah untuk membangun sistem yang kompatibel dengan Unix yang akan bebas, dan untuk melakukan hal itu seharusnya tidak mengandung kode Unix, karena Unix adalah hak milik.

Pengembang Linux awal mulai porting alat GNU ke Linux, dan sistem yang dihasilkan disebut GNU / Linux pada awal tahun 1992 . Ada kontroversi yang bertahan lama tentang apakah Linux harus disebut sebagai Linux atau GNU / Linux (karena menggabungkan beberapa bagian GNU), tetapi itu tidak relevan dengan pertanyaan Anda, yang relevan adalah bahwa "bukan Unix" hanya dapat merujuk pada asosiasi dengan GNU dan tidak ada hubungannya dengan desain itu, tergantung pada konteksnya.

Artikel "History of Linux" di Wikipedia menjelaskan asal-usul Linux dan hubungannya dengan Unix (via Minix dan GNU) secara terperinci, dan Anda juga harus meluangkan waktu untuk membaca referensi artikel, jika Anda tertarik belajar lebih banyak.

yannis
sumber
jawaban yang bagus, saya akan menunggu dan melihat apakah memilih jawaban Anda :)
Gnijuohz
8
@Gnijuohz Jangan terburu-buru menerima jawaban, selalu biarkan pertanyaan Anda matang selama satu atau dua hari (atau lebih, jika Anda mau), Anda mungkin mendapatkan jawaban yang bagus dari orang-orang yang tidak akan repot-repot menjawab jika mereka melihat bahwa Anda telah menerima suatu menjawab. Menerima jawaban sepenuhnya terserah Anda, Anda bahkan tidak harus menerima jika tidak ada jawaban yang membantu Anda, terlepas dari bagaimana masyarakat merespons mereka.
yannis
1
Menarik, ternyata versi terbaru OS X bukan "secara resmi" UNIX.
Kris Harper
@ root45 Itu yang diharapkan, karena beberapa waktu diperlukan untuk memeriksa versi untuk kepatuhan.
yannis
@YannisRizos Ah oke. Itu masuk akal. Terima kasih untuk informasi.
Kris Harper
4

UNIX adalah keluarga sistem operasi dan saat ini UNIX lebih merupakan merek yang dimiliki oleh The Open Group. Untuk sistem operasi yang akan diberi merek UNIX, itu harus menjalani pengujian kesesuaian, dan untuk Linux ini berarti bahwa setiap distribusi di luar sana (Ubuntu, Debian, Fedora, Red Hat, dll) harus secara terpisah menjalani pengujian kesesuaian ini untuk setiap rilis . Jadi ini adalah salah satu alasan utama mengapa Linux adalah sistem seperti unix dan bukan UNIX.

Pengujian yang saya sebutkan ini adalah untuk memastikan kepatuhan OS dengan Spesifikasi Single Unix, yang saat ini di versi 4 SUSv4 (Spesifikasi Single Unix versi 4). Spesifikasi ini mendefinisikan satu set API yang harus tersedia untuk aplikasi agar sistem memenuhi syarat untuk nama UNIX.

Raphael
sumber
Apakah ini standar yang baik untuk diikuti? Apakah penulis Linux mencoba?
Ayub
1
Ini standar yang baik namun tidak lengkap. Kontributor Linux Kernel memang mencoba mengikuti standar ini dan Linux secara tidak resmi dapat dianggap sebagai sistem UNIX. Jika Anda mengembangkan aplikasi yang bertentangan dengan standar Unix, aplikasi ini kemungkinan akan dikompilasi dan dijalankan pada sistem Linux. Sayangnya, seperti yang saya katakan sebelumnya, UNIX agak tidak lengkap adalah beberapa aspek, sehingga OS menyediakan API tambahan untuk beberapa tugas dan inilah yang membuat platform aplikasi tertentu bergantung karena API tambahan ini cenderung bervariasi.
Raphael
Ada distribusi bernama Linux-FT yang memulai proses sertifikasi POSIX, tetapi tidak mengherankan bahwa sponsor kehabisan uang. ukuug.org/newsletter/linux-newsletter/linux@uk12/ftinfo.shtml
Terima kasih atas info ini! Saya terkejut bertanya-tanya apakah seseorang di luar sana pernah mencoba untuk mensertifikasi sebuah distro.
Raphael
3

Jawaban yang ada sudah menyebutkan beberapa perbedaan yang Anda cari. Tanpa menjadi ahli kernel Linux, saya juga akan menambahkan bahwa banyak perbedaan desain / implementasi antara GNU / Linux dan berbagai Unix tercakup dalam seri pola desain kernel Linux .

sakisk
sumber
2

"UNIX" adalah hal yang rumit untuk dijabarkan. Dalam hal kesesuaian standar, baik Solaris dan Mac OS X adalah "secara resmi" UNIX tetapi Anda tidak perlu menghabiskan banyak waktu sebelum Anda menemukan perbedaan yang agak besar di antara keduanya. Ada diagram hebat yang mendokumentasikan pelepasan berbagai rasa dari sistem operasi seperti UNIX atau UNIX dan bagaimana mereka saling mempengaruhi dan menyimpang.

Dalam skema besar hal-hal yang terlihat, berjalan dan dukun seperti UNIX, sistem Linux [*] adalah salah satu rilis yang lebih konvensional. Sangat umum bagi orang untuk merujuk ke Unix atau * nix dan berarti "apa pun yang mirip UNIX", yang mungkin termasuk Linux. Namun UNIX adalah merek dagang terdaftar dengan batasan bagaimana itu dapat diterapkan secara komersial; tidak ada distribusi Linux yang memenuhi batasan itu.

[*] Karena pertanyaan ini mengundang pemecah rambut semantik, saya pikir ini adalah topik utama dalam hal ini untuk menunjukkan bahwa Linux itu sendiri hanyalah sebuah kernel di mana sistem operasi dapat dibangun. Adalah umum untuk membangun sistem mirip UNIX di atas Linux, yang memang dirancang untuk itu, dan sistem itu biasanya dibangun dari komponen proyek GNU. Dalam jawaban di atas "Linux" dapat dibaca sebagai singkatan untuk "sistem operasi yang menggabungkan kernel Linux".


sumber
@YannisRizos Saya akan menambahkan referensi ke jawabannya, itu pasti bersertifikat.
Ya, Anda memang benar, dari Leopard dan selanjutnya Mac OS bersertifikat UNIX 03, dan inilah referensi lain .
yannis
2

Saya pernah membaca bahwa Linux adalah apa yang Anda dapatkan ketika Anda mengambil pengembang PC dan memintanya untuk menulis OS Unix, sedangkan FreeBSD adalah apa yang Anda dapatkan ketika Anda mengambil pengembang Unix dan memintanya untuk membuat PC OS .... don ' jangan lupakan BSD dalam perbandingan Anda!

Perbedaannya terutama pada Kernel karena aplikasi userspace (termasuk hal-hal seperti ls) adalah bagian dari proyek GNU. Ini berarti bahwa Unix, FreeBSD, dan Linux semuanya tampak hampir sama.

Namun ada perbedaan begitu Anda mencermati. Layout direktori akan berbeda (tetapi banyak distro Linux menggunakan kebanyakan sendiri yang kompatibel tetapi tata letak masih berbeda), sistem file berbeda (Unix menggunakan UFS, FreeBSD menggunakan FFS, Linux menggunakan Ext3 untuk menyederhanakan - semuanya dapat menggunakan port dari FSs umum, misalnya ZFS)

Lalu ada perbedaan dalam API inti, Linux akan memberi Anda API inotify untuk memberi tahu Anda ketika file berubah, Mac OSX memberi Anda FSEvents , dan FreeBSD memberi Anda kqueue .

Jadi mereka dapat dianggap keluarga yang sama - bandingkan sistem Windows dengan alat-alat GNU yang diportingkan dengan sistem Linux dengan alat yang sama. Mereka hanya akan tampak sama secara dangkal, tetapi sistem Unix atau FreeBSD akan tetap tampak sebanding. Jika dilihat lebih dekat, Anda akan menemukan aplikasi porting antara FreeBSD, Unix dan Linux relatif lebih mudah dibandingkan dengan porting ke OS alternatif seperti Windows.

gbjbaanb
sumber
1

Unix bukan lagi Sistem Operasi tunggal. Dulunya merupakan implementasi oleh Bell Labs / AT&T tetapi sekarang ini merupakan standar.

Secara teknis, Linux hanya sebuah kernel. Kernel ini dapat ditemukan di OS seperti Unix, yang paling populer adalah Android. Di sisi lain, ada banyak OS berbasis Linux yang mirip Unix. Sebagian besar (jika tidak semua) dari mereka menggunakan perpustakaan dan utilitas Gnu. Kombinasi ini memberikan distribusi Linux API Unix dan kepatuhan (atau ketidakpatuhan) ke standar.

Standar Unix tidak memerlukan sistem yang sesuai untuk menjadi milik atau memiliki lisensi tertentu. BSD, OpenSolaris / Illumos, darwin adalah contoh implementasi Unix yang bukan Linux yang masih gratis.

Sistem yang patuh biasanya tetapi tidak selalu merupakan campuran komponen kepemilikan dan sumber terbuka sementara Gnu / Linux dapat berupa Open Source sepenuhnya atau juga termasuk barang-barang berpemilik.

Sejauh menyangkut kepatuhan Unix, tidak ada banyak perbedaan. Sebagian besar distribusi Linux dan implementasi Unix berbagi set perintah yang sama menggunakan set opsi yang sama. Namun, Anda akan menemukan banyak ekstensi dari perintah standar, terutama di sisi Gnu di mana mereka disebut Gnuisme, dan banyak perintah yang tidak didefinisikan oleh standar di tempat pertama (kompiler, perintah administratif, instalasi, pengemasan, lingkungan grafis). Ini adalah area di mana Anda dapat menemukan banyak divergensi, ketidakcocokan, dan terkadang perang suci.

Model pengembangan Gnu / Linux biasanya dianggap lebih "organik" dan "bazaar", sedangkan sistem mirip Unix lainnya lebih "dirancang" dan "katedral". Tergantung pada subsistem, perbedaannya tidak terlalu jelas dan tergantung individu dan / atau perusahaan di belakangnya.

Jlliagre
sumber
1

Linux hadir dengan banyak alat seperti:

  • Sistem GUI
  • Utilitas GNU (seperti cp, mv, ls, date, bash dll)
  • instalasi & alat manajemen
  • GNU C / C ++ Compiler
  • Editor (vi)
  • dan berbagai aplikasi (seperti OpenOffice, Firefox).

Namun, sebagian besar sistem operasi UNIX dianggap sebagai sistem operasi yang lengkap karena semuanya berasal dari satu sumber atau vendor.

Beberapa hal yang mereka bagikan:

  • Manajer GUI, file, dan windows (KDE, Gnome)
  • Kerang (ksh, csh, bash)
  • Berbagai aplikasi kantor seperti OpenOffice.org
  • Alat pengembangan (komp, perl, php, python, GNU C / C ++)
  • Antarmuka POSIX
Billjk
sumber
Linux juga memperluas filosofi Unix ...
Job
2
Linux bukan hanya sebuah kernel, kernel Linux adalah, yah, kernel. Linux biasanya mengacu pada sistem lengkap yang dibangun di sekitar kernel Linux.
yannis
@Anonim - Terkadang, jika Anda mengedit dan memperbaiki jawaban Anda, downvoters dapat menghapus downvote. Ini tidak dijamin, tetapi kadang-kadang itu membantu. (Saya tidak downvote, hanya berusaha membantu) :) Sisa jawaban Anda benar, IMHO, jadi menyingkirkan perbedaan dapat membantu Anda mendapatkan beberapa upvotes / menghindari lebih banyak downvotes.
jmort253
-7

Tidak juga, Linux adalah rekayasa kebalikan dari Unix, jadi desain kernel mengikuti filosofi Ken Thompson. Cara Linux tampaknya meniru filosofi Unix semaksimal mungkin tanpa pernah membebani diri sendiri dengan pemikiran asli.

samual johnson
sumber
@YannisRizos Apa yang Anda maksud dengan "tetapi itu tidak benar-benar dapat digunakan". AFAIK sepenuhnya dapat digunakan, tetapi karena ditulis dalam perakitan PDP, sulit untuk port di arsitektur lain.
sakisk
@ samual-johnson -1 Karena Anda tidak mendukung pernyataan Anda dengan referensi. Ini pertama kalinya saya mendengar tentang "filosofi Ken Thompson" (dan itu adalah Thompson, bukan Thomson).
sakisk
1
@faif Memeriksa referensi saya, kernel yang belum sempurna yang saya maksud ditulis untuk GE-645 dan bukan PDP, jadi sangat sulit untuk menyebutnya sebagai kernel Unix. Saya telah menghapus komentar, karena intinya adalah tentang kurangnya referensi dan komentar Anda sudah cukup untuk menyampaikan pesan itu. - samual, mohon luangkan waktu untuk mencadangkan klaim Anda dengan referensi yang kuat atau merevisinya menjadi sesuatu yang berdasarkan opini.
yannis
@YannisRizos Menarik. Saya belum pernah mendengar tentang GE-645, yang menurut Wikipedia adalah versi Multics yang lebih baik. Terimakasih atas infonya.
sakisk