Como posso saber se meu sistema é Unix ou Linux?

8

Como posso saber se meu sistema é Unix ou Linux?

Estou usando um Macbook Pro de 2010 vintage.

Ivan King
fonte
7
Quanto você pagou por isso?
mikeserv
3
Existem (pelo menos) quatro definições diferentes do termo "Unix": 1) a série de sistemas operacionais da Bell Labs, 2) a família de sistemas operacionais derivados do código fonte de 1), 3) qualquer sistema operacional sistema que passou na certificação pelo The Open Group (ou 3a) qualquer sistema operacional que passasse na certificação pelo The Open Group, mas não pode pagar a taxa de certificação), 4) qualquer sistema operacional que pareça "Unix". Por exemplo, com exceção de distribuições especializadas como o Android, a maioria das distribuições Linux se enquadra em 4), algumas em 3a) e algumas em 3).
Jörg W Mittag
1
OTOH, mesmo que o OSX fique abaixo de 2) e 3), eu argumentaria que ele não se enquadra em 4). O Windows NT, pelo menos em algumas versões, satisfaz 3), mas definitivamente não 4).
Jörg W Mittag

Respostas:

17

O POSIX define uname("nome Unix") para fornecer informações sobre o sistema operacional e a plataforma de hardware; running unamefornece o nome da implementação do sistema operacional (ou de acordo com a coreutilsdocumentação, o kernel). Você pode fazer isso interativamente em um terminal ou usar a saída em um script.

Nos sistemas Linux, unameserá impresso Linux.

Nos sistemas Mac OS X, unameserá impresso Darwin. (A rigor, qualquer sistema operacional com um kernel Darwin produzirá isso, mas é muito improvável que você encontre algo diferente do Mac OS X nesse caso.)

Isso permitirá que você determine o que qualquer Mac está executando. Como aponta Rob , se você estiver executando o Mac OS X ( Darwinconforme indicado uname), estará executando uma versão certificada do Unix ; se você estiver executando o Linux, não estará.

Em um Mac, existem muitas outras possibilidades; seu script pode acabar rodando no Solaris ( unameserá impresso SunOSentão), no FreeBSD ( FreeBSD), no Windows com Cygwin ( CYGWIN), MSYS ou MSYS2 ( MSYS), um shell MinGW ou MinGW-w64 ( MINGW64, MINGW32), Interix ( Interix) e provavelmente outros Eu não estou ciente.

uname -aimprimirá todas as informações disponíveis, conforme determinado por uname, mas é mais difícil de analisar.

Stephen Kitt
fonte
O problema é que o uname não prova que está executando o Unix. Ele fornece apenas um nome do sistema operacional que pode não ser um sistema Unix. Linux, por exemplo, não é Unix.
Rob
@ Rob, em nenhum lugar Stéphane ou eu digo isso; na verdade, estamos explicitamente diferenciando entre Linux e Unix (ou melhor, Mac OS X).
Stephen Kitt
3

A menos que você tenha instalado outra coisa, os Macs não executam o Linux. Os Macbooks rodam o sistema operacional da Apple chamado OSX, que é certificado Unix e, portanto, é a resposta para sua pergunta.

Roubar
fonte
Obviamente, algumas versões do Linux também são certificadas como Unix, então a questão passa a ser: ele está executando Linux ou Unix?
Jörg W Mittag
@ JörgWMittag Vejo que a única versão do Linux certificada como Unix é um servidor LDAP executando o SUSE da IBM, mas nenhum outro é ou nunca foi ou provavelmente o será. minha resposta permanece a mesma, no entanto. Se ele não instalou o Linux em um Mac, ele está executando o OSX, que é o Unix.
Rob
2

A resposta é:

uname -a

Ou:

cat /proc/version
Baazigar
fonte
Abra uma janela do terminal e digite 'uname -a' e depois retorne.
precisa
1
O que posso deduzir sobre o sistema operacional se cat /proc/versionproduzir a mensagem de erro cat: /proc/version: No such file or directory?
kasperd
Veja / etc / fstab, veja os tipos de arquivos indicados lá. Se é como ext3, ext4, xfs, é linux. Se é como jfs, gpfs, hfs, hfs +, isso é unix.
precisa
Se você xfsvir, pode ser IRIX ;-). (Mas não em um Mac, eu vou te dar isso!)
Stephen Kitt