Ilgari Kengaytiriladigan mikrodastur interfeysi ( EFI ) deb nomlanuvchi UEFI (Unified Extensible Firmware Interface) spetsifikatsiyasi operatsion tizim va apparatni boshqaruvchi mikrokod(lar) o’rtasidagi interfeysni belgilaydi. Boshqacha qilib aytadigan bo’lsak, UEFI – bu kompyuterning apparat qismlarining «tepasida» o’tirgan interfeys bo’lib, u o’z navbatida o’z proshivkalarida (mikrokod) ishlaydi.UEFI nomining o’zida «kengaytiriladigan interfeys» ta’rifi uning funktsional jihatdan osongina kengaytirilishi va yangilanishi mumkin bo’lgan modulli tizim ekanligini ko’rsatadi.
To’liqroq tushunish uchun, BIOS bilan solishtirganda UEFI , taxminan aytganda, yangi turdagi yoki keyingi avlod proshivkasidir va u endi faqat x86 shaxsiy kompyuterlari (IBM PC) bilan cheklanib qolmaydi, balki butun platforma standarti ekanligini ham da’vo qiladi. Biroq, BIOS-dan farqli o’laroq, UEFI «haydovchiga asoslangan» deb nomlangan tubdan yangi kod topologiyasiga asoslangan.
- EFI ning asosiy maqsadi eskirgan (muvofiqligini yo’qotadigan) BIOS texnologiyasini va u bilan bog’liq cheklovlarni almashtirishdir.
- UEFI-ni ishlab chiqishning asosiy maqsadi yuklash jarayonida operatsion tizimning platforma mikrodasturlari bilan o’zaro ta’sirini standartlashtirishdir. Klassik BIOS-da dasturiy ta’minotni uzilishlar va kiritish-chiqarish portlari yuklash bosqichida apparat bilan o’zaro ta’sir qilishning asosiy mexanizmi bo’lgan, ammo zamonaviy tizimlar apparat va dasturiy ta’minot o’rtasida yanada samarali kiritish-chiqarish operatsiyalarini ta’minlashga qodir.
- EFI ning asosiy vazifasi apparatni to’g’ri ishga tushirish va boshqaruvni operatsion tizim yuklagichiga o’tkazishdir. Shu munosabat bilan, vazifa an’anaviy BIOS vazifasidan unchalik farq qilmaydi, lekin algoritmlar tubdan farq qiladi.
UEFI-ni ishonch bilan mustaqil miniatyura operatsion tizimi deb atash mumkin, bu kompyuterda ishlaydigan asosiy foydalanuvchi operatsion tizimi va apparat mikrokodi o’rtasidagi interfeysdir.
Keling, standart BIOS-ni tubdan yangi narsa bilan almashtirishga urinishlarga olib kelgan sabablarni tushunish uchun shaxsiy kompyuterlar tarixiga qisqacha ekskursiya qilaylik.
Yaxshi eski BIOS
Shaxsiy kompyuterlar uchun BIOS (asosiy kirish-chiqarish tizimi) faoliyatining asosiy tamoyillari o’tgan asrning 70-yillari oxirida aniqlangan. O’shandan beri o’tgan juda uzoq vaqt davomida kompyuter sanoati jadal rivojlandi, bu ma’lum bosqichlarda BIOS imkoniyatlari etarli emasligiga olib keldi, chunki ishlab chiqaruvchilar tomonidan ishlab chiqarilgan qurilmalar bortda ko’pincha mos kelmaydigan yangi texnologiyalarga ega edi. joriy BIOS versiyalari bilan. Bunday muammolarni oldini olish uchun ishlab chiquvchilar ba’zan BIOS kodini sezilarli darajada o’zgartirishlari kerak edi, ammo bir qator cheklovlar bugungi kungacha o’zgarishsiz qoldi. Va agar dastlab BIOS arxitekturasi juda oddiy bo’lsa, vaqt o’tishi bilan u tobora ko’proq yangi texnologiyalarga moslashib, muqarrar ravishda murakkablashdi, shuning uchun ma’lum bir nuqtada u o’zaro ta’sir qilmaydigan turli xil eskirgan kodlar to’plamiga o’xshay boshladi. bir-birlari bilan yaxshi. Bugungi kunda BIOS kodida mavjud bo’lgan cheklovlar eski dasturiy ta’minotning ishlashi uchun zarur bo’lgan asosiy funktsiyalar bilan moslikni saqlash zarurati bilan izohlanadi. Bularning barchasi BIOS aslida zamonaviy shaxsiy kompyuterlarning eng eskirgan komponentiga aylanganiga olib keldi. Hozirgi vaqtda BIOS eng so’nggi uskunalar talablariga javob bermaydi va quyidagi kamchiliklarga ega:
- 16 bitli kod, haqiqiy rejim. BIOS montaj tilida yozilgan va o’ziga xos cheklovlari bilan protsessorning haqiqiy rejimida 16 bitli kodda ishlaydi, ularning eng muhimi xotiraning 1 Megabaytlik manzil maydonini cheklashdir.
- 64-bitli uskunaga kirishning yo’qligi. BIOS hozirda bozorda hukmronlik qilayotgan 64-bitli apparat bilan to’g’ridan-to’g’ri ta’sir o’tkazishga qodir emas.
- Yagona standartning yo’qligi. BIOS uchun yagona spetsifikatsiya yo’q – har bir ishlab chiqaruvchi o’zining amalga oshirish variantlarini taklif qiladi.
- Rivojlanishning murakkabligi. Muammo shundaki, deyarli har bir yangi anakart modeli uchun ishlab chiqaruvchi ushbu qurilmaning o’ziga xos texnik xususiyatlarini amalga oshiradigan BIOS-ning o’z versiyasini ishlab chiqadi: chipset modullari, periferik uskunalar va boshqalar bilan o’zaro ta’sir. BIOS rivojlanishini ikki bosqichga bo’lish mumkin. Birinchi bosqichda uskunaning o’ziga xos xususiyatlariga bog’liq bo’lmagan funktsiyalarni amalga oshiradigan mikrodasturning asosiy versiyasi yaratiladi. Bunday kodni ishlab chiquvchilar yaxshi ma’lum, bular American Megatrends (AMIBIOS), Phoenix Technologies (+ u tomonidan sotib olingan afsonaviy Award Software (AwardBIOS)) va boshqalar kabi kompaniyalardir. Ikkinchi bosqichda anakart ishlab chiqaruvchisi dasturchilari BIOSni ishlab chiqishda ishtirok etadilar. Bu erda asosiy yig’ilish har bir o’ziga xos taxta modelining o’ziga xos xususiyatlariga mos ravishda o’zgartiriladi, uning xususiyatlari hisobga olinadi. Anakart bozorga kirgandan so’ng, proshivka ustida ishlash davom etadi, xatolarni tuzatuvchi yangilanishlar muntazam ravishda chiqariladi, yangi apparat (masalan, protsessorlar) uchun qo’llab-quvvatlash qo’shiladi va ba’zan hatto mikrodasturning funksionalligini kengaytiradi.
Bularning barchasi, shuningdek, an’anaviy BIOS modelining kamchiliklari apparat va dasturiy ta’minot ishlab chiqaruvchilari koalitsiyasi UEFI spetsifikatsiyasini yaratish ustida ishlay boshlaganiga olib keldi. O’z kuzatishlarimga ko’ra, taxminan 2010 yildan boshlab, UEFI spetsifikatsiyasi etakchi ishlab chiqaruvchilarning barcha yangi chiqarilgan anakartlariga ommaviy ravishda kiritila boshlandi, shuning uchun hozirgi vaqtda an’anaviy BIOS bilan yangi kompyuterni topish deyarli mumkin emas. Biroq, bu haqda juda xafa bo’lmaslik kerak, chunki ko’plab ishlab chiqaruvchilar o’zlarining anakartlarida an’anaviy BIOS funksionalligi bilan mos keladi. Misol uchun, MBR yordamida an’anaviy yuklash rejimini qo’llab-quvvatlash juda muhim nuqta. Shu maqsadda UEFI BIOS emulyatsiya rejimi moduli ishlab chiqildi, u Moslikni qo’llab-quvvatlash moduli (CSM) deb nomlanadi. To’g’ri, vaqt o’tishi bilan kamroq va kamroq ishlab chiqaruvchilar ushbu rejimni o’zlarining dasturiy ta’minotida qo’llab-quvvatlashiga ishonaman.
UEFI ning afzalliklari
Bu erda men UEFI interfeysining afzalliklarini aniqlamoqchiman:
- Katta hajmli saqlash vositalarini (disklarni) qo’llab-quvvatlash. UEFI katta disklarni qo’llab-quvvatlash uchun GPT (GUID Partition Table) deb nomlangan yangi bo’lim jadvali standartiga qarzdor. An’anaviy BIOS yuklash usulida Master Boot Record (MBR) yuklash sektori ishlatilgan, unda disk bo’limlarini joylashtirishni tavsiflovchi bo’lim jadvali mavjud. MBR-dagi bo’limlar jadvali yozuvlari bitta muhim kamchilikka ega: LBA formatidagi bo’lim boshlanishining birinchi sektori soni (bo’lim yozuvi boshidan 08 soat ofset) mos ravishda atigi 4 bayt (32 bit) kengligiga ega. , faqat 4 milliard sektorga murojaat qilish mumkin. Va bu, 512 bayt bo’lgan «klassik» sektor hajmi bilan atigi ~ 2 terabayt disk maydoni. UEFI, GPT-dan foydalangan holda, 18 ekzabaytgacha bo’lgan disklarga murojaat qilish imkonini beradi.
- Fayl tizimlari va bo’lim jadvallarini to’g’ridan-to’g’ri qo’llab-quvvatlash. UEFI fayl tizimlari va bo’lim jadvallarini qo’llab-quvvatlash uchun modullarga ega, ya’ni bo’lim jadvallari va fayl tizimlari bilan bevosita ishlashi mumkin. Spetsifikatsiya GPT bo’limlar jadvalini, fayl tizimlarini, qattiq disklarda va CD/DVD disklarida ISO9660 fayl tizimini qo’llab-quvvatlashni o’z
FAT12
ichiga oladiFAT16
.FAT32
Bu bizni bootstrap kodini (MBR ga o’xshash) yozishdan qutqaradi, bu zanjirda turli bosqichlardagi yuklovchilarni yuklaydi. - Boshqa an’anaviy MBR cheklovlari yo’q.Masalan, endi yuklash kodini 512 baytlik kichik sektorga siqib qo’yishingiz shart emas. Siz barcha kerakli bosqichlarni birlashtirgan yagona yuklash modulini yozishga e’tibor qaratishingiz mumkin.
- Platformaga bog’liq bo’lmagan apparat drayverlari. UEFI platformadan mustaqil drayverlar orqali kompyuter uskunasiga kirish huquqiga ega. Qurilma ishlab chiqaruvchisi barcha platformalar (x86, ARM, Itanium, Alpha) uchun drayverning faqat bitta versiyasini yozishi kerak va bu rivojlanishni sezilarli darajada osonlashtiradi va xatolarni aniqlash jarayonini tezlashtiradi. UEFI spetsifikatsiyasi UEFI drayverlarining operatsion tizim bilan o’zaro ta’sirini tavsiflaydi, shuning uchun agar operatsion tizimda drayver bo’lmasa, masalan, video karta, lekin UEFI-da u mavjud, yuklangan va ishlayotgan bo’lsa, OS mavjud. standart UEFI interfeyslari yordamida monitorga ma’lumotlarni chiqarish qobiliyati.
- TCP protokoli to’plamini qo’llab-quvvatlash: IPv4/IPv6. UEFI interfeysidan to’g’ridan-to’g’ri tarmoq imkoniyatlaridan foydalanish imkonini beradi. Endi siz http/ftp protokollaridan foydalangan holda turli xil yuklamalarni ishlab chiqishingiz mumkin, bu oddiy EFI moduli yoki to’liq huquqli ISO tasviri joylashgan URLni ko’rsatadigan yuklab olish darhol xayolingizga keladi. PXE/TFTP yordamida tarmoq orqali yuklashning yagona mumkin bo’lgan variantiga aylangan narsani chetlab o’tish mumkin bo’ldi. Ba’zilar, ayniqsa ilg’or ilovalar, IPv6 orqali PXE-ni qo’llab-quvvatlashi mumkin.
- An’anaviy BIOS modelini qo’llab-quvvatlash.UEFI klassik BIOS-ni talab qilmaydi, lekin ko’plab ishlab chiqaruvchilar eski operatsion tizimlarni qo’llab-quvvatlash uchun BIOS emulyatsiya kodini o’rnatadilar. Ushbu modul Moslikni qo’llab-quvvatlash moduli (CSM) deb ataladi.
CSM
16-bitli modulni o’z ichiga oladi (CSM16), BIOS ishlab chiqaruvchisi tomonidan amalga oshirilgan va CSM16 ni asboblar (interfeys va apparat) bilan bog’laydigan qatlam. Moslik MBR orqali yuklashni qo’llab-quvvatlashni va dasturiy uzilishlar uchun kod darajasida qo’llab-quvvatlashni nazarda tutadi (int 10h – video xizmati, int 13h – disk xizmati, int 15h – xizmat funktsiyalari, int 16h – klaviatura xizmati, int 18h – ROM-BASIC xizmati, int 19 soat – bootstrap loader xizmati). Shunday qilib, havo kabi ishlashi uchun yaxshi eski BIOS-ga muhtoj bo’lgan operatsion tizim va dasturiy ta’minot UEFI bilan ishlaydigan mashinalarda osongina ishlashi mumkin. - Intuitiv UEFI interfeysi. «Boshqarish qulayligi» deb ataladigan narsa. Bu juda munozarali nuqta, uni ortiqcha yoki minus deb tasniflash mumkin emas. Ta’kidlanishicha, BIOS boshqaruvi intuitiv bo’lmagan, u noto’g’ri hujjatlashtirilgan, astsetik matn interfeysini taqdim etgan, uni faqat kompyuterni yaxshi biladigan foydalanuvchi tushuna oladi. Bundan farqli o’laroq, ko’plab UEFI qobiqlari grafik interfeys va sichqonchani qo’llab-quvvatlaydi, ular ko’pchilik BIOS-larda qo’llanilmaydi. Ammo, agar xotiram menga to’g’ri xizmat qilsa, 90-yillarda men Feniksdan BIOS-da sichqonchani qo’llab-quvvatlashni amalga oshirishga urinishlarni kuzatdim. Interfeysning o’zi grafik bo’lishi mumkin, ba’zilariga ko’ra – ko’pchilik uchun qulayroq va intuitiv, lekin u an’anaviy bo’lishi mumkin, ya’ni klassik matnga o’xshash bo’lishi mumkin, barchasi ishlab chiquvchining afzalliklariga va dasturning joylashuviga bog’liq. uskunalar. Bir nechta tillarni qo’llab-quvvatlash mumkin.
- UEFI tezligi. Ta’kidlanishicha, UEFI kodi an’anaviy BIOS kodiga qaraganda tezroq ishlaydi (garchi u C tilida yozilgan bo’lsa ham), chunki u butunlay «noldan» yozilganligi sababli, eskirgan kod poezdini «sudrab» olib borishga hojat yo’q. turli nostandart apparat va turli mantiqiy anaxronizmlarni qo’llab-quvvatlash.
- OS yuklash tezligi. UEFI bilan yuklash sezilarli darajada tezroq ekanligi da’vo qilinadi. Bunga uskunani ketma-ket ishga tushirgan BIOS-dan farqli o’laroq, qurilmalarni ishga tushirishni parallellashtirish, shuningdek, barcha qurilmalarni sanab o’tish orqali yuklash moslamasini qidirish zarurati yo’qligi sababli ishga tushirish vaqtini qisqartirish orqali erishiladi (yuklash moslamasi bo’limda ko’rsatilgan). UEFI va to’g’ridan-to’g’ri qo’ng’iroq qildi). Men bunga ishonishga moyilman, chunki hozir buni tasdiqlay yoki inkor eta olmayman. Biroq, agar siz SSD bilan Celeron 450/GA-G31M-ES2L-da eski mashinam yoqilgan paytdan boshlab optimallashtirilgan Windows XP uchun avtorizatsiya oynasi paydo bo’lguncha qancha vaqt ketishini o’lchasangiz, u faqat 23 bo’ladi. soniya. Bu, ehtimol, ayrim toifadagi qurilmalar uchun etarli bo’lmaydi.
- UEFI – bu mini OT. Siz, albatta, UEFI-ni miniatyura operatsion tizimi deb atashingiz mumkin va bu qisman adolatli bo’ladi, ammo uni uskunaga interfeyslarni taqdim etadigan virtual platforma deb hisoblash to’g’riroq. Siz faqat konsolda ishlashingiz mumkin yoki siz to’liq huquqli grafik interfeysni yozishingiz mumkin. UEFI, agar zarur funktsional modullar mavjud bo’lsa, masalan, asosiy OTni yuklashda muammolarni tushunishga yordam beradi yoki boshqa xizmat funktsiyalarini bajaradi.
- Qo’shimcha dasturiy ta’minot modullari.Operatsion tizimni UEFI muhitidan yuklashdan oldin darhol o’zingizning UEFI modullari va drayverlarini umumiy maqsadlar uchun ishga tushirishga imkon beradi: tarmoq, disk (arxivlash/zaxiralash/antivirus) bilan ishlash, parametrlarni sozlash, uskunani sinovdan o’tkazish uchun. Shubhasiz, standartning ommalashishi bilan UEFI ilovalari ro’yxati faqat kengayadi. Bugungi kunda siz hatto to’liq huquqli o’yin yozishingiz, alohida UEFI moduli (masalan: shell.efi), Internet-brauzer ko’rinishida xizmat ko’rsatish ehtiyojlari uchun shaxsiy konsolingizni ishlab chiqishingiz, media ma’lumotlari bilan ishlashni ta’minlashingiz mumkin (filmlarni tomosha qilish, musiqa tinglash). ) va diskdagi zahira nusxalarini tashkil qilish.
- UEFI o’rnatilgan yuklab olish menejerini o’z ichiga oladi. Ya’ni, u o’zining OS kod yuklagichini amalga oshiradi, u juda funktsional va bizga unchalik uzoq bo’lmagan o’tmishdan tanish bo’lgan bir nechta operatsion tizimlarning ko’p yuklagichlarining analogi bo’lib xizmat qilishi mumkin.
- I/U blokining o’lchami. UEFI-da, o’qish paytida, 1 MB ma’lumotni o’qish imkonini beruvchi maxsus EFI I/U bloki o’lchamidan foydalaniladi (BIOS-da chegara 64 KB).
- Xavfsizlik. Taxminlarga ko’ra, UEFI yuklash bosqichida zararli koddan himoyalangan. Ta’kidlanishicha, zararli kod operatsion tizim ishga tushgunga qadar o’zini o’zi yuklay olmaydi va shu bilan boshqaruvni o’z qo’liga oladi. Bunga mikrodasturning o’zida hamma narsani imzolash va «Xavfsiz yuklash» deb nomlangan xavfsiz yuklash protsedurasiga ega bo’lish orqali erishiladi.
- Funktsiyani o’lchash oson. UEFI mikrodasturini osongina kengaytirish mumkin – faqat qo’llab-quvvatlanadigan drayverni (masalan, USB flesh-diskini) joylashtiring. Shundan so’ng siz tashqi qurilmadan qo’shimcha drayverlar va UEFI ilovalarini ulashingiz mumkin. Agar siz bu haqda o’ylayotgan bo’lsangiz, bu an’anaviy BIOS-dan foydalanib bo’lmaydigan funksiyalarni kengaytirish uchun katta imkoniyatlar ochadi, chunki u faqat ROMga ulangan kod bilan cheklangan edi. UEFI-da siz yangi uskunaning drayverini to’g’ridan-to’g’ri UEFI ish bosqichida, ya’ni operatsion tizim yuklashni boshlashdan oldin «siljishingiz» va ushbu qurilmaning funksionalligiga kirishingiz mumkin.
- UEFI kodi 32/64 bit rejimida ishlaydi. Barcha keyingi… afzalliklari bilan. Rostini aytsam, UEFI ba’zi platformalarni ishga tushirish vazifalarini bajarish uchun boshida haqiqiy rejimdan foydalanadi, lekin juda tez himoyalangan/uzoq rejimga o’tadi.
- Muqobil kiritish vositalarini qo’llab-quvvatlash.UEFI virtual klaviatura va sensorli displeylar kabi muqobil kiritish vositalarini qo’llab-quvvatlaydi. Bu bizning turli xil mobil gadjetlar davrida juda dolzarb.
UEFI ning kamchiliklari
Va endi men UEFI texnologiyasining kamchiliklarini ta’kidlamoqchiman:
- Arxitekturaning murakkabligini oshirish. EFI ning barcha afzalliklari uning asosiy kamchiligi – kod tuzilishining murakkabligi bilan solishtirganda unchalik ahamiyatli emas. Kod hajmining sezilarli darajada oshishi va uning mantiqiy murakkabligi rivojlanishni osonlashtirishga hech qanday hissa qo’shmaydi, aksincha. Ammo UEFI-dan oldin va unga parallel ravishda, eskirgan BIOS modeliga alternativa sifatida ochiq ilovalar mavjud edi, masalan, rad etilgan OpenBIOS.
- Xavfsiz yuklash. Bu erda operatsion tizim ishlab chiquvchilari bir vaqtning o’zida bir nechta muammolarni hal qilishdi: qisman qaroqchilik muammosi, faollashtiruvchilarni yuklash bosqichlariga kiritish orqali faollashtirishni chetlab o’tishni bartaraf etish, yuklash bosqichidagi zararli kodlar (viruslar) muammosi va eskirgan operatsion tizimlar muammosi. foydalanuvchilar tark etishni istamaydigan mashhur bo’lib qolmoqda 🙂 Darhaqiqat, ba’zi ayniqsa aqlli qurilmalarda o’chirib bo’lmaydigan «Xavfsiz yuklash» opsiyasi mavjudligi sababli ko’pincha biron bir operatsion tizimni o’rnatib bo’lmaydi. Windows 8+ versiyasidan boshqa tizimlar, chunki hozirda faqat oxirgilarida sertifikatlangan yuklovchilar mavjud. Qabul qilaman, bu ziqna foydalanuvchilar va raqobatchilar bilan muomala qilishning juda noqulay usuliga o’xshaydi, garchi Microsoftning o’zi bunday vaziyatni har tomonlama rad etadi. Bir so’z bilan aytganda, texnologiya juda ko’p noqulayliklarga olib kelishi mumkin, lekin hech bo’lmaganda ko’pchilik sotuvchilar sozlamalarda ushbu imkoniyatni (hozircha) o’chirib qo’ygan.
- Eski operatsion tizimlarni o’rnatishning mumkin emasligi (ba’zi hollarda). Muvofiqlik rejimi (CSM)siz eski tizimlarni o’rnatish mumkin emas.
- Standartdan chetga chiqish. Har bir apparat komponenti ishlab chiqaruvchisi UEFI-ni o’z xohishiga ko’ra o’zgartiradi va shu bilan foydalanuvchi uchun qo’shimcha qiyinchiliklar tug’diradi va bizni BIOS xaosiga qaytaradimi? Masalan, turli xil qurilmalarda yuklash menejeri UEFI spetsifikatsiyasi tavsiyalaridan sezilarli og’ishlarga ega bo’lgan holda boshqacha tarzda amalga oshirilishi mumkin. Amalda, ba’zida men NVRAM yuklash ro’yxati parametrlarini e’tiborsiz qoldiradigan va \EFI\Microsoft\Boot\bootmgfw.efiyoki EFI/BOOT/bootx64.efi dan kodni yuklagan xato UEFI-larga duch keldim . Yoki ba’zi ilovalarda yuklash menejeri MBR va GPT qurilmalarining birlashtirilgan ro’yxatini o’z ichiga olishi mumkin, boshqalarida esa turli xil yuklash ro’yxatlari mavjud bo’lib, bu ba’zi chalkashliklarni keltirib chiqaradi.
- Kontentni boshqarish vositalarini amalga oshirish. UEFI standarti operatsion tizimga qo’ng’iroqlarni ushlab turadigan ma’lum drayverlarning mavjudligini ta’minlaydi, shuning uchun DRM (Raqamli cheklovlarni boshqarish, mualliflik huquqini himoya qilishning texnik vositalari) amalga oshirilishi mumkin. Algoritmning mohiyati quyidagilardan iborat: o’zi uchun hamma narsa ishlaydigan shaxsga o’z hisobidan bunday dasturiy ta’minot yoki uskunani o’rnatish taklif etiladi, shunda uning ishchi tizimlarida raqamli tarkibni (kompyuterlar, multimedia pleerlari va boshqalar) takrorlash uchun ba’zi funktsiyalar bajariladi. .) endi odatdagidek ishlamaydi. UEFI-ni yaratish oxirgi foydalanuvchi uchun kerak bo’lmagan funktsiyalarni shaxsiy kompyuterga kiritishning yashirin usuli ekanligi haqida asosli qo’rquvlar mavjud.
- Keraksiz modullarni kiritish imkoniyati.Operatsion tizim UEFI yordamida yuklansa, kompyuterni 100% nazorat qilishiga kafolat berish mumkin emas!
UEFI ishlash algoritmi
UEFI-ni yaratish jarayonida ishlab chiquvchilar boshidanoq har bir jarayon uchun qat’iy chegaralarni o’rnatdilar. Dastlabki uch faza (SEC, PEI, DXE) OS yuklash moslamasi uchun platformani tayyorlaydi, to’rtinchi bosqich (BDS) to’g’ridan-to’g’ri OS yuklash moslamasini yuklaydi. Keling, UEFI operatsion algoritmini tahlil qilishga harakat qilaylik va uning barcha bosqichlarini batafsil ko’rib chiqaylik.
- SEC bosqichi. (Xavfsizlik, Xavfsizlik). Xavfsizlik bosqichi. Hammasi imzolanishi va tasdiqlanishi kerak, aks holda u ishlamaydi!
- CPU keshini tozalash.
- ROMda asosiy ishga tushirish protsedurasini ishga tushirish.
- Protsessor ishlashining himoyalangan rejimiga o’tish.
- BSP uchun MTRR (xotira turi diapazoni registrlari) ishga tushirildi.
- Barcha o’rnatilgan protsessorlar uchun mikrokod yamoqlarini ishga tushiring.
- BSP/AP bilan ishlashni boshlash. BSP = Kengash qo’llab-quvvatlash to’plami. AP = Ilova protsessori. Har bir yadro BSP + AP sifatida ifodalanishi mumkin. IIPI (Init Inter-processor Interrupt) barcha AP larga, keyin SIPI (Start-up Inter-processor Interrupt) yuboriladi.
- Ma’lumotlar va boshqaruvni PEI bosqichiga o’tkazish.
- PEI bosqichi. (Pre-EFI Initialization, Pre-EFI Initialization). DXE bosqichida asosiy tizimni ishga tushirish jarayoni uchun platformani (xotira va topilgan qurilmalar) tayyorlang.
- ROMdan keshga ma’lumotlarni uzatish.
- CRTM (O’lchov ishonchliligi uchun asosiy ildiz) ni ishga tushirish. Bu RTM operatsiyalari davomida platforma tomonidan bajariladigan ko’rsatmalar to’plami.
- PEI menejeri yuklanmoqda. Dispetcher platformaga qarab farq qiluvchi bir qator modullarni (PEIM) yuklaydi. Ushbu modullar qolgan PEI vazifalarini bajaradi. Barcha modullar yuklanganda bosqich tugaydi.
- PEIM: Protsessorni ishga tushirish modullari yuklanadi va ishga tushiriladi. (masalan: protsessor kesh moduli, protsessor chastotasini tanlash moduli). Protsessorlar ishga tushirildi.
- PEIM: Platformaga o’rnatilgan interfeyslar ishga tushirildi (SMBus). MCH (Memory Controller Hub), ICH (I/O Controller Hub) ishga tushirildi.
- PEIM: xotirani ishga tushirish. Asosiy xotirani ishga tushirish va keshdan ma’lumotlarni unga o’tkazish.
- Tekshirish rejimi S3. Yo’q – boshqaruvni DXE bosqichiga o’tkazish. Ha – protsessor va barcha qurilmalarning asl holatini tiklang va operatsion tizimga o’ting.
- DXE bosqichi. (Driver ijro muhiti, drayverni yuklash muhiti). Ushbu bosqichda komponentlarning yuklanishi PEI bosqichida ishga tushirilgan resurslarga asoslanadi. Barcha qurilmalar uchun yakuniy ishga tushirish bosqichi. UEFI xizmatlarini ishga tushirish: Boot Services, Runtime Services va DXE Services.
- DXE yadrosi yuklangan. DXE infratuzilmasi yaratiladi: kerakli ma’lumotlar tuzilmalari va tutqich ma’lumotlar bazasi yaratiladi. Asosiy DXE interfeyslarini o’z ichiga oladi. Bir qator xizmatlarni ishga tushiradi: Boot Services, Runtime Services, DXE Services.
- DXE menejeri ishga tushirilmoqda. PEI-dan uzatilgan Hand-off Block strukturasidan (HOB ro’yxati) foydalanib, u mavjud mikrodastur hajmini (FV, DXE bajariladigan modullarining tuzilgan ma’lumotlar bazasi: drayverlar va ilovalar) aniqlaydi va ulardagi drayverlarni qidiradi, ularni ishga tushiradi, bog’liqliklarni kuzatadi. Ayni paytda, qolgan komponentlar bir vaqtning o’zida bir nechta faollashtirilgan. Menejer barcha mavjud drayverlarni barcha mavjud ommaviy axborot vositalaridan yuklaydi.
- SMM Init drayveri yuklanmoqda. Subfazani boshlaydi. SMM (tizimni boshqarish rejimi) x86 protsessorining imtiyozli kodni bajarish rejimlaridan biri bo’lib, unda protsessor mustaqil manzil maydoniga o’tadi, joriy vazifaning kontekstini saqlaydi, so’ngra kerakli kodni bajaradi, so’ngra asosiy rejimga qaytadi. Nima uchun bizga SMM kerak? Chunki bu rejimda OS qanday bo’lishidan qat’i nazar, tizim bilan xohlagan narsani qilishingiz mumkin. SMM kodi DXE bosqichi tugagandan so’ng bajarilishi mumkin.
- UEFI yuklash menejeri ishga tushadi. Bu barcha drayverlarni ishga tushirgandan so’ng sodir bo’ladi. Boshqarish BDS bosqichiga o’tkaziladi.
- BDS bosqichi. (Yuklash qurilmasini tanlash). Platformani yuklash siyosatini amalga oshiradi. Asosiy vazifa yuklash uchun zarur bo’lgan qurilmalarni ulash, yuklash qurilmasini tanlash (qo’lda yoki avtomatik) va undan yuklashdir. Ko’pincha u barcha mavjud FVlar orqali rekursiv qidiruvni amalga oshiradi va yuklab olish uchun mavjud kontentni topishga harakat qiladi.
- Konsol qurilmalari ishga tushiriladi, ConOut (ConsoleOutHandle), ConIn (ConsoleInHandle), StdErr (StandardErrorHandle) muhit o’zgaruvchilari bilan tavsiflanadi.
- Atrof-muhit o’zgaruvchisida ( yuklash tartibidagi
DriverOrder
variantlarni o’z ichiga olgan ) ro’yxatga olingan UEFI qurilma drayverlari yuklangan.Driver####
- UEFI ilovasi yuklash qurilmasidan yuklanadi
Boot####
. Qurilmalar ro’yxatiBootOrder
yuklash tartibida global muhit o’zgaruvchisida joylashgan . - Agar biz yuqorida aytilganlardan hech birini bajara olmasak, DXE menejeriga qo’ng’iroq qiling va menejer oxirgi marta chaqirilganidan beri qo’shimcha drayverlarga bog’liqlik berilganligini tekshiring. Shundan so’ng boshqaruv yana BDS bosqichiga qaytadi.
UEFI Boot Manager ishlash algoritmi
UEFI yuklash kontseptsiyasi BIOS yuklash kontseptsiyasidan sezilarli darajada farq qiladi. Agar BIOS-ni eslayotgan bo’lsangiz, yuklash uchun int 19h (bootstrap loader) yuklash kodi mas’ul edi, uning vazifasi faqat yuklash qurilmasidan asosiy yuklash yozuvini (MBR) xotiraga yuklash va unga boshqaruvni o’tkazish edi. UEFI-da hamma narsa biroz qiziqroq bo’lib, u o’zining to’liq o’rnatilgan yuklash moslamasini o’z ichiga oladi, u UEFI Boot Manager (UEFI Boot Manager yoki oddiygina Boot Manager) deb ataladi, u ancha boy funksiyalarga ega.UEFI Boot Manager standart umumiy UEFI modulidir.
Boot Manager juda keng funksiyalarni amalga oshiradi, jumladan UEFI tasvirlarini yuklashni o’z ichiga oladi: UEFI birinchi bosqich OS yuklagichlari, UEFI drayverlari, UEFI ilovalari. Yuklash platforma tomonidan qo’llab-quvvatlanadigan har qanday jismoniy saqlash muhitida joylashgan har qanday UEFI tomonidan qo’llab-quvvatlanadigan fayl tizimida joylashgan har qanday UEFI tasviridan amalga oshirilishi mumkin. UEFI Boot Manager o’z konfiguratsiyasiga ega, uning parametrlari umumiy NVRAMda (uchuvchan bo’lmagan RAM) bir qator o’zgaruvchilar ko’rinishida joylashgan.EFI NVRAM UEFI konfiguratsiya parametrlarini saqlash uchun moʻljallangan umumiy xotira maydoni boʻlib, u mikrodastur ishlab chiquvchilari, apparat ishlab chiqaruvchilari, operatsion tizim ishlab chiquvchilari va foydalanuvchilar tomonidan foydalanish mumkin.
UEFI parametrlari NVRAMda o’zgaruvchilar sifatida saqlanadi, ular klassik tarzda «parametr nomi» = «qiymat» juftligi bilan ifodalanadi. Ushbu o’zgaruvchilar UEFI ning turli funktsional qismlariga tegishli ko’p sonli parametrlarni o’z ichiga oladi, ya’ni UEFI Boot Manager parametrlariga qo’shimcha ravishda, NVRAM ko’plab boshqa UEFI parametrlarini saqlaydi. Biroq, ushbu bobning maqsadlari uchun biz faqat UEFI Boot Manager bilan bog’liq o’zgaruvchilarga qiziqamiz. Bu birinchi navbatda BootOrder
nomli deskriptor o’zgaruvchilarni yuklashga ishora qiluvchi global o’zgaruvchidir Boot####
. Har bir element Boot####
jismoniy qurilmaga ko’rsatgich bo’lib (ixtiyoriy ravishda) ushbu jismoniy qurilmadan yuklanishi kerak bo’lgan UEFI tasvirini ifodalovchi faylni tasvirlashi mumkin.Barcha yuklash qurilmalari to’liq yo’l sifatida tavsiflanadi, ya’ni ular yuklash faylining o’qiladigan nomini o’z ichiga oladi, shuning uchun ularni yuklash menyusiga qo’shish mumkin.
UEFI ishlashi paytida ommaviy axborot vositalarini sanab o’tish algoritmini taxminan shunday tasavvur qilaman:

