What are the bare minimum components for a Linux OS to be functional, and that I can use as a base to expand and improve as I learn Linux and my understanding and needs grow?
|
If you mean learn Linux as in getting to know the source code, you may want to try Linux from scratch |
|||||
|
|
Archlinux uses a base group of files for a very minimum install. Along with a base-devel group, if your going to be doing any system development. |
|||||
|
|
If you really want just the bare minimum of what is a Linux system, you might try distributions for embedded systems like routers. They normally only carry the absolute minimum of software and the common lack of a graphical user interface forces you to become familiar with the command line. One drawback is, that often those systems break conventions of regular Linux distributions, e.g. they install software in uncommon places or use simplified init systems. If you want to give it a shot, you might try e.g. openwrt in a virtual machine. |
|||||||
|
|
How is it that nobody has mentioned tomsrtbt? (Linux on a single 1.44" floppy) |
|||||||||||||
|
|
If you're looking to learn, Gentoo's a good option - the minimal Gentoo installation is a root shell and a package manager, and you build the rest of your system from there. Gentoo also stays pretty close to upstream on packages, so you won't run into too many problems if you want to download and build some packages yourself (and in fact, you can add them to the /etc/portage/package.provided file after they're installed, and use them as dependencies!) If you're looking for the absolute smallest possible Linux system, then build your own kernel, stripping out all the drivers and features that you're not planning to use, and then add an initramfs containing a similarly minimized build of Busybox. The result is a fully-bootable Linux system in a single executable (which you can point your bootloader at), and which you can fit in under 10 MB without even trying. |
|||
|
To me, Damn Small Linux got the name for "the smallest possible Linux distro"! However I heard that it is kind of discontinued. You can also see a list of similar distributions (called "Mini Linux") on this wiki page. If space isn't your aim I'll suggest Gentoo or Arch Linux, they both install a base system. You choose what to use and install packages as your needs grow. |
|||
|
You could try Slackware linux. The menu-driven install will allow you to install quite a minimum system. You can easily leave off man pages, X11, Tcl, Emacs and that's just from the very top-level install. You can dive into the install and only install a bare minimum of packages. After that, I'd recompile the kernel specifically for the machine you installed on. Slackware still defaults to the Lilo boot manager, so you end up knowing a bit more than you want to know about boot sectors, which partition is marked bootable, what your initrd contains, etc etc than for Grub-booted distros. |
|||
|
|
|
What you need to do is download the latest kernel from kernel.org, do a |
|||
|
|
You could look at Puppy Linux. It may not be the smallest but it has a repuation of being small. However Linux distrtos that are meant to be small generally tend to stay small. For learning linux, I would a live debian somewhere. .I would get the debian kernel sources, bash sources and grub sources cross compile and install. Then cross compile install an editor, apt and gcc. Then generate a list of packages from the debian live. Install the source for each package, compile and install. Then add X then the Wm of your choice then you have the basis for what you want to do. PS: apt-get source gets you the source for a debian package. |
|||
|
|