تماس با سامانه (رایانه)

تماس با سامانه‌ یا فراخوان سیستمی یا صدازدن سیستم  با کوته‌نوشت syscall، در رایانش، یک روش برنامه‌نویسی است که در آن یک برنامه رایانه‌ای از هسته سیستم‌عاملی که روی آن اجرا می‌گردد، یک خدمت (سرویس) درخواست می‌کند. این موضوع می‌تواند شامل سرویس‌های مرتبط با سخت‌افزار (برای مثال، دسترسی به یک درایو دیسک سخت)، ساخت و اجرای فرایندهای جدید، و ارتباط با خدمت (سرویس)های هسته‌ای یکپارچه مثل زمان‌بندی فرایندها باشد. فراخوان‌های سیستمی یک واسط اساسی بین یک فرایند و سیستم‌عامل فراهم می‌کند.

هرگاه یک نرم‌افزار سطح کاربر نیاز به دسترسی به منابع سیستم و سخت افزار را داشته باشد، یکی از توابع درون سیستم عامل را فراخوانی می‌کند. که به این عمل فراخوان سیستمی (به انگلیسی: System Call یا Syscall) می‌گویند فراخوان سیستمی را گاه فراخوان هسته‌ای (kernel call) نیز می نامند چرا در اکثر پردازنده‌های مدرن (مثلا معماری x86), برای انجام فراخوان سیستمی پردازنده باید در حالت مد هسته (kernel mode) باشد. به زبانی دیگر هیچ برنامه‌ ای حق دسترسی مستقیم به سخت‌افزار را ندارد و باید توسط واسطه‌ای که سیستم‌عامل در اختیارش قرار میدهد و نامش فراخوان سیستمی است به سخت‌افزار سیستم دسترسی پیدا کند. 

در حقیقت فراخوان سیستمی پس از مدیریت منابع (به انگلیسی:Resource Management)، دومین هدف اصلی یک سیستم عامل می‌باشد.

سیستم عامل استفاده از رایانه را ساده می‌سازد. این بدان معناست که مثلاً کاربر یا برنامه نویس بدون درگیر شدن با مسائل سخت افزاری دیسک ها، به راحتی پرونده‌ای را بر روی دیسک ذخیره و حذف کند. این کار در واقع با به کار بردن دستورهای ساده‌ای که فراخوان‌های سیستمی را صدا می‌زنند انجام می‌پذیرد.

در صورت عدم وجود سیستم عامل، کاربر یا برنامه‌نویس می‌بایست آشنایی کاملی با سخت افزارهای مختلف رایانه (مثل صفحه نمایش ،دیسکهای‌گردان، صفحه کلید و غیره) داشته باشد و روتین‌هایی برای خواندن یا نوشتن آن‌ها به زبان‌های سطح-پائین بنویسد. از این جنبه گاه، به سیستم عامل با عنوان ماشین توسعه یافته (به انگلیسی: Extended machine) یا ماشین مجازی (به انگلیسی:Virtual machine) یاد می‌شود که واقعیت سخت افزار را از دید کاربران مخفی می‌سازد.

پانویس

منابع 

واسط‌های برنامه‌نویسی کاربردی
فناوری‌های سیستم‌عامل
فراخوان‌های سیستمی