1 คะแนน โดย GN⁺ 3 시간 전 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • Microsoft เปิดเผยเอกสาร DOS ยุคแรกที่ย้อนกลับไปถึงช่วงก่อนจะใช้ชื่อ MS-DOS ทำให้เห็นพัฒนาการในระยะก่อนหน้ากว่าชุดที่เคยเปิดเผยมาก่อน
  • เอกสารที่เปิดเผยมีซอร์สเคอร์เนลของ 86-DOS 1.00, สแนปช็อตพัฒนาการหลายชุดของเคอร์เนล PC-DOS 1.00 และยูทิลิตีอย่าง CHKDSK
  • Tim Paterson สร้าง 86-DOS สำหรับชุดคอมพิวเตอร์ Intel 8086 ของ Seattle Computer Products และระบบปฏิบัติการนี้ยังเป็นที่รู้จักในชื่อ QDOS
  • Microsoft ให้สิทธิใช้งาน 86-DOS สำหรับระบบปฏิบัติการของ IBM PC 5150, จ้าง Paterson ต่อมาพัฒนา แล้วจึงซื้อสิทธิทั้งหมดเพื่อนำไปต่อยอดเป็น PC-DOS และ MS-DOS
  • โค้ดชุดนี้ไม่ได้มาจากคลังเก็บดิจิทัล แต่ถอดความและสแกนด้วยมือจาก เอกสารพิมพ์บนกระดาษ ของ Paterson จึงช่วยขยายขอบเขตแหล่งข้อมูลสำหรับศึกษาระบบปฏิบัติการพีซียุคแรก

ซอร์สโค้ด DOS ยุคแรกที่ถูกเปิดเผย

  • Microsoft เปิดเผยสิ่งที่เรียกว่า “ซอร์สโค้ด DOS ที่เก่าแก่ที่สุดในบรรดาซอร์สโค้ด DOS ที่เคยเปิดเผยมา
  • การเปิดเผยครั้งนี้ย้อนกลับไปถึงโค้ดก่อนจะใช้ชื่อ MS-DOS โดยในโพสต์ของ Microsoftมีซอร์สเคอร์เนล 86-DOS 1.00, สแนปช็อตพัฒนาการหลายชุดของเคอร์เนล PC-DOS 1.00 และยูทิลิตีอย่าง CHKDSK
  • เนื่องจากเป็นเอกสารจากช่วงเวลาก่อนซอร์ส MS-DOS ที่เคยเปิดเผยไว้ก่อนหน้านี้ จึงช่วยให้มองเห็นกระบวนการพัฒนา DOS ยุคแรกได้ตั้งแต่ระยะเริ่มต้นมากขึ้น

เส้นทางจาก 86-DOS ไปสู่ MS-DOS

  • Tim Paterson เป็นผู้สร้าง 86-DOS ขึ้นครั้งแรกสำหรับชุดคอมพิวเตอร์ที่ใช้ Intel 8086 ซึ่งจำหน่ายโดย Seattle Computer Products
  • 86-DOS เคยเป็นที่รู้จักในชื่อ QDOS มาก่อน โดย QDOS ย่อมาจาก “quick and dirty operating system”
  • Microsoft ให้สิทธิใช้งาน 86-DOS และจ้าง Paterson ให้พัฒนาต่อ เพื่อจัดหาระบบปฏิบัติการสำหรับ IBM PC 5150 ที่ยังอยู่ระหว่างการพัฒนา
  • หลังจากนั้น Microsoft ก็ซื้อ สิทธิของ 86-DOS ทั้งหมด และให้สิทธิ IBM ในนาม PC-DOS ขณะเดียวกันก็ยังคงสิทธิในการขายให้บริษัทอื่นด้วย
  • เวอร์ชันที่ Microsoft จำหน่ายใช้ชื่อว่า MS-DOS และกลายเป็นระบบปฏิบัติการที่ถูกใช้อย่างแพร่หลายเมื่อเครื่อง IBM PC compatible จากผู้ผลิตรายอื่นขยายตัวในช่วงทศวรรษ 1980 และ 1990

โค้ดที่กู้คืนจากเอกสารพิมพ์บนกระดาษ

  • ซอร์สโค้ดชุดนี้เก่าเกินกว่าจะมีการเก็บรักษาไว้ใน รูปแบบดิจิทัล
  • ทีมงานนักประวัติศาสตร์และผู้เชี่ยวชาญด้านการอนุรักษ์ที่นำโดย Yufeng Gao และ Rich Cini ใช้ชื่อว่า “DOS Disassembly Group” และถอดความกับสแกนโค้ดด้วยมือจากเอกสารพิมพ์บนกระดาษที่ Paterson มอบให้
  • เนื่องจากคุณภาพของเอกสารพิมพ์ที่มีอายุหลายสิบปี OCR สมัยใหม่จึงประมวลผลได้ยาก ทำให้งานกู้คืนซับซ้อนยิ่งขึ้น

