Windows ยังใช้ MS-DOS หรือไม่


71

ฉันเพิ่งจะเริ่มหลักสูตร OS และในฐานะผู้ใช้ Apple ฉันไม่คุ้นเคยกับรายละเอียดพื้นฐานของ Windows OS ฉันสงสัยว่า MS DOS ยังคงใช้กับ Windows ที่ทำงานอยู่ด้านบนหรือ Windows เท่านั้นที่ใช้เป็น OS หรือไม่ ฉันสับสนเล็กน้อยเพราะฉันอ่านบางอย่างที่ MS-DOS ใช้สำหรับการบูท แต่ Windows มีความสามารถของระบบปฏิบัติการอื่น ๆ ทั้งหมดที่มีอยู่ภายในและดังนั้นจึงใช้สำหรับการปฏิบัติการ OS อื่น ๆ ทั้งหมด ...


จุดสิ้นสุดของการสนทนานี้ดูน่าสนใจ
2284570

ไม่มันไม่ ระบบปฏิบัติการผู้บริโภคล่าสุดที่พึ่งพา MS-DOS คือ Windows Me Windows XP, Vista, 7 และใหม่กว่าสร้างขึ้นบนสถาปัตยกรรม Windows NT
bwDraco

คำตอบ:


140

มีเชื้อสายสองที่แตกต่างกันเมื่อพูดถึง Microsoft Windows และมันไม่ได้ช่วยอะไรเลยเมื่อผู้คนเขียนสิ่งต่าง ๆ เกี่ยวกับตระกูลหนึ่งที่พวกเขาได้เรียนรู้เกี่ยวกับอีกตระกูลหนึ่ง

  • DOS + ของ Windowsเชื้อสายประกอบด้วย DOS + ของ Windows ทุกรุ่นถึงรุ่น 3.11 ดอส + Windows 95, DOS + Windows 98 และ DOS + Windows Millennium Edition มันมี Windows อยู่ด้านบนของ DOS มีการเขียนหนังสือทั้งเล่มเกี่ยวกับเรื่องของการฝังรากลึกนี้และมันเป็นเรื่องของความขัดแย้งไม่น้อยเพราะผู้คนจำนวนมากสำหรับงานออกร้านในช่วงต้นถึงกลางปี ​​1990 ต้องการให้โลกเชื่อว่า DOS หายไปและ Windows เป็น ระบบปฏิบัติการ

    นี่เป็นกระบวนการบูทสแตรป DOS + Windows

  • Windows NTเชื้อสายประกอบด้วย Windows NT 3.x, Windows NT 4.0, Windows NT 5.0 ( "Windows 2000"), Windows NT 5.1 ( "Windows XP"), Windows NT 5.2 (บางรุ่นของ Windows XP และ "Windows Server 2003" ), Windows NT 6.0 ("Windows Vista") และ Windows NT 6.1 ("Windows 7") มันไม่ได้อยู่ในระดับบนสุดของ DOS ทำงานในลักษณะที่แตกต่างไปจากเดิมอย่างสิ้นเชิงกับ DOS และสามารถเรียกใช้แอพพลิเคชั่นของ DOS โดยอาศัยเครื่อง NT Virtual DOS Machine (NTVDM) ซึ่งเป็นเครื่องเสมือนที่ทำงานบน Windows NTมากกว่าที่อื่น ๆ ทางรอบ.

    นี่เป็นกระบวนการบู๊ตสแตรป Windows NT 6.x

สิ่งที่ไม่ช่วยก็คือเมื่อผู้คนพูดถึง "พรอมต์ DOS" ใน Windows NT โดยไม่ตั้งใจเช่นเดียวกับที่เกิดขึ้นกับคำตอบที่นี่ นอกเหนือจากความจริงที่ว่ามันเป็นตัวแปลคำสั่งที่พร้อมต์ไม่ใช่ระบบปฏิบัติการสิ่งนี้ทำให้ "DOS" กับ "ส่วนติดต่อผู้ใช้แบบข้อความ" และ "ตัวแปลคำสั่ง" ไม่ใช่ทั้งที่อยู่ในความเป็นจริงตรงกันกับ DOS DOS เป็นตระกูลของระบบปฏิบัติการ: MS-DOS, PC-DOS, DR-DOS, FreeDOS, OpenDOS และอื่น ๆ

