Koruma halkası - Protection ring

İçin ayrıcalık halkaları x86 uygun korumalı mod

İçinde bilgisayar Bilimi, hiyerarşik koruma etki alanları,[1][2] sık sık aradı koruma halkaları, verileri ve işlevselliği hatalardan koruyan mekanizmalardır (geliştirerek hata toleransı ) ve kötü niyetli davranış (sağlayarak bilgisayar Güvenliği ). Bu yaklaşım, tamamen zıttır. yeteneklere dayalı güvenlik.[kaynak belirtilmeli ]

Bilgisayar işletim sistemleri, kaynaklara farklı düzeylerde erişim sağlar. Koruma halkası, iki veya daha fazla hiyerarşik halkadan biridir seviyeleri veya katmanlar nın-nin ayrıcalık mimarisi içinde bilgisayar sistemi. Bu genellikle bazıları tarafından donanım tarafından İşlemci mimariler farklı sağlayan CPU modları donanımda veya mikro kod seviye. Yüzükler, en ayrıcalıklı (en güvenilir, genellikle sıfır numaralı) ile en az ayrıcalıklı (en az güvenilen, genellikle en yüksek zil numarası) arasında bir hiyerarşi içinde düzenlenir. Çoğu işletim sisteminde Ring 0, en fazla ayrıcalığa sahip düzeydir ve en çok doğrudan CPU ve bellek gibi fiziksel donanımla etkileşime girer.

Rasgele kullanıma izin vermek yerine, bir dış halkanın bir iç halkanın kaynaklarına önceden tanımlanmış bir şekilde erişmesine izin vermek için halkalar arasında özel kapılar sağlanmıştır. Halkalar arasında doğru şekilde geçitleme, bir halka veya ayrıcalık düzeyindeki programların, diğerindeki programlar için tasarlanmış kaynakları kötüye kullanmasını önleyerek güvenliği artırabilir. Örneğin, casus yazılım Ring 3'te bir kullanıcı programı olarak çalıştırmanın, kullanıcıyı bilgilendirmeden bir web kamerasını açması engellenmelidir, çünkü donanım erişimi bir Ring 1 işlevi olmalıdır. aygıt sürücüleri. Daha yüksek numaralı halkalarda çalışan web tarayıcıları gibi programlar, daha düşük numaralı bir halkayla sınırlı bir kaynak olan ağa erişim talep etmelidir.

Uygulamalar

Birden fazla koruma halkası, dünyanın en devrimci kavramları arasındaydı. Multics işletim sistemi, günümüzün oldukça güvenli öncülü Unix işletim sistemleri ailesi. GE 645 ana bilgisayar bilgisayarında bazı donanım erişim denetimi vardı, ancak bu donanımdaki halkalar için tam destek sağlamak için yeterli değildi, bu nedenle Multics yazılımdaki halka geçişlerini yakalayarak bunları destekledi;[3] halefi Honeywell 6180, bunları sekiz halka desteğiyle donanımda uyguladı.[4] Bununla birlikte, çoğu genel amaçlı sistem, üzerinde çalıştıkları donanım daha fazlasını sağlasa bile yalnızca iki halka kullanır. CPU modları Daha. Örneğin, Windows 7 ve Windows Server 2008 (ve önceki sürümleri) yalnızca iki zil kullanır; 0 halkası çekirdek modu ve 3'ü ara Kullanıcı modu,[5] çünkü Windows'un önceki sürümleri yalnızca iki koruma düzeyini destekleyen işlemcilerde çalışıyordu.[6]

Birçok modern CPU mimarisi (popüler Intel x86 mimari) bir tür halka koruması içerir, ancak Windows NT Unix gibi işletim sistemi bu özelliği tam olarak kullanmaz. OS / 2 üç yüzük kullanarak bir dereceye kadar yaptı:[7] Çekirdek kodu ve aygıt sürücüleri için 0'ı, ayrıcalıklı kod için 2'yi (G / Ç erişim izinlerine sahip kullanıcı programları) ve ayrıcalıksız kod için 3'ü (neredeyse tüm kullanıcı programları) çalın. Altında DOS, çekirdek, sürücüler ve uygulamalar tipik olarak 3. halka üzerinde çalışır (ancak bu, korumalı mod sürücülerinin ve / veya DOS genişleticilerin kullanıldığı durum için özeldir; gerçek mod işletim sistemi olarak, sistem etkili bir şekilde korumasız çalışır), 386 bellek yöneticisi gibi EMM386 0 halkasında çalıştırın. Buna ek olarak, DR-DOS 'EMM386 3.xx isteğe bağlı olarak bazı modülleri çalıştırabilir (örn. DPMS ) bunun yerine 1. halkaya. OpenVMS Çekirdek, Yönetici, Süpervizör ve Kullanıcı adı verilen (azalan ayrıcalık sırasına göre) dört mod kullanır.

