ระบบปฏิบัติการที่ใช้ Windows NT จะระบุอุปกรณ์ได้อย่างไร


9

ฉันสับสนกับสัญกรณ์เช่น

multi (0) disk (0) rdisk (0) พาร์ทิชั่น (1) \ ...

และ

\ Device \ HardDisk1 \ DR1
\ Device \ video0

ฉันเห็นที่อยู่เหล่านี้เฉพาะในบริบทของระบบปฏิบัติการที่ใช้ Windows NT เช่น Windows XP และ Windows 7 ที่อยู่เหล่านี้หมายถึงอะไรและพวกเขาใช้เพื่ออ้างถึงอุปกรณ์เช่นฮาร์ดดิสก์อะแดปเตอร์กราฟิกอุปกรณ์ต่อพ่วงของมนุษย์ (คีย์บอร์ด) , เมาส์, ฯลฯ ), อะแดปเตอร์เครือข่ายและฮาร์ดแวร์อื่น ๆ ?


คุณวางแผนที่จะอ้างอิงถึงที่ไหนและอย่างไร
KCotreau

บางครั้งฉันได้รับข้อความที่อ้างถึงอุปกรณ์ที่ใช้ชื่อเหล่านี้ สิ่งที่ฉันต้องการทำความเข้าใจคือความหมายของที่อยู่เหล่านี้ว่าอุปกรณ์อื่น ๆ ได้รับการแก้ไขอย่างไรโดยใช้สัญลักษณ์เหล่านี้และวิธีการที่แอปพลิเคชันนี้อาจใช้เพื่อเข้าถึงฮาร์ดแวร์โดยตรง (ถ้าเป็นไปได้)
bwDraco

Linux ใช้/devโหนดเพื่ออนุญาตการเข้าถึงฮาร์ดแวร์โดยตรง สิ่งที่ฉันต้องการเข้าใจคือสิ่งที่ดูเหมือนว่ากลไกที่คล้ายกันในการจัดการและเข้าถึงฮาร์ดแวร์ภายใต้ Windows
bwDraco

ตั้งแต่ Windows NT ไปจนถึงที่สุดของความรู้ของฉัน Windows ไม่อนุญาตให้คุณเข้าถึงฮาร์ดแวร์โดยตรง นั่นคือวิธีที่จะปกป้องตัวเอง ด้วย Windows 95/98 / ME โปรแกรมเมอร์ทุกคนสามารถทำได้และอนุญาตให้พวกเขาทำให้ระบบปฏิบัติการไม่เสถียร วิธีแก้ปัญหาคือทำให้ทุกอย่างผ่านเคอร์เนลและปล่อยให้มันตัดสินใจว่าปลอดภัยหรือไม่ในการดำเนินการ หากไม่เป็นเช่นนั้นก็อาจทำให้เกิดข้อผิดพลาดได้ แต่ป้องกันตัวเองจากการเขียนโปรแกรมไม่ดี ... อย่างน้อยก็ระดับที่สูง
KCotreau

@KCotreau: จริง แต่ไม่เกี่ยวข้อง ตอนนี้คุณต้องถามเคอร์เนล แต่ถ้าฮาร์ดดิสไม่มีชื่อเช่นนี้คุณไม่สามารถถามเคอร์เนลได้เลย ไม่ทราบว่าคุณกำลังพูดถึงฮาร์ดดิสก์ตัวใด
MSalters

คำตอบ:


9

ตรงกันข้ามกับความเชื่อที่ได้รับความนิยมเคอร์เนล Windows จะมีระบบไฟล์ที่รูท ("ไฟล์") ในระวัง * ราก/และใน Windows \มัน แม้ว่าระบบย่อย Win32 จะไม่เปิดเผยก็ตาม คุณสามารถสำรวจกับWinObj

ชื่ออุปกรณ์ NT บางตัว (อาจคุ้นเคย) ( MและNเป็นเพียงจำนวนเต็ม):

  • \Device\HarddiskM\DRN: ดิสก์
  • \Device\HarddiskVolumeN: พาร์ติชั่น
  • \Device\CdRomN: ออปติคัลดิสก์ไดรฟ์
  • \Device\KeyboardClassN: คีย์บอร์ด
  • \Device\MountPointManager: ไม่ใช่อุปกรณ์ แต่ติดตามอุปกรณ์เก็บข้อมูล
  • \Device\Null: กินข้อมูลและเอาต์พุต nulls (ศูนย์)

