저는 운영 체제 수업에 있습니다. 이제 커널 코드를 수정하는 작업을해야합니다. 우리는 나쁜 코드를 작성해서는 안되는 곳에 덮어 쓸 수 있으므로 개인용 컴퓨터를 사용하여 테스트하지 않아야한다고 권고했습니다 (이것은 설치를 의미한다고 가정합니다). 실험실의 기계에 안전하게 접근 할 수 있습니다.
VM을 사용하여 테스트 할 경우 잠재적으로 안전하지 않은 코드로부터 호스트 시스템을 보호 할 수 있습니까? 학교에서 시스템을 고수 할 필요가 없으며 스냅 샷이 유용 할 것입니다.
여전히 위험이 높은 경우 안전하게 테스트하기 위해 고려해야 할 사항이 있습니까?
우리는 linuxmint와 같은 것을 사용하여 시작할 것입니다. 누구든지 현재 프로젝트에 무엇이 있는지 보려면 http://www.cs.fsu.edu/~cop4610t/assignments/project2/writeup/specification.pdf
답변
커널 모듈을 개발할 때의 주요 위험은 일반 코드보다 훨씬 쉽게 시스템을 중단시킬 수 있다는 것입니다. 언로드 할 수없는 모듈을 생성하는 경우가있을 수 있습니다. 다시로드하려면 다시 부팅해야합니다. 문제를 해결 한 후
예, VM은 이러한 종류의 개발에 적합하며 커널 모듈에서 작업 할 때 사용합니다. VM은 테스트 환경을 실행중인 시스템과 멋지게 격리시킵니다.
스냅 샷을 생성하고 복원하려는 경우 VM의 현재 상태를 버릴 때 실수로 최신 코드를 잃지 않도록 소스 코드를 VM 외부 의 버전 제어 저장소에 체크인해야합니다 .
답변
실제 하드웨어 용 드라이버를 작성하지 않으려는 경우 모듈에서 작업하기에 좋은 방법입니다. 작업 시스템의 스냅 샷을 생성 할 수 있으며 문제가 발생하면 스냅 샷으로 돌아가십시오.
가능하면 스냅 샷 시스템이 생각보다 이상 할 경우를 대비하여 VM의 전체 복제본을 만드십시오. 🙂