¿Cómo puedo saber si mi sistema es Unix o Linux?

8

¿Cómo puedo saber si mi sistema es Unix o Linux?

Estoy usando un Macbook Pro de 2010 vintage.

Ivan King
fuente
77
cuanto pagaste por eso?
mikeserv
3
Hay (al menos) cuatro definiciones diferentes del término "Unix": 1) la serie de sistemas operativos de Bell Labs, 2) la familia de sistemas operativos derivados del código fuente de 1), 3) cualquier sistema que ha pasado la certificación de The Open Group (o 3a) cualquier sistema operativo que pasaría la certificación de The Open Group pero no puede pagar la tarifa de certificación), 4) cualquier sistema operativo que se vea y se sienta como "Unix". Por ejemplo, con la excepción de distribuciones especializadas como Android, la mayoría de las distribuciones de Linux se encuentran en 4), algunas en 3a) y algunas en 3).
Jörg W Mittag
1
OTOH, aunque OSX cae por debajo de 2) y 3), diría que no cae por debajo de 4). Windows NT, al menos en algunas versiones, satisface 3), pero definitivamente no 4).
Jörg W Mittag

Respuestas:

17

POSIX define uname("nombre Unix") para proporcionar información sobre el sistema operativo y la plataforma de hardware; running unameda el nombre de la implementación del sistema operativo (o de acuerdo con la coreutilsdocumentación, el kernel). Puede hacer esto interactivamente en una terminal, o usar la salida en un script.

En sistemas Linux, unamese imprimirá Linux.

En sistemas Mac OS X, unamese imprimirá Darwin. (Estrictamente hablando, cualquier sistema operativo con un núcleo Darwin producirá esto, pero es muy poco probable que encuentre algo que no sea Mac OS X en este caso).

Esto le permitirá determinar qué Mac está ejecutando. Como señala Rob , si está ejecutando Mac OS X ( Darwincomo se indica en uname), entonces está ejecutando una versión certificada de Unix ; si está ejecutando Linux, entonces no lo está.

En una Mac hay muchas otras posibilidades; su script podría terminar ejecutándose en Solaris ( unamese imprimirá SunOSluego), en FreeBSD ( FreeBSD), en Windows con Cygwin ( CYGWIN), MSYS o MSYS2 ( MSYS), un shell MinGW o MinGW-w64 ( MINGW64, MINGW32), Interix ( Interix) y probablemente otros No estoy al tanto.

uname -aimprimirá toda la información disponible según lo determinado por uname, pero es más difícil de analizar.

Stephen Kitt
fuente
El problema es que uname no prueba que esté ejecutando Unix. Solo da un nombre del sistema operativo que podría no ser un sistema Unix. Linux, por ejemplo, no es Unix.
Rob
@Rob, en ninguna parte Stéphane o yo dijimos eso; de hecho, estamos diferenciando explícitamente entre Linux y Unix (o más bien Mac OS X).
Stephen Kitt
3

A menos que haya instalado algo más, las Mac no ejecutan Linux. Las Macbooks ejecutan el sistema operativo de Apple llamado OSX, que está certificado Unix y, por lo tanto, es la respuesta a su pregunta.

Robar
fuente
Por supuesto, algunas versiones de Linux también están certificadas como Unix, por lo que la pregunta es, ¿está ejecutando Linux o Unix?
Jörg W Mittag
@ JörgWMittag Veo que la única versión de Linux que está certificada como Unix es un servidor LDAP que ejecuta SUSE desde IBM, pero ningún otro lo ha sido o lo ha sido o probablemente lo hará. Sin embargo, mi respuesta sigue siendo la misma. Si no instaló Linux en una Mac, entonces está ejecutando OSX, que es Unix.
Rob
2

La respuesta es:

uname -a

O:

cat /proc/version
Baazigar
fuente
Abra una ventana de terminal y escriba 'uname -a' y luego regrese.
Baazigar
1
¿Qué puedo deducir sobre el sistema operativo si cat /proc/versionproduce el mensaje de error cat: /proc/version: No such file or directory?
kasperd
Míralo / etc / fstab, mira los tipos de archivo indicados allí. Si es como ext3, ext4, xfs, es linux. Si es como jfs, gpfs, hfs, hfs +, eso es unix.
Baazigar
Si ves xfsque podría ser IRIX ;-). (¡Pero no en una Mac, te lo daré!)
Stephen Kitt