Almost every piece of FOSS is built using the GNU toolchain that is hidden behind the driver command "<code>gcc</code>". Further, the toolchain is used in pretty much the same, simple (and hence almost standard) way for building most of such FOSS. It is, however, far more powerful and can be used to build extremely complex software systems, like an OS kernel. In this talk we will discuss the basic principles of the toolchain system, and demonstrate its working by developing a toy OS kernel. We will focus on the compiler and the linker as the "main" tools for building software. Other tools like, say, make or autoconf will be ignored although they are crucial in practice.