Gerçek mod - Real mode

Gerçek mod olarak da adlandırılan, gerçek adres modu , her bir çalışma modudur x86 uyumlu bir CPU . Mod, adını gerçek moddaki adreslerin her zaman bellekteki gerçek konumlara karşılık geldiği gerçeğinden alır. Gerçek mod, 20 bitlik bölümlere ayrılmış bellek adres alanı (tam olarak 1 MB adreslenebilir bellek sağlar) ve tüm adreslenebilir belleğe, G / Ç adreslerine ve çevresel donanımlara sınırsız doğrudan yazılım erişimi ile karakterize edilir. Gerçek mod, bellek koruması, çoklu görev veya kod ayrıcalığı seviyeleri için destek sağlamaz.

Korumalı modu tanıtan 80286'nın piyasaya sürülmesinden önce, x86 CPU'lar için kullanılabilen tek mod gerçek moddu; ve geriye dönük uyumluluk için , tüm x86 CPU'lar sıfırlandığında gerçek modda başlar, ancak diğer modlarda başlarken diğer sistemlerde gerçek modu taklit etmek mümkündür.

Tarih

286 mimarisi , (diğer şeylerin yanı sıra) donanım düzeyinde bellek korumasına izin veren korumalı modu tanıttı . Ancak bu yeni özelliklerin kullanılması, korumalı mod için özel olarak tasarlanmış yeni bir işletim sistemi gerektiriyordu. X86 mikroişlemcilerin birincil tasarım özelliği, kendilerinden önceki tüm x86 yongaları için yazılan yazılımla tam olarak geriye dönük uyumlu olmaları olduğundan, 286 yongası 'gerçek modda' yani yeni belleği kapatan bir modda başlayacak şekilde yapılmıştır. koruma özellikleri, böylece 8086 ve 8088 için yazılmış işletim sistemlerini çalıştırabilir . 2018 itibariyle, mevcut x86 CPU'lar ( x86-64 CPU'lar dahil ) gerçek mod işletim sistemlerini önyükleyebilir ve hemen hemen tüm önceki x86 yongaları için yazılmış yazılımları öykünme veya sanallaştırma olmadan çalıştırabilir.

IBM'in tanıttığı PC BIOS'u, DOS işletim sistemleri ( MS-DOS , DR-DOS , vb.) Gibi gerçek modda çalışır . Microsoft Windows'un ilk sürümleri gerçek modda çalışıyordu. Windows / 386 , korumalı moddan bir miktar yararlanmayı mümkün kıldı ve bu, gerçek modda çalışabilen veya Windows / 386 gibi korumalı modu kullanabilen Windows 3.0'da daha tam olarak gerçekleştirildi . Windows 3.0 aslında birkaç moda sahipti: "gerçek mod", "standart mod" ve "386 gelişmiş mod", ikincisi 80386 işlemcinin sanallaştırma özelliklerinden bazılarını gerektirdi ve bu nedenle bir 80286 üzerinde çalışmıyordu. Windows 3.1 desteği kaldırdı. gerçek mod için ve en az 80286 işlemci gerektiren ilk genel işletim ortamıydı. Bu sürümlerin hiçbiri, yalnızca belirli işlevler için korumalı moda geçtiklerinden, modern bir x86 işletim sistemi olarak kabul edilemez. Unix , Linux , OS / 2 , Windows NT 3.x ve daha sonra Windows NT, vb., Başlangıçta CPU'yu korumalı moda geçirdikleri, asla gerçek moda dönmedikleri ve korumalı modun tüm avantajlarını sağladıkları için modern işletim sistemleri olarak kabul edilir. tüm zamanların. 64 bit işletim sistemleri gerçek modu yalnızca başlangıç ​​aşamasında kullanır ve işletim sistemi çekirdeği CPU'yu uzun moda geçirir . 80286'nın korumalı modunun, 80386 ile sunulan geliştirilmiş korumalı moddan önemli ölçüde daha ilkel olduğunu belirtmek gerekir; ikincisi bazen 386 korumalı mod olarak adlandırılır ve modern 32 bit x86 işletim sistemlerinin çalıştığı moddur.

Adresleme kapasitesi

8086, 8088 ve 80186, 20 bitlik bir adres veriyoluna sahiptir, ancak Intel'in bu işlemciler için seçtiği sıra dışı bölümlere ayrılmış adresleme şeması, aslında 21 önemli bite sahip olabilen etkili adresler üretir. Bu şema, 16 bitlik bir adres ofseti eklemeden önce 16 bitlik bir segment numarasını dört bit bırakarak (en az önemli dört sıfırla 20 bitlik bir sayı yaparak) kaydırır; maksimum toplam, hem segment hem de uzaklık 0xFFFF olduğunda oluşur ve 0xFFFF0 + 0xFFFF = 0x10FFEF sonucunu verir. 8086, 8088 ve 80186'da, 20 biti aşan etkili bir adresin sonucu, adresin adres aralığının sıfır ucuna "sarılması", yani modulo 2 ^ 20 (2 ^ 20 = 1048576) alınmasıdır. = 0x100000). Bununla birlikte, 80286, 24 adres bitine sahiptir ve gerçek modda bile 24 bit için etkili adresleri hesaplar. Bu nedenle, 0xFFFF segmenti ve 0x000F'den büyük uzaklık için, 80286 aslında belleğin ikinci megabaytının başlangıcına bir erişim sağlarken, 80186 ve öncesi, [offset] -0x10'a eşit bir adrese erişir. ilk megabaytın başlangıcı. (80186 ve öncesinde, adres alanının 0 adresinden başlayan ilk kilobaytının , kesme vektör tablosunun kalıcı, taşınmaz konumu olduğunu unutmayın.) Yani, 80286 ve sonraki x86 CPU'ları tarafından adreslenebilen gerçek bellek miktarı gerçek modda 1 MB + 64 KB - 16 B = 1.114.096 B.

