Comment savoir si mon système est Unix ou Linux?

8

Comment savoir si mon système est Unix ou Linux?

J'utilise un Macbook Pro du millésime 2010.

Ivan King
la source
7
Combien as-tu payé pour ça?
mikeserv
3
Il existe (au moins) quatre définitions différentes du terme "Unix": 1) la série de systèmes d'exploitation de Bell Labs, 2) la famille de systèmes d'exploitation dérivée du code source de 1), 3) tout système d'exploitation système qui a passé la certification par The Open Group (ou 3a) tout système d'exploitation qui passerait la certification par The Open Group mais ne peut pas payer les frais de certification), 4) tout système d'exploitation qui ressemble à "Unix". Par exemple, à l'exception des distributions spécialisées comme Android, la plupart des distributions Linux tombent sous 4), certaines sous 3a) et quelques-unes sous 3).
Jörg W Mittag
1
OTOH, même si OSX tombe sous 2) et 3), je dirais qu'il ne tombe pas sous 4). Windows NT, au moins dans certaines versions, satisfait 3), mais certainement pas 4).
Jörg W Mittag

Réponses:

17

POSIX définit uname(«nom Unix») pour fournir des informations sur le système d'exploitation et la plate-forme matérielle; running unamedonne le nom de l'implémentation du système d'exploitation (ou selon la coreutilsdocumentation, le noyau). Vous pouvez le faire de manière interactive dans un terminal ou utiliser la sortie dans un script.

Sur les systèmes Linux, unamesera imprimé Linux.

Sur les systèmes Mac OS X, unames'imprime Darwin. (À strictement parler, tout système d'exploitation avec un noyau Darwin produira cela, mais il est très peu probable que vous rencontriez autre chose que Mac OS X dans ce cas.)

Cela vous permettra de déterminer ce que n'importe quel Mac fonctionne. Comme le souligne Rob , si vous exécutez Mac OS X ( Darwincomme indiqué par uname), vous exécutez une version certifiée d'Unix ; si vous utilisez Linux, vous ne l'êtes pas.

Sur un Mac, il existe de nombreuses autres possibilités; votre script pourrait finir par s'exécuter sur Solaris ( unames'imprimera SunOSalors), sur FreeBSD ( FreeBSD), sur Windows avec Cygwin ( CYGWIN), MSYS ou MSYS2 ( MSYS), un shell MinGW ou MinGW-w64 ( MINGW64, MINGW32), Interix ( Interix) et probablement d'autres Je ne suis pas au courant.

uname -aimprimera toutes les informations disponibles comme déterminé par uname, mais il est plus difficile à analyser.

Stephen Kitt
la source
Le problème est que uname ne prouve pas qu'il exécute Unix. Il donne uniquement un nom de l'OS qui pourrait ne pas être un système Unix. Linux, par exemple, n'est pas Unix.
Rob
@Rob, nulle part Stéphane ou moi n'avons dit cela; en fait, nous différencions explicitement Linux et Unix (ou plutôt Mac OS X).
Stephen Kitt
3

Sauf si vous avez installé autre chose, les Mac ne fonctionnent pas sous Linux. Les Macbooks exécutent le système d'exploitation d'Apple appelé OSX qui est certifié Unix et, par conséquent, est la réponse à votre question.

Rob
la source
Bien sûr, certaines versions de Linux sont également certifiées Unix, donc la question devient alors, est-ce qu'il exécute Linux ou Unix?
Jörg W Mittag
@ JörgWMittag Je vois que la seule version de Linux certifiée Unix est un serveur LDAP exécutant SUSE à partir d'IBM, mais aucun autre ne l'est ou ne l'a jamais été ou ne le sera probablement jamais. ma réponse reste cependant la même. S'il n'a pas installé Linux sur un Mac, il exécute OSX qui est Unix.
Rob
2

La réponse est:

uname -a

Ou:

cat /proc/version
Baazigar
la source
Ouvrez une fenêtre de terminal et tapez 'uname -a' puis revenez.
Baazigar
1
Que puis-je déduire du système d'exploitation si je génère cat /proc/versionle message d'erreur cat: /proc/version: No such file or directory?
kasperd
Regardez-le / etc / fstab, regardez les types de fichiers qui y sont indiqués. Si c'est comme ext3, ext4, xfs, c'est linux. Si c'est comme jfs, gpfs, hfs, hfs +, c'est unix.
Baazigar
Si vous voyez, xfscela pourrait être IRIX ;-). (Mais pas sur un Mac, je vais vous donner ça!)
Stephen Kitt