ทรัพยากรบางอย่างสำหรับการเริ่มต้นใช้งานในการพัฒนาระบบปฏิบัติการมีอะไรบ้าง [ปิด]


589

สิ่งหนึ่งที่ฉันอยากทำอยู่เสมอคือการพัฒนาระบบปฏิบัติการของตัวเอง (ไม่จำเป็นต้องแฟนซีเช่น Linux หรือ Windows แต่ดีกว่าบูตโหลดเดอร์ธรรมดาที่ฉันได้ทำไปแล้ว)

ฉันมีปัญหาในการค้นหาแหล่งข้อมูล / คำแนะนำที่ทำให้คุณผ่านการเขียนระบบปฏิบัติการ "Hello World" ที่เรียบง่าย

ฉันรู้ว่าผู้คนจำนวนมากอาจจะแนะนำให้ฉันดูที่ Linux หรือ BSD; แต่ฐานของรหัสสำหรับระบบเช่นนี้นั้นใหญ่มากจนฉันไม่รู้ว่าจะเริ่มจากตรงไหน

ข้อเสนอแนะใด ๆ

อัปเดต: เพื่อให้ง่ายขึ้นสำหรับผู้ที่ลงจอดบนโพสต์นี้ผ่าน Google นี่คือแหล่งข้อมูลสำหรับการพัฒนาระบบปฏิบัติการ:

แหล่งข้อมูลอื่น ๆ :

ฉันพบทรัพยากรที่ดีชื่อว่าMikeOS "MikeOS เป็นเครื่องมือการเรียนรู้เพื่อสาธิตวิธีการทำงานของ OS ง่าย ๆ มันใช้โหมดจริง 16 บิตสำหรับการเข้าถึงไบออสเพื่อไม่ต้องใช้ไดรเวอร์ที่ซับซ้อน"

อัปเดตเมื่อ 11/14/08

ฉันพบทรัพยากรบางอย่างที่Freebyte's Guide to ... ระบบปฏิบัติการฟรีและที่ไม่ใช่อิสระซึ่งเชื่อมโยงกับชุดอุปกรณ์เช่นไลบรารี OSKit และ ExOS สิ่งเหล่านี้มีประโยชน์มากในการเริ่มต้นใช้งานในการพัฒนาระบบปฏิบัติการ

อัปเดตเมื่อ 2/23/09

Ric Tokyoแนะนำnanoosในคำถามนี้ Nanoos เป็นระบบปฏิบัติการที่เขียนใน C ++

อัปเดต 3/9/09

ดินาห์ได้พูดคุยเกี่ยวกับ Stack Overflow ที่มีประโยชน์เกี่ยวกับนักพัฒนาระบบปฏิบัติการที่ต้องการ: Roadblock ในการสร้างระบบปฏิบัติการที่กำหนดเองอธิบายถึงข้อผิดพลาดที่คุณอาจพบในขณะที่การพัฒนาระบบปฏิบัติการและการพัฒนา OSเป็นการสนทนาทั่วไป

อัปเดตเมื่อ 7/9/09

LB จัดหาลิงค์ไปยังโครงการ Pintosซึ่งเป็นระบบปฏิบัติการการศึกษาที่ออกแบบมาสำหรับนักเรียนที่เรียนรู้การพัฒนาระบบปฏิบัติการ

อัปเดตเมื่อ 7/27/09 (ยังคงแข็งแกร่ง!)

ฉันเจอหลักสูตรออนไลน์ของ Berkley ที่มีการบรรยาย 23 ครั้ง

TomOSเป็นทางแยกของMikeOSที่มีตัวจัดการหน่วยความจำและการสนับสนุนเมาส์เล็กน้อย ในฐานะ MikeOS มันถูกออกแบบมาให้เป็นโครงการเพื่อการศึกษา มันถูกเขียนในแอสเซมเบลอร์ NASM

อัปเดตเมื่อ 8/4/09

ฉันพบภาพนิ่งและเอกสารอื่น ๆที่สอดคล้องกับการบรรยายออนไลน์ของ Berkeley ที่กล่าวไว้ข้างต้น

อัปเดตเมื่อ 8/23/09

คำถามทั้งหมดติดแท็ก osdevบน stackoverflow

