การพัฒนา / ทดสอบโมดูล linux ปลอดภัยหรือไม่หากใช้เครื่องเสมือน


18

ฉันอยู่ในคลาสระบบปฏิบัติการ ขึ้นมาเราต้องทำงานแก้ไขรหัสเคอร์เนล เราได้รับคำแนะนำว่าอย่าใช้เครื่องส่วนตัวในการทดสอบ (ฉันคิดว่านี่หมายถึงการติดตั้ง) เพราะเราสามารถเขียนรหัสที่ไม่ดีและเขียนทับบางที่ที่เราไม่ควรทำ เราได้รับอนุญาตให้เข้าถึงเครื่องในห้องปฏิบัติการเพื่อความปลอดภัย

ถ้าฉันจะทดสอบโดยใช้ VM สิ่งนั้นจะปกป้องระบบโฮสต์จากรหัสที่อาจไม่ปลอดภัยหรือไม่ ฉันไม่ต้องการติดอยู่กับระบบที่โรงเรียนและภาพรวมจะมีประโยชน์

หากยังคงมีความเสี่ยงสูงข้อเสนอแนะใด ๆ เกี่ยวกับสิ่งที่ฉันต้องพิจารณาเพื่อทดสอบอย่างปลอดภัย?

เราจะใช้บางอย่างเช่น linuxmint เพื่อเริ่มต้นด้วย หากใครต้องการเห็นสิ่งที่จะอยู่ในโครงการปัจจุบัน: http://www.cs.fsu.edu/~cop4610t/assignments/project2/writeup/specification.pdf


มันไม่มีความเสี่ยงมากที่จะทำบนฮาร์ดแวร์จริง ๆ โดยเฉพาะอย่างยิ่งถ้าคุณทำการสำรองข้อมูล ฉันมีและฉันมั่นใจว่า devs อื่น ๆ อีกมากมายมีเช่นกัน
ฮอบส์

@ ฮอบส์นั่นเป็นเพราะพวกเราหลายคนชอบที่จะมีชีวิตที่อันตรายมักจะนานพอที่จะเสียใจ การทำงานกับเครื่องจริงของคุณนั้นใช้ได้ถ้าคุณเป็นนักพัฒนาซอฟต์แวร์ที่ทำงานอย่างระมัดระวังในโมดูลขนาดเล็ก สำหรับการพัฒนาที่ใหญ่ขึ้น(หรือ devs ที่ประมาท)ก็น่าจะดีที่สุดในการทำงานกับสภาพแวดล้อมที่แยก มันอาจจะเป็นความคิดที่ดีที่จะทำงานใน "การกระจายที่สะอาด" เพื่อให้แน่ใจว่าไม่มีการปรับแต่งระดับเคอร์เนลสามารถรบกวนโมดูลของคุณ โปรดทราบว่าการพัฒนาโมดูลเคอร์เนลเป็นที่ที่ความผิดพลาดน้อยที่สุดสามารถเกิดผลที่น่ากลัวที่สุด: D
John WH Smith

คำตอบ:


28

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

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

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


3
หรืออาจเป็นไปได้ที่จะจับภาพบางแง่มุมของ VM การเก็บซอร์สโค้ดบนดิสก์เสมือนแยกต่างหากตัวอย่างเช่น แน่นอนที่เก็บซอร์สโค้ด out-of-VM ที่คุณเช็คอินโค้ดเป็นประจำนั้นเป็นแนวคิดที่ดีอยู่ดี มันสามารถช่วยคุณให้รอดพ้นจากความผิดพลาดที่น่าอับอายและสอนวิธีการเขียนโปรแกรมที่ดี
CVn

อีกด้านหนึ่งของความล้มเหลวของระบบของคุณง่ายขึ้นคือเมื่อคุณทำพังระบบของคุณคุณมีโอกาสสูงที่จะก่อให้เกิดความเสียหายของหลักประกัน
user253751

14

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

หากทำได้ให้ทำสำเนาของ VM ให้สมบูรณ์ในกรณีที่ระบบสแนปชอตนั้นแปลกกว่าที่ฉันคิด :)

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