GNUnix ---
[Pronounced NoonIX] An
initially tiny but incrementally
complete
OS with a page-fault like JIT
packaging system that transpa
rently down
loads and
installs
drivers or applications when the system or a
user at
tempts to
use that feature.
==Goals
Minimal re
source
use through JIT down
load,
install, start.
Auto-hibernate
procs by writing "resident
memory" and handle list to
disk allowing thou
sands of
procs to remain forever
running, even a
cross re
boots.
Some
kind of dashboard to dis
play computer
health and
help such as:
Process
interrogation and
control: htop, xosview, x
load
CPU schedule, split, cluster
Memory Al
location and
Protection
Disk Storage, Throughput,
Temperature:
CoreDump.Free.fr/linux/hddtemp.php
Network Throughput:
Keyboard and API
access
The
user down
loads the
installer as a platform-specific
executable which prompts the
user to split or overwrite the
partition table.
A minimal
disk image
(with a low-performance 'universal' network driver or with all known network drivers) is then down
loaded and written to the target
partition which is
(by default) made
bootable from the containing
OS.
Hardware is probed during the first
(and anytime |SHIFT| is held during) boot;
needed
drivers are down
loaded,
installed and started.
The
video card is switched to
graphics
mode very early and the login prompt appears while
services start in the
background. Default resolution and re
fresh rate are sensible and easily ad
justed by
right-clic
king the
desktop.
New users may
create their
own (limited) account with the
[New] button at the login
screen.
Pressing the
WindowKey or clic
king the
[Star] button dis
plays a tree of
software and
media organized and
sorted by
community and/or
personal ran
kings.
Tools, toys,
games,
movies,
music,
books,
news, etc. are down
loaded,
installed and
executed only when selected.
Titles appear s
lightly faded until
installed. When a choice is made, it is down
loaded from
local
CD/
DVD if available or through bit-tor
rent backed by
HTTP mirrors.
The
lightweight
windowing system optionally
captures and translates
keystrokes so
input can be standardized a
cross applications.
Mixable themes include: CUA/Explorer,
Emacs, vi, Norton
Commander.
Each application frame drawn by the
window
manager includes an
extra button which
helps this
user
read and write
community
News,
Bugs, Updates,
Help, Docs, Fix, Ratings, etc.
==Global keys
WindowKey
Open 'root' menu
(WindowKey-z in jwm)
Ctrl-Shift-ESC System
Monitor
Ctrl-Alt-Del Menu to shutdown,
logoff, restart
Ctrl-Alt-Bckspc Menu to fix resolution, re
fresh rate, login
portal
WindowKey-e Min
Emacs lightweight
disk and
net browser/
editor
WindowKey-r
Open a '
Run' prompt
WindowKey-m Minimize all
windows
WindowKey-c
Open a
Console
==Implementation ideas
A
text file or maybe a directory of
files and subdirs
used describe the menu layout and
commands?
Make the directory
/usr/local/gnunix and put it at the *end* of our $
PATH environment variable. Then fill
/usr/local/gnunix with small
executable
installation
scripts having the same
name as the target
command. When the
user tries to
run a
program that is not yet
installed, it
actually
runs the
installer instead.
For example,
/usr/local/gnunix/xosview might look some
thing like:
__
#!/bin/sh
sudo apt-get
install xosview
xosview
__
Now, when the
user at
tempts to
run that
program, the system will transpa
rently
run the
installer and then launch the
program. The next
time the
program is called, the system will find the *
real*
executable earlier in $
PATH and
run it directly instead.
==Long-term ideas:
The GUI "
Desktop" becomes a 3D loo
king first-
person perspective with the same MOO
text objects represented as icons or
models.
These
objects are manipulated through a
right-click menu or by 'applying' other
objects.
The HUD contains gauges for
CPU utilization, speed,
heat;
Memory
load; fan speeds,
disk and
net activity/
load and errant
processes or
users.
Programs are
grouped in rooms dedicated to high-level
goals like janitor,
mail,
music,
TV,
games.
Computer
hardware is represented by a 3D
model you may
administer directly.
Networked
peers may
share
read, write,
execute
access to their
files and dis
play.
Security may appear as doors or
windows that require a
key or
tool to
open.
A
portable
radio or
TV can be added to your HUD.
Changing channels lets you
browse through
Free audio and
video blogs or feeds.
==Research
MinimaLinux.org
==Example based on Ubuntu Hardy Heron
===Boot from HD partition
$ wget Archive.UBUNTU.com/ubuntu/dists/hardy/main/installer-i386/current/images/netboot/mini.iso
Use LUBI.sourceforge.net and
https://launchpad.net/unetbootin >>UNetbootin allows for the installation of Ubuntu, Fedora, Mandriva, OpenSuse, Arch Linux, or Debian to a real partition, so it's no different from a standard install, only it has the advantage that it needs no CD.
===Boot from USB
$ wget Archive.UBUNTU.com/ubuntu/dists/hardy/main/installer-i386/current/images/netboot/boot.img.gz
$ sudo fdisk -l #list partition tables from /proc/partitions
>Disk /dev/sda: 320.0 GB, 320072933376 bytes
>>This is my SATA drive
...
>Disk /dev/sdb: 127 MB, 127664128 bytes
>> ok, this is the USB drive
$ cfdisk /dev/sdb #delete all partitions, then add primary partition #1 as FAT16
$ gunzip boot.img.gz
$ cat boot.img > /dev/sdb1
===Burn to CD
$ wget Archive.UBUNTU.com/ubuntu/dists/hardy/main/installer-i386/current/images/netboot/mini.iso
In a
virtual environment:
$ qemu-img create QemuHD.img 1G
$ qemu -cdrom mini.iso -boot d QemuHD.img
For a
physical machine, write it to
CD
$ cdrecord -dev=/dev/dvdrw -v -speed=4 -eject mini.iso #limiting speed may increase burn success
Now insert the
CD into the target machine and
boot it.
===Booting
At the "
boot:" prompt
type 'cli' and
press ENTER
After
finishing the
install and re
booting, login to a
user account and
run:
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install xorg wdm jwm big-cursor rxvt htop hwinfo xosview xfe epdfview firefox unzip aumix mplayer vlc
xorg: Base
X Window system
wdm: Login
screen
jwm or pekWM:
Desktop and application frames
big-cursor: Giant mouse p
ointer
rxvt:
Virtual
Terminal for
command-line
access
htop:
Manage
running
procs
hw
info: View
hardware
information
x
load, xosview: View
OS conditions
xfe:
Browse
filesystem
epdfview, poppler-
utils: view .
pdf
firefox:
Browse
web
unzip:
Extract .
zip
aumix: Ad
just audio settings
m
player, vlc: View
audio and
video
files
fotox: View still
pictures
emacs:
Edit text files,
browse
filesystem
$ cd ~/ #change to our home directory
$ wget EcoComics.org/.text/.jwmrc
$ wget EcoComics.org/.text/.xmodmap
$ wget EcoComics.org/NoteMacs.tar.bz2
$ tar -xjf NoteMacs.tar.bz2
The
new X.Org (7.*) creates a much smaller
/etc/X11/xorg.conf that is easier to understand, but who in the
universe
wants a
virtual
desktop larger that their
real resolution?! Bah!
$ sudo emacs /etc/X11/xorg.conf #force X11 to one resolution:
Section "
Screen"
+ DefaultDepth 24
+ SubSection "Dis
play"
+ Depth 24
+ Modes "1024x768"
+ EndSubSection