วิธีสร้างระบบปฏิบัติการคอมพิวเตอร์ (พร้อมรูปภาพ)

สารบัญ:

วิธีสร้างระบบปฏิบัติการคอมพิวเตอร์ (พร้อมรูปภาพ)
วิธีสร้างระบบปฏิบัติการคอมพิวเตอร์ (พร้อมรูปภาพ)

วีดีโอ: วิธีสร้างระบบปฏิบัติการคอมพิวเตอร์ (พร้อมรูปภาพ)

วีดีโอ: วิธีสร้างระบบปฏิบัติการคอมพิวเตอร์ (พร้อมรูปภาพ)
วีดีโอ: วิธีดาวน์เกรด(downgrade)หลือถอยจาก windows10 กลับไปใช้ windows8/8.1/7 2024, อาจ
Anonim

ระบบปฏิบัติการอนุญาตให้ผู้ใช้โต้ตอบกับฮาร์ดแวร์คอมพิวเตอร์ ระบบประกอบด้วยรหัสหลายแสนบรรทัด โดยปกติระบบปฏิบัติการจะทำโดยใช้ภาษาโปรแกรม C#, C, C++ และแอสเซมบลี ระบบปฏิบัติการช่วยให้คุณสามารถเรียกดูคอมพิวเตอร์ของคุณในขณะที่บันทึกและดำเนินการคำสั่งต่างๆ อย่าคิดว่าการสร้างระบบปฏิบัติการเป็นเรื่องง่าย ต้องใช้ความรู้มากมายในการทำ

ขั้นตอน

สร้างระบบปฏิบัติการคอมพิวเตอร์ ขั้นตอนที่ 1
สร้างระบบปฏิบัติการคอมพิวเตอร์ ขั้นตอนที่ 1

ขั้นตอนที่ 1 ก่อนอื่น เรียนรู้เกี่ยวกับการเขียนโปรแกรม

ภาษาแอสเซมบลีมีความสำคัญมาก ขอแนะนำอย่างยิ่งให้คุณเรียนรู้ภาษาระดับสูงอื่นๆ เช่น ภาษา C

สร้างระบบปฏิบัติการคอมพิวเตอร์ ขั้นตอนที่ 2
สร้างระบบปฏิบัติการคอมพิวเตอร์ ขั้นตอนที่ 2

ขั้นตอนที่ 2 ตัดสินใจว่าคุณต้องการใช้สื่อใดในการโหลดระบบปฏิบัติการ

สื่อนี้อาจเป็นไดรฟ์ซีดี ไดรฟ์ดีวีดี แฟลชไดรฟ์ ฮาร์ดไดรฟ์ ฟลอปปีดิสก์ หรือพีซีเครื่องอื่น

สร้างระบบปฏิบัติการคอมพิวเตอร์ ขั้นตอนที่ 3
สร้างระบบปฏิบัติการคอมพิวเตอร์ ขั้นตอนที่ 3

ขั้นตอนที่ 3 กำหนดแนวคิดหลักของ SO

ตัวอย่างเช่น บน Windows แนวคิดหลักคือ GUI ที่ใช้งานง่ายและมีความปลอดภัยมากมาย

สร้างระบบปฏิบัติการคอมพิวเตอร์ ขั้นตอนที่ 4
สร้างระบบปฏิบัติการคอมพิวเตอร์ ขั้นตอนที่ 4

ขั้นตอนที่ 4 พิจารณาว่าระบบปฏิบัติการของคุณรองรับแพลตฟอร์มโปรเซสเซอร์ใด

IA-32, ARM และ x86_64 เป็นแพลตฟอร์มทั่วไปสำหรับคอมพิวเตอร์ส่วนบุคคล ดังนั้นทั้งหมดจึงเป็นทางเลือกที่ดีที่สุดของคุณ

สร้างระบบปฏิบัติการคอมพิวเตอร์ ขั้นตอนที่ 5
สร้างระบบปฏิบัติการคอมพิวเตอร์ ขั้นตอนที่ 5