OS / 161เป็นระบบปฏิบัติการทางวิชาการที่เขียนด้วย c ซึ่งทำงานบนฮาร์ดแวร์จำลอง ระบบปฏิบัติการนี้คล้ายกันใน Nachos ขอบคุณ Novelocrat!

tangurena แนะนำhttp://en.wikipedia.org/wiki/MicroC/OS-IIระบบปฏิบัติการที่ออกแบบมาสำหรับระบบฝังตัว มีหนังสือสหายเช่นกัน

การพัฒนาเคอร์เนลลินุกซ์โดย Robert Love แนะนำโดย Anders มันเป็น "การมองของคนวงในที่มีชื่อเสียงในเคอร์เนล Linux"

อัปเดตเมื่อวันที่ 9/18/2009

ขอบคุณ Tim S. Van Haren ที่บอกเราเกี่ยวกับCosmosซึ่งเป็นระบบปฏิบัติการที่เขียนทั้งหมดใน c #

tgiphil บอกเราเกี่ยวกับManaged Operating System Alliance (MOSA) Framework "ชุดเครื่องมือข้อมูลจำเพาะและซอร์สโค้ดเพื่อส่งเสริมการพัฒนาระบบปฏิบัติการที่มีการจัดการตามภาษาระดับกลางทั่วไป"

อัปเดต 9/24/2009

สตีฟพบทรัพยากรคู่สำหรับการพัฒนาบน Windows ใช้ Visual Studio, ตรวจสอบการติดตั้งคู่มือ BrokenThorn กับ VS 2005หรือOSDev ของ VS มาตรา

อัปเดตเมื่อวันที่ 9/5/2012

kerneltrap.org ไม่สามารถใช้ได้อีกต่อไป เคอร์เนล linux v0.01 พร้อมใช้งานจากkernel.org

อัปเดต 12/21/2012 บทแนะนำ การพัฒนาระบบปฏิบัติการขั้นพื้นฐานที่ออกแบบมาให้เป็นโครงการของภาคการศึกษา มันจะนำทางคุณไปสู่การสร้างระบบปฏิบัติการด้วยองค์ประกอบพื้นฐาน เริ่มต้นที่ดีมากสำหรับผู้เริ่มต้น ที่เกี่ยวข้องกระดาษ ขอบคุณ Srujan!

อัปเดตเมื่อ 11/15/2013

เขียนระบบปฏิบัติการที่เรียบง่ายตั้งแต่เริ่มต้น ขอบคุณ James Moore!

อัปเดตเมื่อ 12/8/2556

วิธีที่จะทำให้ระบบปฏิบัติการคอมพิวเตอร์ ขอบคุณ ddtoni!

อัปเดต 3/18/2014

ToAruOS ระบบปฏิบัติการส่วนใหญ่มาจากศูนย์รวมถึง GUI

อัปเดตเมื่อ 12 กันยายน 2559

การเขียนระบบปฏิบัติการ Toy ของคุณเอง

อัปเดตเมื่อ 10 ธันวาคม 2559

การเขียนระบบปฏิบัติการอย่างง่ายจากรอยขีดข่วน (ขอบคุณ @Tyler C)


5
อย่าลืมForums.osdever.net
Brenden

15
เหตุใดคำถามวัตถุประสงค์ทั่วไปที่ดีเหล่านี้จึงถูกปิดใน SO เสมอ
Pratik Singhal

30
คำถามนี้มี 370 upvotes ได้รับ upvoted 422 ครั้งและมีมาตั้งแต่ StackOverflow เปิดตัวครั้งแรก ชุมชนดูเหมือนจะชอบ แต่ด้วยเหตุผลบางประการผู้คนจำนวนหนึ่งต้องทำลายมันสำหรับทุกคน นี่คือเหตุผลที่ฉันเริ่มไม่ชอบ SO จริงๆ
จิโอวานนี่ Galbo

1
มีแนวโน้มที่น่าสนใจมากกับ Unikernels (ทำเพียงสิ่งเดียวและทำได้ดี) ซึ่งความพยายามเหล่านี้มีความเกี่ยวข้องมาก โดยปกติแล้วคุณสามารถ cold boot unikernel ในเครื่องเสมือนและให้รหัสผู้ใช้ทำงานในเวลาน้อยกว่าหนึ่งวินาที ฉันเห็นวิธีแก้ปัญหาซึ่งเป็นเพียงการค้นหา DNS สำหรับบริการดังกล่าวทำให้เซิร์ฟเวอร์ DNS เรียก "boot virtual machine" ดังนั้นจึงพร้อมเมื่อคำขอจริงสำหรับบริการเข้ามา
Thorbjørn Ravn Andersen