Bu tasarım yapısına yenilenen ilgi, Xen VMM yazılım, devam eden tartışma açık monolitik vs. mikro çekirdekler (Özellikle de Usenet haber grupları ve Web forumları ), Microsoft'un Yüzük-1 tasarım yapısının bir parçası olarak NGSCB girişim ve hipervizörler gömülü aygıt yazılımı gibi Intel VT-x (eski adıyla Vanderpool).

Orijinal Multics sisteminde sekiz halka vardı, ancak birçok modern sistemde daha az halka vardı. Donanım, yürütme talimatının mevcut halkasının farkında kalır Konu her zaman, özel bir makine sicilinin yardımıyla. Bazı sistemlerde, sanal bellek bunun yerine donanımda zil numaraları atanır. Bir örnek, Veriler Genel Eclipse MV / 8000, içinde ilk üç bitin program sayacı (PC) halka sicil olarak görev yaptı. Bu nedenle, örneğin 0xE200000 olarak ayarlanan sanal PC ile çalıştırılan kod otomatik olarak 7 halkasında olacaktır ve hafızanın farklı bir bölümündeki bir alt rutini çağırmak otomatik olarak bir halka transferine neden olacaktır.

Donanım, kontrolün bir zilden diğerine geçme yollarını ciddi şekilde kısıtlar ve ayrıca halkalar arasında gerçekleştirilebilen bellek erişimi türleri üzerinde kısıtlamalar uygular. Örnek olarak x86 kullanıldığında, özel bir[açıklama gerekli ] kapı tarafından atıfta bulunulan yapı telefon etmek kontrolü güvenli bir şekilde aktaran talimat[açıklama gerekli ] alt düzey (daha güvenilir) halkalardaki önceden tanımlanmış giriş noktalarına doğru; bu bir gözetmen çağrısı halka mimarisini kullanan birçok işletim sisteminde. Donanım kısıtlamaları, yanlışlıkla veya kötü niyetli güvenlik ihlalleri için fırsatları sınırlamak üzere tasarlanmıştır. Ek olarak, en ayrıcalıklı halkaya özel yetenekler verilebilir (sanal bellek donanımını atlayan gerçek bellek adresleme gibi).

KOL v7 mimarisi üç ayrıcalık düzeyi uygular: uygulama, işletim sistemi ve hiper yönetici. Alışılmadık bir şekilde, seviye 0 (PL0) en az ayrıcalıklı seviyedir, seviye 2 (PL2) ise en ayrıcalıklı (hipervizör) seviyedir.[8]

Halka koruması aşağıdakilerle birleştirilebilir: işlemci modları (ana / çekirdek / ayrıcalıklı /gözetmen modu bazı sistemlerde köle / ayrıcalıksız / kullanıcı modu). Her ikisini de destekleyen donanım üzerinde çalışan işletim sistemleri, her iki koruma biçimini veya yalnızca birini kullanabilir.

Halka mimarisinin etkili kullanımı, donanım ve işletim sistemi arasında yakın işbirliği gerektirir[neden? ]. Birden çok donanım platformunda çalışmak üzere tasarlanmış işletim sistemleri, desteklenen her platformda mevcut değilse yalnızca sınırlı sayıda halka kullanabilir. Donanım halkalar aracılığıyla daha ince ayrıntı düzeyi sağlasa bile, güvenlik modeli genellikle "çekirdek" ve "kullanıcı" olarak basitleştirilir.

Modları

Süpervizör modu

Bilgisayar açısından, gözetmen modu sistem düzeyinde yazılımda çalıştırılan kodla değiştirilebilen donanım aracılı bir bayraktır. Sistem düzeyindeki görevler veya iş parçacıkları çalışırken bu bayrak ayarlanır, ancak kullanıcı alanı uygulamaları olmayacaktır. Bu bayrak, çeşitli tanımlayıcı tablolar için kayıtların değiştirilmesi veya kesintilerin devre dışı bırakılması gibi işlemlerin gerçekleştirilmesi gibi makine kodu işlemlerinin gerçekleştirilip gerçekleştirilemeyeceğini belirler. Çalışmak için iki farklı moda sahip olma fikri "daha fazla kontrol ile daha fazla sorumluluk getirir" den gelir - denetleyici modundaki bir programın asla başarısız olmayacağına güvenilir, çünkü bir arıza tüm bilgisayar sisteminin çökmesine neden olabilir.

