Page 1 of 1

vise-0.0.1 up

Posted: Wed Apr 22, 2009 8:58 pm
by salil_bhagurkar
Hi..
vise (Virtual Software Environment) has been put up on http://vise.googlecode.com

Currently it lacks the functionality that it is supposed to have.

But you can try the shell application that has been written for the vm. Check the source too.

Re: vise-0.0.1 up

Posted: Fri Apr 24, 2009 9:45 am
by salil_bhagurkar
Okay.. I think the architecture needs a bit of explanation. The user mode of this os basically does not allow the applications to execute on the underlying host processor. In short the os has a virtual machine that virtualizes the environment.

User applications exist in form of data nodes interlinked to form the desired functionality. The links can be of either a server type or a client type. Server links allow data nodes to accept data and client links allow the data nodes to give data to other nodes.

In order to link with the system api, the data nodes have to link with fs nodes. FS nodes take client links as writes and server links as reads...

This is how the shell application has been programmed into the kernel.

Re: vise-0.0.1 up

Posted: Mon May 04, 2009 7:01 am
by jal
salil_bhagurkar wrote:User applications exist in form of data nodes interlinked to form the desired functionality. The links can be of either a server type or a client type. Server links allow data nodes to accept data and client links allow the data nodes to give data to other nodes. In order to link with the system api, the data nodes have to link with fs nodes. FS nodes take client links as writes and server links as reads.
I don't understand what you are saying here. What are these "data nodes", what are "data and client links" etc.? Don't you have 'just' a VM running byte code?


JAL

Re: vise-0.0.1 up

Posted: Sat May 09, 2009 3:59 am
by salil_bhagurkar
Hi.. First of all, sorry for a late reply. I had my exams. No, its not a VM that executes bytecodes. I present a new organisation of program code. That is data structures. Basically instead of the sequential code execution using instructions I simply have variables if you relate to languages like C, and the linking between these data nodes ( variables ) allows to define the program functionality.

http://vise-os.blogspot.com/

Re: vise-0.0.1 up

Posted: Thu May 14, 2009 3:04 am
by jal
salil_bhagurkar wrote:http://vise-os.blogspot.com/
I'm really trying to get it, but I don't. It seems you have found a very elaborate way to do some very simple things. If 'datanodes' are program variables, how do you operate upon their contents?


JAL

Re: vise-0.0.1 up

Posted: Thu May 14, 2009 5:25 am
by salil_bhagurkar
Well, i know my explanation is really insufficient. I need to refine it and try to approach the architecture in a way that can make people understand it.

The reason i do this 'elaborate' system is because I think that it will greatly simplify the user front-end. I am trying to make the underlying virtual machine more aware of the program that is running on the vm. In conventional operating systems, processors don't really know anything about what is executing on them. They just know how to make that code execute the fastest. Making the underlying processor know more about the program, I will hopefully introduce more reliability, stability and security and even performance in rare cases.

Content modification of variables is done by the client/server links themselves. If you read the example i gave about a 'Hello world' application, the data node that stores the string 'Hello world' has a client link to '/console'. This means that the data in the 'hello world' data node will be transferred to the '/console' system node. Being a system node, the 'transfer' translates to a 'write' operation on that node. If we had to modify the data of the 'hello world' node itself, then we could either create a server link to it, in which case data from its server would be transferred to it, or, create a client link from another node to this 'hello world' node.
In case of arrays, if you have to modify the contents of a single location in the array, I introduce filter nodes which when written to/read from access the particular location they are setup with for that array.

I basically need to first complete the 'runtime' aspect of the system wherein we would be able to create applications at runtime by issuing shell commands. Once that is done, i will have a proof of concept, and then I would hopefully give a proper architectural wiki for the operating system.

Re: vise-0.0.1 up

Posted: Thu May 14, 2009 8:15 am
by jal
salil_bhagurkar wrote:I basically need to first complete the 'runtime' aspect of the system wherein we would be able to create applications at runtime by issuing shell commands. Once that is done, i will have a proof of concept, and then I would hopefully give a proper architectural wiki for the operating system.
It certainly seems you have given this a lot of thougt, and it all looks very interesting. I hope you keep giving us updates of your progress, I'd be very interested.


JAL

Re: vise-0.0.1 up

Posted: Fri May 15, 2009 3:09 pm
by xDDunce
simply: in-genius!

it's sounds so complex, but at the root of it all, it's just file sharing.

in the 5 minutes i was messing with it, i didn't find any errors or anything out of line. i guess next up is going to be a broader range of programs?

nice little os. loads extremely quickly. couldn't find a flaw.

Cheers,
James.

P.S. maybe a simple program like changing the text and background colours? i always loved that in command-prompt, and sort of miss it when using the Mac OS X terminal. :(

Re: vise-0.0.1 up

Posted: Sat May 16, 2009 8:05 am
by salil_bhagurkar
xDDunce: The OS is too small to have errors or to load slow :D Besides, this is not my first OS. So the approach I follow this time is very well defined. Lets hope I don't develop bugs in it.

Currently working on the application namespace. Basically, the vm applications can never do anything related to the memory addresses and hence I cannot refer to the nodes by their addresses. Hence an app would have to refer to other nodes by their names. Once that is done, editing nodes at runtime within the shell will be possible.