I picked up an Android tablet recently – the Archos 101 Internet tablet, running Android 2.2. This being my first Android device, had a lot to play around. However, I am starting to reach the limits of my interest in the OS. Waiting for Ubuntu or MeeGo to be “enabled” (since Archos already provides an Angstrom distro to demonstrate how you can put other Linux distros on the tablet).
Cool things:
- Excellent e-book reader. Quite light and fairly huge display.
- Comic reader! I have always wanted to read comics this way.
- Bed/sofa browsing. Relishing the lightweight tablet in lieu of the laptop.
Uncool things:
- Battery seems a bit weak (fell to 50% after 3-4 hours of use). Good for a laptop. Not good for a tablet/handheld. Will wait and watch how the 2nd, 3rd charges affect the battery life.
- Android. Lot of good apps and widgets, but can’t help feel that a proper Linux distro with GNOME or LXD, would rock better. Or mabye Ubuntu Netbook Edition, with Unity! Waiting for someone to “Enable” it.
<geek mode alert!>
I have been musing a lot lately, regarding what would be the perfect operating system (IMO), or as close as it could get. Here it is, in a not-so orderly manner, various characteristics, that I would desire, in my “perfect” operating system.
Kernel
- The kernel would be a microkernel, with everything from the drivers, to applications, running in userspace.
- I liked the idea of the re-incarnation server from Minix. Throw that in as well.
- Every system-critical binary (system files/drivers) will have a stable and a current version (known stable version and latest from repository), and re-incarnation server will automatically bring up the stable if the current crashes at any point.
- Obviously, it would be a 64-bit kernel, with software emulation of 128-bit data as well (not even sure if that makes sense here).
- The scheduler would automagically schedule tasks across CPUs as available. This might necessitate a different programming paradigm than one with a single entry point at main() (be it C/C++/Java.. etc) i.e. the user doesn’t explicitly specify threads or mandate scheduling stuff. He specifies tasks and transcations. Guess this deserves a post of its own.
- A display of VGA@16-bit would be assumed to be available by default. There is no reason for a “text mode” boot with the DM switching it to a “graphics” mode later. The kernel would boot up and put the display into a VGA@16-bit mode with a graphical boot progress, with the DM switching over to a different resolution and display as and when he gets loaded. Possibly, the DM can enable the “proper” video driver on-the-fly before switching resolutions.
VM
- I personally favour Ruby over Python, but I accept that both are equally capable (with Python being more matured in comparison). That said, I still am gonna pick Ruby as the OS’s “native language”. For/against arguments for this decision are not in the scope of this discussion.
- The kernel would launch a VM, a Ruby VM, who would take care of the remaining “booting”.
- Possibly, derive inspirations from the Dalvik VM. Register-based. Opcode loading. Hmmm.. need to read up some stuff here.
- (Going against my initial impulses) application code would reside in their byte-code compiled forms, instead of .rb text files.
- Provide “compilers” for various languages which convert them to said bytecode. Python, Perl, Smalltalk, Java, Lisp etc. should be relatively easy. C, C++, Objective-C would be tougher, but possible (or so I believe).
Graphics sub-system
- A kick-ass software renderer. With the advent of multi-core CPUs, I think we could have a kick-ass software renderer. Will provide OpenGL as a wrapper over its “native” interface
Window Manager
- <many many thoughts upcoming here.. watch this space..>
System API
- Non-time critical “system” API would be exposed via IPC, possibly D-bus. E.g. audio, telephony, location, etc.
- Time-critical “system” API would be exposed via library calls onto the VM. E.g. IPC mechanisms, filesystem access, graphics (??), timers, etc.
Applications
- Applications are sandboxed. Period. You can push messages to other applications via IPC but no direct access to another applications resources are allowed. Also to be taken, caged filesystem areas for each application, as well as a global repository (more on filesystems later).
- Central software repository. Catalogue/store application. Screenshots/reviews/ratings etc.
- Delivered as opcode-binaries. Source available for any OSS applications. Closed-source also possible.
- Capabilities. As in, security mechanism. There will be various capabilities and by default, an application will have only the bare-minimum (or logical minimum). Any action to be taken which needs greater capabilities, will throw a prompt for user-permission to continue (a la UAC). The user can configure an application to be “allowed” to do stuff (see Suite settings in Application Manager.. S60 5th Edition.. for Java apps) without prompting.
This post will be constantly updated. Stay tuned.
Yet another screenshot of my Ubuntu desktop.

I have started a programming blog here.
Ubuntu continues to amaze me!! Trying the RC for the Intrepid Ibex. I don’t know if its just me, but I think there is a significant speed boost. Everything feels faster and smoother. The user experience has improved quite nicely. Screenshots below (note: I am using the Dust2 theme from here) . Oh, and love the new VLC (note the playing-from-youtube feature in action).

Ubuntu Intrepid Screenshot

Ubuntu Intrepid Screenshot

Ubuntu Intrepid Screenshot
I finally have my “ideal” mail system up and running. Everything goes into a “wait” queue which is cleared on a regular basis. Only white-listed mails are moved to my Inbox.
Bye-bye spam!
Of course, I need to review mails in the queue periodically to make sure I am not about to purge valid mails, but considering how spam mails seem to bypass most spam filters, I feel this solution is more resilient that blacklisting (but yeah, not fully foolproof).
Using: qmail + courier_imap + procmail + RoundCube
And yeah, currently have to white-list by adding entries manually in .procmailrc, but will get off my ass and hack the RoundCube interface to GUI-fy this.
Some screenshots of my current Debian desktop
[Click on the thumbnail to see them full-sized]





I have a fairly powerful machine. A 3-GHz C2Duo (45nm) processor. 4 gigabytes of DDR2 800MHz RAM. An FSB of 1333MHz. SATA chugging at 3GBps. A Geforce 9600GT with the latest (beta) driver installed. Yet, it takes 62 seconds for my Ubuntu installation to load up. And don’t get me started on application launch times or Firefox response times. I need more speed!! That too, without sacrificing eye candy.
So, I am starting Project Need For Speed. The aim? To configure a Linux desktop that boots in a jiffy (not setting any concrete goals here) and is light on the resources. No, its not Arch Linux for me. I need everything to be just download-able and installable/configurable. That, and my love for Ubuntu, drove me to try Debian as my distro of choice.
I debootstrap-ed a new partition with Debian Sid and installed a 2.6.26 kernel and pppoeconf onto it. Switching to that now.
Watch this space for regular updates on this!
Update 1:
Xfce4 desktop w/ GDM auto-login. Desktop ready to use in 21 seconds!!! That’s good progress! Now starts the part where I add in useful stuff and pretty them up.
Update 2:
Switched to E17. 16 seconds!! And the thing looks damn beautiful! Expect screenshots

I have never used Windows Vista excessively. Nor do I plan to. However, I love it that Windows Vista is driving more and more people to Linux/Ubuntu.
Vista rules! It helps Linux/Ubuntu rock even harder!!!
Powered by WordPress |
DOS_FX skin by Monzilla |
All content copyright (c) 2007
sparkymat | 12 database queries served in 0.2853608 seconds