ELEC424/COMP424/ELEC553: Mobile & Embedded Systems


Useful Resources

Reading materials

Growing complexity

How social insititutes become more complex

How biological systems become more complex

How artifacts become more complex

Structure of complexity

Humans are stupid

Machines are limited too

Building complex software systems

Retiring Linux/C

The rise of C (and Linux)

C is bad

Saving C

Linux's struggles

OSes written with safe languages

Why Rust?

Reading for your leisure

Rust programming language

Understanding Linux kernel

I have found the following three books about Linux kernels useful. The first one is perhaps most concise and updated. But the other two may have interesting details useufl to your work.

  • Linux kernel development (Amazon.com)
  • Understanding Linux kernel (Amazon.com)
    • Chapter 4 provides a coherent picture of interrupt and exception handling.
  • Professional Linux kernel architecture (Amazon.com)

Kernel programming tips

The Linux kernel is written in GNC C, i.e. it must be compiled by GCC, and assembly.

Command line

See here.

Debugging Tools

GDB is a powerful tool for user-space program debugging. An excellent tutorial is here. When combined with QEMU, it can be used to debug bootloader and kernel as well. See here for an introduction.

KDB and KGDB for kernel debugging.

Tips for Writing Good Code

If you have not written large C code before, here are some tips for you.