4
ฉันเริ่มต้นด้วยสิ่งนี้cs.bham.ac.uk/~exr/lectures/opsys/10_11/lectures/os-dev.pdf
Tyler C

คำตอบ:


95

มีลิงค์มากมายหลังจากภาพรวมคร่าวๆของสิ่งที่เกี่ยวข้องในการเขียนระบบปฏิบัติการสำหรับแพลตฟอร์ม X86

ลิงก์ที่ดูเหมือนว่าจะมีแนวโน้มมากที่สุด (www.nondot.org/sabre/os/articles) ไม่สามารถใช้งานได้อีกต่อไปดังนั้นคุณจะต้องอ่านเวอร์ชั่น Archive.orgเพื่ออ่าน

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

เคอร์เนลทำการยกที่หนักทั้งหมดและฉันสงสัยว่ามันคือเคอร์เนลตัวอย่างที่คุณต้องการ แต่มีวิธีที่ยาวไประหว่างการมีเคอร์เนลที่ระบุว่า "Hello world" กับการมีเคอร์เนลที่โหลดตัวแปลคำสั่งให้บริการดิสก์และโหลดและจัดการโปรแกรม

คุณอาจต้องการที่จะต้องพิจารณาการสมัครสมาชิก ACM ได้รับการเข้าถึงวรรณกรรมเก่าของพวกเขา - มีบทความจำนวนมากในช่วงปลายยุค 80 และต้นปี 90 ในช่วงต้นคอมพิวเตอร์นิตยสารเกี่ยวกับวิธีการสร้างทางเลือกระบบปฏิบัติการ มีหนังสือที่น่าจะพิมพ์ออกมาจากยุคนี้เช่นกัน คุณอาจได้รับข้อมูลเดียวกันฟรีโดยค้นหาดัชนีของนิตยสารเหล่านั้น (ซึ่งมีอยู่ในเว็บไซต์นั้น - คลิกที่ "ดัชนี" ใกล้ชื่อนิตยสาร) แล้วถามคนที่มีสำเนา

สุดท้ายฉันก็รู้ว่า Usenet นั้นตายแล้ว (สำหรับผู้เผยพระวจนะของการลงโทษทางอินเทอร์เน็ต) แต่คุณจะพบว่าผู้เชี่ยวชาญเก่าแก่จำนวนมากในยุคนั้นยังคงอยู่ที่นั่น คุณควรค้นหากลุ่ม google (พวกเขามีพื้นที่เก็บข้อมูลเก่าของ dejanews) และฉันคาดว่าคุณจะพบคนจำนวนมากถามคำถามเดียวกันทศวรรษหรือ 1.5 ที่ผ่านมาที่คุณถามตอนนี้ คุณอาจพบเจอกับการสืบค้นจำนวนมากของ Linus Torvalds ในขณะที่เขาพัฒนา linux หากการค้นหาไม่ก่อให้เกิดอะไรขึ้นให้ถามในกลุ่มข่าวสารที่เหมาะสม (อาจเริ่มต้นด้วย comp.arch แต่ค้นหาด้วย OS ในชื่อ)


เฮ้ท่าน COSMOS เป็นเครื่องมือที่ดีในการพัฒนาระบบปฏิบัติการหรือไม่?
Vikas Verma

@VikasVerma ฉันไม่ได้ใช้มันดังนั้นฉันไม่รู้
Adam Davis

@AdamDavis ลิงก์แรกเสีย (และดูเหมือนว่าลิงก์อื่น ๆ ) โปรดแก้ไขพวกเขา!
nbro

35

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

ปรับปรุง: ฉันคิดว่า Minix 3 เป็นเป้าหมายที่แตกต่างกันเล็กน้อย แต่Minix 2 (และแน่นอนว่าเป็นเวอร์ชั่นแรก) เพื่อการสอน


