Node JS OS Module
Written By: Avinash Malhotra
Updated on
OS Modules
os module is used to get operating system related properties. This includes os architecture, RAM, number of processors, network interfaces, os platform, os type etc.
OS Modules is a build in module in node js.
OS Modules Code
CJS Module
const os=require('os');
ESM Module
import os from 'node:os';
OS Architecture
os.arch method returns the architecture of operating system. The possible values are 'arm', 'arm64', 'ia32', 'mips', 'mipsel', 'ppc', 'ppc64', 's390', 's390x', 'x32', and 'x64'.
import os from 'node:os';
const arch=os.arch();
OS CPUS
os.cpus method returns the information of each CPU Core. This method returns an array of objects having information about each CPU Core.
[
{
model: 'Apple M3 Pro',
speed: 2400,
times: { user: 23734800, nice: 0, sys: 20794820, idle: 96604370, irq: 0 }
},
{
model: 'Apple M3 Pro',
speed: 2400,
times: { user: 18830700, nice: 0, sys: 16518900, idle: 106158090, irq: 0 }
},
{
model: 'Apple M3 Pro',
speed: 2400,
times: { user: 13516320, nice: 0, sys: 11265460, idle: 117202970, irq: 0 }
},
{
model: 'Apple M3 Pro',
speed: 2400,
times: { user: 10295660, nice: 0, sys: 7446040, idle: 124646660, irq: 0 }
},
{
model: 'Apple M3 Pro',
speed: 2400,
times: { user: 7964110, nice: 0, sys: 4951500, idle: 129771950, irq: 0 }
},
{
model: 'Apple M3 Pro',
speed: 2400,
times: { user: 6394900, nice: 0, sys: 3519730, idle: 132942000, irq: 0 }
},
{
model: 'Apple M3 Pro',
speed: 2400,
times: { user: 8295120, nice: 0, sys: 2618540, idle: 131923160, irq: 0 }
},
{
model: 'Apple M3 Pro',
speed: 2400,
times: { user: 8266820, nice: 0, sys: 2628130, idle: 131947040, irq: 0 }
},
{
model: 'Apple M3 Pro',
speed: 2400,
times: { user: 7994900, nice: 0, sys: 2470880, idle: 132395080, irq: 0 }
},
{
model: 'Apple M3 Pro',
speed: 2400,
times: { user: 8089120, nice: 0, sys: 2528680, idle: 132240530, irq: 0 }
},
{
model: 'Apple M3 Pro',
speed: 2400,
times: { user: 8009230, nice: 0, sys: 2511670, idle: 132340490, irq: 0 }
}
]
import os from 'node:os';
const cpus=os.cpus();
To get information of each individual cpu core, use for each method of above array.
import os from 'node:os';
const cpus=os.cpus();
cpus.forEach(function(i){
console.log(i);
})
OS Memory
OS Memory method can check total memory and free memory. Memory stands for Random access memory (RAM). The units for memory is in bytes.
3095019520
import os from 'node:os';
console.log(os.totalmem());
console.log(os.freemem());
Total Memory
Total Memory is the actual size of RAM. To get Total, memory, use os.totalmem() method. The default unit is in bytes. To get RAM size in GB, divide it by 1073741824, i.e. (1024*1024*1024). To get RAM size in MB, divide it by 1048576, i.e (1024*1024).
Total RAM in GBs
import os from 'node:os';
console.log((os.totalmem()/1073741824)+ "GB" );
Total RAM in MBs
import os from 'node:os';
console.log((os.totalmem()/1048576)+ "MB");
Free Memory
os.freemem method is used to check free memory out of total memory.
Check free memory
import os from 'node:os';
console.log(os.freemem());
os.networkInterfaces
os.networkInterfaces method returns an object containing information related to network interfaces assigned to the device. That includes mac id, ip address etc.
{
lo: [
{
address: '127.0.0.1',
netmask: '255.0.0.0',
family: 'IPv4',
mac: '00:00:00:00:00:00',
internal: true,
cidr: '127.0.0.1/8'
},
{
address: '::1',
netmask: 'ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff',
family: 'IPv6',
mac: '00:00:00:00:00:00',
scopeid: 0,
internal: true,
cidr: '::1/128'
}
],
eth0: [
{
address: '192.168.1.108',
netmask: '255.255.255.0',
family: 'IPv4',
mac: '01:02:03:0a:0b:0c',
internal: false,
cidr: '192.168.1.108/24'
},
{
address: 'fe80::a00:27ff:fe4e:66a1',
netmask: 'ffff:ffff:ffff:ffff::',
family: 'IPv6',
mac: '01:02:03:0a:0b:0c',
scopeid: 1,
internal: false,
cidr: 'fe80::a00:27ff:fe4e:66a1/64'
}
]
}
import os from 'node:os';
console.log(os.networkInterfaces());
OS Platform
os.platform method returns a string containing platform of operating system. That can be "darwin", "win32", "linux" etc.
import os from 'node:os';
console.log(os.platform());
OS Type
os.type method returns a string containing name of operating system. That can be "Darwin", "Windows_NT", "Linux" etc.
import os from 'node:os';
console.log(os.type());
OS uptime
os.uptime method returns system uptime in seconds.
6168.466 mins
102.807 hours
import os from 'node:os';
console.log(os.uptime()+" secs");
console.log((os.uptime()/60)+ " mins");
console.log((os.uptime()/3600)+ " hours");
OS userInfo
os.userInfo method returns an object with information of user like, uid, gid, username, home directory and default shell.
{
uid: 501,
gid: 20,
username: 'avinash',
homedir: '/Users/avinas',
shell: '/bin/zsh'
}
import os from 'node:os';
console.log(os.userInfo())