B00_osSourceOperating system and machine information.
name is the operating system name. Determined using the following steps, in order:
If the uname tool is available in the memo environment, name is the lowercased token returned by uname -s, transformed as follows:
"darwin" is mapped on "macos"COMSPEC environment variable is defined in the memo environment, "windows"."unknown".version is the operating system version string. This depends on the value of name:
"freebsd". The output of uname -U."linux". An Android heuristic is applied, otherwise looks the VERSION_ID field of os-release if available, otherwise "unknown""macos". The output of sw_vers -productVersion."windows". The parsed output of cmd.exe /c ver. The Windows operating system to which this version string maps can be found here.uname tool is available in the memo environment the result of uname -r and otherwise "unknown".distribution is the operating system distribution or a package manager. This depends on the value of name:
"linux". Looks up the ID field of os-release if available, if not found "linux""macos". If either the brew or port tool is found in the memo environment then this is respectively "homebrew" or "macports". The former takes over if both are present. If none are found "macos".namefamily is the operating system family. This lumps the following name names under a common identifier:
"bsd""windows", "cygwin" as "windows""linux", looks up the first value of ID_LIKE in os-release if available. If not uses distribution.nameexe_ext is operating system specific file extension for executable files. This is:
".exe" if name is "windows"."" otherwise.As reported by the operating system.
arch is the architecture of the operating system, see also arch_normalized. Determined using the following steps (in order):
uname is available in the memo environment, arch is the lowercased token returned by uname -m.PROCESSOR_ARCHITECTURE environment variable is defined in the memo environment, its value unless it is "x86". In the latter case the value of PROCESSOR_ARCHITEW6432 or, if undefined, "x86". This is for Windows, see here for the rationale."unknown".arch_normalized normalizes some of the arch values to more general identifiers like "arm32", "arm64", "ppc32", "ppc64", "x86_32" and "x86_64".
arch_bits is number of bits in a word on the architecture of the operating system, derived from arch_normalized. Usually either 32 or 64. If unknown warns on the memo and defaults to 64.