หากมีหน้าต่างพรอมต์คำสั่งเปิดอยู่ใน Windows NT หน้าต่างหนึ่งก็เกือบจะทำงานอยู่ตลอดเวลาCMDซึ่งเป็นล่ามคำสั่งเริ่มต้นของ Microsoft ที่ให้มาในกล่องซึ่งเป็นส่วนติดต่อผู้ใช้แบบธรรมดาโปรแกรม Win32 ไม่มี "DOS" หรือ NTVDM มีเพียงโปรแกรม Win32 ที่พูดคุยกับวัตถุคอนโซล Win32 ของมัน และในความเป็นจริงสำหรับโปรแกรม TUI หลายตัวที่สามารถเรียกใช้บน Windows NT รวมถึงเครื่องมือทั้งหมดในชุด Resource ต่างๆของ Microsoft ยังไม่มี whos ของ DOS ที่ใดก็ได้ในภาพเพราะสิ่งเหล่านี้เป็นโปรแกรม Win32 ทั่วไปที่ใช้ Win32 console ฉัน / O ด้วย

กระแทกแดกดันเนื่องจาก Windows NT 3.1 เปิดตัวในปี 1993 จริง ๆ แล้วระบบปฏิบัติการ Windows NT นั้นเป็นระบบปฏิบัติการที่ไม่ได้ใช้ระบบปฏิบัติการ Windows ซึ่งเป็นระบบปฏิบัติการที่คนทุกคนในช่วงกลางปี ​​1990 พยายามโน้มน้าว โลกที่ DOS + Windows 95 เป็น

และสิบแปดปีต่อมาเราก็ยังคงพยายามที่จะได้รับมันผ่านไปบางคนว่า Windows NT ไม่ทำงานเช่น DOS และไม่เคยได้ ☺

อ่านเพิ่มเติม

  • Jonathan de Boyne Pollard (2006) รายการหนังสือสำหรับนักพัฒนาเคอร์เนลของระบบปฏิบัติการและนักเขียนโปรแกรมควบคุมอุปกรณ์ คำตอบที่ได้รับบ่อย
  • Mark E. Russinovich, David A. Solomon, Alex Ionescu (2009) ของ Windows Internals (5th Edition) กด Microsoft ไอ 9780735625303
  • Walter Oney (1996) การเขียนโปรแกรมระบบสำหรับ Windows 95 กด Microsoft ไอ 1 55615 949 8
  • Matt Pietrek (พฤศจิกายน 1995) ของ Windows ลับการเขียนโปรแกรม หนังสือ IDG ไอ 1-56884-318-6
  • Andrew Schulman (1994) ไม่ได้รับอนุญาต Windows 95 IDG Books ทั่วโลก ไอ 9781568841694
  • Matt Pietrek (1993) ของ Windows internals: การดำเนินงานของสภาพแวดล้อมปฏิบัติการ Addison-Wesley ไอ 9780201622171
  • Andrew Schulman, David Maxey, Matt Pietrek (1992) ที่ไม่มีเอกสารของ Windows: โปรแกรมเมอร์คู่มือสงวนฟังก์ชัน Addison-Wesley ไอ 9780201608342

11
มันจะดีขึ้นเท่านั้น ฉันยังคงสอนคนที่คุณสามารถ Alt-Tab ระหว่างแอปพลิเคชัน . .
surfasb

2
ไม่เป็นความจริงที่สำหรับ Windows 95+ จะใช้ DOS เป็น bootloader แทนเลเยอร์ระบบปฏิบัติการ เช่น Windows 95+ จะไม่เรียกใช้บริการ DOS ยกเว้นในระหว่างกระบวนการบู๊ต
Winston Ewert

