Fastest desktop computing experience possible

My lack of knowledge and skills is holding me back from creating an image that
  • is able to be booted
  • loads all of its contents entirely into memory, and keeps them there because the main goal is speed
  • includes software commonly found in installations on desktops (X server, graphical web browser)
  • doesn't include software that isn't commonly found in normal desktop installations

Discussion, criticism, anything to keep this idea that I keep thinking about over and over alive

I don't think there is much need for it and I feel like I could better utilize my time learning more about the many layers between electricity and computing. I just wanted to share my thoughts with people and get some feedback.
 
The biggest problem with something entirely in memory is how to handle changes. If you don't mind loosing all your changes after each reboot, then no problem. Manually and selectively syncing from memory to disk is a massive project in itself, and I think you'll find that the efficiency of FreeBSD's disk cache negates the benefits of having everything forcibly running from memory.
 
@aragon: I have the feeling MuffinFlavored wants to make a live filesystem.

@MuffinFlavored: This has been asked many times, e.g. here.

If you want to create and keep things in memory, you can easily set up some md()/tmpfs() temporary filesystems in /etc/fstab. All the temporary and log directories can/should be mounted on those.
For the user settings, you can create a new user (cf. adduser(8)), move (not copy) all the stock dot files (e.g. .cshrc) in the home directory (/home/username) to a safe location, mount this home directory on a temporary filesystem and have a script populate it with the dot files you kept in the safe location (plus a .xinitrc) on system startup. You can use cron for that (@reboot will do, cf. crontab(5)).
All X applications will generate settings every time they're launched. They'll be lost unless you also save them when the user logs out (/etc/csh.logout and ~/.logout for t/csh) and, again, you repopulate on system startup (or log in). For applications such as browsers, you can also clean cache directories before saving settings, or better, save specific files and scrap the rest.
Letting the user manually save settings (e.g. from the window manager root menu) is another option. FreeSBIE used to do that if memory serves me right.
You can mount all system partitions as read-only to prevent inconsistencies in case of unclean shutdown. If you want to allow the user to save settings you can add a dedicated tiny (~10 MB) separate partition with read/write access. You should mount that one with noatime and sync options to minimize loss and disk activity.
 
You can get 8GB usb sticks for like 10 bucks. Boot off one of those and mount it as /. Yes, they don't last forever, but neither does any other storage medium.
 
Back
Top