คำถามติดแท็ก kernel

15
เหตุใด Tanenbaum จึงผิดในการโต้วาที Tanenbaum-Torvalds
ฉันเพิ่งได้รับมอบหมายให้อ่านจากการโต้วาที Tanenbaum-Torvaldsในระดับระบบปฏิบัติการของฉัน ในการโต้วาที Tanenbaum ทำการคาดการณ์บางอย่าง: Microkernels เป็นอนาคต x86 จะตายไปและสถาปัตยกรรม RISC จะครองตลาด (5 ปีจากนั้น) ทุกคนจะใช้ระบบปฏิบัติการ GNU ฟรี ฉันอายุหนึ่งปีเมื่อมีการอภิปรายเกิดขึ้นดังนั้นฉันจึงไม่มีสัญชาตญาณทางประวัติศาสตร์ เหตุใดการคาดการณ์เหล่านี้จึงไม่ปรากฎขึ้น สำหรับฉันแล้วดูเหมือนว่าจากมุมมองของ Tanenbaum พวกเขาก็มีเหตุผลพอสมควรในอนาคต เกิดอะไรขึ้นเพื่อที่พวกเขาจะไม่ผ่านไป

12
ระบบปฏิบัติการ…ทำงาน…โดยไม่ต้องมีระบบปฏิบัติการเพื่อทำงานได้อย่างไร?
ตอนนี้ฉันอยากรู้จริงๆ ฉันเป็นโปรแกรมเมอร์ Python และคำถามนี้ทำให้ฉันสับสนมาก: คุณเขียนระบบปฏิบัติการ คุณจะเรียกใช้มันได้อย่างไร มันจะต้องทำงานอย่างใดและวิธีการที่อยู่ในระบบปฏิบัติการอื่นได้หรือไม่ แอปพลิเคชันจะทำงานอย่างไรโดยไม่ต้องอยู่ในระบบปฏิบัติการ คุณจะบอกให้คอมพิวเตอร์รัน, พูด, C และดำเนินการคำสั่งเหล่านี้ไปยังหน้าจอได้อย่างไรถ้ามันไม่มี OS ให้ทำงาน? มันต้องทำอย่างไรกับเคอร์เนล UNIX? ถ้าใช่เคอร์เนล Unix หรือเคอร์เนลโดยทั่วไปคืออะไร? ฉันแน่ใจว่าระบบปฏิบัติการนั้นซับซ้อนกว่านั้น แต่มันทำงานอย่างไร

5
spinlock แตกต่างจากการเลือกตั้งอย่างไร
spinlock และการลงคะแนนเลือกตั้งเป็นสิ่งเดียวกันหรือไม่ วิกิพีเดีย: Spinlock เป็นล็อคซึ่งเป็นสาเหตุให้เธรดพยายามรับมันเพื่อรอในลูป ("หมุน") ในขณะที่ตรวจสอบซ้ำ ๆ ว่ามีล็อคอยู่หรือไม่ ฟังดูดีมาก ๆ : while(!ready); ฉันถูกสอนให้หลีกเลี่ยงการลงคะแนนเลือกตั้งทุกครั้งที่ทำได้ ดังนั้น spinlock เป็นชื่อแฟนซีสำหรับการเลือกตั้งเก่าที่ไม่ดีหรือไม่? spinlock แตกต่างจากการเลือกตั้งอย่างไร
41 locks  kernel  polling 

13
ทำไมระบบปฏิบัติการถึงมีข้อมูลระดับต่ำใน C และ C ++ ทำไมไม่ใช่แค่ C ++?
ในหน้า Wikipedia สำหรับ Windowsจะระบุว่า Windows เขียนไว้ใน Assembly สำหรับ bootloader และ task switcher และ C และ C ++ สำหรับเคอร์เนลรูทีน IIRC คุณสามารถเรียกใช้ฟังก์ชัน C ++ ได้จากextern "C"'d block ฉันสามารถใช้ C สำหรับฟังก์ชั่นเคอร์เนลเพื่อให้แอป C บริสุทธิ์สามารถใช้งานได้ (เช่นprintfและอย่างนั้น) แต่ถ้าพวกเขาสามารถห่อในextern "C "บล็อกแล้วทำไมต้องใช้รหัสใน C?