\Device\HardDisk1\DR1เป็นชื่อที่แท้จริงของดิสก์ไปยัง Windowsและmulti(0)disk(0)rdisk(0)partition(1)เป็นมรดก - มันไม่มีส่วนเกี่ยวข้องกับวิธีที่Windowsอ้างถึงอุปกรณ์ แต่วิธีบูตโหลดเดอร์อ้างถึงดิสก์ มันใช้งานได้อย่างไรฉันไม่มีความคิด ( หน้านี้อธิบายบางส่วนของมัน ) แต่มันไม่ใช่สิ่งที่ Windows เกี่ยวข้องกับตัวเองหลังจากเริ่มบูท

รุ่นใหม่ของ Windows ที่ใช้ Boot ข้อมูลการกำหนดค่า (BCD) ซึ่งเป็นไฟล์ชื่อที่มีรูปแบบเป็นเช่นนั้นของรีจิสทรีแทนBCD Boot.iniโดยทั่วไปจะใช้ตัวระบุที่ไม่ซ้ำกัน (GUID) เพื่ออ้างถึงไดรฟ์แทนตัวอักษรไดรฟ์หรือเส้นทางของระบบไฟล์และเป็นสิ่งที่ Windows รุ่นใหม่ใช้


ฮาร์ดแวร์อื่นที่ไม่ใช่อุปกรณ์เก็บข้อมูล (เช่น\Device\Video0) คืออะไร
bwDraco

@DragonLord: ... แล้วมันล่ะ? ไม่แน่ใจว่าคุณหมายถึงอะไร.
user541686

ชื่ออะไรที่ใช้อ้างถึงคีย์บอร์ดเม้าส์อะแดปเตอร์เครือข่ายและอุปกรณ์อื่น ๆ
bwDraco

@ DragonLord: จุดดีฉันจะเพิ่มที่ ฉันมุ่งเน้นไปที่การโหลดการบูตไม่ได้สังเกตว่าคำถามนั้นกว้างกว่าเดิม
user541686

"ระบบไฟล์รูท" ที่คุณกล่าวถึงเรียกว่าเนมสเปซObject Manager ฉันพบสิ่งนี้หลังจากคลิกลิงก์ WinObj และทำการวิจัย มันค่อนข้างน่าสนใจวิธีการที่ Windows NT ทำงานอยู่ภายใน ...
bwDraco

1

บรรทัดแรกซึ่งล้าสมัยโดย BCD (ที่เก็บข้อมูลการกำหนดค่าการบูต) ใน Windows Vista, Windows 7 และ Server 2008 มาจากไฟล์ boot.ini สำหรับ Windows XP หรือ Server 2003 และอยู่ในไดเรกทอรีราก ของไดรฟ์ระบบ ที่บอก Windows ว่าจะไปที่ไหน (ดิสก์และพาร์ทิชันใด) เพื่อค้นหาไฟล์ระบบที่จำเป็นต้องบูต

ดูที่นี่สำหรับคำอธิบายโดยละเอียดเกี่ยวกับ "หลาย" และ "rdisk" ส่วนที่เหลือหมายความว่าดูดิสก์ 0 (พวกเขาเริ่มต้นที่ 0 และเลื่อนขึ้นจากที่นั่นและคุณสามารถดูหมายเลขในตัวจัดการดิสก์) พาร์ติชัน 1 (ซึ่งแตกต่างจากดิสก์

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

เท่าที่การแจงนับอุปกรณ์ไปเป็นเรื่องการเขียนโปรแกรมที่ซับซ้อนมากซึ่งจะอธิบายไว้ที่นี่หากคุณต้องการให้หัวของคุณระเบิด รูปแบบที่คุณกำหนดเป็นวิธีการระบุอุปกรณ์เป็นรหัสฮาร์ดแวร์ในรีจิสทรี

เป็นเรื่องจริงคุณสามารถดูคีย์รีจิสทรีนี้

HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Enum

เพื่อจับคู่ข้อผิดพลาดใด ๆ ที่คุณอาจได้รับ "รหัสฮาร์ดแวร์" ในหนึ่งในคีย์ย่อยเพื่อตรวจสอบว่าอุปกรณ์ข้อผิดพลาดอาจหมายถึงอะไร


1
ส่วน 4.2.7 ของข้อกำหนดการคำนวณขั้นสูง RISCซึ่งเผยแพร่โดยมูลนิธิ NetBSD ที่นี่จะบอกทุกอย่างเกี่ยวกับเส้นทาง ARC
JdeBP
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.