PuppyLinux : basics

PuppyLinuxMainPage :: Categories :: PageIndex :: RecentChanges :: RecentlyCommented :: Login/Register

Puppy Linux Mini How-to  

Basics
  - About
  - Installation
  - Getting Started
Software
  - WM
  - Rox Filer
  - PupGet
  - Dotpup
Hardware
  - Video
  - Sound
  - Networking
  - Input Devices
  - Others
Goodies
  - Games
  - Linux Tutorial
  - More
Links
  - Puppy
  - Others
Miscellanea
  - Misc
  How Puppy Works
Puppy is actually a couple of compressed files:

vmlinuz , the Linux kernel
Loads into RAM when live-CD boots.


image.gz , the basic filesystem
When the live-CD boots 'image.gz' loads into a "ramdisk" (a filesystem that's totally in RAM). The ".gz" means that the file is compressed, so it's uncompressed into the ramdisk and then becomes Puppy's basic filesystem (i.e., the "/" or top directory and all the subdirectories /bin, /sbin, /lib, /dev, /tmp, etc).


usr_cram.fs , mounted on /usr
All the files inside the /usr directory are compressed in a file called 'usr_cram.fs'.
Most of the files in Puppy are in /usr (same for any Linux distro). Usually there's no need to write to anything inside /usr (i.e., no need to edit, create or delete files there). Therefore, contents of /usr could be compressed, and that's what Puppy does. This file is not uncompressed at bootup, it's mounted as-is on /usr (by means of what is called a "loopback device"). All of /usr is only a single file that contains a compressed and read-only filesystem.


pupXXX , mounted on /root
As the above 3 files are read-only, your settings (e.g., configuration changes, email, browser history, etc.) can't be saved and are lost at shutdown. To deal with this we have the pupXXX file (where 'XXX' is three numeric digits, pup001 is used for live-CD and pup100 is used for USB installations currently).
'pup001' is a single file, but internally is a complete ext2 filesystem. After creating this file during first bootup, Puppy then mounts it onto /root directory, by means of what is called a "loopback device". This directory /root is your home directory -- all your personal stuff goes in there. Thus, when you shutdown, it will be there next time you start Puppy.

All directories in Puppy are read-only (anythings added to them will disappear on reboot) except:
/root
/usr
/etc
/usr and /etc becomes read-write since Puppy version 1.0.1 with a technique called UNIONFS. Any files written to /usr are actually stored in /root/.usr and mounted to /usr. '/root/.usr' is just a directory inside pup001. As /root/.usr is actually inside pup001 then it will be saved at end of session and reloaded next time Puppy is booted. The same happens to /etc. Files written to /etc are stored in /root/.etc (which is inside pup001) and mounted to /etc.

So, vmlinuz is the Linux kernel, image.gz is a compressed file loaded into ramdisk which then becomes the basic filesystem, usr_cram.fs is a compressed file with everything else (e.g., softwares), while pupXXX is a file that contains all the changes you made to Puppy.

To view the first three files, open the puppy iso file with programs like Winrar. If you have it burned to CD already, view the files just like viewing files in any CD (i.e, browse to the CDrom drive folder). The last file, pupXXX, is created when puppy boots for the first time if you've choosed to save your settings. Usually it's found in the first partition of your hard drive.

To know more see Barry's page: How Puppy Works. Note: If you are using Puppy version 1.0.X, scroll down the page and find the section "How Puppy works, take 1". To learn more about how Puppy version 2 (not released yet) works, see "How Puppy works, take 1".



Categories
CategoryDocumentation

There are no comments on this page. [Add comment]

Valid XHTML 1.0 Transitional :: Valid CSS :: Powered by Wikka Wakka Wiki 1.1.6.0
Page was generated in 0.1225 seconds