This coloumn is meant for some technical project ideas whcih i think of and like to discuss with you. Well let me put all things out
Here is a little discription about the project .Well in the case of linux operating system we have something called virtual file system (VFS). It can have multiple filesytem onthe same operating system like EXT2 iso9660 and so on. How the files are fetched is that u'r having a virtual superblock which contain pointer for reading and writing the actual superblock of that particual file system . Once the actual superbloc is created the superblock datastructure is filed with datas from the super block and with pointers to read and write and read the inode block . We use these pointers for reading the inode block and fill the inode datastructure . The inode datasturcte in turn contain the pointer for reading and writing the the orignal datablock .
Well before going into the details let me say the complete idea. It sounds something like this . Well consider a system where u'r having a large database but the probability of modifying the database is less but still there is a chance of modification .Let's say we are having some 2gb of data and the just because that there is a small chance of editing it we have to store it in the database . What i suggest is that instead of storing it in the hard disk store it in that cd and make all that changes that are happeing in the hard disk and map further reference to the changes to the hard disk .
The entire thing can be done by adding some fields in the inode and inthe super block . Well add for each block wheter it reside inthe hard disk or in the CD. Well before that we need to copy the inode block to the hard disk . So any reference to the file is first taken to the hardisk from there we get the inod . From the inode we get the block address and information regarding whether the the block is in the hard disk or not .If some changes happens in a block entire block has to be mapped to the hard disk or rather copied If some changes happens in a block entire block has to be mapped to the hard disk or rather copied.
This type of servers are usefel to libraries .Consider an image libraries .One thing which is to be noted here is that the image need to be copyrighted . The digital watermarking technique can be used for copyright purpose.you can use the Apace server whose source code is available . Make necessary changes in such a way that whenever a request for an image comes the image is taken from the hard disk ,watermarked and given to the user
Now how most of the search engines work is to get the page downloaded by the searchengine ,operate some evaluation algorithm on it and create an index.Well this considerably increase the network traffic. To avoid what we can do is that allow some operation to be run on the web server . This could be done using RMI. This method which is going to be run on the web server evaluate a particula web page or the entire site . The evaluation result can then be returned to the user . This can also be implemented using web server . Get the class to a servlet on the web server by using the POST method . The servlet can use this class to evaluate the web page and retun the result .
Knowledge sharing web agents This wrok can be done using agents . Well
each user( infact machine) will have an agent running in them . The user
can specify the topic of his interest and some useful sites . Then the
agent communicate with other agents in the lan to find out whether any
other user have specified some other site with the same topic . If so they
will fetch the page and store it locally . The next time when the user
logs in he will get a very good collection of useful web pages . The links
the user store can be given some age .So that when the age goes beyond
certain limit agent check whether the link exist . If not will remove from
the database and share this knowledge with other agents . The user should
be able to add a new topic . When a new topic is added by an user it should
be sent to all the other agents for updating there local database .
Many more can be done on this so that it look nice .
Modular Operating System :
Suppose while using the computer we came accross a requirment of more
space or it happened we need to download some files which is
of large size . The above set of operating system let us do our job as
needed . We never get an error like no space left on the device
. Instead when ever such error happens an agent will find out whether
there is any other machine whcih is offering a service that can solve this
problem . If so it make use of the service . THE IMPORTANT THING IS
all these need to be done as transparant to the user . Again if you find
more that one service decide of which service to user depending up
on the predefined rules by the user . You may prompt a user for making
a decission . Integrating the printer service ( which jini printer
project is already working) is only one among them .
The same OS should allow to save the instance of the OS so that we can start with the instance at a later time . The OS should be designed in such a way that it have general number or registers . Some thing like the hardware specification doesn't matter . The saved instance thus allow us to be restarted on some different machine( basically processor ) since the instance format should be same across any platform. Then the stories goes .....................
Highly distributed programs . The functions that accomplish a particular
task should be able to find the resource they need to run at a specifed
performance level . Should be able to move to the machine that have the
resource free . Again the application that need these function should be
able locate the function and use them