The Linux kernel is a free and open source,[12]: 4  UNIX-like kernel that is used in many computer systems worldwide. The kernel was created by Linus Torvalds in 1991 and was soon adopted as the kernel for the GNU operating system (OS) which was created to be a free replacement for Unix. Since the late 1990s, it has been included in many operating system distributions, many of which are called Linux. One such Linux kernel operating system is Android which is used in many mobile and embedded devices. Most of the kernel code is written in C as supported by the GNU compiler collection (GCC) which has extensions beyond standard C.[12]: 18 [13] The code also contains assembly code for architecture-specific logic such as optimizing memory use and task execution.[12]: 379–380  The kernel has a modular design such that modules can be integrated as software components – including dynamically loaded. The kernel is monolithic in an architectural sense since the entire OS runs in kernel space. Linux is provided under the GNU General Public License version 2, although it contains files under other compatible licenses.[11]