Denetleyici modu, "bazı işlemcilerde ayrıcalıklı talimatlar da dahil olmak üzere tüm talimatların yürütülmesini sağlayan bir yürütme modudur. Ayrıca farklı bir adres alanına, bellek yönetimi donanımına ve diğer çevre birimlerine erişim sağlayabilir. Bu, işletim sisteminin içinde bulunduğu moddur. genellikle çalışır. "[9]

Monolitik bir çekirdek, işletim sistemi gözetmen modunda çalışır ve uygulamalar kullanıcı modunda çalışır. Diğer türleri işletim sistemleri, olanlar gibi ekzokernel veya mikro çekirdek, bu davranışı mutlaka paylaşmayın.

PC dünyasından bazı örnekler:

  • Linux, Mac os işletim sistemi ve pencereler gözetmen / kullanıcı modunu kullanan üç işletim sistemidir. Özel işlevleri gerçekleştirmek için, kullanıcı modu kodunun bir sistem çağrısı denetleyici moduna veya hatta işletim sisteminin güvenilir kodunun gerekli görevi yerine getireceği ve yürütmeyi kullanıcı alanına geri döndüreceği çekirdek alanına. Çekirdek boşluğuna ek kod eklenebilir. yüklenebilir çekirdek modülleri, ancak bu kod, kullanıcı modunun erişim kontrolü ve güvenlik sınırlamalarına tabi olmadığından yalnızca gerekli izinlere sahip bir kullanıcı tarafından.
  • DOS (386 hafıza yöneticisi olmadığı sürece EMM386 yüklenir) yanı sıra diğer basit işletim sistemleri ve birçok gömülü aygıt sürekli olarak gözetmen modunda çalışır, bu da sürücülerin doğrudan kullanıcı programları olarak yazılabileceği anlamına gelir.

Çoğu işlemcinin en az iki farklı modu vardır. x86 -işlemcilerin dört farklı çembere bölünmüş dört farklı modu vardır. Ring 0'da çalışan programlar şunları yapabilir: herhangi bir şey Sistem ve Ring 3'te çalışan kod, bilgisayar sisteminin geri kalanını etkilemeden herhangi bir zamanda başarısız olabilir. Ring 1 ve Ring 2 nadiren kullanılır, ancak farklı erişim seviyeleriyle yapılandırılabilir.

Mevcut sistemlerin çoğunda, kullanıcı modundan çekirdek moduna geçişin yüksek performans maliyeti vardır. Temel istek üzerine ölçülmüştür getpid, çoğu makinede 1000–1500 döngüye mal olacak. Bunların yaklaşık 100'ü gerçek anahtar içindir (70'i kullanıcıdan çekirdek alanına ve 40'ı geri), geri kalanı "çekirdek ek yükü" dür.[10][11] İçinde L3 mikro çekirdek Bu ek yükün en aza indirilmesi, toplam maliyeti yaklaşık 150 döngüye düşürdü.[10]

Maurice Wilkes şunu yazdı:[12]

... nihayetinde, halkaların sağladığı hiyerarşik korumanın sistem programcısının gereksinimlerine tam olarak uymadığı ve yalnızca iki moda sahip olan basit sistem üzerinde çok az gelişme sağladığı veya hiç iyileştirmediği anlaşıldı. Koruma halkaları, donanımda verimli bir şekilde uygulanmasına yardımcı oldu, ancak onlar için söylenecek çok az şey vardı. [...] Koruma halkalarının cevap vermediği görüldükten sonra bile ince taneli korumanın çekiciliği devam etti ... Bu yine çıkmaz bir sokak oldu ...

