The Ideal Personal Computer System

Or the neverending search for perfection. Why this neverending search started? Because the current systems suck, that's obvious.

What is it

Basically, this is just a description for a computer operating system. It is somewhat extended, and if it ever would be finished the antitrust cases for microsoft would probably be useless.

What must it do

First of all it must work, fast and seamless.

For end users

End users must be able to do some document editing, surf the web and interact online trough IM, Mail and p2p.

End users don't need to concern themselves with compatibility, it just needs to work.

For power users

Power users are people who create advanced stuff: Digital artists, web developers and programmers. They need more than the basic tools.

For system administrators

System administrators need to manage one or many systems. They need full control.

Multi-user

There are more people in a family and a company, so multiple user accounts are a must. Everybody needs their own profile directory. Make this a little bit easier to backup than the windows implementation so all email, documents, media and settings should be in one location, disk or network share that the administrator or user can easily choose.

Compatibility

Where possible (i.e. everywhere) open standards should be used. Nobody needs yet another .doc format. If the standards suck, improve them, don't write your own.

Hardware support

Basic

A system is a processor, storage, some input and some output. Usually this means harddisk, CD/DVD, keyboard, mouse, speakers, monitor and network.

Don't let anyone tell you otherwise, this is the bare minimum.

A hardware abstraction layer like Direct-X, OpenGL and OSS is pretty much neccesary. Microsoft has proven that this is good for your system, and I think they're right.

Peripherals

This is actually overlapping with the basic options. Everything except the processor, harddisk, working memory and the motherboard may be considered peripheral. It's everything that not essential on a computer.

Peripherals that must be supported on a modern computer are CD/DVD, USB (keyboard, mouse), ethernet, vga/dvi, modems, sound and printers.

Peripherals that should be supported are CD/DVD (re)writers, FireWire, TV in/out, scanners and flash storage.

Everything that has cables must be hot-pluggable, just to make end users life easier. For removable storage media, please don't lose data when unplugging and show clear messages if they are removed to soon. Drivers must be installed once for all possible connections, and never asked for again. Driver updates must either be automatic or done by administrators. Administrators may disable installing new hardware.

Mobile

A mobile system usually has a battery and power saving options. Make these options clear, configurable and visible.

High end servers and workstations

Don't bother, they're better off with a specialized operating system.
Really, don't bother! A consumer desktop should stay simple.

Okay, you're free to make that specialized high performance operating system too, but do not integrate it with the consumer version.

Software

Shell & File management

This is the interface, simple, pretty, consistent and maybe even themeable. From here you start all your work and fun.

Users like pretty, but don't go overboard and bloat it. They can do that themselves later. Just add some clean default themes, a few screensavers (not hundreds like some linuxes do) and a nice collection of desktop images (patterns, photos and abstracts)

The shell is the glue between all the applications. It integrates PIM, file management, file transfer and networking. Task switching and multitasking is made visible to the user.

For end users file managment only means: Documents and Multimedia. The rest is for power users, don't bother your mother with it.

Make it easy for people to have extra widgets like post-it notes, a desktop clock, a calendar and media player controls. You might even include them by default.

Document editing

Letters, Reports

That's what most people use a computer for. Don't bloat this software. It must be able to do plain text and moderately complex layouted documents. Look at Abiword for inspiration.

Connectivity to email, PIM and other applications is essential.

Spreadsheets

Managers love this, but most people don't need too many options.

Presentations

Click, drag 'n play. This is for simple slideshows, light animations. Make it a program your little nephew can use to make a story for his grandma.

Image editor

A simple one, to resize a photo, retouch red eyes, add a caption.

If it can generate a web-gallery and a slideshow that's a plus.

Online connectivity

Web browsing

Just browsing, the rest will be handled by other programs.

Bookmarks must be simple, the start page must be easily set.

Remember it still needs flash, quicktime, real, wma and of course HTML, XML, CSS and ECMA support.

Email

Email implies POP, IMAP etc. but also news, spamfilters, digital signatures and of course reading and creating email.

It must be tied to the Contacts in PIM

Instant Messaging

Chatting, make it protocol agnostic, and tie it to the Contacts in PIM

File transfer & p2p

