implementing: - userland - argument passing to main function (argc, argv) - libc - print_char - requires a 3 parameter syscall to 80h (Linux) - requires - inline assembly not implementing: - libc - printf - format string only, as replacement for puts - vararg required in compiler - not type-safe - puts - requires stdout, which is a FILE structure - print_char - requires a 3 parameter syscall to 80h (Linux) - requires - either inline assembly - linker and calling convention - preprocessor - have a cat building up the required modules instead - needs file operations (at least open, close, read) - needs a file system on the host and the destination (alternative: have a tape-like file system) - linker - have compilation units needs a linker do build an executable