6
แอสเซมบลียังเกี่ยวข้องหรือไม่ [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว มีความแตกต่างที่สำคัญระหว่างภาษาแอสเซมบลีและภาษาระดับสูงกว่าเมื่อมันมาถึงการเขียนโปรแกรมและ / หรือการจัดการโครงการ? เห็นได้ชัดว่ามันต้องใช้งบเพิ่มเติมในภาษาแอสเซมบลีเพื่อดำเนินการโดยเฉพาะอย่างยิ่งในภาษาอื่น ๆ ส่วนใหญ่ แต่มีความแตกต่างที่มีผลต่อความต้องการของโครงการที่จะเรียกใช้ (หรือควร) ? เท่าที่มีความแตกต่างระหว่างภาษาแอสเซมบลีและภาษาอื่น ๆ ดูเหมือนว่ามีเหตุผลที่จะเดาว่าอย่างน้อยบางส่วนของเหล่านี้เป็นข้อได้เปรียบสำหรับภาษาอื่น ๆ ใครสามารถชี้ให้เห็นข้อเสียที่เฉพาะเจาะจงของภาษาแอสเซมบลีและวิธีการลดข้อเสียเหล่านั้นได้หรือไม่? ตัวอย่างหนึ่งที่เฉพาะเจาะจงคือความพร้อมของพนักงาน มีใครมีปัญหาในการค้นหาโปรแกรมเมอร์ภาษาแอสเซมบลีที่มีประสบการณ์และถ้าเป็นเช่นนั้นขั้นตอนใดที่สามารถนำมาใช้เพื่อลดปัญหานี้?
18 assembly  kernel 

5
คำแนะนำสำหรับนักเรียนที่มีความทะเยอทะยานในการสร้างเคอร์เนลของคุณเอง [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา ฉันเป็นนักศึกษามหาวิทยาลัยที่มีความทะเยอทะยานเป็นอย่างมากและต้องการเรียนรู้ทุกสิ่งที่มีความรู้เกี่ยวกับคอมพิวเตอร์ (ฉันชอบถ้าคุณต้องการฉันรักการเรียนรู้) เมื่อเร็ว ๆ นี้ฉันคิดว่ามันจะเป็นโครงการที่สนุก (แม้ว่าจะมีความยาว) ในการออกแบบและสร้างเคอร์เนลของฉันเอง ฉันได้รับข้อมูลพื้นฐานบางอย่างและฉันได้รวบรวมว่าฉันจำเป็นต้องมีต้นแบบการประชุมและ C / C ++ เพื่อให้งานนี้สำเร็จ ในขณะที่ฉันกำลังทำงานกับสิ่งเหล่านั้นฉันต้องการเรียนรู้วิธีเคอร์เนลใช้งานได้จริงจากมุมมองการเขียนโปรแกรม ฉันใช้เวลาหลายชั่วโมงในการเรียกดูรหัสของเคอร์เนลลินุกซ์ ขั้นตอนพื้นฐานในการสร้างเคอร์เนลคืออะไร สิ่งที่คุณต้องการที่อยู่? สั่งซื้อหรือทำสิ่งต่าง ๆ ? ฉันรู้ว่าฉันกัดมาก แต่ฉันตั้งใจมากพอที่จะรับมือกับมัน
18 c  assembly  kernel 

3
มีโครงการที่น่าสนใจ แต่ไม่ยากเกินไปสำหรับผู้เริ่มต้นใช้งานเคอร์เนล
หลังจากเรียนหลักสูตรระบบปฏิบัติการฉันสนใจที่จะเพิ่มพูนความรู้เกี่ยวกับเคอร์เนล Linux และฝึกฝนการทำงานกับระบบขนาดใหญ่ มีโครงการที่น่าสนใจ แต่ไม่ยากเกินไปอะไรที่ฉันสามารถลองทำได้? แก้ไข: พื้นหลังเล็กน้อยเกี่ยวกับสิ่งที่ฉันทำกับเคอร์เนล ใช้นโยบายการตั้งเวลาใหม่ นำเธรดผู้ใช้ไปใช้และไลบรารี mutex ที่สอดคล้องกัน (ไม่ใช่แฮ็คเคอร์เนลจริงๆ แต่มีทฤษฎีที่เกี่ยวข้องกับเคอร์เนล)
13 linux  kernel 

5
จะเข้าใจซอร์สโค้ดของเคอร์เนล Linux สำหรับมือใหม่ได้อย่างไร? [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ปิดให้บริการใน6 ปีที่ผ่านมา ล็อคแล้ว คำถามและคำตอบของคำถามนี้ถูกล็อคเนื่องจากคำถามอยู่นอกหัวข้อ แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ ฉันเป็นนักเรียนที่สนใจทำงานเกี่ยวกับการจัดการหน่วยความจำโดยเฉพาะอย่างยิ่งองค์ประกอบการแทนที่หน้าของเคอร์เนลลินุกซ์ คำแนะนำต่าง ๆ ที่ช่วยให้ฉันเริ่มเข้าใจแหล่งเคอร์เนลคืออะไร ฉันได้ลองอ่านหนังสือทำความเข้าใจกับ Linux Virtual Memory Managerโดย Mel Gorman และทำความเข้าใจกับ Linux Kernelโดย Cesati และ Bovet แต่พวกเขาไม่ได้อธิบายการไหลของการควบคุมผ่านโค้ด พวกเขาจะอธิบายโครงสร้างข้อมูลต่างๆที่ใช้และฟังก์ชั่นการทำงานต่าง ๆ ทำงาน ทำให้รหัสสับสนมากขึ้น โครงการของฉันเกี่ยวข้องกับการปรับเปลี่ยนอัลกอริทึมการเปลี่ยนหน้าในเคอร์เนลกระแสหลักและวิเคราะห์ประสิทธิภาพสำหรับชุดเวิร์กโหลด มีรสชาติของเคอร์เนล linux ที่จะเข้าใจได้ง่ายขึ้นหรือไม่ (ถ้าไม่ใช่เคอร์เนล linux-2.6.xx)
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.