In computing, the kernel is a computer software that serves as the heart of a computer's operating system, controlling everything in the system. The kernel is frequently one of the first programs loaded during boot-up, preceding the boot loader. Kernel code can be written in any programming language, but it is usually written in C or C++. It controls the main operating system of the computer, so it must be clean and concise while still being flexible enough to meet future needs. The kernel's job is also typically limited to handling current requests and not designed to be user-friendly. For example, if a user tries to edit their file system information by typing "fsck.*" at the command line, the kernel will automatically run this program every time they start up their computer. Software engineers create kernels because they need a fast and efficient way to deliver core operating system services without having to rewrite them each time a new product is developed. A good understanding of kernel design is therefore essential for successful development of operating systems. Although most kernels are now written by companies who hire such work out, some projects attempt to release something called "a free software kernel". These are kernels that can be used, modified and distributed freely under the terms of the GNU General Public License (GPL).