NTM Solutions

Thứ Sáu, 24 tháng 7, 2026

🚀 Node.js LTS (2026) — Bài 08: OS - Khám phá hệ điều hành với Node.js 🖥️

"Để xây dựng ứng dụng thông minh, đôi khi bạn cần biết nó đang chạy trên hệ điều hành nào, có bao nhiêu CPU, bao nhiêu RAM và thư mục Home ở đâu. Module os giúp Node.js làm được điều đó."


🎯 Mục tiêu bài học

Sau bài này bạn sẽ:

  • Hiểu module os là gì.

  • Lấy thông tin hệ điều hành.

  • Kiểm tra CPU, RAM và kiến trúc máy.

  • Biết thư mục Home, Temp.

  • Phân biệt các hàm thường dùng trong module os.

  • Ứng dụng os trong các dự án thực tế.


Module os là gì?

os (Operating System) là module có sẵn của Node.js.

Không cần cài đặt.

Import:

import os from "node:os";

Hoặc

import {
    cpus,
    totalmem
} from "node:os";

os.platform()

Cho biết hệ điều hành đang chạy.

import os from "node:os";

console.log(
    os.platform()
);

Ví dụ

Windows

win32

Linux

linux

macOS

darwin

Lưu ý: Giá trị win32 vẫn được sử dụng cho Windows 64-bit để đảm bảo tính tương thích ngược.


os.arch()

Kiến trúc CPU.

import os from "node:os";

console.log(
    os.arch()
);

Ví dụ

x64

Hoặc

arm64

os.hostname()

Tên máy tính.

console.log(
    os.hostname()
);

Ví dụ

DESKTOP-ABC123

os.type()

Loại hệ điều hành.

console.log(
    os.type()
);

Ví dụ

Windows

Windows_NT

Linux

Linux

macOS

Darwin

os.release()

Phiên bản hệ điều hành.

console.log(
    os.release()
);

Ví dụ

10.0.26100

os.version()

Thông tin phiên bản chi tiết hơn.

console.log(
    os.version()
);

Ví dụ

Windows 11 Pro

(Chuỗi trả về phụ thuộc vào hệ điều hành.)


os.cpus()

Thông tin CPU.

import os from "node:os";

console.log(
    os.cpus()
);

Ví dụ

[
 {
   model: "...",
   speed: 3200
 }
]

Đếm số lõi CPU

console.log(
    os.cpus().length
);

Ví dụ

8

os.availableParallelism()

Đây là cách hiện đại để biết số luồng xử lý khả dụng.

console.log(
    os.availableParallelism()
);

Ví dụ

8

Trong các phiên bản Node.js mới, os.availableParallelism() được khuyến nghị thay cho việc dùng os.cpus().length khi cần xác định mức độ song song phù hợp.


os.totalmem()

Dung lượng RAM.

console.log(
    os.totalmem()
);

Ví dụ

17071734784

Đổi sang GB

const ram =
os.totalmem() /
1024 /
1024 /
1024;

console.log(
ram.toFixed(2)
);

15.90 GB

os.freemem()

RAM còn trống.

console.log(
    os.freemem()
);

Ví dụ

8478232576

os.homedir()

Thư mục Home.

console.log(
    os.homedir()
);

Windows

C:\Users\Admin

Linux

/home/admin

os.tmpdir()

Thư mục tạm.

console.log(
    os.tmpdir()
);

Ví dụ

Windows

C:\Users\Admin\AppData\Local\Temp

os.uptime()

Thời gian máy đã hoạt động.

console.log(
    os.uptime()
);

86400

Nghĩa là

86400 giây

Đổi sang giờ

const hours =
os.uptime() /
60 /
60;

console.log(
hours.toFixed(1)
);

24.0 giờ

os.userInfo()

Thông tin người dùng.

console.log(
    os.userInfo()
);

Ví dụ

{
 username:'admin',
 shell:'cmd'
}

os.networkInterfaces()

Thông tin mạng.

console.log(
    os.networkInterfaces()
);

Ví dụ

Ethernet

Wi-Fi

IPv4

IPv6

Thông tin này thường được dùng trong các công cụ quản trị hoặc chẩn đoán hệ thống.


os.EOL

Ký tự xuống dòng của hệ điều hành.

console.log(
    os.EOL
);

Windows

\r\n

Linux/macOS

\n

Ví dụ

import fs from "node:fs";
import os from "node:os";

fs.writeFileSync(
    "log.txt",
    "Dong 1" +
    os.EOL +
    "Dong 2"
);

Ví dụ thực tế

Hiển thị thông tin hệ thống

import os from "node:os";

console.log("Platform:", os.platform());

console.log("CPU:", os.availableParallelism());

console.log(
"RAM:",
(
os.totalmem()/1024/1024/1024
).toFixed(2),
"GB"
);

Kết quả

Platform: win32

CPU: 8

RAM: 15.90 GB

Khi nào dùng module os?

Rất hữu ích trong:

  • Kiểm tra môi trường chạy.

  • Hiển thị thông tin máy chủ.

  • Công cụ CLI.

  • Dashboard quản trị.

  • Monitoring.

  • Docker.

  • VPS.

  • DevOps.


Những lỗi thường gặp

Nhầm platform()

if(os.platform()=="windows")

Sai.

Đúng là

if(os.platform()=="win32")

Không đổi đơn vị RAM

console.log(
os.totalmem()
);

Kết quả

17071734784

Đây là byte, không phải GB.


Dùng cpus().length để tính hiệu năng

os.cpus().length cho biết số lõi logic, nhưng không phản ánh đầy đủ khả năng xử lý của hệ thống. Trong các ứng dụng hiện đại, nên ưu tiên os.availableParallelism() khi cần xác định số luồng làm việc phù hợp.


Bảng tổng hợp các hàm thường dùng

HàmÝ nghĩa
platform()Hệ điều hành
arch()Kiến trúc CPU
hostname()Tên máy
type()Loại hệ điều hành
release()Phiên bản kernel/HĐH
version()Phiên bản chi tiết
cpus()Thông tin CPU
availableParallelism()Số luồng xử lý khả dụng
totalmem()Tổng RAM
freemem()RAM còn trống
homedir()Thư mục Home
tmpdir()Thư mục Temp
uptime()Thời gian hoạt động
userInfo()Người dùng hiện tại
networkInterfaces()Thông tin mạng
EOLKý tự xuống dòng

Tổng kết

Module os giúp Node.js truy cập thông tin về hệ điều hành và phần cứng của máy đang chạy ứng dụng. Với các API như platform(), availableParallelism(), totalmem() hay homedir(), bạn có thể xây dựng các chương trình thích ứng với nhiều môi trường khác nhau, đồng thời hỗ trợ giám sát và quản trị hệ thống hiệu quả.

Đây là một module nền tảng thường được sử dụng trong các công cụ CLI, ứng dụng máy chủ, Docker, VPS và các hệ thống giám sát.


Bài tiếp theo

👉 Bài 09 — Events

Bạn sẽ học:

  • Event là gì.

  • EventEmitter.

  • on(), once(), emit().

  • Truyền dữ liệu qua sự kiện.

  • Xây dựng hệ thống xử lý sự kiện theo mô hình Publisher–Subscriber (Pub/Sub) trong Node.js.

Không có nhận xét nào:

Đăng nhận xét

Facebook Youtube RSS