ฉันได้รับหนังสือ Tanenbaum เล่มล่าสุด แต่ซอร์สโค้ด minix3 นั้นดูน่ากลัวมาก! ฉันมีเป้าหมายที่คล้ายกันเช่น OP ในขณะที่ฉันไม่ต้องการสร้างเคอร์เนลตั้งแต่เริ่มต้นฉันต้องการเข้าใจว่าเคอร์เนลทำงานอย่างไรและทำงานอย่างไร ต่อไปนี้จะTanenbaum book and minix3เพียงพอในการเปลี่ยนแปลง minix3 ในที่สุดฉันก็มีส่วนร่วมในเคอร์เนล linux หรือไม่?
gideon

32

ในฐานะคนที่เขียนระบบปฏิบัติการแบบมัลติทาสกิ้งแบบเรียลไทม์ตั้งแต่เริ่มต้น ...

ชุดคีย์บอร์ด debounce, ไดรเวอร์แป้นพิมพ์, ไดรเวอร์ดิสก์, ไดร์เวอร์วิดีโอ, ระบบไฟล์และสุดท้ายคือบูตโหลดเดอร์ - และนี่เป็นเพียงการเปิดตัวครั้งแรกโดยไม่ต้องทำอะไร!

... ฉันไม่สามารถเน้นได้มากพอถึงความสำคัญของการทำความคุ้นเคยกับฮาร์ดแวร์! นี่คือโดยเฉพาะอย่างยิ่งถ้าคุณต้องการทำมันเองทั้งหมดแทนที่จะเพียงแค่หยิบระบบดั้งเดิมที่คนอื่นได้วางไว้ให้คุณแล้ว ตัวอย่างเช่นติดต่อ Intel และขอ CPU การ์ดประเภท CPU ของคุณ! สิ่งนี้จะช่วยคุณออกมาได้ - "pin-outs", ขัดจังหวะ, opcodes คุณตั้งชื่อมัน!

จำไว้ว่าฮาร์ดแวร์ทำให้เป็นไปได้ทั้งหมด ศึกษาฮาร์ดแวร์ คุณจะไม่เสียใจ

.


18

เขียนระบบปฏิบัติการไมโครคอนโทรลเลอร์ ฉันแนะนำไมโครคอนโทรลเลอร์ที่ใช้ x86 ที่ทันสมัย OS เป็นเพียงขนาดใหญ่ เรียนรู้พื้นฐานก่อน


2
ความคิดใดที่จะเริ่มต้นด้วยสิ่งนี้? ฉันสนใจมาก ๆ ชุดที่จะซื้อ .. หนังสือเพื่อเริ่มต้นคุณ ฯลฯ
Julio

@ ลุง: ฉันไม่พบหนังสือระบบฝังตัวที่ได้รับความนิยมสูงสุด ไม่ว่าจะเป็นระดับสูงเกินไปและถือว่าเป็นระบบปฏิบัติการหรือพวกเขาจะมุ่งไปที่วิศวกรไฟฟ้าและไม่สนใจรหัส สำหรับชุดติดตั้ง google จะค้นหา " bifferos.bizhat.com " นอกจากนี้ยังมีชุดติดตั้ง ARM ฉันไม่ชอบสถาปัตยกรรมฮาร์วาร์ดเป็นการส่วนตัวดังนั้นฉันจึงไม่สนใจอาร์ดิโน่ แต่เป็นที่นิยมที่สุด สำหรับงานที่แปลกใหม่กว่านี้ XC-1A ก็ดีเหมือนกัน
พอลนาธาน

@ พอลจะขอบคุณถ้าคุณสามารถขยายคำตอบของคุณ ฉันดูในAVRและ Arduino แต่เพิ่งเห็น. NET micro ฉันเป็นคนที่เป็นนามธรรมมากขึ้นของ LOB แต่ฉันต้องการเริ่มเดินไปตามกอง คุณแนะนำให้เริ่มจากที่ไหน?
gideon

@giddy: AVR เป็นแฟชั่นปัจจุบัน มีขนาดเล็กและราคาถูก แต่ฉันไม่ชอบสถาปัตยกรรม ฉันอยากจะแนะนำให้รับชุด ARM dev (ประมาณราคา ~ 100) พวกเขาเป็นที่นิยมในการใช้งานเชิงพาณิชย์
พอลนาธาน

@Paul ขอบคุณ! ไม่ค่อยได้ยินเรื่อง ARM มากนัก แล้ว. net micro ล่ะ ฉันกังวลเล็กน้อยเกี่ยวกับการเผาไหม้บางสิ่ง ชุดส่วนใหญ่จะมาพร้อมกับคำแนะนำบางอย่างใช่มั้ย ขอบคุณอีกครั้ง.
gideon

