os.platform() returns 达尔文而不是 OSX
os.platform() returns darwin instead of OSX
os.platform();
上面的JS指令return是OS的名字。
当它在 Ubuntu 上运行时,它 returns
'linux'
在 Macbook 上运行时,returns
'darwin'
我想知道为什么 return osx
,unix
或 bsd
.. ?
darwin
是osx的分支吗?
如何使用Node.js获取MAC下OS的类型?
达尔文不是OSX,OSX是达尔文。
Darwin是OSX的核心,同理,Linux是Debian的核心,Ubuntu,其他的都是Linux分布。
因此,虽然您可以 100% 确定任何 Apple 产品(macOS、OSX、iOS、watchOS、tvOS)都将 return Darwin,但从技术上讲这是不正确的假设 darwin 永远只会是那些操作系统,因为存在一些低调的开源项目,比如 PureDarwin,而那些也将是 return darwin
.
但是,除了 OSX 之外,我不知道任何其他基于达尔文的操作系统的 node.js 的任何(官方)端口,所以在实践中,是的,如果你得到 darwin
, 你可以确信它是 OSX.
Darwin 是 apple 给 OS X 的原名。之所以这样命名,是因为它是操作系统发展过程中的 NeXT 一步。
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;
}
注意:上面显示的 Gestalt()
用法自 OS X 10.8 起已弃用,但它的替代品似乎在 OS X 10.10 之前不可用,因此您可能需要使用Objective-C 而不是 ([processInfo operatingSystemVersion]
) 并在 API 可用性上分支,就像在 Chromium 中所做的那样 here。
os.platform();
上面的JS指令return是OS的名字。
当它在 Ubuntu 上运行时,它 returns
'linux'
在 Macbook 上运行时,returns
'darwin'
我想知道为什么 return osx
,unix
或 bsd
.. ?
darwin
是osx的分支吗?
如何使用Node.js获取MAC下OS的类型?
达尔文不是OSX,OSX是达尔文。
Darwin是OSX的核心,同理,Linux是Debian的核心,Ubuntu,其他的都是Linux分布。
因此,虽然您可以 100% 确定任何 Apple 产品(macOS、OSX、iOS、watchOS、tvOS)都将 return Darwin,但从技术上讲这是不正确的假设 darwin 永远只会是那些操作系统,因为存在一些低调的开源项目,比如 PureDarwin,而那些也将是 return darwin
.
但是,除了 OSX 之外,我不知道任何其他基于达尔文的操作系统的 node.js 的任何(官方)端口,所以在实践中,是的,如果你得到 darwin
, 你可以确信它是 OSX.
Darwin 是 apple 给 OS X 的原名。之所以这样命名,是因为它是操作系统发展过程中的 NeXT 一步。
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;
}
注意:上面显示的 Gestalt()
用法自 OS X 10.8 起已弃用,但它的替代品似乎在 OS X 10.10 之前不可用,因此您可能需要使用Objective-C 而不是 ([processInfo operatingSystemVersion]
) 并在 API 可用性上分支,就像在 Chromium 中所做的那样 here。