### 穩定度: 2 - 穩定
提供一些基本的操作系統相關的功能。
使用`require('os')`來獲得這個模塊。
#### os.tmpdir()
返回操作系統默認的臨時文件目錄。
#### os.homedir()
返回當前用戶的家目錄。
#### os.endianness()
返回CPU的字節序。`BE`為大端字節序,`LE`為小端字節序。
#### os.hostname()
返回當前操作系統的主機名。
#### os.type()
返回操作系統名。例如,Linux下為`'Linux'`,OS X下為`'Darwin'`,Windows下為`'Windows_NT'`。
#### os.platform()
返回操作系統平臺。可能的值有`'darwin'`,`'freebsd'`,`'linux'`,`'sunos'`或`'win32'`。返回`process.platform`值。
#### os.arch()
返回操作系統CPU架構。可能的值有`'x64'`,`'arm'`和`'ia32'`。返回`process.arch`值。
#### os.release()
返回操作系統的發行版本。
#### os.uptime()
返回操作系統的運行時間(秒)。
#### os.loadavg()
返回一個包含1,5,15分鐘平均負載的數組。
平均負載是一個系統活動測量,由操作系統計算并且由一個分數表示。根據經驗,理想的負載均衡數應該比系統的邏輯CPU數小。
平均負載完全是一個`UNIX-y`概念;在Windows中沒有完全對等的概念。所以在Windows下,這個函數總是返回`[0, 0, 0]`。
#### os.totalmem()
以字節的形式返回系統的總內存。
#### os.freemem()
以字節的形式返回系統的可用內存。
#### os.cpus()
返回一個包含安裝的各個CPU/核心信息的對象數組:型號,速度(單位MHz),和時間(一個包含CPU/核心花費的毫秒數的對象:`user`,`nice`,`sys`,`idle`和`irq`)。
`os.cpus`例子:
~~~
[ { model: 'Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz',
speed: 2926,
times:
{ user: 252020,
nice: 0,
sys: 30340,
idle: 1070356870,
irq: 0 } },
{ model: 'Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz',
speed: 2926,
times:
{ user: 306960,
nice: 0,
sys: 26980,
idle: 1071569080,
irq: 0 } },
{ model: 'Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz',
speed: 2926,
times:
{ user: 248450,
nice: 0,
sys: 21750,
idle: 1070919370,
irq: 0 } },
{ model: 'Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz',
speed: 2926,
times:
{ user: 256880,
nice: 0,
sys: 19430,
idle: 1070905480,
irq: 20 } },
{ model: 'Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz',
speed: 2926,
times:
{ user: 511580,
nice: 20,
sys: 40900,
idle: 1070842510,
irq: 0 } },
{ model: 'Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz',
speed: 2926,
times:
{ user: 291660,
nice: 0,
sys: 34360,
idle: 1070888000,
irq: 10 } },
{ model: 'Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz',
speed: 2926,
times:
{ user: 308260,
nice: 0,
sys: 55410,
idle: 1071129970,
irq: 880 } },
{ model: 'Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz',
speed: 2926,
times:
{ user: 266450,
nice: 1480,
sys: 34920,
idle: 1072572010,
irq: 30 } } ]
~~~
注意因為`nice`值是UNIX中心的,所以在Windows中所有進程的`nice`值都將是`0`。
#### os.networkInterfaces()
獲取一個網絡接口列表:
~~~
{ lo:
[ { address: '127.0.0.1',
netmask: '255.0.0.0',
family: 'IPv4',
mac: '00:00:00:00:00:00',
internal: true },
{ address: '::1',
netmask: 'ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff',
family: 'IPv6',
mac: '00:00:00:00:00:00',
internal: true } ],
eth0:
[ { address: '192.168.1.108',
netmask: '255.255.255.0',
family: 'IPv4',
mac: '01:02:03:0a:0b:0c',
internal: false },
{ address: 'fe80::a00:27ff:fe4e:66a1',
netmask: 'ffff:ffff:ffff:ffff::',
family: 'IPv6',
mac: '01:02:03:0a:0b:0c',
internal: false } ] }
~~~
注意,由于底層系統實現的原因,它將只會返回被賦予一個地址的網絡接口。
#### os.EOL
一個定義了對于操作系統,合適的行結束記號的常量。