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 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.