A virtual graphics card for teaching device driver design

Christopher Corsi, Robert Geist, Dennis Lingerfelt
2014 Proceedings of the 45th ACM technical symposium on Computer science education - SIGCSE '14  
Open source Linux has become increasingly popular as a vehicle for incorporating hands-on experience with a real system into both undergraduate and graduate operating systems courses. System virtualization tools, such as VMWare, Xen, VirtualBox, and KVM, allow students to freely experiment with kernel modifications without requiring dedicated hardware and without generating significant concern for the ill-effects of system crashes. Nevertheless, certain kernel projects that are highly desirable
more » ... from an educational standpoint remain unavailable under standard approaches to virtualization. One such project that is known to carry substantial instructional value is the design and implementation of an SMP-safe driver for a high-performance graphics card. Standard virtualization tools export only a minimally-capable, SVGA graphics adapter, which is an inadequate architecture for such a project. This paper describes an extremely simple, kernel-independent, software tool for use by instructors of operating systems courses. The tool provides a virtual, high-performance graphics card that is suitable for Linux device driver design and implementation. The code for the virtual card, which is relatively short, is easily modified by instructors to present different interfaces each semester. The code for both the virtual card and a sample Linux 3.2.36 driver for it may be freely downloaded from
doi:10.1145/2538862.2538895 dblp:conf/sigcse/CorsiGL14 fatcat:ailaxbooxbevzkta6s75evl6he