3
@ Winston Ewert สำหรับโปรแกรม windows ความรู้ของฉันยังคงใช้ dos INT 21h ใน windows 95 ตัวอย่างเช่น INT 21h function 55h สำหรับการเริ่มต้นและ INT 21h function 4Ch สำหรับการยกเลิก ฉันไม่สามารถตอบ 98 และ ME แต่ 95 ได้
artifex

6
อย่างไรก็ตามคุณยังไม่สามารถใช้ชื่ออุปกรณ์ DOS ที่สงวนไว้ใน Windows 7 ภายใต้ explorer.exe!
LawrenceC

5
คน! คุณรู้ว่าเว็บไซต์นี้ทำงานอย่างไร หากคุณต้องการถามคำถามเกี่ยวกับโหมด DOS ความหมายของตัวเลือก msdos.sys และสาเหตุที่ไม่สามารถใช้ชื่อหลายชื่อเป็นชื่อไฟล์ใน Win32 ได้ให้ใช้ไฮเปอร์ลิงก์ถามคำถามที่ด้านบนของหน้านี้ เริ่มที่ยิ่งไปกว่านั้นโดยการอ่านคำถามจากคนที่ใครแล้ว มี
JdeBP

23

นอกจากนี้ Windows 95 ไม่ได้เป็น GUI โดยสมบูรณ์บน DOS อ่านเพิ่มเติมได้ที่นี่:

http://blogs.msdn.com/b/oldnewthing/archive/2007/12/24/6849530.aspx


1
ฉันจำสิ่งนี้ได้ทั้งอินเตอร์เฟส VxD และ VMM switcher มันเป็นวิธีที่น่าสนใจที่จะก้าวไปข้างหน้าบ้างบนระบบปฏิบัติการและยังมีความเข้ากันได้ย้อนหลังมากมาย
Rich Homolka

Windows 95 มาพร้อมกับ MS-DOS 7 และสามารถใช้เพียงส่วน DOS เพื่อสร้างดิสก์สำหรับบูต DOS เท่านั้นและมีบางอย่างที่ให้ความรู้สึกเหมือนกับรุ่น MS-DOS 6 ที่ชำรุดเล็กน้อย (แต่ยังมีสิ่งใหม่เพิ่มเติมเล็กน้อย) องค์ประกอบ)
Randolf Richardson

4
คำตอบที่ถูกต้องที่สุดคือ: Windows ไม่ได้พึ่ง DOS ตั้งแต่ Windows 95 และการพูดอย่างเคร่งครัด Windows 3.11 ไม่จำเป็นต้องใช้ DOS เมื่อไดรเวอร์ 32- บิตใช้แทน แต่ 3.11 ไม่ได้มาพร้อมกับบูตโหลดเดอร์ ดังนั้นมันจึงต้องใช้ DOS เพื่อไปยังจุดเริ่มต้น
Ian Boyd

1
บล็อกนั่นเป็นการอ่านที่ดีมากขอบคุณสำหรับลิงค์
crasic

20

ไม่ ทุกเวอร์ชั่นของ Windows ก่อนหน้ารุ่นที่มี "เคอร์เนล NT" นั้นคล้ายกับ GUI ที่อยู่ด้านบนของ DOS ด้วย NT ซึ่งกลายเป็นเรื่องธรรมดาโดยเฉพาะอย่างยิ่งกับการเปิดตัวของ Windows XP (และ Windows Vista และ Windows 7 ทั้งใช้ NT เคอร์เนลเช่นกัน) ที่จำเป็นต้องใช้ DOS เป็น OS พื้นฐานถูกกำจัด

