papowell@astart.com
AStArt Technologies addr
9475 Chesapeake Dr, Suite D,
San Diego, CA 92123
Phone 858-874-6543
Fax 858-279-8424
Copyright © 2000 by Copyright string here
PicoBSD is a repackaging of the FreeBSD Operating System and a set of useful utilities. The default configuration tools allows a single or multiple floppy based system to be generated, or a system suitable for use in booting from a CDROM.
If you ever dreamed about having really small, tiny, minimal system that would offer you benefits of Unix, while still fitting in reasonable space - here it is!
PicoBSD is a one floppy version of FreeBSD 3.0-current, which in its different variations allows you to have secure dialup access, small diskless router or even a dial-in server. And all this on only one standard 1.44MB floppy - no need to sacrifice over 100MB of your precious HDD space.
PicoBSD is... well, pico-sized :-) , and the minimal hardware that is required to run it is 386SX CPU with 8MB of RAM (no HDD!). Here you can find a detailed list of supported hardware and features.
Current version of PicoBSD is @VER@, and this means that I consider it still immature, while on the other hand being somewhat tested and improved over previous versions. Does it tell you something? Well, at least you can try it - I cannot guarantee that it doesn't burn your house or blow up your machine, though the former is unlikely... :-)
There are two language editions of PicoBSD - English and Polish one. You'll be probably more interested in the former :-) The only difference is in the set of fonts included, C locale, and the language of messages.
You can download them from www.freebsd.org or one of its mirrors:
Networking (formerly known as 'router-like') version: English (README) or Polish (README)
Dial-in server version: waiting for beta testers ... :-)
(See the feature list for more details)
The above floppies were built from 3.0-current sources. Though they provide more features, they tend to be less stable than the latest RELEASE of FreeBSD. Dinesh Nair back-ported these scripts to the latest release (2.2.5), and continues development of PicoBSD using sources from that branch. You can find floppies built from 2.2.5 sources here or at his server.
Previous versions were packed with PKZIP(tm) compatible program - now they are simply the raw binary floppy images, so you just need to grab the appropriate version of the file. I assume you will use 1.44MB floppy to boot the system - other sizes (bigger) are not tested.
The file 'pb_xx-X.bin' must be written onto a blank floppy. It does NOT mean that it can be copied using e.g. DOS 'copy' command. You must use a program like rawrite.exe or fdimage.exe to write this file directly on the raw floppy.
Under DOS you would do something like this:
C:\> fdimage.exe pb_xx-X.bin a:
while under Unix you would use something like:
dd if=pb_xx-X.bin of=/dev/rfd0
Then boot off this floppy and enjoy!
I made available also the set of tools (a.k.a the PicoBSD Development Kit) I used to create the floppies (see also the detailed instructions)
You can also access the full CVS repository of PicoBSD - beginning with version 0.4 it's a part of official FreeBSD CVS and lives in src/release/picobsd. I also create the snapshots of this source tree - keep in mind that they are not so up-to-date as the tree in FreeBSD CVS. You can get the snapshot I made on Sun Nov 1 11:48:32 PST 1998 here.
Now, if you don't like the setup of PicoBSD, or you miss some program, or (better yet) you want to improve PicoBSD - you can grab the copy of exactly the same tools I used and build your own, customized version!
Think of it: if your're an ISP, you can build the dialup version for your customers, including some scripts to automatically connect them to your site. You can also create a demo disk for your friend (or your boss! :-)). You can also build a firewall/router for your office, etc, etc... possibilities are really endless and limited only by your imagination.
You will need at least 10MB of free disk space for building, and of course the full system sources installed. I also assume that the sources are quite -current. There is also a back-ported version of the scripts prepared by Dinesh Nair which builds OK on 2.2.6-R systems.
Version 0.31 was packed with pax(1) - newer versions are packed again with tar and gzip to avoid confusion... :-)
I'm very interested in hearing from you about your experiences - if you come up with a setup you think is interesting, please let me know!
Almost all of the programs included on the floppies are exactly the same versions as in normal FreeBSD installation, so that the normal manual pages apply. However, I didn't include the manpages themselves - they would take over 200kB!
For the total newbies, which would use (I assume) the 'dialup' version, there is a short README on the floppy which gives step by step instructions on how to get a dialup connection. There is also a script called 'dialup' which attempts to configure PPP to allow for automatic log in to your provider, and for background operation. There is also a small help system ('help' command)
There are some system utilities which are unique to PicoBSD, and at this moment they are documented in detail only in source and READMEs :-(.
As for the new releases which will (hopefully) be prepared in the future: just keep an eye on this page. I'll also send announcements to FreeBSD mailing lists.
Well, I hope that thanks to your comments I'll be able to continuously improve the setup and contents of PicoBSD. I also have specific dreams (if dreams can be specific..) - here they are, as an incentive to your imagination and coding skills:
To write a command line tool patterned after Cisco IOS, which could configure various aspects of router-like version of PicoBSD. Well, currently you can read very preliminary draft of proposed architecture, called the Unified Configuration Interface.
To put an XWindow-like GUI on the 'dialup' floppy. (Update: you can look at preview version and send me your comments. I need some help in porting newer version of W).
To gain some experience with solid state disks, and prepare standard images for e.g. 4MB versions of SSD, with Cisco 25xx-like contents... I also hope to achieve this goal in the nearest future, thanks to involvement of some PicoBSD enthusiast :-) (Update: I'm experimenting with an M-System's 16MB flash right now, and there is also ongoing development for a driver for their DiskOnChip)
To be able to boot from more primitive filesystem than FFS - DOS or Minix would be just fine, as they don't waste so much space for their internals.
To have an alternative to current MFS - it wastes a lot of space just because it mimicks the normal FFS on top of memory blocks...
To further minimize the memory footprint of router-like setup. I'd like it to be able to run truely effortlessly on 4MB machines... This would probably include rewriting oinit(8) to run multithreaded.
And many others... You can find a complete list here.
The following people are either responsible for the very existence of this project, or significantly eased my pains in gaining necessary knowledge:
the whole FreeBSD team for this magnificent OS, and their hard work of continuous development,
Dinesh Nair, for co-development and preparing of the version which compiled on 2.2.5-RELEASE,
Joe Greco, for his encouraging example of XKERNEL (some parts of the scripts still bear his fingerprints :-) (you can get it here).
Goran Hasse of Raditex AB, Sweden, for sending me M-Systems' and SanDisk flash disks to experiment with.
Mike Smith for various tips and encouragement.
freebsd-* mailing lists participants, which helped me with some other pieces.
and many other people who keep encouraging me to continue this work. Thanks, guys!
PicoBSD is distributed under BSD copyright, which allows you to use it in various ways, including commercial applications. So grab it and enjoy! And if you feel that you want to help with this project, either by donating some time to write code, or by some other donation, just contact me.