site  contact  subhomenews

Quirky idea #1 works

October 31, 2009 — BarryK
I had already done a small test, now I have written a script in Woof, '4quirkybuild', to do a full build of Quirky.

I think that I discussed this idea with Raffy a long time ago. Well, it was briefly mentioned.

Puppy has at least three files, vmlinuz, initrd.gz and pup-xxx.sfs.

The initramfs, or to use it's old name "initial ramdisk", is initrd.gz. After the kernel vmlinuz has loaded, it then loads this initramfs, which is a mini Linux working environment. It does the searching of the drives to find the Puppy files, and after having found pup-xxx.sfs (and maybe the 'pupsave', 'zdrv', and extra sfs files) then sets up the layered filesystem and peforms a 'switch_root' into this layered filesystem.

Puppy can be built with the pup-xxx.sfs inside the initrd.gz, which is good because then Puppy doesn't have to look anywhere to find it. It does slow bootup though, as it all has to be loaded into RAM.
It is also simpler to setup booting, especially over a network, as there are only two files.

Now, the quirky idea takes this one step further. It is possible to compile the kernel vmlinuz with the initrd inside it. So, if we build the pup-xxx.sfs inside initrd, then we compile the kernel with the initrd inside the kernel... we end up with just one file!

Furthermore, the 2.6.30 kernel inroduced lzma compression. This reduces the size of the kernel, but we can keep plain gzip compression for the pup-xxx.sfs file (which runs faster). Though, I don't think that applying lzma compression to a sfs file reduces it much.

Anyway, I did a test build, based on 4.3.1 pet packages, and created 'quirky000'. This is a Linux kernel, with, as I explained above, the initrd and the pup-xxx.sfs inside it.
I put it on a USB Flash drive, and modified the 'syslinux.cfg' file to just this:

default quirky000 pmedia=usbflash

...the pmedia parameter isn't really needed.

Yep, it works! booting is a bit slow, as everything loads into RAM. But, this is the direction that I am aiming Quirky -- a distro that runs in RAM only.

Hey, this is fun!

This idea #1 is going to be very useful for those who want to do network booting, I reckon.

Comments

Congrats
Username: Caleb
Congratulations Barry - sounds like you're making progress already. I must admit, I'm an old fashion kinda guy and my Puppy is a full install. I always want my RAM for other things, but if I didn't I could definitely see the magic in this. Looking forward to following the progress.

this is really Quirky!!!
Username: moogsydodong
"man... what can I say??? THIS IS OUT OF THIS WORLD!!! an entire system literally in RAM...in one file... its... its... ...QUIRKY!!! hey Barry...does this concept of loading everything in RAM really slows down the boot time??? how slower compared to the usual puppy??? this is really exciting man...

RAM-based Tiny Puppy
Username: Raffy
"Excellent, Barry. Now it will be very easy to do net-booting Puppy (Quirky does it without any needed changes). (In net-booting, transferring all the boot files is a given, so there is no perceived problem with copying files to RAM.) If the pup-xxx.sfs base is small enough and resides in RAM, then quirky can be combined with executable sfs to simplify adding bigger applications: http://code.google.com/p/sfs-technology/ Isn't rewritable sfs exciting? Programs may no longer need pup_save (?).

Quirky Kernel
Username: lobster
"Guys some of you get this - I am trying to get my head around it . . . So far is this correct? http://puppylinux.org/wikka/Quirky Taking what I have understood, does it mean that a central server could 'push' out a Quirky Kernel to terminals? Could the whole system reside in an eprom (or modern equivalent) with storage on a secure cloud storage? Would 4quirkybuild be able to compile for different hardware parameters? If so does Quirky become potentially Intel independent - or is this going too far? I am trying to work out how and why such a system would be deployed? Gosh it is fun and I am not even sure what it is . . . :happy:

Quirky might be faster
Username: Tony
"Hi Barry, on my machine with large hard drive and number of partitions puppy takes about 10-15 seconds to search for the pup-save file so this version might boot quicker for me. Also I was never quite sure why fast boot option was dropped (Using previous known good configuration) as this definitely helped with boot speed. I was wondering if compression make much of a difference to file size on the core files and what is the trade off in speed. Final thought, would a program that stripped out comments from scripts before compiling speed things up and lower the file size much. (Pardon my ignorance if the are stupid thought, I get a lot of those each day!) Anyway looks exciting, have fun Tony

