gomd :: general openMosix daemon

gomd: all your nodes are belong to us!


gomd is a daemon which executes commands and gets information from the nodes of an openMosix cluster.
It has to run on every node in order to collect data, and it waits for commands to execute. gomd stands for "general openMosix daemon".

We do have some diagrams created with dia which show how the whole architecture is supposed to work.

Development areas

Site: http://www.nongnu.org/gomd
Project Page: http://savannah.nongnu.org/projects/gomd/
Mailing list: http://mail.nongnu.org/mailman/listinfo/gomd-devel
IRC channel: #gomd channel on irc.freenode.net


  • Configuration by config-file /etc/gomd.conf
  • Accepts command-line arguments which overwrite the configuration file.
  • Logging to flat text-file like the openMosixcollector (maybe later to a database) enable/disable by config-file.
  • Listen + answer request by using a socket (telnet interface like the openMosixInfoServer)
  • Executes administrative commands on the local-node. By request through the server-socket.
  • Returns every interesting value from the /proc interface by request from clients (through the server socket).
  • Provides a library+includes for developer to access all the informations+commands of the gomd easy ! (this library should also include a Java-part which will make it for Java developers easy to use too).
  • Should provide a small demo application using the gomd-library.
  • Creating a new thread for each new connection.
  • We do not spend so much time in security first. Normally an openMosix-cluster is safed by a firewall. Later we can work on encryption and authentication.
  • It has to be able to detect a dynamically "cluster change" e.g. when a node joins the cluster.
  • The gomd itself will use the gomd-library.
  • Written in C/C++. We will use parts of the Java-sources from the openMosixInfoServer and re-write them in C++. Also parts of the library (which we have to code) might be in Java (or other languages).
  • Inter-clusters' daemons' direct communication might be supported by means of the UDP protocol using specially formatted packets. For instance, in order to get the current running node of a certain process on a certain node, an UDP packet to node x gets sent with a request to read the /proc/PID/where file for process with the given PID. This might be used in order to implement an int getCurNode(openMosixNode node_id, pid_t pid) function/method.


GNU General Public License (GPL).

People (in alphabetical order)

Name Mail Project role
Mirko Caserta mirko at mcaserta dot com public relations, web master, diagrams' guru
Massimo Fierro mfierro at crema dot unimi dot it developer
Gian Paolo Ghilardi jp80 at libero dot it daemon maintainer, developer
Ramon Pons Vivanco rpons at rinu dot org web master, site creator, developer
Matthias Rechenburg mosixview at t-online dot de project spokesman, libgomd maintainer, developer


Name Mail Project role
Higor Alves higor dot alves at o2 dot net dot br bug hunter
Roel Baardman rbaardman at zonnet dot nl libgomd developer (java api), logo designer
Moshe Bar moshe at qlusters dot com We wouldn't be here without him and he also wrote the first monitoring application (in perl) using gomd
Johnny Cache johnycsh at hick dot org developer
Marco Marocco marco dot marocco at libero dot it libgomd developer (perl api), bug hunter
Brian Pontz brian at axehind dot com developer
The openMosix Community openMosix-general at lists dot sourceforge dot net we love you! :)


Last updated: $Id: index.html,v 1.18 2003/10/01 20:51:42 mcaserta Exp $