Skip to content

Latest commit

 

History

History
25 lines (15 loc) · 1.16 KB

README.md

File metadata and controls

25 lines (15 loc) · 1.16 KB

Operating systems

Any sufficiently large program eventually becomes an operating system.

As such, computer scientists should be aware of how kernels handle system calls, paging, scheduling, context-switching, filesystems and internal resource management.

A good understanding of operating systems is secondary only to an understanding of compilers and architecture for achieving performance.

Understanding operating systems (which I would interpret liberally to include runtime systems) becomes especially important when programming an embedded system without one.

Specific recommendations

It's important for students to get their hands dirty on a real operating system. With Linux and virtualization, this is easier than ever before.

To get a better understanding of the kernel, students could:

  • print "hello world" during the boot process;
  • design their own scheduler;
  • modify the page-handling policy; and
  • create their own filesystem.

Recommended reading

Linux Kernel Development by Love.