The Linux kernel, developed by contributors worldwide, is a free and open-source, monolithic, modular (i.e., it supports the insertion and removal at runtime of loadable kernel objects), Unix-like operating system kernel. It is deployed on a wide variety of computing systems, such as embedded devices, mobile devices (including its use in the Android operating system), personal computers, servers, mainframes, and supercomputers.The Linux kernel was conceived and created in 1991 by Linus Torvalds for his personal computer and with no cross-platform intentions, but has since ported to a wide range of computer architectures. Notwithstanding this, the Linux kernel is highly optimized with the use of architecture specific instructions (ISA), therefore portability isn't as easy as it is with other kernels (e.g., with NetBSD, that as of 2019 supports 59 hardware platforms). Linux was soon adopted as the kernel for the GNU Operating System, which was created as an open source and free software, and based on UNIX as a by-product of the fallout of the Unix wars. Since then it has spawned a plethora of operating system distributions, commonly also called Linux, although, formally, the term "Linux" refers only to the kernel.Day-to-day development discussions take place on the Linux kernel mailing list (LKML). Linux as a whole, as it is clearly stated in the COPYING file, is released under the GNU General Public License version 2 (GPLv2), but it also contains several files under other compatible licenses and an ad hoc exemption for the User-space API header files (UAPI). The Linux ABI (i.e., the Application Binary Interface which also includes Application Program Interface or API at the code source level) between the kernel and the user space has four degrees of stability (stable, testing, obsolete, removed), however the system calls are expected to never change in order to not break the userspace programs that rely on them. As far as in-kernel APIs are regarded, there's no guarantee of stability. Device drivers included in the mainline Linux must be kept updated by their maintainers in order to stay at pace with the kernel evolution. Furthermore, the interface between the kernel and loadable kernel modules (LKMs), unlike in many other kernels, is not meant to be stable by design.
Powered by 654 easy search