Linux 커널 드라이버 개발에 가상 머신을 사용할 수 있나요?

Linux 커널 드라이버 개발에 가상 머신을 사용할 수 있나요?

저는 현재 이라는 책을 읽고 있습니다 Linux Device Drivers, Third Edition. 여기에 링크가 있습니다. 대부분의 경험 있는 사람들은 이미 이 책에 익숙할 것입니다.

https://lwn.net/Kernel/LDD3/

난 그냥 그래야만 했어요 Chapter 2. 일반적으로 기본적인 커널 프로그래밍 환경을 구축하는 것입니다. 교육 목적으로 이 책은 거의 항상(마지막 예를 제외하고) built-inCD-ROM 등과 같은 하드웨어 에만 의존합니다. 그래서 내 질문은: 이것을 달성하기 위해 가상 머신(현재 에서 사용하고 있음)을 사용할 수 Ubuntu 18.04있습니까 VirtualBox? 5.3 Kernel책? 나는 가상 머신에 자체 커널이 있다는 것을 알고 있습니다. 그렇다면 VirtualBox이 책을 읽고, 캐릭터 드라이버 등을 작성하기 위해 실제 기계 대신 사용할 수 있습니까 ? 안전 해요? 내가 이 일을 하고 싶은 주된 이유는 내 여자 시스템을 무너뜨리지 않기 위해서이기 때문이다. 불행하게도 현재 테스트를 위해 다른 시스템을 실행할 추가 하드웨어가 없습니다. Ubuntu VM만으로도 이 책을 완성할 수 있나요?

참고: 비슷한 게시물을 본 적이 있지만 여기에서 무엇을 할지 지정하기 때문에 또 다른 게시물을 작성하고 싶었습니다. 즉, 책의 예를 따르세요. 따라서 적어도 이러한 예에서는 VM에 요청하는 것으로 충분합니다.

답변1

예, 이 모든 작업을 가상 머신에서 수행할 수 있으며 시스템 손상을 방지하므로 안전합니다. 가상화된 하드웨어에서 모든 예제를 완료할 수 있습니다. 그러나 책이 출판된 이후 커널이 많이 변경되었으므로 현재 커널을 사용할 때 약간의 조정이 필요할 수 있습니다.

답변2

드라이버 개발을 위해 가상 머신을 사용할 수 있습니다.

반가상화 하드웨어(virtio)를 사용하지 않는 경우 VM의 가상 하드웨어는 실제 하드웨어처럼 커널 모듈에서 작동합니다.

나는 그 책을 모르지만 하이퍼바이저에 의해 시뮬레이션된 실제 하드웨어에서 이러한 예를 사용할 수 있다면 해당 가상 하드웨어가 목적을 달성해야 합니다.

PCI 패스스루를 사용하면 호스트 시스템에 연결된 실제 하드웨어용 하드웨어도 개발할 수 있습니다.

관련 정보