منظور از استاندارد POSIX (Portable Operating System Interface) چیست؟
استاندارد POSIX یکی از اصلیترین و مهمترین استانداردهای طراحیشده برای قابل انتقال کردن اپلیکیشنهای مختلف است.
این استاندارد یکی از استانداردهای قدیمی و اصیل در دنیای برنامهنویسی است که به واسطه آشنایی با آن میتوانید درک بهتری از انتقال اپلیکیشنهای خود داشته باشید. ما در این مقاله به طور کامل درباره تاریخچه و نحوه عملکرد این استاندارد صحبت کردهایم و ویژگیهای اصلی آن را نیز در نظر گرفتهایم. اگر به دنبال کسب اطلاعات بیشتر درباره این استاندارد هستید، به شما پیشنهاد میکنیم ادامه این مقاله را از دست ندهید.
مفهوم کلی و آشنایی با استاندارد POSIX
POSIX استانداردی برای اجرای اینترفیسهای سیستم است که بر مبنای سیستمعامل یونیکس (UNIX) طراحی شده است. آخرین مشخصات فنی مربوط به استاندارد POSIX (IEEE Std 1003.1-2017) اینترفیس و محیط استانداردی را تعریف میکند که دسترسی سیستمعامل به اپلیکیشنهای سازگار با POSIX را فراهم میکند. این استاندارد همچنین یک Shell (دسترسی مستقیم به سیستمعامل) را نیز تعریف میکند. POSIX از قابل حمل بودن اپلیکیشنها در سورس کد نیز پشتیبانی میکند. به همین دلیل اپلیکیشنها میتوانند برای اجرا روی هر سیستمعاملی که با POSIX سازگار باشند، ساخته شوند.
تاریخچه کوتاهی از استاندارد POSIX
اینترفیسهای استاندارد POSIX برای اولین بار تحت حمایت شرکت آی تریپل ای (IEEE) ساخته شدند. البته در حال حاضر این استاندارد توسط شرکت Austin Group توسعه و نگهداری میشود. آستین گروپ شرکتی تشکیلشده از گروهی از اعضای IEEE است. در حال حاضر IEEE علامت تجاری استاندارد POSIX را در اختیار دارد. گروهی که در حال حاضر بر روی تغییرات و اتفاقات POSIX نظارت دارد، یک گروه کنسرسیومی به نام Open Group است که مسئولیت توسعه این استاندارد را بر عهده دارند. این گروه از اعضای آستین گروپ تشکیل شده است. به علاوه آنها، کمیته فنیای نیز از اعضای مجمع جهانی استاندارد (ISO) و کمیسیون جهانی الکتروتکنیک نیز بر این استاندارد نظارت دارند.
ورود استاندارد POSIX به دنیای برنامهنویسی
استاندارد POSIX راه حلی جذاب برای پر کردن خلا جا به جایی اپلیکیشنهای گوناگون در سیستمعاملهای مختلف بود. در گذشته برنامهنویسان برای اجرایی کردن برنامههای خود در محیطهای سیستمعاملی دیگر مجبور بودن برنامه را دوباره در زبان جدیدی بنویسند. زمانی که شرکت IBM سیستمهای جدید خود به نام کامپیوترهای System 360 را روانه بازار کرد، این مسئله نیز کمکم دستخوش تغییرات شد. در این سیستمهای جدیدی که به بازار عرضه شده بود، اپلیکیشنها قابلیت جا به جایی بیشتری داشتند و حجم زیادی از زمان برنامهنویسی آنها صرفهجویی میشد.
کمی بعد از این موضوع، سیستمعامل UNIX وارد صحنه شد و پتانسیل بیشتری برای جا به جایی و انتقال اپلیکیشنها از خود نشان داد. بر خلاف Oses، UNIX میتوانست روی دستگاههای بیشتری اجرا شود. البته بعدا نسخههای مختلفی از این سیستمعامل ارائه شد و هدف قابل انتقال بودن به دست فراموشی سپرده شد. سپس UNIX به محبوبیت بیشتری دست یافت و به استاندارد مورد نیاز برای تقابل با چالشهای اپلیکیشنها دست پیدا کرد. این موضوع باعث شد تا POSIX در این سیستمعامل توسعه پیدا کند. اولین نسخه این استاندارد در سال 1988 بر پایه سیستم یونیکس AT&T و توزیع نرمافزار برکلی یونیکس، دو مورد از قویترین سیستمهای UNIX آن زمان به دنیای برنامهنویسی عرضه شد.
استاندارد POSIX چیست و دقیقا چه کاری انجام میدهد؟
طی سالهای متوالی، POSIX به تغییرات و پیشرفتهای خود برای عملکرد بهتر ادامه داد. زمانی فرا رسید که هر استانداردی که به صورت غیر رسمی به نام POSIX شناخته میشد، با استفاده از اعداد از یکدیگر جدا میشدند. برای مثال POSIX.1 استانداردی برای اینترفیس برنامهنویسی اپلیکیشن با زبان C بود. یا POSIX.2 استانداردی برای اینترفیس Shell در سیستمعامل کاربر بود. این استانداردها به صورت رسمی به ترتیب با عنوانهای IEEE Std 1003.1 و IEEE Std 1003.2 شناخته میشدند.
استاندارد POSIX.1 2017، سرویسهای بنیادی برای ساخت اپلیکیشنهای بر پایه POSIX را تعریف میکند. این استاندارد به برنامهنویسان کمک کرد تا مفاهیم و سینتکسهای مشخصی را برای نوشتن اپلیکیشنهای قابل جا به جایی داشته باشند. در واقع استاندارد POSIX.1 بر پایه چهار مشخصه زیر ساخته شد:
1. تعاریف پایه
تعاریف پایه به عنوان اولین اصل در استاندارد پوسیکس ۱ شناخته میشود. این بخش تعاریف عرف برای مشخصات فنی استاندارد را بیان میکنند. از جمله این تعاریف میتوان به مواردی مانند اطلاعات درباره مقررات، مفاهیم، سینتکس، کارکردهای سرویس و کامند لاین اشاره کرد.
2. اینترفیسهای سیستم
اینترفیسهای سیستم در استاندارد POSIX.1، اطلاعاتی درباره مقررات و مفاهیم مرتبط با اینترفیسها ارائه میدهد. با استفاده از این تعاریف و مفاهیم میتوان اینترفیسهای مناسب موجود برای استفاده در اپلیکیشنهایی که نیاز به سازگاری با استاندارد POSIX دارند را پیدا کرد.
3. Shell و Utilityها
این بخش در استاندارد POSIX.1 نیز معرف دستورها و یوتیلیهای موجود برای استفاده در اپلیکیشنها برای سازگاری با سیستمهای POSIX است. از جمله موارد درون این بخش میتوان به دستورهای زبان مربوط به سیستم مقصد نیز اشاره کرد.
4. بنیاد و پایه
این بخش از استاندارد POSIX نیز شامل اطلاعات تاریخی درباره محتواهای موجود در استاندارد است و دلیل حذف یا اضافه شدن ویژگیهای مختلف را به شما میگوید.
POSIX.1 رویکردی با شعار «یک بار بنویس، همهجا استفاده کن» دارد. این رویکرد باعث میشود تا سرویسهای بنیادی مورد نیاز برای بهبود عملکرد در ساخت اپلیکیشن تامین شوند. این استاندارد بر امکانات و ویژگیهای مهم توسعه اپلیکیشن تاکید بیشتری نسب به تکنیکهای مورد نیاز برای رسیدن به این امکانات دارد. به عبارتی استاندارد POSIX برای استفاده هر دو طرف مجری و توسعهدهنده برنامه در نظر گرفته شده است. سیستمعامل لینوکس یک نسخه تکاملیافته از سیستم عامل یونیکس است. برای درک بهتر این سیستمعامل بهتر است با اجزای اصلی و ریشهای آن مانند POSIX آشنایی داشته باشید.
کلام آخر
در این مقاله سعی کردیم تا به معرفی POSIX بپردازیم. همانطور که در متن خواندیم، این استاندارد به علم برنامهنویسی کمک زیادی در راستای قابل حمل کردن اپلیکیشنهای مختلف کرده است. امروزه استفاده از پلتفرمهایی مانند داکر و کوبرنتیز بین بسیاری از توسعهدهندگان اپلیکیشن رایج شده است. به همین دلیل آشنایی با استانداردهای جا به جایی اپلیکیشن بین سیستمعاملهای مختلف میتواند دید بهتری نسبت به این امر به شما دهد. شما با استفاده از سرویس توسعه داکر یوتاب میتوانید از این امکانات بهرهمند شوید.
با یوتاب میتوانید در مخازنی امن و سبک، پروژههای خود را ذخیره و با همکاران خود در فضایی یکپارچه به اشتراک بگذارید و به صورت نامحدود ورژنهای مختلف نرمافزار خود را در مخازن داکر ابر یوتاب نگهداری کنید.