1 คะแนน โดย GN⁺ 2025-04-26 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • TacOS เป็นระบบปฏิบัติการแบบคล้าย UNIX ที่มีเคอร์เนลของตัวเองซึ่งเขียนด้วย C และแอสเซมบลี
  • มีความสามารถในการรันโปรแกรมใน user space ได้หลากหลาย รวมถึง DOOM
  • มีฟีเจอร์อย่าง VFS, ตัวจัดตารางเวลา, TempFS, อุปกรณ์, การสลับคอนเท็กซ์, การจัดการหน่วยความจำเสมือน และการจัดสรร physical page frame
  • สามารถรันได้ทั้งบนฮาร์ดแวร์จริงและ Qemu emulator
  • เป็นระบบปฏิบัติการที่พัฒนาขึ้นเป็นงานอดิเรก จึงไม่เหมาะกับการใช้งานจริง

แนะนำ TacOS

  • TacOS เป็น เคอร์เนลแบบคล้าย UNIX ที่เขียนด้วย C และแอสเซมบลี
  • สามารถรันโปรแกรมขนาดเล็กใน user space ได้หลายตัว รวมถึง DOOM
  • รองรับฟีเจอร์อย่าง VFS, ตัวจัดตารางเวลา, TempFS, อุปกรณ์, การสลับคอนเท็กซ์, การจัดการหน่วยความจำเสมือน, การจัดสรร physical page frame
  • สามารถรันได้ทั้งบนฮาร์ดแวร์จริงและ Qemu emulator
  • เป็นระบบปฏิบัติการที่พัฒนาขึ้นเป็นงานอดิเรก และยังไม่อยู่ในสภาพพร้อมใช้งานอย่างสมบูรณ์

เริ่มต้นอย่างรวดเร็ว

  • หากต้องการ build และรัน TacOS ให้ใช้คำสั่งต่อไปนี้
  • git clone https://github.com/UnmappedStack/TacOS
  • cd TacOS
  • git clone https://github.com/limine-bootloader/limine
  • cd limine
  • git checkout v9.x-binary
  • cd ..
  • make
  • ต้องติดตั้ง Qemu, NASM, Clang ไว้ก่อน และระบบจะรันบน Qemu emulator โดยอัตโนมัติ