ขั้นตอนที่ 5. ตัดสินใจว่าคุณต้องการทำทุกอย่างด้วยตัวเองตั้งแต่ต้น หรือมีเคอร์เนลอยู่แล้วที่คุณต้องการสร้างต่อหรือไม่

ตัวอย่างเช่น Linux ตั้งแต่เริ่มต้นเป็นโครงการสำหรับผู้ที่ต้องการสร้าง Linux distro ของตนเอง

สร้างระบบปฏิบัติการคอมพิวเตอร์ ขั้นตอนที่ 6
สร้างระบบปฏิบัติการคอมพิวเตอร์ ขั้นตอนที่ 6

ขั้นตอนที่ 6 ตัดสินใจว่าคุณจะใช้ boot-loader ของคุณเองหรือแบบ pre-build เช่น Grand Unified Bootloader (GRUB)

การเข้ารหัส bootloader ด้วยตนเองจะต้องมีความรู้เกี่ยวกับฮาร์ดแวร์และ BIOS อย่างถี่ถ้วน ด้วยเหตุนี้ ขั้นตอนนี้อาจขัดขวางกำหนดการตั้งโปรแกรมเคอร์เนลที่แท้จริง

สร้างระบบปฏิบัติการคอมพิวเตอร์ ขั้นตอนที่ 7
สร้างระบบปฏิบัติการคอมพิวเตอร์ ขั้นตอนที่ 7

ขั้นตอนที่ 7 ตัดสินใจว่าจะใช้ภาษาโปรแกรมใด

การมีระบบปฏิบัติการในภาษาอย่าง Pascal หรือ BASIC นั้นเป็นเรื่องปกติ แต่คุณควรใช้ C หรือ Assembly แอสเซมบลีเป็นสิ่งที่จำเป็นมาก เนื่องจากจำเป็นต้องมีส่วนสำคัญของระบบปฏิบัติการ ในทางกลับกัน ภาษา C++ มีคีย์เวิร์ดที่ต้องใช้ SO แบบเต็มอื่น ๆ เพื่อเรียกใช้

ในการคอมไพล์ระบบปฏิบัติการจากโค้ด C หรือ C++ แน่นอนว่าคุณจะต้องใช้คอมไพเลอร์ตัวใดตัวหนึ่ง ดังนั้นจึงเป็นความคิดที่ดีที่จะศึกษาคู่มือผู้ใช้/คู่มือ/เอกสารประกอบสำหรับคอมไพเลอร์ C/C++ ที่คุณเลือก ไม่ว่าจะรวมอยู่ในซอฟต์แวร์หรือมีอยู่ในเว็บไซต์ของผู้จัดจำหน่าย คุณจำเป็นต้องรู้สิ่งที่ซับซ้อนมากมายเกี่ยวกับคอมไพเลอร์ และสำหรับการพัฒนา C++ คุณจำเป็นต้องรู้เกี่ยวกับโครงร่างการจัดการของคอมไพเลอร์และ ABI ของคอมไพเลอร์ คุณได้รับการคาดหวังให้เข้าใจรูปแบบปฏิบัติการต่างๆ (ELF, PE, COFF, ไบนารีพื้นฐาน ฯลฯ) และเข้าใจว่ารูปแบบเฉพาะของ Windows, PE (.exe) ได้รับการคุ้มครองลิขสิทธิ์

สร้างระบบปฏิบัติการคอมพิวเตอร์ ขั้นตอนที่ 8
สร้างระบบปฏิบัติการคอมพิวเตอร์ ขั้นตอนที่ 8

ขั้นตอนที่ 8 กำหนด Application Programming Interface (API) ของคุณ

API ที่ดีอย่างหนึ่งให้เลือกคือ POSIX เนื่องจากมีการบันทึกเอกสารไว้อย่างดี ระบบ Unix ทั้งหมดมีการรองรับ POSIX บางส่วนเป็นอย่างน้อย ดังนั้นการเชื่อมต่อโปรแกรม Unix กับระบบปฏิบัติการของคุณควรเป็นเรื่องง่าย

