Kısım I · Makine · Bölüm 12
Açılış: Firmware ve Önyükleme
Gömülü yazılım ve ilk koddan işletim sistemine geçiş (Firmware and booting)
Neden burada: Programı ve veri düzenini tanıdık; ama makine yeni açılırken ilk programı kimin getirdiğini henüz açıklamadık. Bu bölüm Kat 6’yı açarak sonsuz “onu kim başlattı?” zincirine donanımdan bir başlangıç koyar.
Neye dayanıyor: Bölüm 6: komut yürütme ve program sayacı; Bölüm 7: programların da makine komutlarından oluşması; Bölüm 8: RAM ile kalıcı depolamanın farklı görevleri. Bölüm 11: veri düzeninin programın işi olması; burada başka bir algoritma listesine değil açılış sırasına geçiyoruz.
- Kat 10Bizim hukuk uygulamamızSorular, puan, seri ve sıralama: üstteki amaç.
- Kat 9Tarayıcı ve webHTML, CSS, JavaScript: Bölüm 20, 23–26.
- Kat 8Ağ ve internetMakineler arasında iletişim: Bölüm 19–20.
- Kat 7İşletim sistemiKaynaklar, süreçler, bellek ve dosyalar: Bölüm 13–18.
- Kat 6Gömülü yazılım ve açılışİlk koddan işletim sistemine geçiş: Bölüm 12.
- Kat 5Diller, derleyici ve veri düzeniC ile tarif, adres ve algoritma: Bölüm 9–11.
- Kat 4Makine dili ve assemblyBitlerden oluşan işlemci komutları: Bölüm 7.
- Kat 3İşlemci ve bellekKomutları yürüten donanım ve RAM: Bölüm 6, 8.
Bölüm sonunda ilk kodun neden işletim sistemini beklemediğini, BIOS ile UEFI’nin neyi anlattığını, önyükleyicinin görevini ve güvenli önyüklemenin hangi güvenceyi verip hangisini vermediğini açıklayabileceksin. Apple silicon ve iPhone örneklerini bütün cihazlara genellemeden okuyacağız.
12.1 Gömülü yazılım: donanımın içinde duran program
Şimdiye kadar “program belleğe gelir, işlemci komutları çalıştırır” dedik. İyi de elektrik yeni verilmişken belleğe programı getiren program nerede? Onu da başka bir program yüklüyorsa sonsuza kadar geriye gitmez miyiz? Önyükleme (booting), bu zincire donanımla belirlenmiş bir başlangıç koyar. Örneğin Apple'ın iPhone belgesinde işlemcinin açılışta hemen Boot ROM içindeki kodu çalıştırdığı açıkça anlatılır. İlk kodu bulmak için önceden açılmış bir işletim sistemine ihtiyaç yoktur.1
Bölüm 6'daki program sayacını hatırla: işlemci sıradaki komutu nereden okuyacağını bir durum olarak tutuyordu. Başlangıçta da bir yürütme durumu gerekir. Donanımın açılış düzeni, ilk komutların bulunduğu yerden yürütmeyi başlatır. Başlangıcın ayrıntısı işlemci ve platforma göre değişir; burada bütün bilgisayarlar için tek bir sayısal başlangıç adresi vermiyoruz. Öğrenilecek fikir adresin sayısı değil, “ilk kodun yeri donanımın başlangıç düzeniyle belirlenmiştir” fikridir. Boot ROM bunun somut bir örneğidir.1
Neden işletim sistemini doğrudan ilk kod yapmıyoruz?
Başlangıç kodunun işi ile tam işletim sisteminin işi farklıdır. İlk aşamalar donanımı kullanılabilir duruma getirir, açılış kaynağını seçer ve sonraki yazılımı hazırlar. Tam işletim sistemi ise programları, belleği ve aygıtları uzun süre yönetir. UEFI, yüklenen işletim sistemi önyükleyicisine ortak bir açılış ortamı sunarak platform ile işletim sisteminin birbirinden bağımsız gelişmesini amaçlar. İlk aşama, bütün uygulamalarını çalıştıran ikinci bir macOS veya Windows olmak zorunda değildir.2
Gömülü yazılım (firmware), donanımla yakın ilişkili ve onun çalışmasını yönlendiren yazılımdır. “Gömülü” sözü onun elektrik kablolarına dönüşmüş olduğunu söylemez: o da Bölüm 7'deki gibi makine komutları ve verilerden oluşur. Fark, görevi ve cihazın başlangıç düzenindeki yeridir. Platformun açılış gömülü yazılımı bu bölümün konusu; bir aygıtın kendi gömülü yazılımı ile işletim sistemi tarafındaki sürücüsünü ise aynı şey saymayacağız. Sürücü, işletim sisteminin aygıtla konuşmasını sağlayan yazılımdır; ayrıntısı Bölüm 17'de.23
ROM ile flash aynı vaat değildir
Salt okunur bellek (read-only memory, ROM) ifadesi, olağan program çalışması sırasında yeniden yazılan RAM'den farklı bir bellek sınıfını anlatır. Apple'ın açılış ROM'u (Boot ROM) örneğinde başlangıç kodu çip üretilirken yerleştirilir ve değişmezdir. Bu, o platformdaki güven zincirinin sabit başlangıcıdır. Bir uygulama dosyasını değiştirmen bu kodu değiştirmez.1
Flash bellek (flash memory) ise elektrik kesildiğinde içeriğini tutabilen, uygun işlemle yeniden yazılabilen bellektir; kalıcı depolamayı Bölüm 8.3'te gördük. UEFI belgesi yeniden yazılabilir flash aygıtlarında bulunabilen yürütülebilir görüntülerden de söz eder. Dolayısıyla “gömülü yazılım kalıcı tutulur” demek “hiçbir gömülü yazılım güncellenemez” demek değildir. HP'nin servis belgesinde BIOS güncellemesi ve BIOS çipinin yeniden programlanması ayrı ayrı anlatılır. Değişmez başlangıç kodu ile güncellenebilir sonraki aşamayı ayırmak gerekir.45
| Parça | Bu bölümdeki görevi | Önemli ayrım |
|---|---|---|
| RAM | Çalışacak kod ve veriler için çalışma alanı. | Elektrik kesilince sıradan çalışma içeriği korunmaz; Bölüm 5. |
| Apple Boot ROM | Üretimde yerleştirilmiş ilk güvenilen açılış kodu. | Apple belgesindeki bu başlangıç kodu değişmezdir. |
| Yeniden yazılabilir firmware depolaması | Sonraki açılış yazılımlarını kalıcı tutabilen alan. | Güncelleme, gündelik değişken atamasıyla aynı işlem değildir. |
| İşletim sistemi dosyaları | Önyükleyicinin sonraki aşamada yükleyeceği yazılım. | Kalıcı ortamda bulunmak, işlemcide o anda çalışmak değildir. |
Bir iPhone'un Boot ROM'u değişmezken iBoot ve işletim sistemi farklı aşamalardır. Bir PC'nin BIOS güncellemesi yapabilmesi, bütün açılış kodunun RAM'de kaybolan geçici veri olduğu anlamına gelmez. İki soru sor: “Bu kod elektrik kesilince nerede korunuyor?” ve “Bu belirli parça hangi yöntemle değiştirilebiliyor?” “ROM”, “flash”, “firmware” kelimelerini birbirinin yerine koymak bu iki soruyu birbirine karıştırır.15
12.2 BIOS, UEFI ve açılış testi
Bilgisayarların ilk hazırlık ve başlatma ortamını anlatırken iki adla karşılaşırsın: BIOS (Basic Input/Output System) ve UEFI (Unified Extensible Firmware Interface). BIOS, geleneksel PC açılış düzeninin adıdır. UEFI ise platform gömülü yazılımıyla işletim sistemi yükleyicileri arasında tanımlanmış bir arayüz ve açılış ortamıdır. Bunları “biri eski görünümlü ayar ekranı, diğeri fareyle çalışan ayar ekranı” diye tanımlamak asıl işi kaçırır.25
UEFI'nin önemli tarafı, işletim sistemi önyükleyicisinin her anakartın bütün ayrıntısını yeniden çözmek zorunda kalmamasıdır. UEFI servisleri yükleme, bellek ayırma ve firmware'in sunduğu aygıtlara erişme gibi işler için belirli kurallar sunar. Bölüm 1.4'ün dilinde bu bir arayüzdür. Her üretici o arayüzü kendi donanımında gerçekleyebilir. UEFI belirtimi, kullanıcıya gösterilen açılış menüsünün çizimini bile tek bir tasarıma zorlamaz; seçenekleri temsil eden değişkenleri tanımlar.2
Ayar ekranı bütün gömülü yazılım değildir
Açılışta gördüğün ayar menüsü, gömülü yazılımın yalnızca kullanıcı arayüzüdür. Menü hiç açılmasa da arka plandaki kod işini yapar. UEFI'nin önyükleme yöneticisi (boot manager), açılacak seçeneklerin sırasını değerlendirir. Belirtimdeki BootOrder değişkeni normal sırayı temsil eder; seçenekler kalıcı değişkenlerde tutulabilir. Belirli bir yükleyiciyi seçmek, o yükleyicinin ve işletim sisteminin hatasız olduğu hükmü değildir: bu yalnızca denenecek yolun seçilmesidir.3
UEFI'yi işletim sistemiyle de karıştırma. UEFI'nin kendi küçük programları ve sürücüleri olabilir; fakat tam işletim sistemi devraldığında açılış servislerinin ömrü sona erebilir. “Açılışta program çalıştırabiliyor” olması, onun tarayıcının ve hukuk uygulamanın çalışma ortamı olduğu anlamına gelmez. Farklı aşamalar, farklı görevler ve farklı servis ömürleri vardır.2
POST: daha üst kata geçmeden temel kontrol
Açılış testi (power-on self-test, POST), sistemin açılırken yaptığı başlangıç denetimlerinin adıdır. HP'nin BIOS tabanlı dizüstüler için yayımladığı servis belgesinde BIOS'un başlatma rutinleri ve tanı testleri yürüttüğü; bellek veya işlemci gibi temel parçalar bu testleri geçmezse işletim sistemine geçilmediği anlatılır. Bu, “işletim sistemi henüz başlamadan hata olabilir” düşüncesinin somut örneğidir.5
Bir sistem test sırasında bir hata mesajı veya ses kodu verebilir. Ama burada bütün bilgisayarlar için “şu kadar bip şu arızadır” tablosu ezberlemiyoruz. Kodların anlamı üreticiye, modele ve firmware'e bağlıdır. HP belgesi bile her POST mesajının arıza anlamına gelmediğini ve başka tanı araçlarıyla doğrulama gerektiğini söyler. Başlangıç testi, donanımın bütün gelecekteki davranışlarının hatasızlığına dair kapsamlı bir ispat değildir.5
| Aşama sorusu | Örnek görev | Henüz yapılmayan iş |
|---|---|---|
| Donanım başlangıcı mümkün mü? | Temel parçaları başlatmak ve denetlemek. | Hukuk quizinin JavaScript'ini çalıştırmak. |
| Hangi yolu deneyeceğim? | Önyükleme yöneticisinin kayıtlı seçeneği değerlendirmesi. | Kullanıcının doğru cevabını hesaplamak. |
| Sonraki kodu çalıştırabilir miyim? | Yükleyiciyi bulmak, yüklemek, geçerli politikayla denetlemek. | İşletim sisteminin bütün görevlerini üstlenmek. |
Bu tablonun ayrımı bir tanı alışkanlığı da verir. Hiçbir açılış seçeneği bulunamadığını bildiren bir makine ile işletim sistemi açıldıktan sonra tarayıcıda yanlış puan gösteren uygulama, aynı katta bozulmuş değildir. Ekrandaki bir hata “bilgisayarda” diye hepsine yeniden uygulama kurmakla karşılık veremezsin. Önce hangi aşamaya kadar geldiğini belirlemek gerekir. Bu, UEFI'nin yükleyici bulma ve hatada geri dönme ayrımından çıkarılan bir tanı çerçevesidir.23
12.3 Önyükleyici: çekirdeği belleğe getirmek ve kontrolü devretmek
Önyükleyici (bootloader), işletim sisteminin başlaması için gereken kodu ve bilgileri hazırlayan, sonra yürütmeyi sonraki aşamaya veren programdır. Çekirdek (kernel), işletim sisteminin donanım kaynaklarını yöneten ayrıcalıklı merkezidir; tam tanımı Bölüm 13'te. Bu bölümde onu yalnızca “yüklenip başlatılacak sonraki büyük program” olarak kullanıyoruz. İşletim sisteminin masaüstü görünümü çekirdeğin kendisi değildir.26
UEFI bakımından bir işletim sistemi yükleyicisi, önce UEFI ortamında çalışan özel türde bir UEFI programıdır. Firmware'in sunduğu servislerden yararlanır: dosyadaki yürütülebilir görüntüyü belleğe getirme, uygun bellek ayırma ve erişilebilir aygıtları kullanma gibi. Bu aşamada yükleyici bütün makineyi keyfince kullanamaz; UEFI'nin bellek ve servis kurallarına uyar. İşletim sistemini başarıyla hazırladığında ise denetimi devralacak düzeni kurar.2
“Yüklemek” ile “çalıştırmak” iki ayrı adımdır
Bölüm 8'de kalıcı depolamayla RAM'i ayırdık. Çekirdek dosyasının SSD'de durması, işlemcinin onu yürüttüğü anlamına gelmez. Gerekli kod ve veriler çalışma belleğine uygun biçimde getirilir. Sonra bir giriş noktası (entry point), yani yürütmenin başlayacağı konuma kontrol aktarılır. Bölüm 7'deki atlama fikri burada bütün bir açılış aşamasını birbirine bağlar. UEFI de yürütülebilir görüntünün yüklenmesiyle giriş noktasına geçilmesini ayrı işler olarak tarif eder.2
Bir benzetme: duruşma salonunu hazırlamak, dosyaları masaya koymak ve hâkimin oturumu başlatması aynı eylem değildir. Hazırlık, sonraki işin şartlarını oluşturur. Önyükleyici “bütün kullanıcı programlarını artık ben yöneteceğim” demez; daha kapsamlı yöneticinin çalışacağı ortamı hazırlar. Benzetmenin sınırı da burada: bilgisayarda bu devir, gerçekten hangi makine komutlarının yürütüldüğünün değişmesidir.
Genel görev sırası; her platformun ayrıntılı kod listesi değil:
kalıcı ilk kod
↓ donanımı ve açılış ortamını hazırlar
sonraki aşamayı seçen/yükleyen kod
↓ işletim sisteminin gereken parçalarını hazırlar
işletim sistemi çekirdeği
↓ kendi hizmetlerini ve diğer sistem programlarını başlatır
kullanıcı programları
Bu okları ayrı işlemciler olarak düşünme. Aynı ana işlemci zaman içinde farklı kodlar çalıştırabilir. Gerçek bir platform ayrıca yardımcı işlemciler de başlatabilir; Apple silicon belgesi bunlara firmware yüklenen alt çekirdek ve denetleyici örnekleri verir. Şemamız ayrıntılı donanım topolojisini değil, “önceki aşama sonrakini hazırlar” görev ilişkisini gösteriyor.6
UEFI'deki açık devir sınırı
UEFI'nin ExitBootServices() çağrısı bu sınırı özellikle görünür yapar. İşletim sistemi yükleyicisi bu çağrıyı başarıyla tamamladıktan sonra UEFI'nin açılış servisleri sona erer ve sistemin devamından yükleyici/işletim sistemi sorumlu olur. Bundan “gömülü yazılımın bütün kodu yok olur” sonucu çıkmaz. UEFI, açılış servislerinden ayrı çalışma zamanı servisleri (runtime services) de tanımlar; uygun şartlarda işletim sistemi döneminde kullanılabilirler.2
Demek ki “firmware işletim sistemini başlatır ve sonra hiç yoktur” kullanışlı ama eksik bir kısa cümledir. Doğrusu: açılışta gereken bazı hizmetlerin ömrü biter, kaynakların yönetimi işletim sistemine geçer; tanımlı bazı firmware hizmetleri kalabilir. Bunu bilmek sonraki bölümde işletim sisteminin yerini doğru kurmamızı sağlar. Çekirdek, her disk okumasını BIOS menüsüne soran bir program değildir.2
Prototipin ayrı HTML, CSS ve JavaScript dosyalarından oluşuyor. Makine açılırken UEFI bu HTML'i okuyup puan hesaplamaz. Önce platformun açılış zinciri, sonra işletim sistemi, ardından tarayıcı çalışır; tarayıcı bu dosyaları yorumlar. Aynı ayrım planlanan Expo + TypeScript uygulaması ve Go arka ucu için de geçerlidir: açılış yazılımı onların altında çalışma ortamını mümkün kılar. Bu, gerçek prototipin iç koduna ilişkin bir iddia değil, Bölüm 1'de kurduğumuz kat ilişkisidir.26
12.4 Apple silicon, telefonlar ve güvenli önyükleme
Şimdiye kadarki UEFI çizimini her cihaza yapıştırmayalım. Apple silicon Mac'in açılışı, UEFI kullanan sıradan bir PC'nin akışının yalnızca başka logolu hali değildir. Apple'ın belgesi, açılışın Boot ROM koduyla başladığını, ardından Low-Level Bootloader (LLB) ve iBoot aşamalarının geldiğini anlatır. Bu aşamalar yalnızca “sonrakini bul” demez; sonraki kod ve politika için denetimler de yapar.6
Güven zinciri: her aşama bir sonrakini denetler
Güvenli önyükleme (secure boot), başlatılan kodun kabul edilen güven politikasına uygunluğunu denetleyen açılış düzenidir. Güven zinciri (chain of trust) fikrinde ilk güvenilen kod, sonraki aşamayı denetler; o aşama da kendisinden sonrakini denetler. Her şey yalnızca “dosya var mı?” sorusuna bağlı olsaydı, değiştirilmiş bir dosya aynı isimle yerleştirildiğinde de çalıştırılabilirdi. Zincir, bu dosyanın kabul edilen kaynaktan ve beklenen bütünlükte olup olmadığını sormayı ekler.14
Dijital imza (digital signature), burada kodun yetkili bir anahtarla imzalanmış olduğunu ve imzalanan içeriğin değiştirilmediğini doğrulamada kullanılan kriptografik mekanizmadır. İmzalama için gizli anahtar, doğrulama için ona karşılık gelen açık anahtar kullanılır. Bu anahtarların matematiğine şimdi girmiyoruz; Bölüm 41'in güvenlik katına aitler. Buradaki ihtiyaç sadece şu: dosyanın ismini bilmek ile imzasını doğrulamak farklı güven düzeyleridir.4
Apple silicon Mac'te politika da açılışın parçası
Apple silicon Mac'te LLB, sonraki firmware parçalarının imzalarını denetler ve LocalPolicy adlı yerel politika dosyasını yükler. Bu dosya, kullanıcının yetkili biçimde seçtiği açılış ve çalışma güvenliği ayarlarını temsil eder; belirli cihazın Secure Enclave'i içindeki anahtarla imzalanır. Secure Enclave (Secure Enclave), bu bağlamda güvenlik işlemlerini yürüten ayrı korumalı alt sistemdir; ayrıntılı mimarisini bu bölümde açmıyoruz.6
LLB'den sonra iBoot da sonraki parçaları hazırlar ve doğrulama yapar. Apple belgesi Boot Kernel Collection'ın belleğe yerleştirilmesini ve imzalı sistem biriminin bütünlüğüne ilişkin denetimleri de anlatır. Şimdilik bu özel dosya adlarını ezberleme. Ortak fikir şu: doğrulanan nesne yalnızca tek bir işletim sistemi dosyası olmayabilir; o dosyanın hangi güvenlik politikası altında çalışacağı da korunabilir. Bunun PC UEFI menüsündeki her seçenekle birebir aynı sistem olduğunu varsaymıyoruz.6
Telefon örneğini de sınırlarıyla okuyalım
Apple'ın iPhone ve iPad belgesinde Boot ROM'un üretimde yerleştirilmiş değişmez kodu donanımsal güven kökü (hardware root of trust) olarak adlandırılır. Boot ROM, iBoot'un Apple tarafından imzalandığını doğrulamak için gereken açık anahtarı içerir. iBoot görevini bitirince işletim sistemi çekirdeğini doğrular ve çalıştırır. Belge, bazı eski işlemcilerde araya LLB aşaması girdiğini de açıkça ayırır. Bu yüzden tek bir cihazın aşama sayısını bütün telefonlar için kural yapmıyoruz.1
Apple iPhone/iPad için sadeleştirilmiş güven ilişkisi:
Boot ROM ── doğrular ──► iBoot ── doğrular ──► çekirdek
Bu bir iPhone/iPad örneğidir.
Eski donanımda ek aşama bulunabilir; bütün telefonların şeması değildir.
Doğrulama başarısız olduğunda sistemin normal açılışa devam etmemesi, bu mekanizmanın bilerek koyduğu sınırdır. Apple belgeleri aşamaya ve donanıma göre kurtarma ortamına veya farklı kurtarma kiplerine geçildiğini anlatır. Buradan kullanıcıya “şu ayarı kapat” tavsiyesi üretmiyoruz. Hata mesajının hangi aşamayı söylediğini öğrenmek ile güvenlik politikasını değiştirmek ayrı kararlardır.16
İmza doğrulaması, kabul edilen kodun kaynağı ve bütünlüğü hakkında denetim yapar. Dosyanın içeriğini herkesten gizlemek ise şifrelemenin başka hedefidir. İmzalanmış yazılımın mantık hatası bulunmadığı da bu denetimden çıkmaz: “kim imzaladı, imzadan beri değişti mi?” sorularıyla “bu program her girdide doğru mu?” farklıdır. Güvenli önyükleme puan hesabının adil olduğunu, kullanıcının dürüst olduğunu veya uygulamanın bütün açıklarının kapandığını kanıtlamaz. Kaynakta açıklanan güvenceyi, açıklanmayan güvenceye genişletmiyoruz.4
Bölüm 6'da işlemci komutları yürütüyordu. Bölüm 7'de komutların da bit olduğunu öğrendik. Bölüm 8'de kalıcı depolamayla çalışma belleğini ayırdık. Bu bölüm o üç fikre başlangıç ekledi: elektrik verilince ilk kod bulunur, donanım ve sonraki kod hazırlanır, gerekli denetimler yapılır, çekirdeğe geçilir. “Bilgisayar açıldı” diye tek kelimeyle anlattığımız olay, birden çok yazılımın sırayla sorumluluk almasıdır.
Şimdi Bölüm 13'ün sorusuna hazırız: Bu kadar hazırlıkla başlatılan işletim sistemi, açılış bittikten sonra neden hâlâ gerekli?
Bu bölümde neler kuruldu
Gömülü yazılım da yazılımdır; başlangıç düzenindeki yeri ve donanıma yakın göreviyle ayrılır. ROM ve güncellenebilir depolama aynı şey değildir. BIOS tabanlı bir sistem başlangıç testleri yapabilir; UEFI ortak açılış hizmetleri ve yükleyici seçimi tanımlar. Önyükleyici işletim sisteminin başlamasını hazırlar ve yürütmeyi devreder. Apple’ın güven zinciri Boot ROM’dan sonraki bileşenleri doğrular; imza denetimi şifreleme veya mantıksal hatasızlık ispatı değildir.
Terimler sözlükte, Bölüm 12 başlığı altında.
Birincil kaynak: UEFI Forum, Overview, özellikle UEFI OS Loaders, UEFI Services ve Runtime Services. Derinleşme: Apple Platform Security’nin Boot process for a Mac with Apple silicon ve Boot process for iPad and iPhone devices başlıkları.
Takıldığın yeri yapay zekâ öğretmenine sor. Ondan “kalıcı yerde bulunma, belleğe yüklenme, doğrulanma, çalıştırılma” adımlarını ayrı kutularla çizmesini iste; sonra hangi okun kime kontrol verdiğini sen anlat.
Bölüm sonu soruları
Önce kitaba bakmadan cevapla. Geri bildirimdeki bağlantıyla düşünceni denetle.
Örnek cevabı göster
İlk kod donanımın başlangıç düzeninden çalışır. Platformu ve açılış ortamını hazırlar, uygun sonraki aşama seçilir. Önyükleyici işletim sistemi çekirdeğinin başlaması için gerekenleri hazırlar ve kontrolü devreder. İşletim sistemi çalışma hizmetlerini kurar; tarayıcı bundan sonra HTML, CSS ve JavaScript ile ilgilenir. UEFI menüsü quizin ilk yürütme ortamı değildir. Bkz. 12.3.
Örnek cevabı göster
Güvenli önyükleme kabul edilen kodun güven zinciri içinde doğrulanmasıyla ilgilidir. Puan kuralının mantıksal doğruluğu ayrıca incelenir. İçeriğin gizlenmesi de ayrı bir şifreleme hedefidir; imza doğrulaması bunların ikisini kendiliğinden garanti etmez. Bkz. 12.4.
Kaynaklar
- Apple Platform Security — Boot process for iPad and iPhone devices: Boot ROM, donanımsal güven kökü, iBoot, çekirdek doğrulama ve eski donanımda ek aşama ayrımı.
- UEFI Forum, UEFI Specification — Overview (resmî metin deposu): Boot Manager, UEFI Images, UEFI OS Loaders, Boot Services ve Runtime Services. Resmî HTML sitesi erişim engeli verdiği için aynı kurumun yazılı kaynak metni kullanıldı.
- UEFI Forum, UEFI Specification — Boot Manager: Önyükleme seçenekleri, BootOrder, yükleyici seçimi ve sonraki aşamanın yüklenmesi.
- UEFI Forum, UEFI Specification — Secure Boot and Driver Signing: UEFI Driver Signing Overview; Digital Signatures. Kaynağın ve bütünlüğün imzayla doğrulanması.
- HP/Compaq Notebook PC Service Manual — Power-On Self-Test; Updating the Notebook’s BIOS: BIOS tabanlı örnek sistemde açılış testleri, hata kodlarının modele bağlılığı, BIOS çipinin yeniden programlanması. Bu tarihsel modelin servis işlemleri bütün cihazlar için önerilmiyor.
- Apple Platform Security — Boot process for a Mac with Apple silicon: Boot ROM, LLB, LocalPolicy, iBoot ve çekirdek koleksiyonunun hazırlanması; politikaların da doğrulama kapsamına girmesi.