Как я могу определить, является ли моя система Unix или Linux?

8

Как я могу определить, является ли моя система Unix или Linux?

Я использую Macbook Pro 2010 года выпуска.

Иван Кинг
источник
7
Сколько ты заплатил за это?
mikeserv
3
Существует (как минимум) четыре различных определения термина «Unix»: 1) серия операционных систем от Bell Labs, 2) семейство операционных систем, полученных из исходного кода 1), 3) любая операционная система, которая прошла сертификацию Open Group (или 3a), любая операционная система, которая прошла бы сертификацию Open Group, но не может позволить себе плату за сертификацию), 4) любая операционная система, которая выглядит и ощущается как «Unix». Например, за исключением специализированных дистрибутивов, таких как Android, большинство дистрибутивов Linux подпадают под 4), некоторые под 3a), а некоторые под 3).
Йорг Миттаг
1
OTOH, хотя OSX подпадает под 2) и 3), я бы сказал, что он не подпадает под 4). Windows NT, по крайней мере в некоторых версиях, удовлетворяет 3), но определенно не 4).
Йорг Миттаг

Ответы:

17

POSIX определяет uname(«имя Unix») для предоставления информации об операционной системе и аппаратной платформе; Выполнение unameдает имя реализации операционной системы (или, согласно coreutilsдокументации, ядро). Вы можете сделать это интерактивно в терминале или использовать вывод в скрипте.

В системах Linux unameраспечатайте Linux.

В системах Mac OS X, unameбудет печатать Darwin. (Строго говоря, любая операционная система с ядром Дарвина будет производить это, но в этом случае вы вряд ли столкнетесь с чем-то другим, кроме Mac OS X.)

Это позволит вам определить, на каком компьютере работает Mac. Как указывает Роб , если вы используете Mac OS X ( Darwinкак указано uname), значит, вы используете сертифицированную версию Unix ; если вы используете Linux, то это не так.

На Mac есть много других возможностей; ваш сценарий может в конечном итоге работать в Solaris ( затем unameбудет напечатан SunOS), во FreeBSD ( FreeBSD), в Windows с Cygwin ( CYGWIN), MSYS или MSYS2 ( MSYS), оболочкой MinGW или MinGW-w64 ( MINGW64, MINGW32), Interix ( Interix) и, возможно, другими Я не в курсе.

uname -aраспечатает всю доступную информацию, как определено uname, но ее сложнее разобрать.

Стивен Китт
источник
Проблема в том, что uname не доказывает, что работает под Unix. Он только дает название ОС, которая может не являться системой Unix. Linux, например, не является Unix.
Роб
@Rob, нигде не сказал ни Стефан, ни я; на самом деле мы явно различаем Linux и Unix (точнее Mac OS X).
Стивен Китт
3

Если вы не установили что-то еще, Mac не работает под управлением Linux. Macbooks работает под управлением операционной системы Apple под названием OSX, которая сертифицирована Unix и, следовательно, является ответом на ваш вопрос.

обкрадывать
источник
Конечно, некоторые версии Linux также сертифицированы для Unix, поэтому возникает вопрос: работает ли Linux или Unix?
Йорг Миттаг
@ JörgWMittag Я вижу, что единственной версией Linux, которая сертифицирована как Unix, является сервер LDAP, работающий на SUSE от IBM, но ни одна из них не была или никогда не была или, вероятно, никогда не будет. мой ответ остается тем же, хотя. Если он не установил Linux на Mac, то он работает под управлением OSX, то есть Unix.
Роб
2

Ответ:

uname -a

Или:

cat /proc/version
Baazigar
источник
Откройте окно терминала и введите «uname -a», затем вернитесь.
Баазигар
1
Что я могу сделать вывод об ОС, если cat /proc/versionвыдает сообщение об ошибке cat: /proc/version: No such file or directory?
Касперд
Посмотрите это / etc / fstab, посмотрите на типы файлов, указанные там. Если это как ext3, ext4, xfs, это Linux. Если это как jfs, gpfs, hfs, hfs +, то это unix.
Баазигар
Если вы видите, xfsэто может быть IRIX ;-). (Но не на Mac, я дам вам это!)
Стивен Китт