CPU architectures

Operating systems

Bootloaders

Communication protocols

Programming languages