Operating System Look and Feel
Watch the progression of operating systems simultaneously with the progression of graphics and hardware. At first, there were green monitors(the earliest I saw) with 320 x 240 or some such. DOS was cool, floppies were great, and graphics were made of | (pipe character) and — and __.
Now, we have XP and GTK and dual core processors ready to hit the market. We have slide-in menus and flash web pages and a plethora of text-to-speech engines. The logical extension of this progression for the next few years is an OS with the look and feel of a flash web site – slick, animated and 3d. Already Linux offers a 3d desktop manager. It just a matter of a year or two before this kind of look and feel becomes the de-facto standard. What other use do you see for the dual-core processors ready to hit the market, on a PC? Naturally, SMIL, SVG, VRML and similar graphics rendering markup languages are soon going to be regular if not hot stuff.
So, a good project for someone learning a programming language like Java or .Net and not under financial pressure, could be to write a small library that displays flash-like menus and forms with no compromise on functionality and can be called by existing programs via an API. VRML, SVG(Batik at http://batik.apache.org) and SMIL and are well worth a look at. Game programming is already hot and pretty advanced. A 3D desktop or a flash-like OS becoming the standard is something just waiting to happen.
Another good-looking add-on to an OS would be a speech-recognition engine to take commands. I don’t know if it is already out but definitely it is a good-looking option.
You don’t need to have high quality speech recoginition also, you can have speech shortcuts (like keyboard shortcuts) to do your work, which will make the speech signal processing algorithm very easy to implement.
Ex. you say ‘aye’ for the menu item which has ‘A’ highlighted, ‘ef’ for the File menu, ‘ayetch’ for the Help menu and so on).
Operating System Architecture
One of the most important features of Unix is that learning shell programming is an essential part of learning Unix. Not so with Windows. I can say with confidence that at least 7 out of 10 people who earn their salary under the job title of ‘Programmer’ or above in Windows do not know how to write a decent batch script. Generally that is the domain of System Administrators and DBAs. Lets get one step further ahead of shell programming and let’s talk of integrating the database with the shell. So say, we have something like
c:\user_1>select recurse * from System.filesystem("/user_1/") where filename like '%xml%.[jtr]ar' into mytreeset;
This should return into ‘mytreeset’ the entire tree-like structure which contains only files having “xml” in the name part and are of type .tar, .rar or .jar archives Now isn’t this a fairly common scenario? Why wait till it formally gets introduced into the OSes by everyone? A good project would be to make a shell which accepts SQL and executes all these type of commands which make a programmer’s life really easy. Not only that, a standard default database could ship alongwith the OS which would be accessible directly from the command prompt as follows…..
c:\user_1>select * from System.database.tables.MyAddresses where name like '%T%'and phone_no like '001-044-56%' into mylist;
Now that will be one really easy-to-use OS for programmers. It need not come from a big company. A group of keen Open source programmers are good enough to come up with a shell of this kind.
Another thing that strikes you when you think of the dual core cpu is that its additional processing power can be harnessed by databases to store all data in compressed format. That way more data can be stored. This is true of systems where data is huge but on-line transaction performance is not so critical. On such a database, you can zip-compress the data before physically storing it and uncompress it before displaying the results of a query.