GUI I/O Redirection Demo

Sorry, your web browser does not support Java.

The intended meaning for the icons is as follows:
This is a proof-of-concpt demonstration that an GUI OS can handle I/O rediretion. The "programs" can be "started" normally with a double-click (nothing actually happens), or with I/O redirection. However, some programs can only be run in one mode; those that cannot be run in the current mode have a large red NO sign on them.

To enable I/O redirection, double-click on the chain-links icon. This will enable the I/O linker. Each program capable of running with I/O redirection will have two or more small boxes appear at the botto of its icon. These boxes represnt the various input and output streams. A cyan box represents output, a green box represents normal output, and a red box represnts error output.

To connect two icons, click on a box from one. A line should appear connecting that box to your mouse pointer. Then click on the box that you wish to link it to. There are limits on which links may be made. Ojnly one link may be made per box. It is not possible to link an input box to an input box, or an output box (either normal or error) to an output box. It is not possible to link a "program" to itself, or to link output and input to a file at the same time.

Some icons do not have the error box. These either represnt files or intermediary constructs that cannot fail. The two such constructs depicted here are the merger and the splitter. The merger is an I/O construct that combines two or more (technically zero or more) incoming streams into a single stream, in much the same way that more than one program can write to a pipe. The splitter duplicates the contents of the incoming input streams and sends them to each "program" it is attached to. This functionally appears not to exist for pipes, but it should, as it could be useful.

Some icons have more than one input or output box. The diff program always requires two inputs, and the merger and the spliter always have one more input oroutput box than is used. I do not know if there is a way to write a program that asumes the existance of input streams beyond the usual three, but, if not, that would be a limitation of the programming techniques, not of the OS.

While the linker is enabled, the linker icon will be replaced with two icons, a red X and a green check mark. The red X clears all links and disables the linker. The green checkmark does the same thing, but in a real OS it would set up the I/O streams and start the programs.

The terminal window is a program that could be used to get input from or show output to the user. Alternately, a "ground" of sort could be included, an all unlinked boxes could be assumed to link to/from a terminal of some sort.

This is not a full-fleged anything, and has only the features needed to demonstrate the design. Some possibilities for improvement are:

Back to applets page
Back to home page