Performans ve belirleyicilik kazanmak için, bazı sistemler çekirdek modunda aygıt sürücüleri yerine uygulama mantığı olarak görülebilecek işlevleri yerleştirir; güvenlik uygulamaları (giriş kontrolu, güvenlik duvarları, vb.) ve işletim sistemi monitörleri örnek olarak gösterilmektedir. En az bir adet gömülü veritabanı yönetim sistemi, eXTremeDB Çekirdek Modu, özellikle çekirdek modu dağıtımı için, çekirdek tabanlı uygulama işlevleri için yerel bir veritabanı sağlamak ve bağlam anahtarları aksi halde çekirdek işlevleri, kullanıcı modunda çalışan bir veritabanı sistemiyle etkileşime girdiğinde meydana gelir.[13]

Ayrıca işlevler bazen diğer yöndeki halkalar arasında hareket ettirilir. Örneğin Linux çekirdeği, bir vDSO Normalde bir sistem çağrısı, yani zil geçişi gerektiren işlevleri içeren süreçlerdeki bölüm. Ancak, bir sistem çağrısı yapmak yerine, bu işlevler çekirdek tarafından sağlanan statik verileri kullanır ve bu, sistem çağrısından daha hafif olan bir halka geçişine olan ihtiyacı önler. Gettimeofday işlevi bu şekilde sağlanabilir.

Hiper yönetici modu

Intel ve AMD'nin sunduğu son CPU'lar x86 sanallaştırma için talimatlar hipervizör Ring 0 donanım erişimini kontrol etmek için. Karşılıklı olarak uyumsuz olsalar da, ikisi de Intel VT-x (kod adı "Vanderpool") ve AMD-V (kod adı "Pacifica") yeni bir "Ring -1" oluşturur, böylece bir konuk işletim sistemi diğer konukları veya ana işletim sistemini etkilemeden Ring 0 işlemlerini yerel olarak çalıştırabilir.

Sanallaştırmaya yardımcı olmak için VT ve Pacifica, Ring 0'ın altına yeni bir ayrıcalık seviyesi ekler. Her ikisi de, hipervizör tarafından kullanılması amaçlanan, yalnızca "Ring −1" de çalışan dokuz yeni makine kodu talimatı ekler.[14]

Ayrıcalık seviyesi

Bir ayrıcalık seviyesi içinde x86 komut seti İşlemci üzerinde o anda çalışan programın bellek bölgeleri, G / Ç bağlantı noktaları ve özel talimatlar gibi kaynaklara erişimini kontrol eder. En ayrıcalıklı olan 0'dan en az ayrıcalıklı olan 3'e kadar değişen 4 ayrıcalık düzeyi vardır. Çoğu modern işletim sistemi, çekirdek / yönetici için seviye 0'ı ve uygulama programları için seviye 3'ü kullanır. Seviye n için mevcut olan herhangi bir kaynak, 0'dan n'ye kadar olan seviyelerde de mevcuttur, bu nedenle ayrıcalık seviyeleri halkalardır. Daha az ayrıcalıklı bir süreç daha yüksek ayrıcalıklı bir sürece erişmeye çalıştığında, Genel koruma Hatası OS'ye istisna rapor edilir.

Dört ayrıcalık düzeyinin tümünü kullanmak gerekli değildir. Güncel işletim sistemleri dahil geniş pazar payı ile Microsoft Windows, Mac os işletim sistemi, Linux, iOS ve Android çoğunlukla bir sayfalama Yetki düzeyini Denetleyici veya Kullanıcı (U / S Bit) olarak belirlemek için yalnızca bir bit içeren mekanizma. Windows NT iki seviyeli sistemi kullanır.[15]8086'daki gerçek mod programları, seviye 0'da (en yüksek ayrıcalık seviyesi) yürütülürken, 8086'daki sanal mod, seviye 3'te tüm programları çalıştırır.[16]

X86 ISA ailesi tarafından desteklenen çoklu ayrıcalık düzeyleri için gelecekteki olası kullanımlar şunları içerir: konteynerleştirme ve Sanal makineler. Bir ana bilgisayar işletim sistemi çekirdeği, tam ayrıcalık erişimli talimatları kullanabilir (çekirdek modu ), bir sanal makinede veya kapsayıcıda konuk işletim sistemi üzerinde çalışan uygulamalar kullanıcı modunda en düşük ayrıcalık düzeylerini kullanabilir. Sanal makine ve konuk işletim sistemi çekirdeği, çağırmak için orta düzeyde bir talimat ayrıcalığı kullanabilir ve sanallaştırmak çekirdek modu işlemleri, örneğin sistem çağrıları konuk işletim sistemi açısından.[17]

IOPL

