Dreadnought Application Browser

"Fear God, and dread nought" - Motto of Jackie Fisher - British First Sea Lord, and creator of the dreadnought battleship.

Technical Overview

Dreadnought similar to a web browser, except that instead of displaying documents, it acts as a display for remote applications. Instead of using using HTML to communicate between the server and the browser, it uses a custom messaging system. Dreadnought is a DOIP (Display Over IP) technology.

The way it works is you type a URL like nio://apps.newio.org:32662/hello.nio in the browser and Dreadnought makes a call to the server's TCP port 32662 to start (in this case) the NewI\O hello application. The application is started and communicates on this same port back and forth to the browser using the messaging system.

Dreadnought (and NIO_lib) currently supports keyboard and mouse events, colors, drawing primatives, fonts, images, sounds, and music. Video is in progress. It works like a web browser does, by downloading resources such as images and sounds. Therefore, the first time it runs it will take some time downloading resources. The resources are cached, so subsequent runs are much faster.

Security

Dreadnought will have security similar to Secure Shell (ssh). It will have access control, and an encrypted channel.

WARNING: This is currently not implemented, and the current alpha code is very insecure and should not be used in any production environment.

It is currently possible to tunnel this protocol via ssh:

ssh -l nio -L 32662:apps.newio.org:32662 apps.newio.org

When you do this you use localhost for the URL and it automatically tunnels to the remote host.

The final product will have this level of security built in.

Platforms

Dreadnought was designed for portability and uses the cross platform SDL library for rendering. However, it currently has only been tested on the Linux platform. It should be a simple matter to port it to any other Unix system that SDL has been ported to (including Apple OS X).

There are technical issues still to overcome to port this application to W32 environment.

License

Dreadnought is released under the GPL (GNU Genreal Public License).

Downloading and Installing Dreadnought

Before you can run Dreadnought make sure you have SDL, SDL_image, SDL_mixer, and SDL_ttf run time libraries installed. For example:

yum install SDL
yum install SDL_image
yum install SDL_mixer
yum install SDL_ttf

You can also download RPMs from the SDL web site:

http://www.libsdl.org/release/SDL-1.2.8-1.i386.rpm
http://www.libsdl.org/projects/SDL_image/release/SDL_image-1.2.4-1.i386.rpm
http://www.libsdl.org/projects/SDL_mixer/release/SDL_mixer-1.2.6-1.i386.rpm
http://www.libsdl.org/projects/SDL_ttf/release/SDL_ttf-2.0.7-1.i386.rpm

You can download a Dreadnought intel 32-bit linux binary here:

ftp://ftp.newio.org/pub/d0/d0.0.11_bin_063.tar.gz

You will need to gunzip the file, and then tar xvf to extract the tar file. You can run the binary from the directory created, or run one of the install scripts.

Running Dreadnought

The binary file is named d0. Run it.

When you run Dreadnought the first time, there will be a default URL that should work to get you started (nio://apps.newio.org:32662/list.nio).

Use login "nio" and password "welcome1" to run applications from my server apps.newio.org.

If you are behind a firewall you will need to use something like corkscrew combined with ssh port forwarding as described in the above security section. Do a google search on "corkscrew firewall" or e-mail tech support.

Secondly, you must be able to scp files to download resources used by NewI\O programs. Run the following command to clear the new host messages and verify connectivity by logging into the apps server:

ssh -l nio apps.newio.org

Use welcome1 for the password and then exit to log back out.

If you have any problems please call technical support at: 512-835-7261.

Compiling Dreadnought

Before you can compile Dreadnought you need to make sure you have SDL, SDL_image, SDL_mixer, and SDL_ttf developer packages installed. For example:

yum install SDL-devel
yum install SDL_image-devel
yum install SDL_mixer-devel
yum install SDL_ttf-devel

You can also download RPMs from the SDL web site:

http://www.libsdl.org/release/SDL-devel-1.2.8-1.i386.rpm
http://www.libsdl.org/projects/SDL_image/release/SDL_image-devel-1.2.4-1.i386.rpm
http://www.libsdl.org/projects/SDL_mixer/release/SDL_mixer-devel-1.2.6-1.i386.rpm
http://www.libsdl.org/projects/SDL_ttf/release/SDL_ttf-devel-2.0.7-1.i386.rpm

You can download the Dreadnought source code here:

ftp://ftp.newio.org/pub/d0/d0.0.11_src_063_121506.tar.gz

You will need to gunzip the file, and then tar xvf to extract the tar file.

You should be able to run make and then make install..

Acknowledgments

Bob Pendelton - Font and text routines.

Ryan McGuigan - SDL_prim library.

More Information

E-Mail: cnystrom@gmail.com


Updated: 09/13/05 ccn