Ko’rib turganimizdek, UEFI Boot Manager tahlil qiladi BootOrder
, ya’ni har bir elementning qurilma yo’lini Boot####
o’zgarmaydigan qiymat bilan belgilangan tartibda yuklaydi BootOrder
va belgilangan qurilmadan yuklashga harakat qiladi. Agar xato bo’lsa, yuklash menejeri keyingi elementga o’tadi. Bundan tashqari, yuklab olish ro’yxati ishlab chiqariladi. Ushbu ro’yxat UEFI sozlamalari interfeysi uchun tegishli va tanish standart yuklash menyusiga o’xshaydi. UEFI yuklash roʻyxati oʻzgaruvchi asosida yaratiladi BootOrder
va foydalanuvchiga yuklash qurilmalari tartibi va konfiguratsiyasiga oʻzgartirishlar kiritish uchun foydalaniladi.
U o’zini qanday shakllantiradi BootOrder
? Va bu juda oddiy, masalan, Windows operatsion tizimini o’rnatish vaqtida o’rnatuvchi o’rnatish diskida ESP bo’limini (agar u mavjud bo’lmasa) yaratadi, ushbu bo’limni FAT fayl tizimiga formatlaydi, so’ngra yuklash moslamasini joylashtiradi ( Windows 7+ uchun bu bootmgfw.efi fayli va \EFI\Microsoft\Boot\yo’lidagi ba’zi boshqa fayllar . Operatsion tizimni o’rnatish tugallangandan so’ng, Windows o’rnatuvchisi bootmgfw.efiBoot####
nomli Windows yuklash menejeriga havola qiladigan EFI NVRAMda (bu erda #### o’n oltilik raqam) o’zgaruvchini yaratadi .
UEFI yuklanadigan media talablari
UEFI spetsifikatsiyasi, boshqa narsalar qatorida, bo’limlar va yuklash moslamalarini ommaviy axborot vositalariga joylashtirish qoidalariga ma’lum talablarni tavsiflaydi. Va qurilmalarning turli sinflari uchun, keyinroq ko’rib chiqamiz, ular sezilarli darajada farq qiladi.
Qattiq disk talablari
Har bir yuklanadigan qattiq diskda maxsus EFI tizim bo’limi (ESP) bo’lishi kerak. ESP bo’limi standart tomonidan oldindan belgilangan katalog ierarxiyasiga (tuzilmasiga) rioya qilishi kerak: /EFI katalogi ESP bo’limining ildizida joylashgan bo’lishi kerak . /EFIpapkasida , o’z navbatida, operatsion tizim sotuvchilari, apparat ishlab chiqaruvchilari, umumiy vositalar va drayverlarning pastki kataloglari bo’lishi kerak:
1
2
3
4
\EFI
\<директория вендора ОС 1>
<файл-загрузчик-ОС1>.efi
\<директория вендора ОС 2>
<файл-загрузчик-ОС2>.efi
. . .
\<директория вендора ОС N>
<файл-загрузчик-ОСN>.efi
\<директория производителя оборудования (OEM)>
<OEM-приложение>.efi
\<директория BIOS вендора>
<приложение-BIOS-вендора>.efi
\<директория вендора стороннего ПО>
<стороннее-приложение>.efi
\BOOT
BOOT{тип_архитектуры}.efi
Ushbu kichik kataloglarning nomlari sotuvchilarning o’zlari tomonidan tanlanadi, keng tarqalgan amaliyot sotuvchi nomlarini quyi kataloglarning nomlari bilan bog’lashdir. Ushbu sotuvchining quyi kataloglarida ma’lum bir sotuvchi tomonidan ishlab chiqilgan OS yuklash modullari mavjud. UEFI spetsifikatsiyasida ro’yxatdan o’tgan sotuvchining pastki kataloglarini quyi kataloglar reestridagi rasmiy veb-saytda ko’rish mumkin .
Kataloglari sotuvchining pastki katalogida tavsiflanmagan va /EFIpapkasida o’zlarining pastki kataloglari bo’lmagan sotuvchilar ko’pincha o’zlarining bootloaderlarini «standart yuklovchi» sifatida joylashtiradilar. Misol uchun, yo’l bo’ylab x64 tizimlari uchun:
/EFI/Boot/bootx64.efi .
Yuklash fayli odatiy UEFI ilovasi bo’lib, formatga ega PE32+
va operatsion tizimni yuklashning dastlabki bosqichi uchun kodni o’z ichiga oladi, ya’ni OTni yuklash jarayonini boshlaydi. Uning maqsadi ma’lumotlar tuzilmalarini tayyorlash, OS yadrosini xotiraga yuklash va unga boshqaruvni o’tkazishdir.
Spetsifikatsiya /EFI/Boot pastki katalogini tavsiflaydi . Ushbu kichik katalog «standart» joy sifatida ishlatiladi, ya’ni ba’zi sabablarga ko’ra NVRAM-da yuklash moslamasi yo’qolgan (sozlanmagan) vaziyatda. Bunday holda, ushbu katalog standartlashtirilgan nomga ega bo’lgan «standart yuklash vositasi» ni o’z ichiga oladi.BOOT{тип_архитектуры}.efi
Portativ qurilmalarga qo’yiladigan talablar
Portativ qurilmalar uchun struktura biroz boshqacha bo’lib, barcha yuklash moslamalari to’liq yo’l bilan «standart» kichik katalogda to’planishi kerak /EFI/Boot :
\EFI
\BOOT
BOOT{тип_архитектуры}.efi
Birlamchi yuklash fayli nomi quyidagi talablarga javob berishi kerak:
BOOT{architecture_type}.efi , bu yerda yuklovchining nomi quyidagicha boʻlishi mumkin:ArxitekturaFayl nomiPE maydoni «MachineType»x86 (32-bit)BOOTIA32.EFI0x14cx64 (64-bit)BOOTx64.EFI0x8664ItaniumBOOTIA64.EFI0x200AArch32BOOTARM.EFI0x01c2AArch64BOOTAA64.EFI0xAA64
BootOrder
Ba’zi UEFI ilovalari «noto’g’ri» edi, ular yuklash parametrlari yozuvlari tartibini o’z ichiga olgan global o’zgaruvchining qiymatini noto’g’ri qayta ishladi (yoki shunchaki e’tiborsiz qoldirdi) va har doim
/EFI/Microsoft/Boot/bootmgfw.efi yoki
/EFI/BOOT/ modullarini yuklagan. birinchi bootx64.efi .
Eski rejimda yuklash
Sektor tizimda o’rnatilgan mediada mavjudmi yoki yo’qligidan qat’i nazar, UEFI klassik MBR dan hech qanday kodni ishga tushirmaydi. Istisno «moslik rejimi» qo’llab-quvvatlanadigan UEFI versiyalari. Natijada, MBR markalash standartiga mos keladigan operatsion tizimlarni an’anaviy (eski) yuklash uchun UEFI proshivkaga kiritilishi mumkin bo’lgan (sotuvchining ixtiyoriga ko’ra) maxsus modullarni taqdim etadi. UEFI interfeysidan Legacy
, Legacy CSM
, Launch CSM
, CSM Boot
, yoki kabi parametrlarni qidirish orqali maxsus UEFI proshivkangiz “moslik rejimini” qo‘llab-quvvatlashini bilib olishingiz mumkin CSM OS
. Shuni ta’kidlash kerakki, proshivkalarning aksariyat qismida ushbu rejim mavjud bo’lib, u yangi noutbuklar yoki anakartlarni sotib olgan, ammo MS-dan «eski» operatsion tizimlardan foydalanish odatlarini o’zgartirmagan foydalanuvchilarning hayotini sezilarli darajada osonlashtiradi 🙂 Bu mantiqan to’g’ri . Agar CSM moduli mavjud bo’lsa, an’anaviy rejimda yuklashda proshivka kodi an’anaviy BIOS-ning o’xshash funktsional xususiyatlariga imkon qadar yaqin bo’lishi kerak, oddiygina asosiy texnologiyalarga taqlid qilish kerak. Keling, eski rejimda yuklashda UEFI muvofiqlikni qo’llab-quvvatlash moduli (CSM) nima qilishini ko’rib chiqaylik. Hozircha men bu yerda faqat Legacy/Compatibility Support Module (CSM) rejimida mavhum shartli yuklash algoritmini beraman:Запуск CSM
CSM Support
- Eski rejimda yuklash kerakmi? Agar yo’q bo’lsa, biz odatiy UEFI Boot zanjiriga o’tamiz.
- Legacy Driver modulini yuklang.
- Legacy BIOS modulini yuklang.
- An’anaviy video BIOS funktsiyalarini qo’llab-quvvatlash kerakmi (int 10h uzilish funksiyalarini amalga oshirish)? Ha – yuklayapmiz.
- Boshqa an’anaviy BIOS kengaytmalarini (int 13h..) qo’llab-quvvatlash kerakmi? Ha – yuklayapmiz.
- An’anaviy (eski) OT yuklanmoqdami? Yo’q – biz oddiy UEFI yuklanishiga o’tamiz.
- Biz SMBIOS tuzilmalarini shakllantiramiz.
- Biz Legacy Device tuzilmalarini yaratamiz.
- Biz int 15h uzilish strukturasini, BBS (BIOS Boot Specification) API strukturasini shakllantiramiz.
- Biz ACPI RSD PTR ni yaratamiz.
- Mos SMM kodini yuklang.
- Biz kodni MBR dan yuklaymiz va unga boshqaruvni o’tkazamiz.
UEFI-da ko’p yuklash
Shaxsiy kompyuterlar ommaviy tarqatilishining boshidan vaqti-vaqti bilan bir yoki bir nechta jismoniy ommaviy axborot vositalarini joylashtirishi mumkin bo’lgan bir shaxsiy kompyuterda bir nechta operatsion tizimlarni joylashtirish vazifasi paydo bo’ldi. Yaqinda virtualizatsiya texnologiyasining kashf etilishi bilan vaziyat sezilarli darajada o’zgardi, ammo bu muammoni to’liq bartaraf etmadi. Klassik ma’noda, klassik MBR belgilaridan foydalangan holda an’anaviy PC/AT BIOS usulidan foydalangan holda yuklanadigan stantsiyalarga nisbatan, multiboot yuklash menejeri deb ataladigan yuklash (MBR) asosiy yuklash sektoridagi uchinchi tomon kodi edi. multi-booter), u kompyuterda o’rnatilgan har bir operatsion tizim uchun sozlamalarni saqlaydi va ma’lum bir operatsion tizimni qanday yuklashni tanlash uchun menyuni taqdim etadi. Agar biz vaqtimiz haqida gapiradigan bo’lsak, ya’ni GPT belgilaridan foydalangan holda bo’lingan mediaga nisbatan ko’p yuklash haqida gapiradigan bo’lsak, hozir ko’p narsa o’zgargan. Yuqorida aytib o’tganimizdek, UEFI to’g’ridan-to’g’ri GPT disklari bilan ishlashi mumkin, shuning uchun bir nechta operatsion tizimlarni o’rnatish vazifasi juda soddalashtirilgan. Endi multibooterning barcha funktsiyalari o’rnatilgan UEFI Boot Manager tomonidan qabul qilinadi, uning ishlash tamoyillari biz yuqorida tavsiflangan. OS o’rnatuvchisi faqat o’zi juda yaxshi bajaradigan ishni bajarishi kerak: yuklash moslamasini «uning» katalog ierarxiyasida maxsus ESP bo’limiga joylashtiring, shundan so’ng bu yuklash moslamasi UEFI sozlamalarida «ko’rinadigan» bo’ladi. OS o’rnatuvchisiga qo’shimcha ravishda, endi foydalanuvchining o’zi sozlamalardan (grafik/matnli interfeys UEFI) foydalanib, tizimga ulangan va ko’rinadigan har qanday jismoniy muhitda joylashgan bootloaderni qo’lda qo’shishi mumkin. Turli yo’llar bilan qo’shilgan ushbu yuklash moslamalarining barchasi Yuklash menyusi orqali mavjud bo’lib, foydalanuvchi uni UEFI ishlayotgan vaqtda, ya’ni kompyuterni yuklashning dastlabki bosqichida to’g’ridan-to’g’ri sozlashi/qo’ng’iroq qilishi mumkin. Boshqacha qilib aytadigan bo’lsak, UEFI-da ko’p yuklash oddiygina /EFI da joylashgan katalog ierarxiyasidagi maxsus ESP bo’limida o’rnatilgan muhitda joylashgan UEFI ilovalarini (OS-ga xos bootloaderlar) ishga tushirish masalasidir .