16

ฉันหวังว่าจะมีที่เดียวเพื่อรับข้อมูลทั้งหมดเกี่ยวกับการพัฒนาระบบปฏิบัติการของคุณเอง ที่อยู่ใกล้ที่จะมาถึงที่เป็นOS Dev วิกิพีเดียและฟอรั่ม พวกเขามีข้อมูลที่ดีมากมายเกี่ยวกับการตั้งค่าการพัฒนาและข้อมูลฮาร์ดแวร์ของอุปกรณ์

นอกจากนี้ยังมีบางบทเรียนที่ดีในBoneFideผมเคยใช้ที่ได้รับการกวดวิชาที่ตั้งขึ้นโดยรำและตอนนี้ฉันกำลังมองหาที่หนึ่งเมื่อเร็ว ๆ นี้ขึ้นอยู่กับการที่เขาเรียกว่าม้วนของเล่นของคุณเองยูนิกซ์โคลน OS

ฉันเช็คเอาต์ที่สอง: "ระบบปฏิบัติการ: การออกแบบและการใช้งาน"

และถ้าคุณต้องการที่จะพัฒนาบน Windows, ตรวจสอบการโพสต์บล็อกของ

แก้ไข: สำหรับการพัฒนาบน Windows ใช้ Visual Studio, ตรวจสอบคู่มือ BrokenThorn ของหรือวิกิพีเดีย OSDev ของ


1
ที่เกี่ยวข้อง: แท็ก x86ของ SO มีลิงก์ไปยังคู่มือ Intel / AMD และสิ่งดีๆมากมาย
Peter Cordes

15

ทรัพยากรที่ยอดเยี่ยมคือเนื้อหาของหลักสูตร MIT 6.828: วิศวกรรมระบบปฏิบัติการ

XV6 - ระบบปฏิบัติการ Unix เหมือนการสอนที่เรียบง่ายที่เขียนใน ANSI C สำหรับ x86 http://pdos.csail.mit.edu/6.828/2012/xv6.html

แหล่ง XV6 - เป็นหนังสือเล่มเล็กที่พิมพ์ด้วยหมายเลขบรรทัด http://pdos.csail.mit.edu/6.828/2012/xv6/xv6-rev7.pdf

หนังสือ XV6 - อธิบายแนวคิดหลักของการออกแบบระบบปฏิบัติการ http://pdos.csail.mit.edu/6.828/2012/xv6/book-rev7.pdf

วัสดุมีขนาดกะทัดรัด: แหล่งที่มา 92 หน้าและความเห็น 96 หน้า

ฉันชอบมากกว่าหนังสือ Minix! มันเป็นอัญมณีที่แท้จริง!


11

คุณอาจต้องการที่จะดูที่SharpOSซึ่งเป็นระบบปฏิบัติการที่พวกเขากำลังเขียนใน c #


9

มีแหล่งข้อมูลที่ดีสำหรับพื้นฐานระบบปฏิบัติการในหนังสือ เนื่องจากมีการโทรไม่มากในการสร้างระบบปฏิบัติการใหม่ตั้งแต่เริ่มต้นคุณจะไม่พบข้อมูลประเภทงานอดิเรกมากมายบนอินเทอร์เน็ต

ฉันแนะนำหนังสือตำรามาตรฐาน "ระบบปฏิบัติการสมัยใหม่" โดย Tanenbaum คุณอาจพบว่า "องค์ประกอบระบบปฏิบัติการ" โดย Calingaert มีประโยชน์ - มันเป็นภาพรวมบางส่วนของหนังสือที่ให้ภาพคร่าวๆว่าระบบปฏิบัติการมาจากมุมมองของนักออกแบบ

หากคุณมีความสนใจในระบบเรียลไทม์ (และอย่างน้อยคุณควรเข้าใจความแตกต่างและเหตุผลของระบบปฏิบัติการเรียลไทม์) จากนั้นฉันก็จะแนะนำ "MicroC / OS-II" โดย Labrosse

แก้ไข:

คุณสามารถระบุความหมายของ "เทคนิคเพิ่มเติม" ได้ไหม หนังสือเหล่านี้ให้รายละเอียดการใช้รหัสเทียม แต่คุณกำลังมองหาตัวอย่างระบบปฏิบัติการหรือตัวอย่างโค้ดสำหรับเครื่อง / ภาษาเฉพาะหรือไม่