A20 hattı

80286'dan önceki bazı programlar, sarmalama (modulo) bellek adresleme davranışından yararlanmak üzere tasarlandı, bu nedenle 80286, geriye dönük uyumluluk için bir sorun ortaya koydu. 21. adres hattını (çipten çıkan gerçek mantık sinyali kablosu) bir sıfırı temsil eden düşük bir mantıksal değere zorlamak, önceki işlemcilerin adres aritmetiğiyle eşleşecek bir modulo-2 ^ 20 efekti ile sonuçlanır, ancak 80286'nın dahili bu işlevi gerçekleştirme yeteneği. IBM, 80286'yı IBM PC / AT'sinde kullandığında, 80286'daki A20 pini ile sistem veriyolu arasındaki A20 adres hattını etkinleştirmek veya devre dışı bırakmak (sıfıra zorlamak) için yazılımla ayarlanabilen bir geçit ekleyerek bu sorunu çözdüler; bu, Gate-A20 (A20 kapısı) olarak bilinir ve günümüzde hala PC yonga setlerinde uygulanmaktadır. IBM- / MS-DOS için HIMEM.SYS genişletilmiş bellek sürücüsünün çoğu sürümü, Gate-A20'yi kontrol etmek ve onu programların ihtiyaçlarına göre koordine etmek için bir yazılım parçası olan bir "A20 işleyicisi" yüklediklerini bildiren bir ileti yükledikten sonra ünlü bir şekilde görüntülenir . Korumalı modda, A20 hattının etkinleştirilmesi gerekir, aksi takdirde fiziksel adresleme hataları meydana gelir ve muhtemelen sistem çökmesine neden olur. Modern eski önyükleme yükleyicileri ( GNU GRUB gibi ) A20 hattını kullanır.

Gerçek moda geçiliyor

Intel, onu kullanan işletim sistemlerinin tamamen yeni modda çalışması ve korumalı mod işletim sistemi altında çalışan tüm programların da korumalı modda çalışması amacıyla x86 ailesine korumalı modu ekledi. Gerçek mod ve hatta oldukça sınırlı 286 korumalı mod arasındaki önemli farklar nedeniyle, gerçek mod için yazılan programlar yeniden yazılmadan korumalı modda çalışamaz. Bu nedenle, kullanıcıların bağlı olduğu mevcut gerçek mod uygulamalarının geniş bir tabanıyla, gerçek modun terk edilmesi endüstri için sorun yarattı ve programcılar modlar arasında istedikleri zaman geçiş yapmanın bir yolunu aradılar. Ancak Intel, işlemcinin kullanımına yönelik niyetleriyle tutarlı olarak, 80286'da korumalı moda geçmenin kolay bir yolunu sağladı, ancak gerçek moda geri dönmenin kolay bir yolunu bulamadı. 386'dan önce korumalı moddan gerçek moda geçmenin tek yolu işlemciyi sıfırlamaktı; Bir sıfırlamadan sonra, önceki x86 CPU'larla 8086'ya kadar uyumlu olmak için her zaman gerçek modda başlar. İşlemcinin sıfırlanması, sistemin RAM'ini temizlemez, bu nedenle bu, garip ve verimsiz olsa da, aslında mümkündür. Korumalı moddan, işlemcinin durumu belleğe kaydedilir, ardından işlemci sıfırlanır, gerçek modda yeniden başlatılır ve kaydedilen durumu bellekten geri yüklemek için bazı gerçek mod kodunu yürütür. Daha sonra program korumalı moda geri dönmeye hazır olana kadar diğer gerçek mod kodunu çalıştırabilir. Gerçek moda geçiş, zaman açısından maliyetlidir, ancak bu teknik, korumalı mod programlarının tamamen gerçek modda çalışan (orijinal olarak 8088 tabanlı IBM Kişisel Bilgisayar modeli (makine türü) için tasarlanmış olan BIOS gibi hizmetleri kullanmasına izin verir ) 5150). Bu mod değiştirme tekniği, korumalı mod programlarının DOS altında çalışmasına izin vermek için DPMI (gerçek, öykünmemiş , DOS altında) ve DOS / 4GW gibi DOS genişleticiler tarafından kullanılan bir tekniktir ; DPMI sistemi veya DOS genişletici, DOS veya BIOS çağrılarını başlatmak için gerçek moda geçer, ardından korumalı modda çalışan uygulama programına geri dönmek için geri döner.

Reddet

NT çekirdeğine doğru değişiklik, işletim sisteminin bilgisayarı başlatmak için DOS'a ihtiyaç duymaması ve kullanamamasıyla sonuçlandı. Bilgisayarı gerçek modda yeniden başlatma ihtiyacı MS-DOS , Windows ME'de artık desteklenmeyene kadar Windows 3.1x'ten sonra azaldı . Windows'un daha yeni sürümlerinden gerçek mod gerektiren DOS uygulamalarını şu anda çalıştırmanın tek yolu, DOSBox veya x86 sanallaştırma ürünleri gibi öykünücüler kullanmaktır .

Ayrıca bakınız

Referanslar

Dış bağlantılar