API سیستمعامل، به ما کمک میکنند تا درخواستی از سیستمعامل بکنیم. یعنی APIهای یک سیستمعامل را میتوان وسیله تعامل بین ما و سیستمعامل در نظر گرفت.
API چیست؟
API یا همان Application Programming Interface را میتوان یک رابط میان دو برنامه دانست. برای درک بهتر، با یک مثال شروع میکنیم.
یک اتومبیل را در نظر بگیرید. این اتومبیل تجهیزات پیچیدهای مثل موتور، گیربکس، سیستم سوخترسانی و... دارد که برای به حرکت درآمدن آن ضروری است. اما وقتی یک نفر پشت آن مینشیند و آن را به حرکت درمیآورد، به پیچیدگیهای درون موتور، گیربکس و... کاری ندارد! چرا که یک API پیشروی راننده است و راننده کافیست کار کردن با آن API را یاد بگیرد! این API همان فرمان، پدالها، دنده و... هستند. یعنی راننده برای به حرکت درآوردن خودروی خود کافیست پدال گاز را فشار بدهد! دیگر نیازی نیست که سیستم سوخترسانی، موتور، گیربکس و... را شخصا تنظیم کند تا ماشین حرکت کند! تنها با فشردن پدال گاز، به ماشین اعلام میکند که باید حرکت کند و همه اتفاقاتی که لازم هست، انجام میشود.
پس این لایه باعث میشود، برای راننده فرقی نکند که سیستم درون ماشین چیست و چگونه کار میکند! حتی اگر موتور ماشین عوض شود و یا سیستم سوخترسانی تغییر کند، راننده تغییری حس نمیکند چرا که تنها با پدال گاز سر و کار دارد و درخواست خود را از طریق آن به اتومبیل منتقل میکند.
حال که مفهوم API را متوجه شدیم، بررسی میکنیم که APIهای سیستمعامل چه جایگاهی دارند و چگونه مورد استفاده قرار میگیرند.
APIهای سیستمعامل
در مقاله "سیستمعامل چیست و چه کاری انجام میدهد؟" درمورد وظیفه سیستمعامل در یک کامپیوتر صحبت کردیم. گفتیم که سیستمعامل به ما کمک میکند تا با سختافزار خود، ارتباط برقرار کنیم. اما اگر کمی دقت کنیم، میبینیم که ما در برخی موارد حتی با خود سیستمعامل هم بهصورت مستقیم ارتباط برقرار نمیکنیم! بلکه یک سری برنامه (Application) برروی سیستمعامل خود نصب میکنیم و سپس از طریق آن با سیستمعامل ارتباط برقرار میکنیم. در اصل، بین برنامهها و سیستمعامل یک روش تعامل وجود دارد. این تعامل بین برنامهها و سیستمعامل از طریق APIهای سیستمعامل صورت میگیرد.
مثلا فرض کنید، برنامه X نیاز به خواندن اطلاعات از یک فایل F دارد. برای خواندن محتوای F باید ابتدا آن را باز کند. همان طور که میدانید، مدیریت فایلها (باز کردن، بسته کردن و... ) به عهده سیستمعامل میباشد. بنابراین برنامه X درخواست خود (باز کردن فایل F) را از طریق یک API به نام OpenFile به سیستمعامل اعلام میکند و سیستمعامل فایل F را برای برنامه X باز میکند تا از آن استفاده کند.