2016-07-26 13 views
2
os.platform(); 

Der obige JS-Befehl gibt den Namen des Betriebssystems zurück.os.platform() gibt Darwin anstelle von OSX zurück

  • Wenn es auf Ubuntu runned ist, gibt sie

    'linux' 
    
  • Wenn es auf Macbook runned wird, gibt es

    'darwin' 
    

Ich fragte mich, mich, warum nicht zurückgibt osx, unix oder bsd ..?

Ist darwin ein Fork von Osx?

Wie erhalten Sie den Typ des Betriebssystems unter MAC mit Node.js?

Antwort

5

Darwin ist nicht OSX, OSX ist Darwin.

Darwin ist der Kern von OSX, auf die gleiche Weise ist Linux der Kern von Debian, Ubuntu und allen anderen Linux-Distributionen.

Da das Open-Source-Projekt tot ist, können Sie davon ausgehen, dass eine als Darwin bezeichnete Plattform entweder macOS (einschließlich OSX), iOS, watchOS oder tvOS für Mac, iPhone, Apple Watch und Apple TV ist.

Während Sie die Verknüpfung nicht blind machen können, weiß ich keinen Port von node.js für das andere Gerät, also ja, wenn Sie Darwin bekommen, können Sie fast sicher sein, dass es ein MacOS-Gerät ist, aber es könnte eine andere Version als OSX sein.

2

Darwin war der ursprüngliche Name für OS X von Apple. Es wurde so benannt, weil es der NeXT-Schritt in der Entwicklung von Betriebssystemen war.

4

Darwin ist die zugrunde liegende Plattform für OS X.

die OS X-Version stattdessen zu erhalten, können Sie dies über die Befehlszeile (oder Kinder Prozess) tun mit: defaults read loginwindow SystemVersionStampAsString oder sw_vers -productVersion

Um die Version über C/C++ (mit dem Sie eine Bindung für den Zugriff von Knoten schreiben konnte):

// 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; 
} 

Hinweis: Die Gestalt() uns Das oben gezeigte Alter ist seit OS X 10.8 veraltet, aber sein Ersatz ist anscheinend erst ab OS X 10.10 verfügbar, daher müssen Sie möglicherweise stattdessen Objective-C verwenden ([processInfo operatingSystemVersion]) und auf die API-Verfügbarkeit verzweigen, wie in Chromium here.