Association for Computing Machinery
The computing landscape is shifting towards mobile devices. To learn about operating systems, it is increasingly important for students to gain hands-on kernel programming experience in these environments, which are quite different from traditional desktops and servers. The authors present their work at Columbia University to teach operating systems using An-droid, an open, commercially supported software platform increasingly used on mobile and embedded devices. They introduce a series of five Android kernel programming projects suitable for a one semester introductory operating systems course. Each project teaches a core operating system concept infused with Android or mobile device specific context, such as Android specific process relationships, use of sensors, and design considerations for resource constrained mobile devices.