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 · Neye dayanıyor

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.

  1. Kat 10Bizim hukuk uygulamamızSorular, puan, seri ve sıralama: üstteki amaç.
  2. Kat 9Tarayıcı ve webHTML, CSS, JavaScript: Bölüm 20, 23–26.
  3. Kat 8Ağ ve internetMakineler arasında iletişim: Bölüm 19–20.
  4. Kat 7İşletim sistemiKaynaklar, süreçler, bellek ve dosyalar: Bölüm 13–18.
  5. Kat 6Gömülü yazılım ve açılışİlk koddan işletim sistemine geçiş: Bölüm 12.
  6. Kat 5Diller, derleyici ve veri düzeniC ile tarif, adres ve algoritma: Bölüm 9–11.
  7. Kat 4Makine dili ve assemblyBitlerden oluşan işlemci komutları: Bölüm 7.
  8. 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çaBu 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 cihazdaki bütün kalıcı kod aynı parça 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örevHenü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

Uygulamamızda · index.html açılış zincirinin ilk kodu değil

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, şifreleme ve hatasızlık aynı şey değildir

İ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–8 ile bağlantı · Merdivendeki eksik başlangıç

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 okuma

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.

1. İşletim sistemi başlamadan ilk açılış kodu nasıl çalışabilir?
İlk aşama, önceden çalışan bir işletim sistemi gerektirmeyen başlangıç düzeninden gelir; Boot ROM somut örnektir. Bkz. 12.1.
2. Boot ROM ile güncellenebilir firmware arasındaki doğru ayrım nedir?
Apple Boot ROM değişmezdir; bu, bütün firmware parçalarının güncellenemez olduğu anlamına gelmez. Bkz. 12.1.
3. UEFI esas olarak hangi ilişkiyi düzenler?
UEFI bir ortak açılış ortamı ve arayüz tanımlar; yalnızca ayar menüsünün görünümü değildir. Bkz. 12.2.
4. POST sonucunu yorumlarken hangi yaklaşım doğrudur?
HP belgesi her mesajın arıza olmadığını ve tanının doğrulanmasını söyler; kodlar evrensel değildir. Bkz. 12.2.
5. Önyükleyicinin temel görevi hangisidir?
Önyükleyici çalışma ortamını ve işletim sisteminin başlangıcını hazırlar; uygulama kuralını hesaplamaz. Bkz. 12.3.
6. ExitBootServices() başarıyla tamamlanınca hangi ayrım önemlidir?
Açılış servislerinin sonu, çalışma zamanı servislerinin de tamamen yok olduğu anlamına gelmez. Bkz. 12.3.
7. Apple silicon açılışını anlatırken hangi cümle daha doğrudur?
Apple belgesi LLB, LocalPolicy ve iBoot ilişkilerini anlatır; PC UEFI şemasını birebir taşımayız. Bkz. 12.4.
8. Dijital imzanın doğrulanması tek başına neyi göstermez?
Kaynak ve bütünlük denetimi, programın bütün girdilerde mantıksal olarak doğru olduğunun ispatı değildir. Bkz. 12.4.
9. Bilgisayarın açılmasından tarayıcıda prototipinin görünmesine kadar görev sırasını, firmware ile önyükleyiciyi ayırarak anlat.
Ö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.

10. “Güvenli önyükleme var, demek uygulamadaki bütün puanlar doğru ve bütün veriler şifreli” iddiasında hangi iki sıçrama var?
Ö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

  1. 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ı.
  2. 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ı.
  3. UEFI Forum, UEFI Specification — Boot Manager: Önyükleme seçenekleri, BootOrder, yükleyici seçimi ve sonraki aşamanın yüklenmesi.
  4. 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ı.
  5. 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.
  6. 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.