Ada (setidaknya) empat definisi berbeda dari istilah "Unix": 1) serangkaian sistem operasi oleh Bell Labs, 2) keluarga sistem operasi yang berasal dari kode sumber 1), 3) setiap operasi sistem yang telah lulus sertifikasi oleh Grup Terbuka (atau 3a) sistem operasi apa pun yang akan lulus sertifikasi oleh Grup Terbuka tetapi tidak mampu membayar biaya sertifikasi), 4) sistem operasi apa pun yang terlihat dan terasa seperti "Unix". Sebagai contoh, dengan pengecualian distribusi khusus seperti Android, sebagian besar distribusi Linux berada di bawah 4), beberapa di bawah 3a), dan beberapa di bawah 3).
Jörg W Mittag
1
OTOH, meskipun OSX jatuh di bawah 2) dan 3), saya berpendapat bahwa itu tidak jatuh di bawah 4). Windows NT, setidaknya dalam beberapa versi, memuaskan 3), tetapi jelas tidak 4).
Jörg W Mittag
Jawaban:
17
POSIX mendefinisikan uname("Unix name") untuk memberikan informasi tentang sistem operasi dan platform perangkat keras; running unamememberi nama implementasi sistem operasi (atau sesuai dengancoreutils dokumentasi, kernel). Anda dapat melakukan ini secara interaktif di terminal, atau menggunakan output dalam skrip.
Pada sistem Linux, unameakan dicetakLinux .
Pada sistem Mac OS X, unameakan dicetakDarwin . (Sebenarnya, sistem operasi apa pun dengan kernel Darwin akan menghasilkan ini, tetapi Anda sangat tidak mungkin menemukan apa pun selain Mac OS X dalam kasus ini.)
Ini akan memungkinkan Anda untuk menentukan apa yang sedang dijalankan Mac. Seperti yang ditunjukkan Rob , jika Anda menjalankan Mac OS X ( Darwinseperti ditunjukkan oleh uname), maka Anda menjalankan versi bersertifikat Unix ; jika Anda menjalankan Linux maka Anda tidak.
Pada Mac ada banyak kemungkinan lain; skrip Anda dapat berjalan pada Solaris ( unameakan dicetak SunOSkemudian), pada FreeBSD ( FreeBSD), pada Windows dengan Cygwin ( CYGWIN), MSYS atau MSYS2 ( MSYS), shell MinGW atau MinGW-w64 ( MINGW64, MINGW32), Interix ( Interix), dan mungkin yang lainnya Saya tidak tahu.
uname -aakan mencetak semua informasi yang tersedia seperti yang ditentukan oleh uname, tetapi sulit untuk diuraikan.
Masalahnya adalah, uname tidak membuktikan sedang menjalankan Unix. Itu hanya memberi nama OS yang mungkin bukan sistem Unix. Linux, misalnya, bukan Unix.
Rob
@ Rob, tidak ada tempat Stéphane atau aku mengatakan itu; sebenarnya kami secara eksplisit membedakan antara Linux dan Unix (atau lebih tepatnya Mac OS X).
Stephen Kitt
3
Kecuali Anda menginstal sesuatu yang lain, Mac tidak menjalankan Linux. Macbook menjalankan sistem operasi Apple yang disebut OSX yang bersertifikat Unix dan, karenanya, adalah jawaban untuk pertanyaan Anda.
Tentu saja, beberapa versi Linux juga bersertifikat Unix, jadi pertanyaannya kemudian, apakah itu menjalankan Linux atau Unix?
Jörg W Mittag
@ JörgWMittag Saya melihat bahwa satu-satunya versi Linux yang disertifikasi sebagai Unix adalah server LDAP yang menjalankan SUSE dari IBM, tetapi tidak ada orang lain yang pernah atau mungkin akan pernah melakukannya. jawaban saya tetap sama. Jika dia tidak menginstal Linux pada Mac maka dia menjalankan OSX yang merupakan Unix.
Buka jendela terminal dan ketik 'uname -a' lalu kembali.
Baazigar,
1
Apa yang dapat saya simpulkan tentang OS jika cat /proc/versionmenghasilkan pesan kesalahan cat: /proc/version: No such file or directory?
kasperd
Lihat / etc / fstab, lihat jenis file yang ditunjukkan di sana. Jika seperti ext3, ext4, xfs, itu adalah linux. Jika itu seperti jfs, gpfs, hfs, hfs +, itu unix.
Baazigar
Jika Anda melihatnya xfsbisa IRIX ;-). (Tetapi tidak pada Mac, saya akan memberikan Anda!)
Jawaban:
POSIX mendefinisikan
uname
("Unix name") untuk memberikan informasi tentang sistem operasi dan platform perangkat keras; runninguname
memberi nama implementasi sistem operasi (atau sesuai dengancoreutils
dokumentasi, kernel). Anda dapat melakukan ini secara interaktif di terminal, atau menggunakan output dalam skrip.Pada sistem Linux,
uname
akan dicetakLinux
.Pada sistem Mac OS X,
uname
akan dicetakDarwin
. (Sebenarnya, sistem operasi apa pun dengan kernel Darwin akan menghasilkan ini, tetapi Anda sangat tidak mungkin menemukan apa pun selain Mac OS X dalam kasus ini.)Ini akan memungkinkan Anda untuk menentukan apa yang sedang dijalankan Mac. Seperti yang ditunjukkan Rob , jika Anda menjalankan Mac OS X (
Darwin
seperti ditunjukkan olehuname
), maka Anda menjalankan versi bersertifikat Unix ; jika Anda menjalankan Linux maka Anda tidak.Pada Mac ada banyak kemungkinan lain; skrip Anda dapat berjalan pada Solaris (
uname
akan dicetakSunOS
kemudian), pada FreeBSD (FreeBSD
), pada Windows dengan Cygwin (CYGWIN
), MSYS atau MSYS2 (MSYS
), shell MinGW atau MinGW-w64 (MINGW64
,MINGW32
), Interix (Interix
), dan mungkin yang lainnya Saya tidak tahu.uname -a
akan mencetak semua informasi yang tersedia seperti yang ditentukan olehuname
, tetapi sulit untuk diuraikan.sumber
Kecuali Anda menginstal sesuatu yang lain, Mac tidak menjalankan Linux. Macbook menjalankan sistem operasi Apple yang disebut OSX yang bersertifikat Unix dan, karenanya, adalah jawaban untuk pertanyaan Anda.
sumber
Jawabannya adalah:
Atau:
sumber
cat /proc/version
menghasilkan pesan kesalahancat: /proc/version: No such file or directory
?xfs
bisa IRIX ;-). (Tetapi tidak pada Mac, saya akan memberikan Anda!)