Linux is a *nix kernel using a monolithic architecture with dynamic module loading/linking. The system was originally loosely based off fo the MINIX style system targeting the IA32 architecture (at the time 80386). Originally released in 1993, Linux has since become the dominate player in the *nix arena, surpassing it's open source siblings FreeBSD and OpenBSD.
/proc/filesystemscontains a list of file system drivers supported by the currently running kernel.
- OverlayFS (a potential file system used by Docker) was first added in v3.18 of the linux kernel.
There are two types of RAM backed file systems in Linux.
The earliest is
ramfswhich is backed by the file system cache and is otherwise unbound. The
tmpfsappeared later, swapped backed, and may be limited in size. Reference
Linux is technically just the kernel and core libraries required to interface with the kernel. Despite being a monolithic kernel it must be mated with a userland to execute your applications, called distributions in the Linux parlance. One major dimension of classifying userland environments is which C library is used to interface with the kernel. Another is the package management system utilized to deal with dependencies.
Generally a progrma compiled against one flavor of
libc will not be binary compatible with
- glibc is most common is server and desktop environments.
This a fully featured
libcprovided by GNU providing most of the functionality you would expect from a modern C runtime environment. Many distributions use this library in a dynamic linking configuration.
- musl-libc is common in lightweight or embedded environments such as Alpine Linux or DD-WRT. Generally the library is statically linked and supports a large array of hardware architectures.
To be organized later.
- CoreOS is a Linux distribution originally intending to provide a bare bones fault tolerant operating system. It was meant to be a building block to deploy the likes of Kubernetes and other systems on top of.
Sockets in TIME-WAIT state can be viewed via ss(2) using the options set:
-tan. Pipe this through
wc -lto get the count of sockets in wait. Source: Coping with the TCP TIME-WAIT state on busy Linux servers
- The Definitive Guide to Linux System Calls - Great article on the System call interface; although it leaves some gaps around segment descriptors and memory management.