Come posso sapere se il mio sistema è Unix o Linux?


8

Come posso sapere se il mio sistema è Unix o Linux?

Sto usando un Macbook Pro del 2010 vintage.


7
Quanto l'hai pagato?
Mikeserv,

3
Esistono (almeno) quattro diverse definizioni del termine "Unix": 1) la serie di sistemi operativi di Bell Labs, 2) la famiglia di sistemi operativi derivati ​​dal codice sorgente di 1), 3) qualsiasi sistema operativo sistema che ha superato la certificazione di The Open Group (o 3a) qualsiasi sistema operativo che avrebbe superato la certificazione di The Open Group ma non può permettersi la tassa di certificazione), 4) qualsiasi sistema operativo che assomiglia e si sente come "Unix". Ad esempio, ad eccezione delle distribuzioni specializzate come Android, la maggior parte delle distribuzioni Linux sono inferiori a 4), alcune inferiori a 3a) e alcune inferiori a 3).
Jörg W Mittag,

1
OTOH, anche se OSX è inferiore a 2) e 3), direi che non è inferiore a 4). Windows NT, almeno in alcune versioni, soddisfa 3), ma sicuramente non 4).
Jörg W Mittag,

Risposte:


17

POSIX definisce uname("nome Unix") per fornire informazioni sul sistema operativo e sulla piattaforma hardware; running unamedà il nome dell'implementazione del sistema operativo (o secondo la coreutilsdocumentazione, il kernel). È possibile farlo in modo interattivo in un terminale o utilizzare l'output in uno script.

Su sistemi Linux, unamestamperà Linux.

Sui sistemi Mac OS X, unamestamperà Darwin. (A rigor di termini, qualsiasi sistema operativo con un kernel Darwin produrrà questo, ma è molto improbabile che si verifichi qualcosa di diverso da Mac OS X in questo caso.)

Ciò ti consentirà di determinare quale Mac è in esecuzione. Come sottolinea Rob , se stai usando Mac OS X ( Darwincome indicato da uname), allora stai usando una versione certificata di Unix ; se stai usando Linux, allora non lo sei.

Su un Mac ci sono molte altre possibilità; lo script potrebbe finire in esecuzione su Solaris ( unamestamperà SunOSquindi), su FreeBSD ( FreeBSD), su Windows con Cygwin ( CYGWIN), MSYS o MSYS2 ( MSYS), una shell MinGW o MinGW-w64 ( MINGW64, MINGW32), Interix ( Interix) e probabilmente altri Non ne sono a conoscenza.

uname -astamperà tutte le informazioni disponibili come determinato da uname, ma è più difficile da analizzare.


Il problema è che uname non dimostra che esegue Unix. Dà solo un nome al sistema operativo che potrebbe non essere un sistema Unix. Linux, ad esempio, non è Unix.
Rob,

@Rob, da nessuna parte Stéphane o lo dico io; infatti stiamo esplicitamente differenziando tra Linux e Unix (o meglio Mac OS X).
Stephen Kitt,

3

A meno che tu non abbia installato qualcos'altro, i Mac non eseguono Linux. I Macbook eseguono il sistema operativo Apple chiamato OSX, che è certificato Unix e, quindi, è la risposta alla tua domanda.


Naturalmente, alcune versioni di Linux sono anche certificate Unix, quindi la domanda diventa: è in esecuzione Linux o Unix?
Jörg W Mittag,

@ JörgWMittag Vedo che l'unica versione di Linux certificata come Unix è un server LDAP che esegue SUSE da IBM, ma nessun altro è o è mai stato o probabilmente lo sarà mai. la mia risposta rimane la stessa, però. Se non ha installato Linux su un Mac, esegue OSX che è Unix.
Rob,

2

La risposta è:

uname -a

O:

cat /proc/version

Apri una finestra di terminale e digita "uname -a", quindi torna.
Baazigar,

1
Cosa posso dedurre sul sistema operativo se cat /proc/versionproduce il messaggio di errore cat: /proc/version: No such file or directory?
Kasperd,

Guardalo / etc / fstab, guarda i tipi di file indicati lì. Se è come ext3, ext4, xfs, è Linux. Se è come jfs, gpfs, hfs, hfs +, questo è unix.
Baazigar,

Se vedi xfspotrebbe essere IRIX ;-). (Ma non su un Mac, te lo darò!)
Stephen Kitt,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.