สร้างระบบปฏิบัติการคอมพิวเตอร์ ขั้นตอนที่ 9
สร้างระบบปฏิบัติการคอมพิวเตอร์ ขั้นตอนที่ 9

ขั้นตอนที่ 9 ตัดสินใจเกี่ยวกับการออกแบบของคุณ

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

สร้างระบบปฏิบัติการคอมพิวเตอร์ ขั้นตอนที่ 10
สร้างระบบปฏิบัติการคอมพิวเตอร์ ขั้นตอนที่ 10

ขั้นตอนที่ 10. พิจารณาพัฒนาและทำงานเป็นทีม

ด้วยวิธีนี้ จะใช้เวลาน้อยลงในการแก้ปัญหามากขึ้น ซึ่งอาจจะทำให้การสร้างระบบปฏิบัติการดีขึ้นเร็วขึ้น

สร้างระบบปฏิบัติการคอมพิวเตอร์ ขั้นตอนที่ 11
สร้างระบบปฏิบัติการคอมพิวเตอร์ ขั้นตอนที่ 11

ขั้นตอนที่ 11 อย่าเช็ดฮาร์ดไดรฟ์ของคุณจนหมด

โปรดจำไว้ว่า การลบไดรฟ์จะลบข้อมูลทั้งหมดบนไดรฟ์อย่างถาวร! ใช้ GRUB หรือตัวจัดการการบูตอื่นเพื่อบูตระบบของคุณเป็นสองเท่าด้วยระบบปฏิบัติการอื่นจนกว่าระบบปฏิบัติการของคุณจะทำงานได้อย่างสมบูรณ์

สร้างระบบปฏิบัติการคอมพิวเตอร์ ขั้นตอนที่ 12
สร้างระบบปฏิบัติการคอมพิวเตอร์ ขั้นตอนที่ 12

ขั้นตอนที่ 12. เริ่มเล็ก ๆ

เริ่มต้นด้วยสิ่งเล็กๆ น้อยๆ เช่น การแสดงข้อความและหยุดชั่วคราว ก่อนที่จะไปยังสิ่งต่างๆ เช่น การจัดการหน่วยความจำและการทำงานแบบผสม ตรวจสอบให้แน่ใจว่าคุณสร้างเวอร์ชัน 32 บิตและ 64 บิต

สร้างระบบปฏิบัติการคอมพิวเตอร์ ขั้นตอนที่ 13
สร้างระบบปฏิบัติการคอมพิวเตอร์ ขั้นตอนที่ 13

ขั้นตอนที่ 13 สำรองข้อมูลซอร์สโค้ดที่ใช้งานได้ล่าสุด

ขั้นตอนนี้มีประโยชน์ในการป้องกันในกรณีที่มีสิ่งผิดปกติเกิดขึ้นกับ SO หรือการพัฒนาเวอร์ชันปัจจุบัน หากคอมพิวเตอร์ของคุณขัดข้องและไม่สามารถบู๊ตได้ ขอแนะนำให้ใช้สำเนาสำรองเพื่อใช้งานเพื่อแก้ไขปัญหา

สร้างระบบปฏิบัติการคอมพิวเตอร์ ขั้นตอนที่ 14
สร้างระบบปฏิบัติการคอมพิวเตอร์ ขั้นตอนที่ 14

ขั้นตอนที่ 14. ลองทดสอบระบบปฏิบัติการใหม่ของคุณด้วยเครื่องเสมือน

แทนที่จะรีบูตเครื่องคอมพิวเตอร์ทุกครั้งที่ทำการเปลี่ยนแปลงหรือหลังจากส่งไฟล์จากคอมพิวเตอร์ที่กำลังพัฒนาไปยังเครื่องทดสอบ คุณสามารถใช้แอปพลิเคชันเครื่องเสมือนเพื่อเรียกใช้ระบบปฏิบัติการในขณะที่ระบบปฏิบัติการปัจจุบันกำลังทำงานอยู่ แอปพลิเคชัน VM ปัจจุบัน ได้แก่: VMWare (ซึ่งมีผลิตภัณฑ์เซิร์ฟเวอร์ที่ให้บริการฟรี) ทางเลือกโอเพนซอร์ส Bochs, Microsoft Virtual PC (ไม่รองรับ Linux) และ Oracle VirtualBox

