Windows NT tabanlı işletim sistemleri aygıtları nasıl ele alır?


9

Gibi gösterimle kafam karıştı

multi (0) disk (0) rdisk (0) partition (1) \ ...

ve

\ Cihaz \ Harddisk1 \ DR1
\ Aygıt \ Video0

Bu adresleri yalnızca Windows XP ve Windows 7 gibi Windows NT tabanlı işletim sistemleri bağlamında görüyorum. Bu adresler ne anlama geliyor ve sabit diskler, grafik bağdaştırıcıları, insan arabirim aygıtları (klavyeler) gibi aygıtları belirtmek için nasıl kullanılıyor? , fareler, vb.), ağ bağdaştırıcıları ve diğer donanımlar?


Onlara nerede ve nasıl başvurmayı planlıyorsunuz?
KCotreau

Bazen, bu adları kullanan cihazlarla ilgili mesajlar alıyorum. Anlamak istediğim, bu adreslerin ne anlama geldiği, bu gösterimleri kullanarak diğer cihazların nasıl ele alındığı ve bunun donanım tarafından doğrudan (mümkünse) erişmek için nasıl kullanılabileceği.
bwDraco

Linux, /devdonanıma doğrudan erişim sağlamak için düğümleri kullanır . Anlamak istediğim, Windows altındaki donanıma erişmek ve ona erişmek için benzer bir mekanizma gibi görünen şey.
bwDraco

Windows NT'den beri, bilgim dahilinde, Windows donanıma doğrudan erişmenize izin vermiyor. Kendini böyle korur. Windows 95/98 / ME ile herhangi bir programcı bunu yapabilir ve işletim sistemini kararsız hale getirmelerine izin verir. Çözüm, her şeyin çekirdekten geçmesini sağlamak ve yürütmenin güvenli olup olmadığına karar vermesine izin vermekti. Değilse, bir hata verebilir, ancak kendisini kötü programlamadan koruyabilir ... en azından daha büyük ölçüde.
KCotreau

@KCotreau: Bu doğru, ama alakasız. Şimdi çekirdeği sormalısınız. Ancak sabit disklerin böyle isimleri yoksa, çekirdeğe hiç soramazdınız. Hangi sabit diskten bahsettiğinizi bilemezsiniz.
MSalters

Yanıtlar:


9

Genel kanının aksine, Windows çekirdek gelmez bir köklü dosyası ( "dosya") sistemi var. * Nix'te, kök /ve Windows'da \. Win32 alt sistemi bunu açığa çıkarmaz. WinObj ile keşfedebilirsiniz .

Bazı (muhtemelen tanıdık) NT aygıt adları ( Mve Nyalnızca tamsayılardır):

  • \Device\HarddiskM\DRN: Diskler
  • \Device\HarddiskVolumeN: Bölmeler
  • \Device\CdRomNOptik disk sürücüler
  • \Device\KeyboardClassN: Klavyeler
  • \Device\MountPointManager: Bir cihaz değil, depolama cihazlarını takip eder
  • \Device\Null: Verileri yiyor ve sıfırlar (sıfırlar) çıkıyor

\Device\HardDisk1\DR1diskin Windows için gerçek adıdır ve eski - Windows'un aygıtlara nasıl atıfta bulunduğunu, ancak önyükleme yükleyicinin diski nasıl ifade ettiğini ilgilendirmez. Nasıl çalıştığı hakkında hiçbir fikrim yok ( bu sayfa bazı bölümlerini açıklıyor ), ancak önyükleme başladıktan sonra Windows'un kendisiyle ilgili olduğu bir şey değil. multi(0)disk(0)rdisk(0)partition(1)

Windows'un daha yeni sürümleri BCD, biçimi yerine kayıt defterine benzeyen bir dosya olan Önyükleme Yapılandırma Verileri'ni (BCD) kullanır Boot.ini. Genellikle sürücü harfleri veya dosya sistemi yolları yerine birimlere başvurmak için benzersiz tanımlayıcılar (GUID'ler) kullanır ve Windows'un daha yeni sürümleri bunu kullanır.


Depolama aygıtları (örneğin \Device\Video0) dışındaki donanımlar ne olacak ?
bwDraco

@DragonLord: ... ne olmuş? Ne demek istediğinden emin değilim.
user541686

Klavyelere, farelere, ağ bağdaştırıcılarına ve diğer aygıtlara atıfta bulunmak için hangi adlar kullanılır?
bwDraco

@DragonLord: İyi bir nokta, bunu ekleyeceğim. Sadece önyükleme yüklemesine odaklandım, sorunun daha genel olduğunu fark etmedim.
user541686

Bahsettiğiniz "köklü dosya sistemine" Nesne Yöneticisi ad alanı denir . Bunu WinObj bağlantısını tıkladıktan ve biraz araştırma yaptıktan sonra buldum. Windows NT'nin içeride nasıl çalıştığını merak uyandırıyor ...
bwDraco

1

Windows Vista, Windows 7 ve Server 2008'de BCD (Önyükleme Yapılandırma Veri deposu) tarafından geçersiz kılınan ilk satır, Windows XP veya Server 2003 için bir boot.ini dosyasından gelir ve kök dizinde bulunur Sistem sürücüsünün Bu, Windows'a önyüklemesi gereken sistem dosyalarını bulmak için nereye (hangi disk ve bölüm) gideceğini söyler.

"Multi" ve "rdisk" in ayrıntılı açıklaması için buraya bakın . Geri kalanı, disk 0'a baktığınız anlamına gelir (0'dan başlarlar ve oradan hareket ederler ve numaralarını disk yöneticisinde görebilirsiniz), bölüm 1 (disklerin aksine, bunlar 1'de numaralandırılır ve yukarı çıkar).

http://support.microsoft.com/kb/102873

Cihazların numaralandırılmasıyla ilgili olarak, başınızın patlamasını istiyorsanız burada açıklanan çok karmaşık bir programlama konusudur . Verdiğiniz biçim, cihazın kayıt defterinde donanım kimliği olarak nasıl ele alındığıdır.

Pratik bir konu olarak bu kayıt defteri anahtarına bakabilirsiniz

HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Enum

herhangi bir hatayı eşleştirmek için hatanın tam olarak hangi cihaza başvurabileceğini belirlemek için alt anahtarlardan birinde "donanım kimliği" değerine ulaşabilirsiniz.


1
Bölüm 4.2.7 Advanced RISC Computing Şartname , NetBSD Vakfı tarafından burada yayınlanamaz , ARC yolları hakkında kimsenin her şeyi anlatır.
JdeBP
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.