رابط میانافزار توسعهپذیر یکپارچه (UEFI) چیست؟
رابط میانافزار توسعهپذیر یکپارچه (UEFI) مشخصاتی برای یک برنامه نرمافزاری است که میانافزار رایانه را به سیستم عامل آن ( OS ) متصل میکند. انتظار می رود UEFI در نهایت جایگزین سیستم ورودی/خروجی اولیه ( BIOS ) شود، اما با آن سازگار است. این مشخصات اغلب با نامگذاری حروف UEFI تلفظ می شود.
عملکرد UEFI از طریق سیستم عامل ویژه نصب شده بر روی مادربرد رایانه انجام می شود . مانند BIOS، UEFI در زمان ساخت نصب می شود و اولین برنامه ای است که هنگام بوت کردن کامپیوتر اجرا می شود. بررسی میکند که کدام اجزای سختافزاری متصل شدهاند، اجزا را بیدار میکند و به سیستمعامل تحویل میدهد. مشخصات جدید به چندین محدودیت BIOS، از جمله محدودیت در اندازه پارتیشن هارد دیسک و مدت زمانی که بایوس برای انجام وظایف خود نیاز دارد، می پردازد.
اکثر سیستمهای رایانهای مدرن برای پشتیبانی از بایوس سنتی و همچنین UEFI مجهز هستند، اگرچه شرکت اینتل قصد خود را برای حذف تدریجی پشتیبانی بایوس در رایانههای شخصی جدیدتر اعلام کرده است.
UEFI یک برنامه نرمافزاری است که بین میانافزار رایانه و سیستم عامل آن ارتباط برقرار میکند. این برنامه نرمافزاری قرار است نقش سیستم ورودی/خروجی اولیه (BIOS) را در نهایت ایفا کند، اما همچنان با آن سازگار است. معمولاً مشخصات UEFI با نامگذاری حروف UEFI شناخته میشود.
عملکرد UEFI از طریق یک سیستم عامل ویژه که بر روی مادربرد رایانه نصب میشود، انجام میشود. مانند BIOS، UEFI هنگام ساخت روی مادربرد نصب میشود و در هنگام بوت کردن کامپیوتر اولین برنامه اجرا میشود. این برنامه بررسی میکند که کدام اجزا هاردویر متصل شدهاند، آنها را فعال میکند و به سیستم عامل تحویل میدهد. مشخصات جدید اقدام به مواجهه با محدودیتهایی که در BIOS وجود داشتند میکند، از جمله محدودیت در اندازه پارتیشن هارد دیسک و زمانی که بایوس برای انجام وظایف خود نیاز داشت.
اکثر سیستمهای رایانهای مدرن همچنین با بایوس سنتی و همچنین UEFI سازگار هستند، با این وجود، شرکت اینتل قصد دارد تدریجاً پشتیبانی از بایوس را در رایانههای شخصی جدیدتر حذف کند.
UEFI چه می کند؟
UEFI روش جدیدی را تعریف میکند که از طریق آن سیستمعاملها و سیستم عامل پلتفرم با هم ارتباط برقرار میکنند و یک جایگزین سبک وزن بایوس ارائه میکند که تنها از اطلاعات مورد نیاز برای راهاندازی فرآیند بوت سیستمعامل استفاده میکند. علاوه بر این، UEFI ویژگیهای امنیتی پیشرفتهتری را ارائه میکند و از اکثر سیستمهای بایوس موجود با سازگاری با عقب پشتیبانی میکند .
UEFI شامل جداول داده های مربوط به پلتفرم و تماس های سرویس بوت و زمان اجرا است که توسط لودر سیستم عامل استفاده می شود. در مجموع، این اطلاعات رابطها و ساختارهای مورد نیازی را که باید برای دستگاههای سختافزار و سفتافزار برای پشتیبانی از UEFI پیادهسازی شوند، تعریف میکند. UEFI قابل برنامه ریزی است و به توسعه دهندگان سازنده تجهیزات اصلی امکان می دهد برنامه ها و درایورها را اضافه کنند و UEFI به عنوان یک سیستم عامل سبک وزن عمل کند.
به طور کلی، BIOS بقایایی از محاسبات قبلی در نظر گرفته می شود، در حالی که UEFI به عنوان موج آینده در نظر گرفته می شود. با این حال، برای سهولت درک، برخی از کاربران فناوری اطلاعات ، علیرغم تفاوتهای اساسی، فرآیندها را در مجموع به عنوان UEFI BIOS یاد میکنند.
تکامل UEFI از EFI
بایوس از زمان ظهور کامپیوترهای سیستم عامل دیسکی در اواسط دهه ۱۹۷۰ مورد استفاده قرار گرفته است. در سال ۱۹۸۱، آیبیام اولین فروشندهای بود که بایوس را در رایانههای شخصی گنجانید، اقدامی که باعث پذیرش گسترده صنعت شد. ظهور UEFI به موازات افزایش تراکم درایو مورد استفاده برای بارهای کاری کاربردی مدرن است.
اینتل رابط سفتافزار توسعهپذیر (EFI) را بهعنوان نتیجهای از معماری سرور ۶۴ بیتی Itanium خود در دهه ۱۹۹۰ توسعه داد، یک فناوری کد توسعهیافته با سازنده رایانه هیولت پاکارد (HP). صنعت EFI را راهی برای رسیدگی به محدودیتهای حافظه و پردازش BIOS در معماری سرور x86 میدانست. این محدودیت ها شامل حالت محاسبات ۱۶ بیتی، حافظه محدود سیستم و برنامه نویسی خسته کننده به زبان اسمبلی بود.
EFI که متعاقباً به Intel Boot Initiative تغییر نام داد، از نظر فنی در مالکیت اینتل باقی میماند، اگرچه فروشنده پس از انتشار نسخه ۱.۱۰ EFI در سال ۲۰۰۵، توسعه انحصاری مشخصات را متوقف کرد. (تا آن زمان، اینتل همچنین خط پردازندههای Itanium خود را به دنبال محصول حذف کرده بود. اینتل EFI 1.10 را به انجمن UEFI ، اتحادی از فروشندگان چیپست، سخت افزار، سیستم، سیستم عامل و سیستم عامل کمک کرد.
کنسرسیوم صنعتی توسعه استانداردهای مشخصات UEFI را مدیریت می کند. آخرین استاندارد، UEFI 2.9، در مارس ۲۰۲۱ در دسترس عموم قرار گرفت.
راه اندازی: BIOS در مقابل UEFI
روشن کردن یک کامپیوتر باعث شروع زنجیره ای از رویدادها می شود که قبل از بارگیری سیستم عامل رخ می دهد. سفتافزار، زیرسیستم رایانه را برای اجرای یک سری آزمایش تحریک میکند و بوتلودر را تعیین میکند ، که به نوبه خود هسته سیستمعامل را راهاندازی میکند.
BIOS و UEFI هر دو از نرمافزارهای سطح پایین برای مدیریت عملکردهای راهاندازی قبل از راهاندازی سیستمعامل استفاده میکنند، البته با استفاده از تکنیکهای مختلف.
BIOS بر روی یک تراشه روی مادربرد دستگاه قرار دارد و واحد پردازش مرکزی، حافظه دسترسی تصادفی، کارتهای اتصال اکسپرس اجزای جانبی و دستگاههای شبکه را راهاندازی میکند. BIOS یک توالی تشخیصی خودآزمایی روشن ( POST ) را اجرا می کند. POST تضمین میکند که سختافزار به درستی پیکربندی شده است و همه اجزای آن مطابق با هدف کار میکنند.
BIOS فقط در حالت پردازنده ۱۶ بیتی اجرا می شود، که تعداد دستورات نرم افزاری را که فریمور قادر به اجرا در هر زمان است محدود می کند. BIOS 1 مگابایت حافظه اختصاص می دهد که در آن وظایف را می توان اجرا کرد. بنابراین، رابطها و دستگاهها بهطور متوالی مقداردهی اولیه میشوند، که میتواند به یک راهاندازی کند کمک کند.
برای انجام وظیفه خود، BIOS با Master Boot Record ( MBR ) مشورت می کند تا سیستم عامل را پیدا کند و بوت لودر را راه اندازی کند. MBR از مقادیر ۳۲ بیتی برای توصیف افست و طول یک پارتیشن استفاده می کند، بنابراین سیستم های BIOS را به درایوهای ۲ ترابایتی (TB) و حداکثر چهار پارتیشن محدود می کند.
UEFI behaves like a like a miniaturized OS that sits between firmware and the OS. It performs the same diagnostics as BIOS at startup but offers more flexibility. The OS boots directly in UEFI. This eliminates the need to repeatedly press toggle keys, as is required to boot BIOS.
UEFI داده های اولیه را در یک پارتیشن فایل EFI در حافظه فلش غیرفرار ذخیره می کند ، نه در میان افزار. UEFI همچنین می تواند در هنگام بوت شدن از یک درایو یا اشتراک شبکه بارگیری شود. UEFI همچنین یک طرح پارتیشن بندی انعطاف پذیرتر از MBR را به کار می گیرد که به عنوان جدول پارتیشن شناسه منحصر به فرد جهانی یا GPT شناخته می شود. GPT نیز توسط اینتل به عنوان بخشی از EFI ایجاد شد. GPT از مقادیر ۶۴ بیتی برای ایجاد حداکثر ۱۲۸ پارتیشن استفاده می کند و برای سیستم هایی که از درایوهای ۲ ترابایتی و بزرگتر راه اندازی می شوند لازم است. پارتیشن EFI از جدول تخصیص فایل شامل FAT16، FAT32 یا مجازی FAT استفاده می کند.
اکثر رایانههای شخصی رومیزی، لپتاپها و برخی تبلتهای جدید، میانافزار UEFI را در بستهبندی میکنند که در حالت پشتیبانی از سازگاری برای ویندوزهای ۳۲ بیتی قدیمیتر اجرا میشود. انتظار می رود تولیدکنندگان رایانه در کوتاه مدت از بایوس پشتیبانی کنند، اما انتقال به UEFI به خوبی در حال انجام است. در سال ۲۰۱۳، نگهداری از تنظیمات پیشرفته و رابط قدرت (ACPI) به انجمن UEFI منتقل شد.
ACPI که در اصل به طور مشترک توسط HP، Intel، Microsoft، Phoenix Technologies و Toshiba توسعه یافته بود، استانداردی باز برای BIOS است که میزان انرژی تحویل هر دستگاه جانبی را تعیین می کند.
مزایای UEFI
UEFI پیشرفت های قابل توجهی را در BIOS ارائه می دهد، از جمله موارد زیر:
- حالت بوت. کاربران مایکروسافت ویندوز می توانند UEFI 32 بیتی یا UEFI 64 بیتی را اجرا کنند، اگرچه کارشناسان توصیه می کنند که حالت بیت سیستم عامل و حالت بیت سیستم عامل باید یکسان باشند تا از مشکلات ارتباطی در طول زمان اجرا جلوگیری شود.
- درایوها بر اساس انجمن UEFI، UEFI از درایوهای بوت ۲.۲ ترابایتی و ظرفیت های بالاتر، از جمله درایوهایی با ظرفیت تئوری ۹.۴ زتابایت پشتیبانی می کند . این بسیار بیشتر از حداکثر ظرفیت درایو موجود در حال حاضر است.
- رانندگان UEFI از درایورهای مجزا پشتیبانی می کند، در حالی که پشتیبانی از درایو BIOS در حافظه فقط خواندنی ذخیره می شود ، که نیاز به تنظیم آن برای سازگاری در هنگام تعویض درایوها یا ایجاد تغییرات دارد.
- رابط کاربری گرافیکی ( GUI ). UEFI ماژول های جدید را قادر می سازد تا راحت تر به رابط کاربری گرافیکی اضافه شوند، از جمله درایورهای دستگاه برای سخت افزار مادربرد و دستگاه های جانبی متصل.
- پشتیبانی از چند سیستم عامل در حالی که BIOS به یک بوت لودر منفرد اجازه می دهد، UEFI به کاربران اجازه می دهد لودرها را برای اوبونتو مبتنی بر دبیان و سایر انواع لینوکس، همراه با لودرهای سیستم عامل ویندوز، در همان پارتیشن سیستم EFI نصب کنند.
- برنامه نویسی. سفتافزار UEFI عمدتاً به زبان C نوشته شده است ، که به کاربران امکان میدهد توابعی را با برنامهنویسی کمتری نسبت به BIOS که به زبان اسمبلر نوشته شده است، اضافه یا حذف کنند ، گاهی اوقات در ترکیب با C.
- امنیت. Secure Boot یک پروتکل UEFI برای ویندوز ۸ یا نسخه های جدیدتر ویندوز است. Secure Boot، سیستم عامل سیستم را به منبع اعتماد برای تأیید یکپارچگی دستگاه و سیستم تبدیل می کند. هدف جلوگیری از نصب روت کیت توسط هکرها در فاصله زمانی بین راه اندازی و انتقال به سیستم عامل است. Secure Boot همچنین کاربر مجاز را قادر میسازد تا شبکهها را پیکربندی کند و مشکلات را از راه دور عیبیابی کند، کاری که یک مدیر BIOS باید به صورت فیزیکی برای انجام آن حضور داشته باشد.
همانطور که سازندگان رایانه به تدریج از بایوس دور می شوند، آنها معمولاً سیستم عامل UEFI را که با ماژول پشتیبانی سازگاری (CSM) در دستگاه های مدرن اجرا می شود، یکپارچه می کنند. اگرچه CSM به عنوان یک راه حل بلندمدت در نظر گرفته نشده است، اما CSM ماشین های مبتنی بر UEFI را قادر می سازد تا در حالت BIOS قدیمی راه اندازی شوند تا با نسخه های قدیمی ویندوز و سایر سیستم عامل ها کار کنند. با این حال، کاربران ممکن است ترجیح دهند که برای درک ارزش UEFI، به آخرین نسخه سیستم عامل ارتقا دهند.
معایب UEFI یا زمان بوت شدن از بایوس
نرم افزار همیشه هدف عوامل تهدید است و UEFI نیز از این قاعده مستثنی نیست. یکی از این حملات، به نام TrickBot ، در دسامبر ۲۰۲۰ ظاهر شد. بدافزار TrickBot با تلاش برای جاسوسی از میانافزار دستگاه کار میکند، که میتواند به عوامل مخرب اجازه دهد تا فرآیند بوت را زیر سوال ببرند و به سیستمعامل دسترسی پیدا کنند.
قسمت TrickBot پس از یافتههای سال ۲۰۱۸ توسط ESET Research منتشر شد، یک رسانه اسلواکی برای جامعه امنیت اطلاعات، که ادعا میکرد یک روت کیت را در طبیعت کشف کرده است که به طور بالقوه هکرها را قادر میسازد تا سیستم عامل UEFI را زیر نظر بگیرند و کدهای مخرب نصب کنند.
جدا از مسائل امنیتی، سازمان هایی که به UEFI تغییر می کنند ممکن است هزینه های مربوط به راه اندازی از فلش را متحمل شوند . در حالی که این سریعتر از راهاندازی از درایوهای دیسک سخت است ، سیستمهای قدیمیتر ممکن است نیاز به بازسازی داشته باشند، یعنی یک فلش بزرگتر روی مادربرد.
یکی دیگر از اشکالات احتمالی اتکای UEFI به فرمت فایل FAT است که توسط سیستم عامل حفظ می شود. پارتیشنهای درایو بزرگتر میتوانند سربار بیش از حد سیستم را اضافه کنند، بنابراین برخی از مزایای عملکرد را از بین میبرند. این مثالی است که در آن بایوس میتواند گزینه مفیدتری باشد، بهویژه برای رایانهای که دارای نسخه قدیمیتر سیستمعامل و دیسکهای بوت کوچکتر است.
دسترسی به UEFI
کاربران می توانند مشخصات UEFI را از وب سایت UEFI Forum دانلود کنند. آخرین نسخه، UEFI 2.9، دارای چندین پیشرفت است، از جمله موارد زیر:
- از دستگاه های مبتنی بر اتصال جدید Compute Express Link پشتیبانی می کند .
- از انتشار فایل های باینری Device Tree Blob لینوکس پشتیبانی می کند که اجزای کامپیوتر را در جدول پیکربندی UEFI شناسایی می کند. و
- نحوه برقراری تماسهای زمان اجرا مبتنی بر UEFI بر روی سرور ماشین محاسباتی مجموعه دستورالعملهای پیشرفته پیشرفته انجام میشود
برای تعیین اینکه آیا کامپیوتر از بایوس یا UEFI بوت می شود، کلیدهای Windows و R را روی صفحه کلید فشار دهید تا کادر پیکربندی Run اجرا شود. MSInfo32 را در کادر محاوره ای تایپ کنید و کلید Enter را بزنید . یک صفحه خلاصه سیستم ظاهر می شود. به دنبال ورودی با عنوان BIOS Mode بگردید و مقدار مربوطه را یادداشت کنید. اگر مقدار Legacy باشد ، سیستم دارای BIOS است. در غیر این صورت، UEFI در قسمت مقدار ظاهر می شود.
کاربران ویندوز می توانند از طریق گزینه PC Settings در نوار جستجو به UEFI دسترسی پیدا کنند. مسیر PC Settings > Update & Security > Recovery > Advanced Startup است و گزینه Restart Now را انتخاب کنید . از منو، Troubleshoot > Advanced Options > UEFI Firmware Settings را انتخاب کرده و دوباره راه اندازی مجدد کنید.
ماشینهای لینوکس با نصب UEFI آن را در پوشه sys/firmware/efi نشان میدهند. این همچنین در مدیریت بوت لودر لینوکس Grand Unified به عنوان grub-efi ، به جای grub-pc برای BIOS منعکس خواهد شد.
Coreboot و UEFI
با حذف تدریجی BIOS توسط صنعت، UEFI به عنوان وارث ظاهری بیشتر مورد توجه قرار می گیرد. با این حال، Coreboot منبع باز گزینه دیگری است که برای جایگزینی بایوس قدیمی رقابت می کند و طرفداران آن ادعا می کنند که سریعتر از UEFI است. Coreboot که قبلاً لینوکس بایوس نامیده میشد، ظاهراً میتواند جایگزین بایوس اختصاصی و میانافزار UEFI شود – با مزایای اساسی عملکرد فوقالعاده، حداقل منابع برای بوت کردن ماشینها و اقدامات امنیتی که شامل حداقل پایه محاسباتی قابل اعتماد و دیسک بوت مجازی است .
کد Coreboot برای اولین بار در سال ۱۹۹۹ معرفی شد و حامیان پروژه توسعه مبتنی بر جامعه شامل گوگل هستند که دستگاه های کروم بوک آن از نسل اول جایگزین BIOS با Coreboot شدند. نفوذ Coreboot به بازار آهسته بوده است، با این حال، به دلیل کاری که از سوی تولید کنندگان انجام می دهد. از آنجایی که Coreboot فقط فلز Bare را مقداردهی اولیه می کند، سازندگان دستگاه باید تلاش کنند تا کد را برای یکپارچه سازی در تراشه ها و مادربردها منتقل کنند.