os.platform();
上面的JS指令返回OS的名称。
在Ubuntu上运行时,它会返回
'linux'
在Macbook上运行时,会返回
'darwin'
我想知道为什么不返回osx
,unix
或bsd
..?
darwin
是osx的分支吗?
如何使用Node.js获取MAC下的OS类型?
答案 0 :(得分:8)
达尔文不是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。
答案 1 :(得分:4)
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({{1 }}和分支在API可用性上,如在Chromium中完成here。
答案 2 :(得分:1)
达尔文是苹果给OS X的原始名称。之所以如此,是因为它是操作系统发展中的NeXT步骤。