os.platform() возвращает darwin вместо OSX
os.platform();
Приведенная выше инструкция JS возвращает имя ОС.
Когда он запускается в Ubuntu, он возвращается
'linux'
Когда он запускается на Macbook, он возвращается
'darwin'
Мне интересно, почему не возвращается osx
,unix
или же bsd
..?
Есть ли darwin
такое форк osx?
Как получить тип ОС под MAC с помощью Node.js?
3 ответа
Дарвин - это не OSX, а OSX - это Дарвин.
Дарвин - это ядро OSX, точно так же, Linux - это ядро Debian, Ubuntu и всех других дистрибутивов Linux.
Поскольку проект с открытым исходным кодом мертв, вы можете смело предположить, что платформой, идентифицируемой как Darwin, является macOS (включая OSX), iOS, watchOS или tvOS, для Mac, iPhone, Apple Watch и Apple TV.
Пока вы не можете сделать ярлык darwin => OSX
вслепую, я не знаю ни одного порта node.js для других устройств, так что да, если вы получаете darwin, вы можете быть почти уверены, что это устройство macOS, но это может быть другая версия, чем OSX.
Дарвин является базовой платформой для OS X.
Чтобы получить версию OS X вместо этого, вы можете сделать это через командную строку (или дочерний процесс) с помощью: defaults read loginwindow SystemVersionStampAsString
или же sw_vers -productVersion
Чтобы получить версию через C/C++ (для которой вы можете написать привязку для доступа из узла):
// compile with: g++ osx_ver.cc -I/Developer/Headers/FlatCarbon -framework CoreServices
#include <Gestalt.h>
#include <stdio.h>
int main() {
SInt32 majorVersion, minorVersion, bugFixVersion;
Gestalt(gestaltSystemVersionMajor, &majorVersion);
Gestalt(gestaltSystemVersionMinor, &minorVersion);
Gestalt(gestaltSystemVersionBugFix, &bugFixVersion);
printf("%d.%d.%d", majorVersion, minorVersion, bugFixVersion);
return 0;
}
Обратите внимание Gestalt()
использование, показанное выше, устарело с OS X 10.8, но его замена, по-видимому, недоступна до OS X 10.10, поэтому вам, возможно, придется использовать Objective-C вместо этого ([processInfo operatingSystemVersion]
) и ветка по доступности API, как это сделано здесь, в Chromium.
Дарвин был оригинальным именем, данным OS X Apple. Он был назван таковым, потому что это был шаг NeXT в эволюции операционных систем.