The core technology of nomachine is licensed under GPL. Freenx(the server side) is implemented seperately as a collection of scripts and the pseudo X server(like VNC).

Once installed, nxserver is enabled by default and can be used on boot(so long you have sshd running). What essentially is freenx is that it is a wrapper of ssh and VNC(well, not exactly VNC but technically similiar stuff). It goes like this :

The client establish a SSH session to the server using specific username(nx)

The login is through RSA key so no password is needed for this part

Once login, the server side instead of running a shell, it runs another program that handle the true user login(using PAM, just like any unix login).

Once this login is successful, it lauches an X server(more or less like VNC) and the client side then talks with it.

The difference between nomachine and VNC is that nx performs some X protocol level compression which makes it very suitable for slow link(VNC is purely image change detecting/compression).

You can achive the same thing using VNC+SSH, just more cumbersome. Some VNC variants do provide some automation as well but not the X protocol optimization though.

nx has another advantage, remote sound which will soon be in freenx(the commerical server has it already). This is not easily duplicatable in VNC.