Make file tranfer also protocol agnostic, tie the browser download to it so download managers are unneccesary. Protocols like gnutella, bittorrent, FTP, samba, preferably seamless.

Online storage fits in this category too, so webdisks like iDisk might be integrated here.

PIM (Personal Information Management)

Contacts

You have friends, business relations and a whole lot of groups of people you know and interact with. Keep them all in order here. You might even tie it to online social networking services, but it must be tied to IM and email the very least.

Calendar

Manage your time, appointments, birthdays, work, tasks and maybe even projects here.

A nice task reminder and desktop calendar will be very welcome.

Synchronization

If you have a palm, a mobile phone or even a network, synchronize your contacts, appointments and documents here. Make it seamless with the shell but make it possible to do it backgrounded, manually or scheduled. Annoying background processes might slow the system down so we need clear options.

Make integration seamless for people who do stuff online (iLife, hotmail and such). It should be easy, because you already support other synchronization stuff already.

Multimedia

Audio & Online radio

Play CD's, mp3 or listen to online radio. Of course recording must be possible too.

Video & TV

Watch movies and TV if your hardware supports it. Tivo like personal video player functionality is nice when you have TV hardware support. Media center like functionality may be added too.

Games

Console

People should be encouraged to buy consoles :) That's good for the industry.

Other games

If you include some nice games with cards, somethings like tetris or bubble bobble, a nice simple stragey, a jump and run action game and of course chess and checkers you have a nice starter set.

The rest of the games is for third parties.

Security

Virusscan

Automatic protection against threats.

Firewall

Automatic protection against threats.

Encryption

Personal certificates, signatures and PGP. System wide to file level encryption possibilities. Encrypted networking. Wireless encryption. Integrated with email, file management and word processing.

Automatic software update

Update all software automatically or scheduled. The administrator should set this, the user should not notice it.

Power user software

Fully bloated office suite

Make a new MS Office, add Groupware, Visio, Project, a database and whatever you like. Make users pay extra and dearly for it, because when they need this they'll make money from working with it.

Image editing

Be nice to Adobe and Macromedia and maybe they'll create a CS suite for your system. Other vendors are welcome too.

You only need to make that basic image editor for cropping and retouching your family photos.

Movie editing

See image editing, this is also higly specialized, so leave the third parties to it.

Media conversion

Opensource tools do this well, only add a nice interface.

CD/DVD Burning

Adaptec, Nero, here's your chance. Include a demo version that can do the simple things like create a backup data CD and an audio CD

Advanced editor for HTML and/or Code

Homesite, ZEND, ultraedit.. anything. Compilers and webservers are optional, preferably remote.

Complete IDE systems fit in this category too.

Telnet & SSH connectivity

Real power users are developers, they need r00t access somewhere.

Revisioning and version management

CVSgui or any other versioning system will do fine.

Administrator software

It might be an idea to make it possible to do this from a central server. Remote access to the administration would be nice.

Users, Policies & Services

Manage everything, but keep it manageable. Windows services is a bad example. User accounts and tweaking parameters is here too.

Hardware management and installation

Add a new videocard, do it here. Partitioning, storage maintenance and system health should be managed here.

Software installation, update and configuration

Hey, all those third party tools should be managed here. Add and remove at will.

Everything that is installed may be updated, managed, changed, configured here.

Scheduling and backup

Manage your schedules here. Anything from defragging, backupping, synchronizing and updating.

Finally

Revenue

People will pay for this, and if it's bundled with the hardware they won't even notice they payed.

Make it easy for them to do everything legal, and most of them won't bother doing it otherwise.

Licencing

Just be open and clear about it. Most people don't really care about it but for the ones who do: Create a nice overview, and maybe even some policy related stuff that they can configure to only accept certain types.

Make it do things users want

Really, that's all. Nobody wants to know if it's a microkernel, or open source, in depth semi-religious debates about this are especially useless. Nobody wants to know if it's compatible with XYZ, it just has to be. Again: it just has to work.

Got ideas? Found it somewhere already?

Don't hesitate to tell me.


This document was created by Lodewijk Evers. August 27, 2004
This document is public domain, use it as you wish, add to it, change things... have fun with it. However, if you built this operating system or found it somewhere, please tell me as soon as possible. There should be a way to contact me at www.jadwigo.nl.