Linux kernel

The Core Subsystems of the Linux Kernel are as follows:

  • The Process Scheduler
  • The Memory Management Unit (MMU)
  • The Virtual File System (VFS)
  • The Networking Unit
  • Inter-Process Communication Unit

kernel version

Linux内核版本号由3组数字组成:

第一个组数字:内核版本。 第二个组数字:Major revision 第三个组数字:Minor revision

例1: 2.6.18-128.ELsmp 头两个数字合在一齐可以描述内核系列,如稳定版的2.6.0,它是2.6版内核系列。 128: 表示这个当前版本的 patch 次数,而ELsmp指出了当前内核是为ELsmp特别调校的。 EL: Enterprise Linux; smp: 表示该内核版本支持多处理器。

更新内核

内核查看工具,可选安装:

sudo add-apt-repository ppa:cappelikan/ppa
sudo apt update
sudo apt install mainline

删除不使用的内核

查看当前使用的 kernel,不要删除这个版本 DO NOT REMOVE THIS KERNEL!

uname -r

查看系统中安装的 kernel:

dpkg --list 'linux-image-*'

删除不再使用的 kernel:

sudo apt-get purge linux-image-x.x.x-x-generic

最终更新 grub2 boot 启动菜单:

sudo update-grub2

最后重启系统。参考链接:Remove old kernel

Linux OS

除了最核心的 kernel 之外,OS 还包括 Shell,可视化界面,以及其它的第三方程序和链接库, 比如常用的 ls, cd 命令和libc.so.6 C 标准库等,其中 Shell 是用户程序与内核之间的接口。

Glibc

The C language provides no built-in facilities for performing such common operations as input/output, memory management, string manipulation, and the like. Instead, these facilities are defined in a standard library, which you compile and link with your programs.

The GNU C Library, described in this document, defines all of the library functions that are specified by the ISO C standard, as well as additional features specific to POSIX and other derivatives of the Unix operating system, and extensions specific to GNU systems.

Misc

Linux kernel 源码中的 C 代码是按着 C 语言语法的定义实现的,所以gcc可以编译。另外内核源码里实现了部分基础接口,功能可能与 glibc 类似,比如 kmalloc,但是完全不依赖后者。glibcC标准的实现,可能有些函数依赖 kernel,有些和内核完全没关系。

Reference