ماژول OS در Node.js

ماژول node:os مجموعه‌ای از متدها و ویژگی‌ها برای دسترسی به اطلاعات سیستم‌عامل فراهم می‌کند. این ماژول امکان بررسی معماری CPU، حافظه، مسیرهای پیش‌فرض، اطلاعات کاربر، و ثابت‌های سیستمی مانند سیگنال‌ها و خطاها را می‌دهد. استفاده از این ماژول به توسعه‌دهندگان کمک می‌کند تا برنامه‌های خود را با شرایط سیستم‌عامل هماهنگ کنند.

os.arch / os.machineos.cpus / os.availableParallelismos.freemem / os.totalmemos.homedir / os.userInfoos.platform / os.type / os.release / os.versio

~2 min read · Updated Dec 30, 2025

1. اطلاعات پایه سیستم


  • os.arch(): معماری CPU (arm, x64, ia32 و غیره).
  • os.machine(): نوع ماشین (arm64, mips, x86_64 و غیره).
  • os.endianness(): نوع اندیَن CPU (LE یا BE).
  • os.platform(): پلتفرم سیستم‌عامل (linux, win32, darwin و غیره).
  • os.type(): نام سیستم‌عامل (Linux, Darwin, Windows_NT).
  • os.release(): نسخهٔ سیستم‌عامل.
  • os.version(): نسخهٔ کرنل.

2. پردازنده و موازی‌سازی


  • os.cpus(): اطلاعات کامل دربارهٔ هر هستهٔ CPU.
  • os.availableParallelism(): تعداد هسته‌های قابل استفاده برای موازی‌سازی.

3. حافظه و منابع


  • os.freemem(): میزان حافظهٔ آزاد.
  • os.totalmem(): میزان کل حافظهٔ سیستم.
  • os.loadavg(): میانگین بار سیستم (فقط در یونیکس).
  • os.uptime(): مدت زمان روشن بودن سیستم.

4. مسیرها و فایل‌ها


  • os.homedir(): مسیر پوشهٔ خانگی کاربر.
  • os.tmpdir(): مسیر پیش‌فرض فایل‌های موقت.
  • os.devNull: مسیر دستگاه null (\\.\nul در ویندوز، /dev/null در POSIX).
  • os.EOL: کاراکتر پایان خط (\\n در POSIX، \\r\\n در ویندوز).

5. اطلاعات کاربر


  • os.userInfo(): اطلاعات کاربر جاری شامل username، uid، gid، shell و homedir.
  • os.hostname(): نام میزبان سیستم.

6. شبکه


os.networkInterfaces() لیستی از کارت‌های شبکه و آدرس‌های IP اختصاص داده‌شده را بازمی‌گرداند.


{
  lo: [
    { address: '127.0.0.1', family: 'IPv4', internal: true },
    { address: '::1', family: 'IPv6', internal: true }
  ],
  eth0: [
    { address: '192.168.1.108', family: 'IPv4', internal: false },
    { address: 'fe80::a00:27ff:fe4e:66a1', family: 'IPv6', internal: false }
  ]
}

7. اولویت پردازش


  • os.getPriority([pid]): دریافت اولویت پردازش.
  • os.setPriority([pid, priority]): تنظیم اولویت پردازش.

مقادیر بین -20 (بالاترین اولویت) تا 19 (پایین‌ترین) هستند و به ثابت‌های os.constants.priority نگاشت می‌شوند.


8. ثابت‌های سیستم


  • سیگنال‌ها: مانند SIGINT (Ctrl+C)، SIGTERM (پایان پردازش)، SIGKILL (خاتمه فوری).
  • خطاها: شامل خطاهای POSIX (ENOENT، EACCES، ECONNREFUSED) و خطاهای خاص ویندوز (WSAECONNRESET، WSAETIMEDOUT).
  • dlopen: ثابت‌های بارگذاری پویا مانند RTLD_LAZY و RTLD_NOW.

نتیجه‌گیری