ไลเซนส์

  • TacOS ใช้สัญญาอนุญาต Mozilla Public License 2.0
  • ดูข้อมูลเพิ่มเติมได้ในไฟล์ LICENSE

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

 
GN⁺ 2025-04-26
ความคิดเห็นบน Hacker News
  • สวัสดี ยินดีด้วย! คุณคงภูมิใจน่าดู การเลือก DOOM มาใช้เป็นการพิสูจน์แนวคิดที่ดีมาก

    • น่าเสียดายที่ผมมีแต่คำถามระดับเริ่มต้น
    • ถ้าจะรันสิ่งนี้บนแล็ปท็อป ต้องมีขั้นตอนอะไรบ้างครับ? หลังจาก build แล้ว ดูเหมือนว่าจะคล้ายกับการตั้งค่า dual boot บน Windows PC อยู่บ้าง (ผมกำลังถามคนแปลกหน้าบนอินเทอร์เน็ตว่าทำอย่างไรถึงจะรันซอฟต์แวร์เสี่ยง ๆ บนคอมพิวเตอร์ของตัวเองได้...)
    • ถ้าอยากเริ่มโปรเจ็กต์แบบนี้ มีตำราหรือเอกสารอ่านอะไรที่แนะนำไหมครับ? ตอนเรียนมหาวิทยาลัยผมเคยเรียนวิชาระบบปฏิบัติการและวิชาที่เกี่ยวข้องอยู่บ้าง (ผมเรียนวิศวกรรมไฟฟ้าเลยพอเกี่ยวกับคอมพิวเตอร์) แต่ทั้งหมดค่อนข้างเป็นนามธรรม ระดับสูง และเน้นแนวคิด อยากได้อะไรที่ลงรายละเอียดกว่านี้ ไม่จำเป็นต้องเป็น x64 ก็ได้
  • เจ๋งดี แต่ทาโก้ของคุณรัน DOOM ได้ไหม??

    • ล้อเล่นน่ะ ;) เป็นความพยายามที่น่าชื่นชมและทำได้ดีมาก! ขอถามหน่อยว่า TacOS ถูกสร้างขึ้นโดยใช้ DOOM เป็น "มาตรฐาน" หรือว่าคุณสร้างระบบปฏิบัติการเฉพาะขึ้นมาใหม่ตั้งแต่ต้นเพื่อให้รัน DOOM ได้กันแน่
    • ถามด้วยความอยากรู้อย่างเดียวเลยนะ ผมเคยทำระบบปฏิบัติการแบบพื้นฐานมาก ๆ ที่บูตได้อย่างเดียวมาก่อน (เกือบ 30 ปีก่อน โอ้โห!) ตอนนั้นทำเพื่อการเรียนรู้/ความสนุก แต่ถ้ามีระบบปฏิบัติการเฉพาะที่รันได้แค่ DOOM จริง ๆ มุก "รัน DOOM ได้ไหม" ก็จะยิ่งประชดและตลกขึ้นอีกมาก
    • งานดีมาก! ทำต่อไปนะ!!
  • เท่มาก แต่ทำไมถึงเลือกใช้ภาษาที่ไม่ปลอดภัย ทั้งที่ทุกวันนี้มีภาษาระดับล่างที่ปลอดภัยต่อหน่วยความจำแล้ว? เรารู้อยู่แล้วว่าบั๊กด้านความปลอดภัยส่วนใหญ่เกี่ยวข้องกับหน่วยความจำ

    • ผมเข้าใจว่านี่เป็นโปรเจ็กต์งานอดิเรก แต่ก็สงสัยว่าทำไมถึงไม่เลิกใช้ภาษาที่ไม่ปลอดภัยในกรณีที่มีตัวเลือกที่ดีกว่า
  • อาจจะออกนอกเรื่องนิดหน่อย แต่ผมสงสัยเรื่องที่คล้ายกันนี้อยู่เหมือนกัน เคยมีความพยายามทำเกมที่บูตตรงบนฮาร์ดแวร์ PC สมัยใหม่เลยไหม? คือเข้าเกมได้ทันทีโดยไม่ต้องโหลดระบบปฏิบัติการเต็ม ๆ คล้ายกับเครื่องเกมคอนโซลยุคเก่า ถ้าอยากให้เรียบง่ายไว้ก่อน พวก wifi, bt, GPU อาจใช้งานได้ยากหากไม่มีไดรเวอร์สมัยใหม่ แต่คีย์บอร์ดกับเมาส์ดูเหมือนจะยังพอเข้าถึงผ่าน BIOS พื้นฐานได้ เลยคิดว่าน่าจะเป็นไปได้ (อาจใช้คำไม่ตรงนัก แต่หวังว่าจะพอเข้าใจประเด็น)

  • สวัสดีครับ unmapped (ผมใช้ชื่อ ThatOSDeveloper บน GitHub และ discord) ผมไม่รู้มาก่อนเลยว่าคุณรัน DOOM ได้ เท่มาก ผมมีคำถามอยู่สองสามข้อ นี่คือ DOOM ต้นฉบับหรือเปล่า มันอยู่บนดิสก์หรืออยู่ใน initramfs แล้วคุณใช้ wad ของ DOOM แบบฟรีหรือแชร์แวร์ร่วมกับเอนจินที่ใช้อยู่ไหม?

  • ยอดเยี่ยมมาก ผมอยากมีทักษะพอจะทำอะไรแบบนี้ได้ แต่เดาว่าคุณคงต้องอ่านสเปกเยอะมากกว่าจะทำได้สำเร็จ ซึ่งนั่นเป็นจุดอ่อนของผมเลย

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

  • เป็นโปรเจ็กต์ที่เจ๋งมาก! ใน TacOS คุณจัดการเรื่อง process isolation และ scheduling อย่างไร?

  • อยากรู้เรื่อง TacOS เพิ่มอีก คุณจัดการการรันหลายโปรแกรมพร้อมกันอย่างปลอดภัยอย่างไร?

  • มีเซิร์ฟเวอร์ Discord สำหรับ PotatOS

    • ในบริบทนี้ potatOS คืออะไร?