Windows รุ่น 32 บิตยังคงมีพรอมต์ DOS ซึ่งสามารถเรียกใช้โดยการป้อนcommand.comในกล่องโต้ตอบเรียกใช้และสามารถเรียกใช้โปรแกรม DOS รุ่นเก่าได้ Windows ทุกรุ่นมีพรอมต์คำสั่งที่สามารถใช้เพื่อเรียกใช้ไฟล์แบตช์และคำสั่งเหมือนดอส (ซึ่งโดยปกติจะเป็นแอปพลิเคชัน Windows ดั้งเดิมที่ออกแบบมาเพื่อโต้ตอบกับคอนโซลสไตล์ DOS) Windows 64 บิตไม่สามารถเรียกใช้แอปพลิเคชัน DOS ได้เนื่องจากไม่รองรับกระบวนการ 16 บิต

คุณอาจจะดีที่สุดในการดูพรอมต์คำสั่งว่าเป็นเหมือนแอปพลิเคชันพิเศษที่สามารถใช้เพื่อเรียกใช้โปรแกรม DOS และ / หรือเริ่มโปรแกรม Windows จากบรรทัดคำสั่ง

หมายเหตุ: มักใช้คำศัพท์ "DOS prompt" เพื่ออธิบาย "command prompt" ก่อนที่จะมีการแนะนำเคอร์เนล NT แม้ว่าหลายคนยังคงใช้คำว่า "DOS พรอมต์" ในวันนี้ (เพราะพวกเขาใช้มันเพื่อเรียกใช้คำสั่งเดียวกันหลายคำสั่งซึ่งเดิมเรียกว่า "คำสั่ง DOS" ซึ่งโดยทั่วไปจะมีอยู่ในสภาพแวดล้อม DOS) คำสั่ง " พรอมต์ "ถูกต้องทางเทคนิคในรูปแบบ NT ของ Windows


13
แอปพลิเคชันดอส Legacy (เก่าแก่แบบ 16 บิต) จะทำงานใน NTVDM ซึ่งจำลองขึ้นภายในระบบย่อยพรอมต์คำสั่ง NTVDM ไม่สามารถใช้ได้ในระบบ Windows 64 บิตดังนั้นคุณต้องมีโปรแกรมจำลองการทำงานของบุคคลที่สามเพื่อเรียกใช้แอพ 16 บิตเช่น DOSBox หรือ VirtualBox
afrazier

11
เหตุผลที่ NTVDM ไม่สามารถใช้งานได้ใน Windows 64 บิตเป็นเพราะมันเป็นเพียง wrapper ที่เปลี่ยน CPU เป็นโหมด 16 บิตก่อนที่จะเรียกใช้รหัส ในโหมด 64 บิต CPU สามารถเปลี่ยนเป็นโหมด 32 บิตชั่วคราวเพื่อเรียกใช้รหัส 32 บิตเท่านั้น ไม่สามารถเรียกใช้รหัส 16 บิตโดยไม่มีการเริ่มระบบใหม่
Hello71

2
หมายเหตุถึงทั้งหมด: ความคิดเห็นได้รับการทำความสะอาดจากโพสต์นี้ สำหรับผู้ที่เกี่ยวข้อง: โปรดเก็บไว้เป็นความลับและโปรดจำไว้ว่าการอภิปรายเพิ่มเติมควรถูกย้ายไปสนทนาเมื่อใดก็ตามที่เป็นไปได้ - ความคิดเห็นที่มากเกินไปในโพสต์กลายเป็นเสียงดังมากสำหรับผู้เข้าชมคนอื่น ๆ
DMA57361

เนื่องจากผู้คนยังคงโต้เถียงอย่างรุนแรงเกี่ยวกับโพสต์นี้เรากำลังล็อคมันไว้ตอนนี้ ความคิดเห็นถูกลบอีกครั้ง
nhinkle

@ Hello71 ผิดพลาด ใน Linux นั้นสามารถ และคุณสามารถเรียกใช้แอพ 16-bit DOS และ Win 3.1 ใน Linux 64 บิต
Anixx

5

