Really small kernel

Ralf Mardorf silver.bullet at zoho.com
Tue Oct 29 10:51:37 UTC 2019


On Mon, 28 Oct 2019 22:49:06 +0100, Liam Proven wrote:
>On Mon, 28 Oct 2019 at 19:06, MR ZenWiz <mrzenwiz at gmail.com> wrote:
>> Is it possible to build the ubuntu 18.04 kernel such that it will run
>> effectively with 64MB or less?  
>
>Kernel, yes.
>
>Desktop, no.

Indeed, probably parts of a base install could be kept very small,
especially when removing translations, header files, licenses, man
pages and maybe by reducing the amount of icons and fonts, maybe no
wallpaper at all, searching for the smallest possible init system,
installing only some libs of e.g. gcc or gtk. There's a big difference
between firefox and qutebrowser, fltk and gtk2 and while a Windows XP
alike environment such as jwm also has a very slim dependency chain,
the chain already is relatively bloated. Small solutions such as
busybox probably can't be used to replace dependencies of a graphical
environment. An example for installing sizes without a complete base
infrastructure and without all needed dependencies, but with headers,
translations and one or the other file that could be removed, followed
by the dependency tree of jwm:

(it doesn't matter what distro is used, the example is listed for Arch,
since it's closer to upstream, by not splitting packages in a way it's
done by Ubuntu, so it's easier to get an overview of complete sizes of
upstream projects, but the dependencies are still missing, too) 

[rocketmouse at archlinux ~]$ pacman -Qi jwm firefox qutebrowser gnome-icon-theme gnu-free-fonts xf86-video-vesa xorg-server-common xorg-server busybox systemd systemd-libs gcc-libs glibc fltk gtk2 | grep -eName -eSize
Name            : jwm
Installed Size  : 323.00 KiB
Name            : firefox
Installed Size  : 190.04 MiB
Name            : qutebrowser
Installed Size  : 7.49 MiB
Name            : gnome-icon-theme
Installed Size  : 10.04 MiB
Name            : gnu-free-fonts
Installed Size  : 6.65 MiB
Name            : xf86-video-vesa
Installed Size  : 74.00 KiB
Name            : xorg-server-common
Installed Size  : 127.21 KiB
Name            : xorg-server
Installed Size  : 3.50 MiB
Name            : busybox
Installed Size  : 1440.00 KiB
Name            : systemd
Installed Size  : 21.38 MiB
Name            : systemd-libs
Installed Size  : 1824.00 KiB
Name            : gcc-libs
Installed Size  : 116.71 MiB
Name            : glibc
Installed Size  : 46.01 MiB
Name            : fltk
Installed Size  : 8.24 MiB
Name            : gtk2
Installed Size  : 34.18 MiB
[rocketmouse at archlinux ~]$ pactree jwm
jwm
├─libx11
│ ├─libxcb
│ │ ├─xcb-proto provides xcb-proto>=1.12
│ │ ├─libxdmcp
│ │ │ ├─xorgproto provides xproto
│ │ │ └─glibc
│ │ │   ├─linux-api-headers provides linux-api-headers>=4.10
│ │ │   ├─tzdata
│ │ │   └─filesystem
│ │ │     └─iana-etc
│ │ └─libxau
│ │   ├─glibc
│ │   └─xorgproto provides xproto
│ ├─xorgproto provides xproto
│ └─xorgproto provides kbproto
├─libxft
│ ├─fontconfig
│ │ ├─expat
│ │ │ └─glibc
│ │ └─freetype2
│ │   ├─zlib
│ │   │ └─glibc
│ │   ├─bzip2
│ │   │ ├─glibc
│ │   │ └─bash provides sh
│ │   │   ├─readline provides readline>=7.0
│ │   │   │ ├─glibc
│ │   │   │ ├─ncurses
│ │   │   │ │ ├─glibc
│ │   │   │ │ └─gcc-libs
│ │   │   │ │   └─glibc provides glibc>=2.27
│ │   │   │ └─ncurses provides libncursesw.so=6-64
│ │   │   ├─glibc
│ │   │   └─ncurses
│ │   ├─bash provides sh
│ │   ├─libpng
│ │   │ ├─zlib
│ │   │ └─bash provides sh
│ │   └─harfbuzz
│ │     ├─glib2
│ │     │ ├─pcre
│ │     │ │ ├─gcc-libs
│ │     │ │ ├─readline
│ │     │ │ ├─zlib
│ │     │ │ ├─bzip2
│ │     │ │ └─bash
│ │     │ ├─libffi
│ │     │ │ └─glibc
│ │     │ ├─libutil-linux
│ │     │ └─zlib
│ │     ├─freetype2
│ │     └─graphite
│ │       └─gcc-libs
│ └─libxrender
│   ├─libx11 provides libx11>=1.3.4
│   └─xorgproto provides renderproto
├─libjpeg-turbo provides libjpeg>=7
├─libxpm
│ ├─libxt
│ │ ├─libsm
│ │ │ ├─libice
│ │ │ │ ├─glibc
│ │ │ │ └─xorgproto provides xproto
│ │ │ └─libutil-linux
│ │ └─libx11
│ └─libxext
│   ├─libx11
│   └─xorgproto provides xextproto
├─libxinerama
│ ├─libxext
│ └─xorgproto provides xineramaproto
├─libpng
├─cairo
│ ├─libpng
│ ├─libxrender
│ ├─libxext
│ ├─fontconfig
│ ├─pixman
│ │ └─glibc
│ ├─glib2
│ └─lzo
│   └─glibc
└─librsvg
  ├─gdk-pixbuf2
  │ ├─glib2
  │ ├─libpng
  │ ├─libtiff
  │ │ ├─libjpeg-turbo provides libjpeg
  │ │ ├─zlib
  │ │ ├─xz
  │ │ │ └─bash provides sh
  │ │ └─zstd
  │ │   ├─zlib
  │ │   ├─xz
  │ │   └─lz4
  │ │     └─glibc
  │ ├─libjpeg-turbo provides libjpeg
  │ ├─libx11
  │ ├─jasper
  │ │ └─libjpeg-turbo provides libjpeg
  │ └─shared-mime-info
  │   ├─libxml2
  │   │ ├─zlib
  │   │ ├─readline
  │   │ ├─ncurses
  │   │ ├─xz
  │   │ └─icu
  │   │   ├─gcc-libs
  │   │   └─bash provides sh
  │   └─glib2
  ├─pango
  │ ├─libthai
  │ │ └─libdatrie
  │ │   └─glibc
  │ ├─cairo
  │ ├─libxft
  │ ├─harfbuzz
  │ └─fribidi
  │   └─glibc
  └─libcroco
    ├─glib2
    └─libxml2





More information about the ubuntu-users mailing list