IOPL (I / O Ayrıcalık seviyesi) bayrak, tüm IA-32 uyumlu bir bayraktır. x86 CPU'lar. 12 ve 13 numaralı bitleri kaplar. BAYRAKLAR kaydı. İçinde korumalı mod ve uzun mod, mevcut programın veya görevin G / Ç ayrıcalık seviyesini gösterir. Görevin veya programın Mevcut Ayrıcalık Düzeyi (CPL) (CPL0, CPL1, CPL2, CPL3), görev veya programın erişebilmesi için IOPL'den küçük veya ona eşit olmalıdır. G / Ç bağlantı noktaları.

GİB, kullanılarak değiştirilebilir POPF (D) ve IRET (D) sadece geçerli ayrıcalık seviyesi Ring 0 olduğunda.

IOPL'nin yanı sıra, G / Ç Bağlantı Noktası İzinleri TSS'de ayrıca bir görevin bir G / Ç bağlantı noktasına erişme yeteneğinin belirlenmesinde yer alır.

Donanım özelliklerinin kullanımı

Birçok CPU donanım mimarisi, sistem tarafından kullanılandan çok daha fazla esneklik sağlar. işletim sistemleri normalde çalışırlar. Karmaşık CPU modlarının doğru kullanımı, işletim sistemi ile CPU arasında çok yakın işbirliği gerektirir ve bu nedenle işletim sistemini CPU mimarisine bağlama eğilimindedir. İşletim sistemi ve CPU özel olarak birbirleri için tasarlandığında, bu bir sorun değildir (ancak bazı donanım özelliklerinden yararlanılmamış olabilir), ancak işletim sistemi birden çok, farklı CPU mimarileriyle uyumlu olacak şekilde tasarlandığında büyük bir kısmı CPU modu özellikleri işletim sistemi tarafından göz ardı edilebilir. Örneğin, Windows'un yalnızca iki düzey kullanmasının nedeni (0 çalma ve 3 çalma), geçmişte desteklenen bazı donanım mimarilerinin (örneğin PowerPC veya MIPS ) yalnızca iki ayrıcalık düzeyi uyguladı.[5]

Multics özel bir CPU mimarisi için özel olarak tasarlanmış bir işletim sistemiydi (bu da Multics için özel olarak tasarlanmıştır) ve kullanabileceği CPU modlarından tam olarak yararlandı. Ancak bu, kuralın bir istisnasıydı. Günümüzde, işletim sistemi ve donanım arasındaki bu yüksek derecede birlikte çalışma, güvenlik ve istikrar açısından potansiyel avantajlara rağmen, genellikle uygun maliyetli değildir.

Nihayetinde, CPU için farklı çalışma modlarının amacı, yazılım tarafından sistem ortamının kazara veya kasıtlı olarak bozulmasına (ve buna karşılık gelen sistem güvenliği ihlallerine) karşı donanım koruması sağlamaktır. Sistem yazılımının yalnızca "güvenilen" bölümlerinin, çekirdek modunun sınırsız ortamında ve daha sonra, paradigmatik tasarımlarda, yalnızca kesinlikle gerekli olduğunda çalıştırılmasına izin verilir. Diğer tüm yazılımlar bir veya daha fazla kullanıcı modunda çalışır. Bir işlemci, bir kullanıcı modunda bir hata veya istisna koşulu oluşturursa, çoğu durumda sistem kararlılığı etkilenmez; Bir işlemci çekirdek modunda bir hata veya istisna durumu oluşturursa, çoğu işletim sistemi kurtarılamaz bir hata vererek sistemi durdurur. Bir mod hiyerarşisi mevcut olduğunda (halka tabanlı güvenlik), bir ayrıcalık düzeyindeki hatalar ve istisnalar yalnızca daha yüksek numaralı ayrıcalık düzeylerini kararsız hale getirebilir. Bu nedenle, Halka 0'daki (en yüksek ayrıcalığa sahip çekirdek modu) bir hata tüm sistemi çökertecektir, ancak Halka 2'deki bir hata yalnızca Halka 3 ve ötesini ve Halkanın kendisini en fazla etkileyecektir.

Modlar arasındaki geçişler, yürütmenin takdirine bağlıdır. Konu geçiş yüksek bir ayrıcalık düzeyinden düşük ayrıcalık düzeyine (çekirdekten kullanıcı modlarına olduğu gibi) olduğunda, ancak daha düşük ayrıcalık düzeylerinden daha yüksek ayrıcalık düzeylerine geçişler yalnızca içinden geçilen güvenli, donanım kontrollü "kapılar" aracılığıyla gerçekleşebilir. özel talimatların yürütülmesi veya harici kesintiler alındığında.