อดัม


7

เพิ่งมาจากคำถามอื่น ฉันต้องการพูดถึงPintos ... ฉันจำหลักสูตรระบบปฏิบัติการของฉันกับ Nachos และ Pintos ดูเหมือนจะเป็นสิ่งเดียวกันกับที่ทำงานบน x86


7

ฉันพบว่าการพัฒนาเคอร์เนล Linux ของ Robert Love น่าสนใจทีเดียว มันบอกคุณเกี่ยวกับวิธีการที่ระบบย่อยต่าง ๆ ในเคอร์เนลลีนุกซ์ทำงานด้วยวิธีที่ไม่หยุดยั้ง เนื่องจากแหล่งที่มาพร้อมใช้งาน Linux เป็นตัวเลือกอันดับต้น ๆ สำหรับบางสิ่งที่จะแฮ็ก


6

ต่อไปนี้เป็นหน้าสแต็คโอเวอร์โฟลว์อื่น ๆ ที่ควรค่าแก่การรวมเข้าในการสนทนา

สิ่งกีดขวางบนถนนในการสร้างระบบปฏิบัติการที่กำหนดเองการ
พัฒนาระบบปฏิบัติการสำหรับสถาปัตยกรรม x86


6

หลักสูตรระบบปฏิบัติการของฉันในระดับปริญญาตรีทำให้เราสร้างระบบย่อยจำนวนมากสำหรับOS / 161ซึ่งเป็นเคอร์เนลที่เรียบง่ายเหมือน BSD ที่ให้พื้นฐานบางอย่างในขณะที่ยังคงมีอิสระในการสำรวจการตัดสินใจด้านการออกแบบในการใช้บริการระดับสูง


6

เริ่มแฮ็คไปที่ Minix มันเล็กกว่าลีนุกซ์อย่างมากและได้รับการออกแบบโดยคำนึงถึงจุดประสงค์ในการสอน ไม่ใช่ Minix 3 นั่นคือเรื่องราวที่แตกต่าง


5

ตอบแล้ว แต่เมื่อฉันใช้ระบบปฏิบัติการในวิทยาลัยเราเริ่มต้นด้วยเคอร์เนลลินุกซ์ก่อนและเพิ่มคุณสมบัติที่ทันสมัยแบบง่าย (ระบบไฟล์พื้นฐานหน่วยความจำเสมือนมัลติทาสก์และ mutexes) สนุกดี. คุณจะข้ามแอสเซมบลีระดับต่ำบ้าคลั่งจริง ๆ บางอย่างเท่านั้นสำหรับ mucking w / โหมดป้องกันและหน้าตารางในขณะที่ยังคงเรียนรู้ความกล้าบางอย่าง

http://kerneltrap.org/node/14002 http://kerneltrap.org/files/linux-0.01.tar.bz2


4

คุณอาจต้องการที่จะดูที่linuxfromscratch

Linux From Scratch (LFS) เป็นโครงการที่ให้คำแนะนำแบบทีละขั้นตอนสำหรับการสร้างระบบ Linux ที่กำหนดเองของคุณเองทั้งหมดจากซอร์สโค้ด


32
การรวบรวมระบบปฏิบัติการเป็นหนทางไกลจากการเขียน
duskwuff -inactive-

7
@duskwuff คุณพูดถูก แต่คุณจะได้เรียนรู้อะไรมากมายจากมัน จากนั้นคุณสามารถไปข้างหน้าและเขียนของคุณเอง
jfs

4

บทแนะนำการพัฒนาระบบปฏิบัติการที่เรียบง่ายและพื้นฐานได้รับการออกแบบให้เป็นโครงการของภาคการศึกษา มันจะนำทางคุณไปสู่การสร้างระบบปฏิบัติการด้วยองค์ประกอบพื้นฐาน เริ่มต้นที่ดีมากสำหรับผู้เริ่มต้น กระดาษที่เกี่ยวข้องที่นี่


แหล่งข้อมูลที่ดี บทความนี้อ้างถึง Nachos (โค้ด 2,500 บรรทัด), OS / 161 (11000), MINIX (30000), GeekOS ไปที่หน้าเว็บอย่างเป็นทางการของแต่ละมหาวิทยาลัยแล้วคุณจะพบซอร์สโค้ดโปรแกรมจำลองและเครื่องมือรวมถึงการมอบหมายต่อปี
limitcracker