สร้างระบบปฏิบัติการคอมพิวเตอร์ ขั้นตอนที่ 15
สร้างระบบปฏิบัติการคอมพิวเตอร์ ขั้นตอนที่ 15

ขั้นตอนที่ 15. เปิดตัว "ปล่อยตัวผู้สมัคร" หรือรุ่นเบต้า

ขั้นตอนนี้จะอนุญาตให้ผู้ใช้แจ้งให้คุณทราบถึงปัญหาที่อาจเกิดขึ้นกับระบบปฏิบัติการของคุณ

สร้างระบบปฏิบัติการคอมพิวเตอร์ ขั้นตอนที่ 16
สร้างระบบปฏิบัติการคอมพิวเตอร์ ขั้นตอนที่ 16

ขั้นตอนที่ 16 ระบบปฏิบัติการควรเป็นมิตรกับผู้ใช้

ตรวจสอบให้แน่ใจว่าคุณเพิ่มคุณสมบัติที่เป็นมิตรกับผู้ใช้ ทำให้สิ่งเหล่านี้เป็นส่วนสำคัญของการออกแบบของคุณ

เคล็ดลับ

  • ตรวจสอบการชะงักงันที่อาจเกิดขึ้นและข้อบกพร่องอื่นๆ บั๊ก การชะงักงัน และปัญหาอื่นๆ จะส่งผลต่อโครงการสร้างระบบปฏิบัติการของคุณ
  • ตรวจสอบให้แน่ใจว่าคุณใช้คุณลักษณะด้านความปลอดภัยเป็นลำดับความสำคัญสูงสุด หากคุณต้องการให้ระบบทำงานอย่างถูกต้อง
  • ใช้เว็บไซต์เช่น OSDev และ OSDever เพื่อช่วยคุณพัฒนาระบบปฏิบัติการของคุณเอง โปรดทราบว่าสำหรับวัตถุประสงค์ส่วนใหญ่ ชุมชน OSDev.org จะยินดีเป็นอย่างยิ่งหากคุณใช้วิกิ และไม่เข้าร่วมฟอรัม หากคุณตัดสินใจเข้าร่วมฟอรัม มีเงื่อนไขเบื้องต้นคือ คุณต้องรู้เกี่ยวกับ C หรือ C++ และภาษาแอสเซมบลี x86 อย่างแท้จริง คุณควรเข้าใจแนวคิดการเขียนโปรแกรมทั่วไปและซับซ้อน เช่น Linked Lists, Queues เป็นต้น ในข้อบังคับชุมชน OSDev ระบุไว้อย่างชัดเจนว่าชุมชนของตนไม่ได้สร้างขึ้นเพื่อเลี้ยงดูโปรแกรมเมอร์รายใหม่
  • ไม่เข้าร่วม ด้วยฟอรัม OSDev.org แล้วถามคำถามที่ชัดเจน คุณจะถูกขอให้อ่านคู่มือเท่านั้น อ่านวิกิพีเดียและคำแนะนำสำหรับอุปกรณ์ที่คุณต้องการใช้
  • หากคุณกำลังพยายามพัฒนาระบบปฏิบัติการ ถือว่าคุณคือ "พระเจ้า" ของการเขียนโปรแกรม
  • คุณควรอ่านคู่มือโปรเซสเซอร์สำหรับสถาปัตยกรรมโปรเซสเซอร์ที่คุณเลือกด้วย ไม่ว่าจะเป็น x86 (Intel), ARM, MIPS, PPC เป็นต้น คู่มือสำหรับสถาปัตยกรรมโปรเซสเซอร์หาได้ง่ายโดยใช้การค้นหาโดย Google ("คู่มือ Intel", "คู่มือ ARM" เป็นต้น)
  • เมื่องานพัฒนาทั้งหมดเสร็จสิ้น ให้ตัดสินใจว่าคุณต้องการเผยแพร่โค้ดเป็นโอเพนโค้ดหรือลิขสิทธิ์
  • อย่าเริ่ม โครงการระบบปฏิบัติการเพื่อเริ่มเรียนรู้การเขียนโปรแกรม หากคุณไม่ทราบทั้งภายในและภายนอกเกี่ยวกับ C, C++, Pascal หรือภาษาที่เหมาะสมอื่นๆ รวมถึงการจัดการตัวชี้ การจัดการบิตระดับต่ำ การเปลี่ยนบิต ภาษาแอสเซมบลีแบบอินไลน์ ฯลฯ แสดงว่าคุณยังไม่พร้อมสำหรับระบบปฏิบัติการ การพัฒนา.
  • การสร้างพาร์ติชันใหม่ทั้งหมดเพื่อ 'ขยาย' SO อาจเป็นตัวเลือกที่ดี
  • หากคุณต้องการวิธีง่ายๆ ลองใช้ Linux distros เช่น Fedora Revisor, Custom Nimble X, Puppy Remaster, PCLinuxOS Mk LiveCD หรือ SUSE Studio และ SUSE KIWI อย่างไรก็ตาม ระบบปฏิบัติการที่คุณสร้างนั้นเป็นของบริษัทที่เริ่มบริการก่อน (แม้ว่าคุณจะมีสิทธิ์แจกจ่าย แก้ไข และเรียกใช้ได้ตามต้องการภายใต้ GPL)