การเปิดเผยและกระแสการอนุรักษ์ที่เกี่ยวข้อง

  • Microsoft เคยเปิดซอร์ส MS-DOS 1.25 และ 2.0 ในปี 2014 และเปิดเผยอีกครั้งในปี 2018
  • ในปี 2024 ยังมีการเปิดเผยซอร์สโค้ด MS-DOS 4.0ที่ถูกอธิบายว่าเป็นเวอร์ชันแปลกประหลาดด้วย โดยเวอร์ชันเหล่านี้ทั้งหมดอยู่ในGitHub repository เดียวกัน
  • การเปิดเผยครั้งนี้ไม่ใช่เอกสาร 86-DOS ชุดแรกที่ถูกค้นพบใหม่ในช่วงทศวรรษ 2020 เพราะเมื่อ 2 ปีก่อน เวอร์ชัน 86-DOS ที่เก่าแก่ที่สุดเท่าที่รู้จักกันก็ถูกค้นพบอีกครั้งและอัปโหลดขึ้น Internet Archive
  • การเปิดเผยโค้ดก่อนยุคแบรนด์ MS-DOS, สแนปช็อตการพัฒนา และยูทิลิตีไปพร้อมกัน ช่วยขยายแหล่งข้อมูลปฐมภูมิสำหรับการศึกษาประวัติศาสตร์ระบบปฏิบัติการพีซียุคแรกให้กว้างขึ้น

1 ความคิดเห็น

 
GN⁺ 3 시간 전
ความเห็นจาก Hacker News
  • ไม่ค่อยได้พูดแบบนี้บ่อยนัก แต่ขอบคุณนะ Microsoft จริง ๆ แล้วสิ่งที่สำคัญพอ ๆ กับ DOS หรืออาจจะสำคัญกว่าด้วยซ้ำ คือ BASIC ที่ Microsoft สร้างขึ้น
    สิ่งที่พวกเขาอยากทำจริง ๆ คือ BASIC และ DOS ก็เป็นจุดที่ทำให้ได้สัญญากับ IBM ตลอดหลายทศวรรษ Microsoft ใกล้เคียงกับการเป็นบริษัทเครื่องมือสำหรับนักพัฒนาที่ทำระบบปฏิบัติการและซอฟต์แวร์อื่น ๆ เป็นงานรอง และโค้ด BASIC นั้นก็ถูกเปิดเป็นโอเพนซอร์สด้วย https://opensource.microsoft.com/blog/2025/09/03/microsoft-o...

    • เหมือนจะเป็นครั้งแรกที่เห็นคอมมิตระบุว่าเกิดขึ้นเมื่อ 49 ปีก่อน
    • ยังจำได้ว่าตอนใช้ Commodore 64 แล้วเพิ่งมารู้ว่าจริง ๆ ก็ใช้ Microsoft อยู่ตลอด
    • ที่น่าสนใจคือ Microsoft BASIC เองก็แตกสายมาจาก BASIC-PLUS และ BASIC-PLUS ก็มาจาก Dartmouth BASIC อีกที
      ต่อมา Dartmouth BASIC พัฒนาไปเป็น SBASIC (Structured BASIC) ซึ่งเป็นภาษาแบบ structured programming แต่ความนิยมของ Microsoft BASIC กลับทำให้การผลักดันมาตรฐาน ANSI ของ SBASIC หยุดชะงัก
      https://en.wikipedia.org/wiki/Microsoft_BASIC
      ตัวแปลภาษา Altair BASIC ถูกพัฒนาโดยใช้ Intel 8080 emulator ที่ Paul Allen กับ Bill Gates สร้างขึ้นเองบน PDP-10 minicomputer และภาษาถิ่นของ Microsoft ก็ได้รับแบบอย่างมาจาก BASIC-PLUS ของ DEC ที่ Gates เคยใช้ตอนมัธยม
      https://en.wikipedia.org/wiki/Dartmouth_BASIC
      Dartmouth BASIC คือ BASIC ต้นฉบับที่ John G. Kemeny และ Thomas E. Kurtz สร้างขึ้น และร่วมกับ DTSS ก็ได้มอบสภาพแวดล้อมการเขียนโปรแกรมแบบโต้ตอบให้กับนักศึกษาปริญญาตรีและคนทั้งมหาวิทยาลัย ในปี 1975 พวกเขาออก SBASIC ที่ใส่แนวคิด structured programming เข้าไป ซึ่งกลายเป็นพื้นฐานของงาน ANSI “Standard BASIC” ในช่วงต้นทศวรรษ 1980
      แต่พอถึงปลายทศวรรษ 1980 คอมพิวเตอร์ตามบ้านหลายสิบล้านเครื่องรันตัวแปลภาษา MS BASIC หลากหลายสายพันธุ์จนกลายเป็นมาตรฐานโดยพฤตินัย และสุดท้ายความพยายามเรื่อง ANSI SBASIC ก็ยุติลง Kemeny และ Kurtz สานต่อแนวคิดนั้นด้วย True BASIC แต่ ณ เดือนกุมภาพันธ์ 2026 เว็บไซต์ TrueBASIC ก็ปิดตัวอย่างเป็นทางการแล้ว
      https://en.wikipedia.org/wiki/True_BASIC
  • น่าอิจฉาจริง ๆ ที่ในยุคนั้นแค่เขียน assembly ไม่กี่พันบรรทัด ก็เริ่มบริษัทซอฟต์แวร์ที่ประสบความสำเร็จได้แล้ว

    • ก็จริง แต่ assembly นั้นไม่ใช่ DOS และก็ไม่ใช่งานง่ายด้วย
      Microsoft ไม่ได้เขียนโค้ด DOS เอง แต่ซื้อมา แน่นอนว่าหลังจากนั้นก็พัฒนาและแก้ไขต่อ แต่สิ่งนั้นเป็นดีลธุรกิจที่ฉลาดและมีโชคช่วยมากกว่าจะเป็นความสำเร็จทางเทคนิค
      จุดเริ่มต้นที่แท้จริงของ Microsoft เกิดก่อนหน้านั้นจากการที่ Allen, Gates และ Davidoff สร้าง Altair BASIC interpreter ขึ้นมา ซึ่งนั่นถือเป็นความสำเร็จครั้งใหญ่
      พวกเขาไม่เคยเห็นเครื่องเป้าหมายมาก่อน และก็ไม่ได้เป็นเจ้าของคอมพิวเตอร์ด้วยซ้ำ พวกเขาทำงานอยู่ 8 สัปดาห์บนคอมพิวเตอร์ของมหาวิทยาลัยที่จริง ๆ แล้วไม่ควรใช้
      “Altair ตกลงจะมาพบเพื่อหารือเรื่องความเป็นไปได้ในการซื้อตัวแปลภาษา BASIC แต่ Gates และ Allen ไม่มีทั้งตัวแปลภาษา BASIC และไม่มีทั้งระบบ Altair Allen สร้าง Intel 8008 emulator ที่รันบนคอมพิวเตอร์แบบ time-sharing PDP-10 ไว้แล้ว และดัดแปลงมันให้ตรงกับคู่มือโปรแกรมเมอร์ของ Altair เพื่อใช้พัฒนาและทดสอบตัวแปลภาษาบน PDP-10 ของ Harvard”
      ตัวแปลภาษาที่เสร็จแล้วใส่ลงในหน่วยความจำ 4KB ได้ครบ รวมทั้งระบบรับส่งข้อมูลและตัวแก้ไขบรรทัดของตัวเอง และยังเหลือที่มากพอสำหรับโปรแกรมที่จะนำมาแปล เพื่อเตรียมเดโม พวกเขาบันทึกตัวแปลภาษาที่เสร็จแล้วลงบนเทปเจาะรูที่ Altair อ่านได้ แล้ว Paul Allen ก็บินไป Albuquerque เพื่อพบ Altair
      ก่อนเครื่องลงจอด Allen เพิ่งนึกได้ว่าลืม bootloader สำหรับอ่านเทปเข้า memory จึงเขียนโปรแกรมนั้นในภาษาเครื่อง 8080 ให้เสร็จก่อนเครื่องแตะพื้น หลังจากโหลดโปรแกรมเข้า Altair แล้วเห็นพรอมป์ต์ถามขนาดหน่วยความจำของระบบ Gates กับ Allen ถึงได้รู้ว่าตัวแปลภาษานั้นทำงานบนฮาร์ดแวร์ Altair จริง
      https://en.wikipedia.org/wiki/Altair_BASIC
    • ถ้าจะให้เป็นธรรม ก็น่าจะต้องมี นักธุรกิจเลือดเย็น ที่คอยขับเคลื่อนบริษัทด้วย ตอนนี้ก็คงยังเป็นแบบนั้นอยู่มาก
    • สำหรับผมกลับรู้สึกตรงกันข้ามเลย คือมันต้องเป็น คนที่ใช่ ในที่ที่ใช่ และในเวลาที่ใช่ จริง ๆ
    • น่าทึ่งที่แม้แต่กับโปรเซสเซอร์และระบบที่เรียบง่ายขนาดนั้นก็ยังเป็นแบบนั้น ไม่มี descriptor table ไม่มีการตั้งค่า memory management
      เดี๋ยวนี้แค่จะเริ่มต้นก็ต้องมีโปรเซสเซอร์ตัวเล็กอีกตัวอยู่ข้างในโปรเซสเซอร์หลักแล้ว ตอนนั้นเป็นยุคทองจริง ๆ
    • ต่อให้แทน assembly ด้วย TypeScript/Rust/Go หลักการเดิมก็ยังใช้ได้ตอนนี้ ถ้าไอเดียนั้นดีและมีประโยชน์
  • มีการคุยเรื่องซอร์สนี้ไว้ที่นี่ 24 วันก่อน 79 คะแนน 19 ความเห็น https://news.ycombinator.com/item?id=47957494
    และก็มีการคุยเรื่อง GitHub clone ด้วย 162 คะแนน 15 ความเห็น https://news.ycombinator.com/item?id=47946813

  • น่าทึ่งที่ต้องเอางานพิมพ์บนกระดาษกลับมาอ่านด้วย OCR อีกรอบ
    ซอร์สโค้ดนี้เก่าจนไม่ได้ถูกเก็บไว้ในรูปดิจิทัล และทีม “DOS Disassembly Group” ซึ่งเป็นกลุ่มนักประวัติศาสตร์และนักอนุรักษ์ที่นำโดย Yufeng Gao และ Rich Cini ต้องลำบากถอดความและสแกนโค้ดจากเอกสารพิมพ์บนกระดาษที่ Paterson มอบให้ เขาว่ากันว่าคุณภาพของเอกสารพิมพ์ที่มีอายุนับสิบปีทำให้แม้แต่ซอฟต์แวร์ OCR สมัยใหม่ก็ยังลำบาก

    • อยากฟังเพิ่มเติมว่าอะไรใช้ได้ผลดีกับ OCR ฟอนต์ dot matrix
      ผมเคย OCR งานพิมพ์จากเครื่องพิมพ์แบบ letter quality ได้ถึงราว 97% โดยปัญหาส่วนใหญ่คือ O กับ X
      แต่ทุกวันนี้ระบบรู้จำข้อความที่อิง machine learning ดูจะมีอคติไปทางปฏิเสธโค้ดคอมพิวเตอร์ เพราะมันไม่ได้หน้าตาเหมือนภาษามนุษย์
    • ผมเคยสแกนรายการโค้ดที่เจอในเอกสารของพ่อ แล้วกู้คืน ซอฟต์แวร์เก่า บางส่วนที่ผมเคยเขียนไว้ได้
    • นี่เป็นอีกตัวอย่างที่ข้อความที่พิมพ์ลงบนกระดาษอยู่รอดได้นานกว่า อุปกรณ์จัดเก็บข้อมูลดิจิทัล ไหน ๆ
  • เป็นเรื่องที่น่าสนใจว่า Microsoft เข้าสู่ธุรกิจระบบปฏิบัติการได้อย่างไร เดิมที IBM ต้องการระบบปฏิบัติการ CP/M แต่ Digital Research ไม่ยอมเซ็น NDA ของ IBM และนั่นก็กลายเป็นจุดหักเหใหญ่ในประวัติศาสตร์คอมพิวเตอร์
    อ้างจากสคริปต์ทีวี “Triumph of the Nerds”:
    https://www.pbs.org/nerds/part2.html
    Jack Sams (IBM) คิดว่า Microsoft มีแพ็กเกจที่รวมทั้งภาษา BASIC และระบบปฏิบัติการไว้แล้ว แต่ IBM ไม่ได้ตรวจสอบข้อมูลล่วงหน้าให้ดีพอ
    ตามคำบอกของ Steve Ballmer, IBM คิดว่า Microsoft น่าจะออกไลเซนส์ CP/M สำหรับคอมพิวเตอร์ส่วนบุคคลรุ่นใหม่ได้ เพราะ Microsoft เคยขายผลิตภัณฑ์ SoftCard ที่มาพร้อม CP/M อยู่แล้ว Microsoft ตอบว่า “เราไม่ได้ทำธุรกิจนั้น”
    Jack Sams บอกว่า Bill Gates อธิบายว่าตัวเองไม่มีสิทธิ์ในเรื่องนั้น แต่ Gary Kildall น่าจะพร้อม จึงโทรหา Gary ที่ Digital Research ตรงนั้นเลยและบอกให้ช่วยต้อนรับคนจาก IBM ให้ดี

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

    • ถ้าวันไหน Windows 2000 codebase ถูกปล่อยออกมาไม่ว่าจะเป็นโอเพนซอร์สหรือเปิดให้ดูซอร์สเฉย ๆ ผมน่าจะตายตาหลับ
      แน่นอนว่าพอถึงวันที่เริ่มเห็นแสงแห่งความเป็นไปได้นั้น ผมก็คงตายไปนานแล้วเหมือนกัน แต่มันเป็นระบบปฏิบัติการที่สวยงามและลื่นไหลจริง ๆ
    • การ disassemble มันคงไม่ยากเท่าไร
    • ผมว่ามันอาจจะมาเร็วกว่าที่คิด Microsoft ดูเหมือนกำลังค่อย ๆ ปิดฉาก Windows ในฐานะแพลตฟอร์ม
    • แค่ Windows 3.11 รุ่นแรก ๆ ก็น่าจะมีอะไรให้ได้แรงบันดาลใจและเรียนรู้อีกมาก
    • ดูเหมือนจะปล่อยช้าไปหลายสิบปีเกินกว่าจะสร้างความตื่นเต้นได้
  • โพสต์ที่เกี่ยวข้องล่าสุด: Microsoft open sources DOS 1.00 on 45th anniversary - https://news.ycombinator.com/item?id=47957494 - เมษายน 2026, 19 ความเห็น

  • ยุคแรกเริ่มของการประมวลผลสมัยใหม่นั้นยอดเยี่ยมจริง ๆ เราปฏิบัติต่อเครื่องในฐานะ เครื่องจักร อย่างที่มันเป็น
    ต้องใช้ทั้งประสิทธิภาพ ความคิดสร้างสรรค์ และวิทยาศาสตร์กว่าจะทำให้เครื่อง 386 ทำงานได้อย่างถูกต้อง ทุกวันนี้มีแต่กองไลบรารี เวอร์ชวลไลเซชัน และโค้ดแย่ ๆ ที่ซ้อนทับบนโค้ดแย่ ๆ อีกชั้นจนผมไม่ชอบเลย

    • บางทีก็คิดว่าโมเดลทางความคิดเกี่ยวกับคอมพิวเตอร์ของผมยังเป็น Apple ][+ ที่มี RAM 48KB อยู่เลย และนั่นอาจทำให้ผมเขียนโค้ดได้ดีขึ้น
    • ผ่านมานานพอสมควรแล้วที่มีโปรแกรมเมอร์จำนวนมากไม่เข้าใจแนวคิดระดับล่างเลย พวกเขาเริ่มจาก JavaScript หรือ Python และไม่เคยมองลึกลงไปข้างใต้ ทำให้โครงสร้างประหลาด ๆ ที่พวกเขาคิดว่าเป็นเรื่องปกตินั้นแทบไม่มีขีดจำกัด
      Linus Torvalds ก็พูดในทำนองเดียวกันเมื่อไม่กี่เดือนก่อนตอนพูดถึงเครื่องมือเขียนโค้ดด้วย AI เขากับคนรุ่นผมโชคดีที่เริ่มจากระดับล่างและยังรักษาความเข้าใจต่อทั้งสแตกไว้ได้ แต่เด็กสมัยนี้แทบไม่มีโอกาสแบบนั้น
      ถ้าประสบการณ์การเขียนโค้ดครั้งแรกของเด็กคือแชตบอตที่ดูเหมือนอัจฉริยะ ก็คงไม่ง่ายที่จะพัฒนาความเข้าใจในระดับนั้นเกี่ยวกับคอมพิวเตอร์ อัลกอริทึม และโครงสร้างข้อมูล
    • DOS กับคำว่า “ยอดเยี่ยม” อยู่ในประโยคเดียวกันได้ด้วยหรือ…
  • นี่อาจเป็นซอร์สที่เก่าแก่ที่สุด แต่ 86-DOS v0.1-C binary เก่ากว่าซอร์ส v1.00 นี้ และก็มีการค้นพบ v0.34 แล้วด้วย ซึ่งสามารถดาวน์โหลดมารันใน emulator ได้ :-)
    https://arstechnica.com/gadgets/2024/01/the-oldest-known-ver...