4

ฉันต้องการที่จะรวม repo นี้วิธีการทำคอมพิวเตอร์ระบบปฏิบัติการโดย Samy Pesse เป็นงานที่อยู่ระหว่างดำเนินการ น่าสนใจมาก.


ขอบคุณฉันหมายถึงการเพิ่มสิ่งนี้ลงในรายการหลังจากฉันวิ่งเข้าไปใน Reddit แต่ลืมไปโดยสิ้นเชิง
Giovanni Galbo


3

ตรวจสอบการบริหารจัดการระบบปฏิบัติการ Alliance (MOSA) โครงการwww.mosa-project.org พวกเขากำลังออกแบบคอมไพเลอร์ AOT / JIT และระบบปฏิบัติการที่มีการจัดการอย่างเต็มที่ใน C # นักพัฒนาบางส่วนมาจากโครงการ SharpOS ที่ไม่ใช้งาน


3

ฉันเล่นกับCosmosซึ่งเป็น "โครงการระบบปฏิบัติการที่ใช้ภาษา CIL อย่างสมบูรณ์" มันเขียนใน C # ดังนั้นมันจึงเป็นทางที่ถูกต้อง สำหรับคนอย่างฉันที่ไม่เคยพยายามสร้างระบบปฏิบัติการจริงๆแล้วมันค่อนข้างเจ๋งมากที่จะได้ระบบปฏิบัติการ "Hello World" มาใช้ในเวลาไม่นาน



3

ดังที่ได้กล่าวไว้ข้างต้นOSDev Wikiเป็นแหล่งที่ดีที่สุดสำหรับการพัฒนาระบบปฏิบัติการ สำหรับคนที่พูดภาษาเยอรมันlowlevel.eu Wiki ก็ยอดเยี่ยมเช่นกัน มีบางสิ่งที่ไม่รู้จักIncitatus OSซึ่งเป็นเคอร์เนลที่เรียบง่ายพร้อมแอพพื้นที่ผู้ใช้ขนาดเล็ก เป็นเรื่องดีที่จะใช้สำหรับการเข้าสู่หัวข้อที่ซับซ้อนของการพัฒนาระบบปฏิบัติการ


2

Movitzเป็นสภาพแวดล้อมเสียงกระเพื่อมที่เขียนใน Common LISP และทำงาน "บนโลหะ" แต่น่าเสียดายที่เชื่อมโยงบางอย่างบนหน้าหลักของ Movitzปฏิเสธการเข้าถึง, แต่คุณสามารถหาคำแนะนำเกี่ยวกับวิธีการดาวน์โหลดและรวบรวมซอร์สโค้ดจากหน้า Trac นอกจากนี้ยังมีรูปภาพที่พร้อมใช้งานในไฟล์เก็บถาวรของหน้านี้

IMHO สิ่งนี้น่าสนใจอย่างยิ่งเนื่องจากนำแนวคิดLisp machineกลับมาใช้กับฮาร์ดแวร์ที่มีอยู่ในปัจจุบัน มันล้มเหลวในเชิงพาณิชย์ แต่สิ่งนี้ไม่ได้พิสูจน์ให้ฉันเห็นว่าความคิดนั้นแย่

คู่มือเกลียดชัง Unixเป็นหนังสือสนุกที่กึ่งแนว berates แนวคิดของ Unix และอนุพันธ์อย่างจริงจัง มีหลายส่วนที่โต้แย้งว่าแนวคิดของเครื่อง Lisp นั้นดีขึ้นอย่างไร


2

นี่คือกระดาษที่ชื่อว่า " การเขียนระบบปฏิบัติการอย่างง่ายจากศูนย์ " มันครอบคลุมการเขียน bootloader เข้าสู่โหมดการป้องกัน x86-32 และการเขียนเคอร์เนลพื้นฐานใน C. ดูเหมือนว่าจะทำงานได้ดีในการอธิบายทุกอย่างอย่างละเอียด


ฉันติดตามหนังสือเล่มนี้และพัฒนาตามรหัสของมัน มันยอดเยี่ยมมากที่เริ่มต้นด้วยหนังสือเล่มนี้
user3405291

2