คำเตือน

  • คุณจะไม่ได้รับระบบปฏิบัติการเต็มรูปแบบภายในสองสัปดาห์ เริ่มต้นด้วย SO ที่สามารถบู๊ตได้ จากนั้นไปยังสิ่งที่เจ๋งกว่า
  • การเขียนระบบปฏิบัติการของคุณบนฮาร์ดไดรฟ์อย่างไม่ระมัดระวังอาจทำให้ระบบปฏิบัติการเสียหายได้ ระวัง.
  • หากคุณทำสิ่งที่ไม่แนะนำ เช่น เขียนไบต์สุ่มบนพอร์ต I/O แบบสุ่ม คุณจะหยุดทำงาน OS ของคุณ และ (ในทางทฤษฎี) อาจทำให้ฮาร์ดแวร์ไหม้เกรียมได้
  • อย่าคาดหวังว่าระบบปฏิบัติการจะสร้างได้ง่าย มีการพึ่งพาซึ่งกันและกันที่ซับซ้อนมากมาย ตัวอย่างเช่น ในการสร้างระบบปฏิบัติการที่สามารถจัดการโปรเซสเซอร์หลายตัวได้ Memory Manager ของคุณต้องมีกลไก "การล็อก" เพื่อป้องกันไม่ให้โปรเซสเซอร์หลายตัวเข้าถึงทรัพยากรเดียวกันในเวลาเดียวกัน "ล็อก" ที่ใช้สำหรับสิ่งนี้จะต้องมีตัวกำหนดตารางเวลาเพื่อให้แน่ใจว่ามีโปรเซสเซอร์เพียงตัวเดียวที่เข้าถึงทรัพยากรที่สำคัญในเวลาใดก็ตาม และตัวอื่นๆ ทั้งหมดต้องรอ อันที่จริง ตัวจัดกำหนดการขึ้นอยู่กับการมีอยู่ของตัวจัดการหน่วยความจำ นี่คือตัวอย่างของการพึ่งพาทางตัน ไม่มีวิธีมาตรฐานในการแก้ปัญหาประเภทนี้ โปรแกรมเมอร์ระบบปฏิบัติการทุกคนถูกคาดหวังให้มีทักษะเพียงพอที่จะรู้วิธีจัดการกับมัน

แหล่งข้อมูลเพิ่มเติม

  • แนวทางปฏิบัติ: Linux ตั้งแต่เริ่มต้น
  • บูตโหลดเดอร์: GRUB
  • แอปพลิเคชันเครื่องเสมือน: Bochs, VM Ware, XM Virtual Box
  • คู่มือโปรเซสเซอร์: คู่มือ Intel
  • ไซต์การพัฒนา SO: OSDev, OSDever

แนะนำ: