ماژول 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 دقیقه مطالعه • بروزرسانی ۹ دی ۱۴۰۴

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 ابزاری قدرتمند برای دسترسی به اطلاعات سیستم‌عامل است. این ماژول به توسعه‌دهندگان امکان می‌دهد برنامه‌های خود را با شرایط سخت‌افزاری و نرم‌افزاری هماهنگ کنند، منابع را مدیریت کنند، و رفتار سیستم را بهتر درک کنند.


نوشته و پژوهش شده توسط دکتر شاهین صیامی