os.platform();
上面的JS指令返回OS的名称。
'linux'
'darwin'
我想知道为什么不返回osx
,unix
或bsd
..?
darwin
is是osx的一个分支吗?
如何使用Node.js获取MAC下的OS类型?
达尔文不是OSX,OSX是达尔文。
Darwin是OSX的核心,同样,Linux是Debian,Ubuntu以及其他所有Linux发行版的核心。
因此,虽然你可以100%确定任何Apple产品(macOS,OSX,iOS,watchOS,tvOS)将返回Darwin,但从技术角度来看,假设darwin只会出现操作系统,这是不正确的,因为一些低调的开源项目存在,像PureDarwin,并且thoses也将返回darwin
。
但是,我不知道任何其他基于Darwin的操作系统的任何(官方)端口node.js,所以在实践中,是的,如果你得到darwin
,你可以确信它是OSX。
Darwin是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;
}
注意:从OS X 10.8开始,上面显示的Gestalt()
用法已被弃用,但它的替换似乎在OS X 10.10之前无法使用,因此您可能需要使用Objective-C([processInfo operatingSystemVersion]
)并在API可用性上进行分支,如here所做的那样在Chromium。
达尔文是苹果给OS X的原始名称。之所以如此,是因为它是操作系统发展中的NeXT步骤。