มากกว่าเป็น anwer ให้กับ Randolf แต่เขาไม่ใช่คนเดียวที่สับสนอินเตอร์เฟสบรรทัดคำสั่งและDOSซ้ำ ๆ

โปรดทราบว่าแท็ก [DOS] และ [MS-DOS] จำนวนมากประสบข้อผิดพลาดเดียวกัน: MS-DOS เริ่มแรกมีเพียงโหมดข้อความส่วนติดต่อบรรทัดคำสั่งที่เรียกว่าcommand.com+ ผู้บัญชาการนอร์ตันสำหรับพวกเราหลายคนและหน้าต่างข้อความโหมดโฮมเมด วาดด้วย ansi.sys แต่สามารถควบคุมได้ไม่เพียงแค่แป้นพิมพ์ แต่ใช้เมาส์ แต่ควบคุมได้ง่ายขึ้นด้วยปุ่มลูกศรและปุ่มลัดอีกด้วย

จากนั้น windows ก็ถูกสร้างขึ้นบน DOS (2.0, 3.0, 3.1, 3.11) ซึ่งไอคอนสำหรับ DOS-Box ปรากฏขึ้นอีกครั้งภายใน windows เป็นชื่อสำหรับส่วนต่อประสานคำสั่งภายใน windows

แต่ใน Windows-NT และใน Windows-95 หรือ -98 MS-DOS ถูกทอดทิ้ง แต่ล่ามคำสั่งcmd.exe(cmd32.exe) ยังคงมีอยู่ด้วยเหมือนกันหรือเกือบไวยากรณ์และคำหลักเดียวกัน แต่นี่เป็นโปรแกรมที่ทำงานใน Windows เป็นตัวแปลคำสั่งแบบข้อความอื่น ๆ เช่น BASIC, irb (Ruby), scala-repl, psql (Postgresql), sqlplus (oracle), bc, R, แรดและอื่น ๆ และอื่น ๆ ทำงานบนหลายแพลตฟอร์ม

การเรียก MS-DOS-style นี้ทำให้เข้าใจผิดเนื่องจาก DOS หรือ MS-DOS ไม่ได้เป็นสิ่งที่เกิดขึ้นครั้งแรก มันแก่กว่ามาก

แม้แต่ใน Windows มันก็ไม่ได้ถูก จำกัด ให้เรียกใช้คำสั่ง DOS - วิธีปฏิบัติทั่วไปของการเขียนไฟล์แบตช์คือการระบุพารามิเตอร์บางอย่างก่อนที่จะเริ่มโปรแกรม Windows ตัวอย่างเช่นการตั้งค่า CLASSPATH, JAVA_HOME, java-parameters เช่น -Xmx และอื่น ๆ สำหรับโปรแกรม Java

หลายคนคิดว่าอินเตอร์เฟซบรรทัดคำสั่งเป็นแม่ม่ายอดีตครั้ง - ที่ไม่ทราบว่าพลังของการประมวลผลหลายพันไฟล์ที่มีไม่กี่กดแป้นพิมพ์ได้ พวกเขาไม่รู้จัก wsh และ monad เช่นกัน แต่สำหรับมืออาชีพแล้วล่ามคำสั่งจะใช้ Windows เกือบจะมีประโยชน์เหมือนกับใน Unix หรือ Linux มันไม่ได้เป็นที่รู้จักกันดี แต่มันเป็นสิ่งสำคัญสำหรับผู้ดูแลระบบจำนวนมาก

แม้จะมีพอร์ตของ gnu-toolchain ด้วย sh.exe และ sed, awk, bc, tail, rev, cat และสิ่งอื่น ๆ ทั้งหมดที่เป็นแอพ win32 แบบเนทีฟ