ماژول os در Node.js ابزاری قدرتمند برای دسترسی به اطلاعات سیستم‌عامل است. این ماژول به توسعه‌دهندگان امکان می‌دهد برنامه‌های خود را با شرایط سخت‌افزاری و نرم‌افزاری هماهنگ کنند، منابع را مدیریت کنند، و رفتار سیستم را بهتر درک کنند.


Written & researched by Dr. Shahin Siami

Related Articles

آشنایی کامل با ماژول Cluster در Node.js و نحوه افزایش مقیاس‌پذیری سرور

ماژول Cluster در Node.js به توسعه‌دهندگان اجازه می‌دهد چندین پردازش همزمان ایجاد کنند که یک پورت سرور را به اشتراک می‌گذارند. این کار باعث استفاده بهتر از هسته‌های CPU و افزایش توان پردازش برنامه می‌شود. در این مقاله نحوه کار Cluster، مدیریت Workerها، تنظیمات مهم و مثال عملی را بررسی می‌کنیم.

Continue

راهنمای جامع ماژول VM در Node.js (ماژول node:vm)

ماژول node:vm امکان کامپایل و اجرای کد جاوااسکریپت در کانتکست‌های ایزولهٔ V8 را فراهم می‌کند. این کانتکست‌ها مانند یک «سندباکس سبک» داخل برنامهٔ Node.js عمل می‌کنند و هرکدام globalThis مخصوص خود را دارند. این ماژول برای اجرای پویا، موتورهای قالب (Template Engines)، سیستم‌های افزونه (Plugin Systems)، REPLها و تست ایزولهٔ منطق بسیار مناسب است. اما نکتهٔ بسیار مهم: vm یک ابزار امنیتی نیست و نباید برای اجرای کدهای غیرقابل‌اعتماد استفاده شود.

Continue

راهنمای جامع ماژول V8 در Node.js (ماژول node:v8)

راهنمای جامع ماژول V8 در Node.js (ماژول node:v8)

Continue

راهنمای جامع Worker Threads در Node.js (ماژول node:worker_threads)

ماژول node:worker_threads امکان اجرای واقعی چندریسمانی (Multithreading) را در Node.js فراهم می‌کند. برخلاف مدل تک‌ریسمانی سنتی Node.js، Worker Threads اجازه می‌دهند کارهای سنگین CPU در ریسه‌های جداگانه اجرا شوند بدون اینکه حلقهٔ رویداد (Event Loop) مسدود شود. این ماژول از حافظهٔ اشتراکی، انتقال بدون کپی (Zero‑Copy)، کانال‌های پیام، Worker Pool، محدودیت منابع و ابزارهای همگام‌سازی پیشرفته پشتیبانی می‌کند. Worker Threads برای پردازش‌های محاسباتی سنگین ایده‌آل هستند، در حالی که I/O همچنان باید توسط ریسهٔ اصلی مدیریت شود.

Continue

راهنمای جامع ماژول util در Node.js

ماژول node:util مجموعه‌ای از توابع کمکی قدرتمند برای استفاده در هستهٔ Node.js و همچنین توسعهٔ برنامه‌ها ارائه می‌دهد. این ماژول ابزارهایی برای دیباگ، بازرسی اشیا، تبدیل Callback ↔ Promise، قالب‌بندی رشته‌ها، بررسی انواع، مدیریت خطاها، رمزگذاری متن، پردازش MIME، پارس آرگومان‌های CLI، سیگنال‌های Abort، و ابزارهای متفرقه فراهم می‌کند. این ماژول یکی از جعبه‌ابزارهای اصلی و ضروری برای توسعه‌دهندگان Node.js است.

Continue

راهنمای جامع ماژول URL در Node.js

ماژول node:url ابزارهایی برای تحلیل، ساخت، و دست‌کاری URLها در Node.js فراهم می‌کند. Node.js دو API برای کار با URL دارد: WHATWG URL API — استاندارد مدرن و سازگار با مرورگرها (توصیه‌شده). Legacy API — API قدیمی Node.js (غیرتوصیه‌شده). WHATWG URL API یک رابط تمیز، سازگار و قدرتمند برای کار با اجزای URL، پارامترهای query، الگوهای URL و حتی Blob URLها ارائه می‌دهد.

Continue