The C compiler
The C compiler is a program that translates the C language into a binary format that the CPU can understand and execute. This is the basic way (and the most powerful one) to develop programs into a GNU/Linux system.
Despite this fact, most developers prefer using high-level languages other than C due the fact the C language has no garbage collection, no object-oriented programming and other issues, giving up part of the execution speed that a C program offers. However, if we have to recompile the kernel (the Linux kernel is written in C-plus few assemblers) to develop a device driver or to write high-performance applications, then the C language is a must-have.
As we already saw in the preceding chapters, we can have a compiler and a cross-compiler, and until now, we've already used the cross-compiler several times to recompile the kernel and the bootloaders. However, we can decide to use a native compiler too. In fact, using native compilation may be easier but, in most cases...