What is it good?
Username: BarryK
"Lobster, I really don't know what use it is to have Quirky as a single file. I only have some vague thoughts about what it might be useful for. It's just a cool thing to do. One thing, I can see how it would simplify installation instructions, frugal, etc.

Quirky
Username: wombat01
"Outstanding. I also had the same thought of an eeprom or something similar. Maybe the woof build could configure for individual systems then all of the unused modules/drivers could be stripped out to reduce the size even further.

Amount of RAM??
Username: Jota
" [quote]But, this is the direction that I am aiming Quirky -- a distro that runs in RAM only. [/quote] Barry, From your explanation, one thing is not clear to me: what will be the amount of Ram needed to run Quirky? Is this goodbye to old hardware with limited Ram??

Ram
Username: Pizzasgood
"Estimating from current Puppy sizes, you would probably need about 256 MB to run comfortably. But I have no idea how large/small Quirky will be in the end, so your guess is as good as mine. Limited ram? Too bad. This is NOT Puppy, it is Quirky. If is completely irrelevant whether you use it or not. Nobody cares. Barry is just playing around with it, not trying to take over the world or offer salvation to people with old hardware. Nobody will force you to use it. If you want to use old hardware, stick with Puppy or one of the other many fine distros out there. This is an experiment that Barry is doing for [i]himself[/i].

Well I get one thing
Username: Nathan F
"One thing sticks in my mind anyway, and that's the line about lzma being incorporated into the kernel. I double checked that and sure enough, it's right in the official kernel source tree now. And I've been enjoying BSD so much! Now I have another reason to go back to Linux.

Puppy derivatives to the rescue
Username: panzerpuppy
"@Jota: For hardware with limited RAM / CPU resources, you should use Turbopup Xtreme :)

Quirky
Username: ttuuxxx
"Hi Barry love your latest Brainstorm Idea. from your first test could you please tell us a few specs, like -bootime compared against say 4 or 5 series -amount of memory used -also is there any drag when moving folders or icons on the desktop? I know its early and still needs configuring and tweaking, but it would give us a bit more think about. Thanks and excellent work :) ttuuxxx

Amount of RAM??
Username: Jota
" Hey Pizzasgood, are you angry? I was just curious? Was that a crime? :-) @ttuuxxx: you should not ask for "amount of memory used?", cause Pizzasgood... @panzerpuppy: many thanks, it looks good, will try it later.

Try xPUD
Username: technosaurus
"the PUD project does something similar if you want some more ideas. It boots really fast but its mostly just firefox and some extras. I did a manual frugal install and added this to boot it title xPUD 0.9.1 root (hd0,0) kernel /xpud/xpud noisapnp lang=en quiet I am trying to figure out if we really need to do a switch root - I don't think tinycore doese

(Formaly SH.-Lost p.word)
Username: Silver Steve
"'Radical' I look forward to playing around with this. My 'user' approach is to pic&mix different versions of an operating system in a multi-boot environment so that the best of all worlds is achieved. (e.g. One for multimedia, one for office etc). Each 'facet' having a different name for easier identification, such as I did with Puppy. Sounds promising. ('quirky' is the character of a girl called Emma who causes my pen to slip, so will probably name the first version after her).

Quirky wallet
Username: raymundo dionicio
"On a mini-CD-R or a mini-DVD-RW Quirky sounds like 'The Distro' for my wallet :)

This is a brilliant idea. Mr. K
Username: Feverfew
" So Quirky is kinda like "CrunchBang Linux" a test bed of new 'n' weird ideas. Vary cool. Has anyone taught about implementing a puppy ideatorrent? http://brainstorm.ubuntu.com/[/url http://www.ideatorrent.org/

darn bracket
Username: Feverfew
"http://brainstorm.ubuntu.com/ http://www.ideatorrent.org/


Tags: quirky