System programming involves developing software like operating systems, compilers, linkers, and device drivers. Key components of systems programming evolution include text editors, assemblers, macros, compilers, interpreters, loaders, linkers, debuggers, and device drivers. Assemblers translate assembly language into machine code. Macros allow frequently used code sequences to be defined once and reused.