บางทีคุณสามารถเรียกใช้โปรแกรม DOS เก่าภายใต้ cmd.exe ได้ แต่คุณไม่สามารถเรียกใช้โปรแกรม Windows ในโหมด DOS ได้ดังนั้นอย่าบอกคนต่อไปว่า cmd.exe คือ DOS - ไม่ใช่ และมันไม่ได้เป็นเช่น DOS สิ่งที่คุณหมายถึงเป็นที่interactive command-line programcommand-line interface

  • พรอมต์ DOS
  • ไฟล์แบตช์ DOS
  • คำสั่งเหมือน DOS
  • คอนโซลสไตล์ DOS
  • แอปพลิเคชัน DOS

คำศัพท์ที่ทำให้เข้าใจผิดมักจะเกือบทุกครั้ง มันอาจจะเหมาะสมสำหรับมือสมัครเล่น แต่ถ้าคุณต้องการให้ผู้ชมเข้าใจสิ่งที่คุณกำลังพูดถึงคุณควรถามตัวเองว่า: มัน จำกัด เฉพาะระบบปฏิบัติการพิเศษกับ DOS หรือไม่? CLI-style ดีที่สุดชื่อ 'DOS-style' หรือไม่? ประวัติศาสตร์นี้ถูกต้องหรือไม่? ผู้ชมของคุณรู้จัก DOS หรือเปล่า? มันมีประโยชน์ในการทำความเข้าใจหรือไม่? โปรแกรมเหล่านั้นทำงานบน DOS จริงๆหรือ

คุณต้องใช้การแสดงออกที่ถูกต้องคมเหมือนมีดของศัลยแพทย์เพื่ออธิบายสิ่งที่ซับซ้อน การแสดงออกที่ไม่ถูกต้องกระตุ้นการแสดงผลผิดในสมองของผู้ชมของคุณ การแสดงออกที่เลอะเทอะเลวร้ายยิ่งกว่าไม่มีอะไร หลีกเลี่ยงพวกเขา ใช้CLIถ้าอินเตอร์เฟสบรรทัดคำสั่งยาวสำหรับคุณที่จะพิมพ์

แก้ไขแท็กที่ทำให้เข้าใจผิดบน SU, SE และด้านอื่น ๆ


พูดได้ดี. คำศัพท์ที่ไม่ดีมากมายรอบ ๆ
Milind R

ใน Win95 และ Win98 ไม่มี cmd.exe
Anixx

2

ในตระกูล Windows NT (NT, 2000, XP, 2003, Vista, 2008, 7) มันเป็นแบบอิสระ มีตัวเลียนแบบ DOS เท่านั้นสำหรับความเข้ากันได้แบบย้อนหลัง

อย่างไรก็ตามยังมีข้อ จำกัด บางประการซึ่งเป็นผลมาจากความเข้ากันได้กับ DOS ในช่วงต้นปี NT ตัวอย่างเช่นคุณไม่สามารถสร้างไฟล์หรือไดเรกทอรีที่ชื่อว่า "CON" หรือ "PRN" ได้เนื่องจากเป็นชื่อที่สงวนไว้เพื่อแสดงอุปกรณ์ใน DOS


1

จริงๆแล้วตอนนี้ Windows ไม่ได้ใช้ DOS อีกต่อไป พรอมต์ไปยัง DOS (หรือ cmd) ถูกจำลองเหนือ Windows XP, Vista หรือ Seven Windows บูทจากทรัพยากรของตัวเอง


9
-1: ผิด to DOS (or cmd)มันไม่ได้ มีตัวแปลคำสั่งคือ cmd.exe แต่นั่นไม่ใช่ DOS DOS มีล่ามคำสั่งด้วยเช่นกัน command.com ซึ่งคล้ายกันมากในไวยากรณ์คำหลักและการใช้งาน แต่อินเตอร์เฟสคำสั่งเป็นเพียงส่วนหนึ่งของ DOS มันไม่ใช่ DOS
ผู้ใช้ไม่รู้จัก

ใช่consoleประเภทในส่วนหัว PE เป็นส่วนหนึ่งของระบบย่อย Win32 / Win64 มันไม่ได้เป็น 16-bit เลย
user2284570
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.