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