Mikro çekirdek işletim sistemleri, aşağıdaki amaçlarla ayrıcalıklı modda çalışan kod miktarını en aza indirmeye çalışır. güvenlik ve zarafet ama sonuçta performanstan ödün vermek.

Ayrıca bakınız

Referanslar

  1. ^ Karger, Paul A .; Herbert, Andrew J. (1984). "Kafes Güvenliğini ve Erişim İzlenebilirliğini Desteklemek İçin Artırılmış Bir Yetenek Mimarisi". 1984 IEEE Güvenlik ve Gizlilik Sempozyumu. s. 2. doi:10.1109 / SP.1984.10001. ISBN  0-8186-0532-4. S2CID  14788823.
  2. ^ Binder, W. (2001). "J-SEAL2 mobil ajan çekirdeğinin tasarımı ve uygulaması". Bildiriler 2001 Uygulamalar ve İnternet Sempozyumu. s. 35–42. doi:10.1109 / SAINT.2001.905166. ISBN  0-7695-0942-8. S2CID  11066378.
  3. ^ "Koruma Halkalarının Uygulanması için Donanım Mimarisi". Alındı 27 Eylül 2012.
  4. ^ "Multics Sözlüğü - halka". Alındı 27 Eylül 2012.
  5. ^ a b Russinovich, Mark E .; David A. Solomon (2005). Microsoft Windows Dahili Ürünleri (4 ed.). Microsoft Press. pp.16. ISBN  978-0-7356-1917-3.
  6. ^ Russinovich Mark (2012). Windows Dahili Bölüm 1. 6th Ed. Redmond, Washington: Microsoft Press. s. 17. ISBN  978-0-7356-4873-9. Windows'un yalnızca iki düzey kullanmasının nedeni, geçmişte desteklenen bazı donanım mimarilerinin (örneğin Compaq Alpha ve Silikon Grafik MIPS ) yalnızca iki ayrıcalık düzeyi uyguladı.
  7. ^ "OS / 2 için Sunum Aygıtı Sürücüsü Referansı - 5. OS / 2 Sunum Sürücülerine Giriş". Arşivlenen orijinal 15 Haziran 2015 tarihinde. Alındı 13 Haziran 2015.
  8. ^ "ARM Mimarisi 3.3.4: Ayrıcalık seviyeleri"
  9. ^ "gözetmen modu". FOLDOC. 15 Şubat 1995.
  10. ^ a b Jochen Liedtke. Μ-Kernel Yapısında, Proc. İşletim Sistemi İlkeleri Üzerine 15. ACM Sempozyumu (SOSP)Aralık 1995
  11. ^ Ousterhout, J. K. 1990. İşletim sistemleri neden donanım kadar hızlı olmuyor? Usenix Yaz Konferansı, Anaheim, CA, s. 247–256.
  12. ^ Maurice Wilkes (Nisan 1994). "Değişen dünyada işletim sistemleri". ACM SIGOPS İşletim Sistemleri İncelemesi. 28 (2): 9–21. doi:10.1145/198153.198154. ISSN  0163-5980. S2CID  254134.
  13. ^ Gorine, Andrei ve Krivolapov, Alexander. "Çekirdek Modu Veritabanları: Yüksek Performanslı Uygulamalar İçin Bir DBMS Teknolojisi", Dr. Dobb's Journal, Mayıs 2008.
  14. ^ Dornan, Andy (1 Kasım 2005). "Intel VT ve AMD Pacifica". CMP. Arşivlenen orijinal 30 Mayıs 2013 tarihinde. Alındı 11 Kasım 2012.
  15. ^ Russinovich, Mark E .; David A. Solomon (2005). Microsoft Windows Internals (4 ed.). Microsoft Press. s. 16. ISBN  978-0-7356-1917-3
  16. ^ Sunil Mathur, "Mikroişlemci 8086: Mimari, Programlama ve Arayüz", Eastern Economy Edition, PHI Learning
  17. ^ Anderson, Thomas; Dahlin, Michael (21 Ağustos 2014). "2.2". İşletim Sistemleri: İlkeler ve Uygulama (2. baskı). Yinelemeli Kitaplar. ISBN  978-0985673529.
  • Intel 80386 Programcı Referansı

daha fazla okuma