ตัวจำลอง x86 JSและตัวจำลองARMยังมีประโยชน์อย่างมากในการทำความเข้าใจว่าฮาร์ดแวร์ชิ้นต่าง ๆ ทำงานอย่างไรและทำการทดสอบโดยไม่ต้องออกจากเบราว์เซอร์ที่คุณชื่นชอบ


1

คำถามที่น่าสนใจสำหรับโปรแกรมเมอร์ ดูว่าจะใช้เวลานานในการสร้างระบบปฏิบัติการเช่น Windows หรือ Mac แต่ถ้าคุณต้องการสร้างระบบง่ายๆคุณสามารถลองใช้งานได้ดีที่สุด

  1. คุณต้องเน้นภาษาแอสเซมบลี C และ C ++ คุณควรมีความเชี่ยวชาญในภาษาเหล่านี้
  2. ก่อนอื่นอ่านหนังสือดี ๆ เกี่ยวกับการทำงานของระบบปฏิบัติการ [Google มัน] จากนั้นอ่านข้อมูลทั้งหมดจากWiki OS
  3. ค้นหาใน youtube "วิธีสร้างระบบปฏิบัติการของคุณเองในภาษาแอสเซมบลี" ดูวิดีโอเช่น วีดีโอ
  4. ดาวน์โหลดซอร์สโค้ด Linux OS และรวบรวมด้วยตนเองและลองแก้ไขโค้ดด้วยตัวคุณเอง
  5. ตอนนี้คุณเป็นบรรณาธิการระบบปฏิบัติการที่มีประสบการณ์ตอนนี้ดาวน์โหลดMinixและQNXแล้วเริ่มพัฒนากับพวกเขาและรับเอกสารจากที่นี่Minix Docและ QNX Doc

ตอนนี้คุณได้รับปริญญาโท (ไม่มากไปกว่านี้อีกเล็กน้อย) ในการสร้างระบบปฏิบัติการตอนนี้เผยแพร่สิ่งที่รู้กันนี้ให้กับเพื่อนของคุณและด้วยความช่วยเหลือของพวกเขาพยายามที่จะสร้างระบบปฏิบัติการที่ทรงพลังเช่น Mac, Linux หรือ Windows


ผู้แก้ไขโปรดแก้ไขคำตอบของฉันและลบ space betweern http: และ www เนื่องจากฉันเป็นผู้มาใหม่ดังนั้นฉันไม่มี repu สูงมากดังนั้นโปรดทำสิ่งนั้นให้ฉัน
BharatKhanna

1

เมื่อคุณสร้างระบบปฏิบัติการพื้นฐานจริงๆแล้วมันยากที่จะดำเนินการต่อเนื่องจากไม่มีทรัพยากรจำนวนมากในการสร้าง GUI หรือการย้ายไลบรารี แต่ฉันคิดว่าการดูToAruOSจะช่วยได้มาก!

รหัสใต้พื้นผิวของระบบปฏิบัติการนั้นง่ายมากเลย! แต่ในเวลาเดียวกันเขาก็ได้จัดทำสิ่งต่าง ๆ เช่น cairo, python, (ยังเร็ว ๆ นี้) sdl สร้างหน่วยความจำร่วมกันและเขายังได้สร้างชุดเครื่องมือวิดเจ็ตของเขาเอง มันเขียนด้วยภาษาซีทั้งหมด

อีกประการหนึ่งที่น่าสนใจ OS จะpedigreeOS มันทำโดย JamesM (คนที่อยู่เบื้องหลังการกวดวิชาเคอร์เนลของ jamesMในขณะที่มันมีคุณสมบัติมากกว่า ToaruOS แต่มันก็ใหญ่และสับสนมากกว่า

แต่อย่างไรก็ตามระบบปฏิบัติการทั้งสองนี้จะช่วยคุณได้มากโดยเฉพาะ ToAruOS


1

เมื่อฉันเริ่มทำงานกับระบบปฏิบัติการพื้นฐานของฉันฉันต้องการคำแนะนำพื้นฐานเช่นStepping Stones สำหรับระบบปฏิบัติการพื้นฐานก้าวหินสำหรับระบบปฏิบัติการพื้นฐานมันช่วยให้ฉันไม่หลุดหัว

ว่าถ้าคุณต้องการที่จะทำให้มันไม่มีอะไรแน่นอน (รหัสประกอบบริสุทธิ์)

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