Mini-distros
by
erik_fredricks
·
· Score: 5, Informative
There are several small distros designed to run on older hardware. Some, like tomsrtbt and coyote can run directly from a floppy, with no need for even a hard drive. Many of these started life as glorified rescue disks, but with the modular nature of Linux, it's possible, for example, to run a working mail-server on an old 386 with them.
--
THE GOOD HUMOR MAN CAN ONLY BE PUSHED SO FAR
Bart Simpson on chalkboard in episode 2F18
IBM provides a stable home for "little linux"
by
stanwirth
·
· Score: 5, Informative
Great! but as tiny linuxes go,
ramf has support for Reiserfs, and a lot of people I know rely on tomsrtbt . Almost all of the information in the IBM page submitted here is already available, but it's really nice to see IBM providing a stable home for this type of information -- while the original linux from scratch server flounders (was it those big bandwidth bills from being/.ed did it in?) and the first cool rescue thing I used, cclinux, has all but disappeared. sigh!
So thanks, IBM. This time.
uClinux + busybox
by
toybuilder
·
· Score: 5, Informative
A lot of the thanks should go to the work by uClibs and Busybox maintainers. Trimming the kernel is important, but the big savings in size is indeed the small footprint of the C libraries and the "combined" busybox binary.
How much space saving? Well, at my work, we initially prototyped some programs that ended up at around 1 MByte, statically linked to glibc. The same program was 120K after statically linking to uclibc, and then 35K after dynamic linking to uclibc.
I know there's various individual efforts out there to re-build Debian around uclibc. Imagine being able to put a full-featured Debian package on a business-card-sized mini-CD's that you can always keep in your wallet!
Try Slackware
by
theBraindonor
·
· Score: 5, Informative
* 386 processor
* 16MB RAM
* 50 megabytes of hard disk space
* 3.5" floppy drive
By the way, that's not the requirements for an old version... That's for version 8.1 with the 2.4.18 kernel... Have fun.
Re:PDA anyone?
by
be-fan
·
· Score: 5, Informative
Actually, Linus once did an interview with Boot magazine. He actually said that he never thought that anybody would be able to port Linux to an MMU-less machine, then was surprised to find that somebody had ported it to a Palm. So there you have it, from the man himself. Linux does run on Palms.
-- A deep unwavering belief is a sure sign you're missing something...
Glibc is pretty fast. In order to save memory, uclibc makes concessions that potentially hurt speed.
-- A deep unwavering belief is a sure sign you're missing something...
The writer went way too far. The EASY WAY IS:
by
crazyphilman
·
· Score: 5, Informative
Hey, all, just to put this in context, I've been collecting some very old Itronix Mil-Spec laptops recently (one survived being thrown full-strength by me, a 285 pound ex-marine, from seven feet onto worn-out carpet over plywood, and booted up no problem) because I have a fetish for such things. Let's just say I have a thing for durability. The only problem is, the laptops have a "full environmental seal" which means no cd-rom, no internal floppy, no usb ports, etc. They only have a parallel and serial port, a phone jack, and a PCMCIA port protected with a cast aluminum door and a gasket. My weaker ones have eight MB of ram each and are only 486DX2-50's, with a 260MB HDD. My three stronger ones are Pentium 133's with 32MB of ram each, and about a 1.3 GB disk, with monochrome LCDs. Only one has color, but that one's just a 640x480 LCD. I wanted to run Linux, and not some quirky, doofy ancient Linux either. Here's how I got it to work.
Step 1. I have an external floppy that connects to the PCMCIA slot, and a parallel port zipdrive. So, I downloaded Zipslack (available on the Slackware website) and the companion, fourmeg.zip, which creates a swap file. Zipslack is interesting because it creates a UMSDOS slackware installation on a zipdisk (just unzip it to the zipdisk). This can then be booted from the zipslack boot floppy (boot from the boot floppy, then direct root at/dev/sda4, i.e. the zipdisk). Zipslack booted with only minor difficulties -- I had to tweak a couple of BIOS settings, that's all.
2. Once in Zipslack, I had to set up the Itronix's hard disks for Linux. So, first, I fdisked, and set up most of each disk as a type 83 Linux partition, and the rest as a type 82 Linux swap. I probably gave too much swap; I took a guess for the "big" ones and made it like 88 cylinders; I think it turned out to be better than 128MB (I made it a LOT smaller on my little ones). Next, I formatted the disk: I ran the command:
"mke2fs -L armadillo -c -c -j/dev/hda1"
This surprised me a little, pleasantly: I knew the two "-c" params would cause it to overwrite the disk with nulls, but it did it FOUR TIMES, which is pretty damn thorough. Once that finished up (it took at least an hour on my old machines) I mounted the disk as type "ext3" on/mnt/hd.
3. Now, I copied my entire root directory onto the mount point, leaving out the loadlin stuff and files that were obviously DOS related (like the DOS mount directory). I copied each directory using (for example) "cp -a/bin/mnt/hd/bin". Of course, I didn't copy/mnt or/proc. For those, I just mkdir'ed them in the new directory. Once I was satisfied that the entire zipslack system was copied over to the new partition, I edited/mnt/hd/etc/fstab and set up the "/" partition as/dev/hda1 (and set up swap as well, although I wasn't sure I had to do that). Then, I rebooted using the boot disk.
4. This time, I pointed the root directory at/dev/hda1. I booted into my hard drive's Linux, and ran liloconfig to set up automatic booting with LILO. I ran it in expert mode, and set up only one entry, i.e. that for Linux. Then I set it up to automatically boot into that entry with no delay.
The result is that my little Linux machines all work perfectly!
On my "big" ones, I put a bunch more stuff in. I put in the development disk set, plus x, xap, most of n, and this coming week I'm adding kde and gnome. On my "little" ones, I've only got 260MB of space, so I'm going to stick with text-mode. I'm toying with the idea of using emacs as an environment for those, IF the e set will fit on 'em of course.
The most expensive of these laptops was 150.00. The cheapest was 25.00. Zipslack was free. Now, is that a great deal or what? Especially considering they're like indestructible little armadillo monsters, right?
Oh, by the way: I'm using Zipslack 8.1 and I'll probably upgrade to 9.0 when it comes out. Gotta love Slackware! Bob RULES!
BTW: my grammar isn't so hot today. It's the Marine Corps Birthday (10 Nov) and the "Marine Corps Drink" is the Rum and Coke, so cut me some slack there (ha! get it? SLACK! I slay me)...;P
-- Farewell! It's been a fine buncha years!
Re:Use Busybox in all distributions
by
cant_get_a_good_nick
·
· Score: 5, Informative
I just don't see how it is feasible to leave dozens of tiny utilities littered all over the root filesystem.
Busybox works two ways, either/bin/busybox "command" [optional flags] or you can symlink/hardlink it to [command] and run it like the ordinary command.
If you do it the first way, busybox "command" you'd have to type the extra letters all the time. You can alias it, but then you'd have to have a support issue with all the users unless you had universal aliases, and thats not optimal.
If you do it the second way, with the symlinks or hardlinks, you still have all the things in/bin, not much added elegance.
The code in busybox gets complicated. The added elegance in the file system becomes complications in the source code. Any updates to any of the "functions" as busybox calls them, requires an update to essentially all your userland utilities (as expressed in busybox). Lots of updates, lots of testing, because now any change to anytihng in busybox requires you to test everything, because a change in the ls "function" is in the same code that contains your mount command, and your cat, and your rm, etc., and now you need to test all of those as well.
Shared code can go into libraries. That's why libc is usually dynamically linked, shared code should be shared. You get your elegance with asmall executable with much of it's guts in shared libraries. Elegance here causes ugliness there. You pick your battles, you do things the way you want to. That said, busybox is opensource, and all of the gnu utilities are opensource as well. I don't think the busybox folks would mind patches from you or any others that share the view. I personally don't agree, my "elegance" is in smaller utilities with well defined functions, and I would not contribute.
33Mhz, 32Mb and a 250mb HD for my debian web server.
I recently installed Debian on a similar but lower-memory system (8MB) as a web server (yes, I am going to add more memory soon). Aside from a memory-intensive stage where apt-get was merging some package data, it went smoothly but slowly.
The reason I mention this is that I've seen posts where people say they installed a small linux system on a computer with 4mb of memory "a while ago", and posts where someone has recently installed a small linux system on a computer with 16mb of memory or so, but no mention of really low-memory systems. So I figure that I should mention that a reasonably up-to-date distro (Debian) does install on 8mb, though it'll get ugly at one point if you don't have more like 16mb. Also, perhaps the 4mb Laptop How-To is worth mentioning at this point.
There are several small distros designed to run on older hardware. Some, like tomsrtbt and coyote can run directly from a floppy, with no need for even a hard drive. Many of these started life as glorified rescue disks, but with the modular nature of Linux, it's possible, for example, to run a working mail-server on an old 386 with them.
THE GOOD HUMOR MAN CAN ONLY BE PUSHED SO FAR
Bart Simpson on chalkboard in episode 2F18
Great! but as tiny linuxes go, ramf has support for Reiserfs, and a lot of people I know rely on tomsrtbt . Almost all of the information in the IBM page submitted here is already available, but it's really nice to see IBM providing a stable home for this type of information -- while the original linux from scratch server flounders (was it those big bandwidth bills from being /.ed did it in?) and the first cool rescue thing I used, cclinux, has all but disappeared. sigh!
So thanks, IBM. This time.
A lot of the thanks should go to the work by uClibs and Busybox maintainers. Trimming the kernel is important, but the big savings in size is indeed the small footprint of the C libraries and the "combined" busybox binary.
How much space saving? Well, at my work, we initially prototyped some programs that ended up at around 1 MByte, statically linked to glibc. The same program was 120K after statically linking to uclibc, and then 35K after dynamic linking to uclibc.
I know there's various individual efforts out there to re-build Debian around uclibc. Imagine being able to put a full-featured Debian package on a business-card-sized mini-CD's that you can always keep in your wallet!
Here's what you need, straight from the source:
* 386 processor
* 16MB RAM
* 50 megabytes of hard disk space
* 3.5" floppy drive
By the way, that's not the requirements for an old version... That's for version 8.1 with the 2.4.18 kernel... Have fun.
Actually, Linus once did an interview with Boot magazine. He actually said that he never thought that anybody would be able to port Linux to an MMU-less machine, then was surprised to find that somebody had ported it to a Palm. So there you have it, from the man himself. Linux does run on Palms.
A deep unwavering belief is a sure sign you're missing something...
Glibc is pretty fast. In order to save memory, uclibc makes concessions that potentially hurt speed.
A deep unwavering belief is a sure sign you're missing something...
Hey, all, just to put this in context, I've been collecting some very old Itronix Mil-Spec laptops recently (one survived being thrown full-strength by me, a 285 pound ex-marine, from seven feet onto worn-out carpet over plywood, and booted up no problem) because I have a fetish for such things. Let's just say I have a thing for durability. The only problem is, the laptops have a "full environmental seal" which means no cd-rom, no internal floppy, no usb ports, etc. They only have a parallel and serial port, a phone jack, and a PCMCIA port protected with a cast aluminum door and a gasket. My weaker ones have eight MB of ram each and are only 486DX2-50's, with a 260MB HDD. My three stronger ones are Pentium 133's with 32MB of ram each, and about a 1.3 GB disk, with monochrome LCDs. Only one has color, but that one's just a 640x480 LCD. I wanted to run Linux, and not some quirky, doofy ancient Linux either. Here's how I got it to work.
/dev/sda4, i.e. the zipdisk). Zipslack booted with only minor difficulties -- I had to tweak a couple of BIOS settings, that's all.
/dev/hda1"
/mnt/hd.
/bin /mnt/hd/bin". Of course, I didn't copy /mnt or /proc. For those, I just mkdir'ed them in the new directory. Once I was satisfied that the entire zipslack system was copied over to the new partition, I edited /mnt/hd/etc/fstab and set up the "/" partition as /dev/hda1 (and set up swap as well, although I wasn't sure I had to do that). Then, I rebooted using the boot disk.
/dev/hda1. I booted into my hard drive's Linux, and ran liloconfig to set up automatic booting with LILO. I ran it in expert mode, and set up only one entry, i.e. that for Linux. Then I set it up to automatically boot into that entry with no delay.
;P
Step 1. I have an external floppy that connects to the PCMCIA slot, and a parallel port zipdrive. So, I downloaded Zipslack (available on the Slackware website) and the companion, fourmeg.zip, which creates a swap file. Zipslack is interesting because it creates a UMSDOS slackware installation on a zipdisk (just unzip it to the zipdisk). This can then be booted from the zipslack boot floppy (boot from the boot floppy, then direct root at
2. Once in Zipslack, I had to set up the Itronix's hard disks for Linux. So, first, I fdisked, and set up most of each disk as a type 83 Linux partition, and the rest as a type 82 Linux swap. I probably gave too much swap; I took a guess for the "big" ones and made it like 88 cylinders; I think it turned out to be better than 128MB (I made it a LOT smaller on my little ones). Next, I formatted the disk: I ran the command:
"mke2fs -L armadillo -c -c -j
This surprised me a little, pleasantly: I knew the two "-c" params would cause it to overwrite the disk with nulls, but it did it FOUR TIMES, which is pretty damn thorough. Once that finished up (it took at least an hour on my old machines) I mounted the disk as type "ext3" on
3. Now, I copied my entire root directory onto the mount point, leaving out the loadlin stuff and files that were obviously DOS related (like the DOS mount directory). I copied each directory using (for example) "cp -a
4. This time, I pointed the root directory at
The result is that my little Linux machines all work perfectly!
On my "big" ones, I put a bunch more stuff in. I put in the development disk set, plus x, xap, most of n, and this coming week I'm adding kde and gnome. On my "little" ones, I've only got 260MB of space, so I'm going to stick with text-mode. I'm toying with the idea of using emacs as an environment for those, IF the e set will fit on 'em of course.
The most expensive of these laptops was 150.00. The cheapest was 25.00. Zipslack was free. Now, is that a great deal or what? Especially considering they're like indestructible little armadillo monsters, right?
Oh, by the way: I'm using Zipslack 8.1 and I'll probably upgrade to 9.0 when it comes out. Gotta love Slackware! Bob RULES!
BTW: my grammar isn't so hot today. It's the Marine Corps Birthday (10 Nov) and the "Marine Corps Drink" is the Rum and Coke, so cut me some slack there (ha! get it? SLACK! I slay me)...
Farewell! It's been a fine buncha years!
I just don't see how it is feasible to leave dozens of tiny utilities littered all over the root filesystem.
/bin/busybox "command" [optional flags] or you can symlink/hardlink it to [command] and run it like the ordinary command.
/bin, not much added elegance.
Busybox works two ways, either
If you do it the first way, busybox "command" you'd have to type the extra letters all the time. You can alias it, but then you'd have to have a support issue with all the users unless you had universal aliases, and thats not optimal.
If you do it the second way, with the symlinks or hardlinks, you still have all the things in
The code in busybox gets complicated. The added elegance in the file system becomes complications in the source code. Any updates to any of the "functions" as busybox calls them, requires an update to essentially all your userland utilities (as expressed in busybox). Lots of updates, lots of testing, because now any change to anytihng in busybox requires you to test everything, because a change in the ls "function" is in the same code that contains your mount command, and your cat, and your rm, etc., and now you need to test all of those as well.
Shared code can go into libraries. That's why libc is usually dynamically linked, shared code should be shared. You get your elegance with asmall executable with much of it's guts in shared libraries. Elegance here causes ugliness there. You pick your battles, you do things the way you want to. That said, busybox is opensource, and all of the gnu utilities are opensource as well. I don't think the busybox folks would mind patches from you or any others that share the view. I personally don't agree, my "elegance" is in smaller utilities with well defined functions, and I would not contribute.
33Mhz, 32Mb and a 250mb HD for my debian web server.
I recently installed Debian on a similar but lower-memory system (8MB) as a web server (yes, I am going to add more memory soon). Aside from a memory-intensive stage where apt-get was merging some package data, it went smoothly but slowly.
The reason I mention this is that I've seen posts where people say they installed a small linux system on a computer with 4mb of memory "a while ago", and posts where someone has recently installed a small linux system on a computer with 16mb of memory or so, but no mention of really low-memory systems. So I figure that I should mention that a reasonably up-to-date distro (Debian) does install on 8mb, though it'll get ugly at one point if you don't have more like 16mb. Also, perhaps the 4mb Laptop How-To is worth mentioning at this point.