Skip to content

Commit 9409a6e

Browse files
committed
README: split out history section
1 parent 6e18ad5 commit 9409a6e

File tree

2 files changed

+54
-50
lines changed

2 files changed

+54
-50
lines changed

HISTORY.md

+54
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
This is the original author Dscho's account on the project's initial history.
2+
If you want to know what happened afterwards, have a look at [NEWS](NEWS.md).
3+
4+
History
5+
=======
6+
7+
LibVNCServer is based on Tridia VNC and OSXvnc, which in turn are based on
8+
the original code from ORL/AT&T.
9+
10+
When I began hacking with computers, my first interest was speed. So, when I
11+
got around assembler, I programmed the floppy to do much of the work, because
12+
its clock rate was higher than that of my C64. This was my first experience
13+
with client/server techniques.
14+
15+
When I came around Xwindows (much later), I was at once intrigued by the
16+
elegance of such connectedness between the different computers. I used it
17+
a lot - not the least priority lay on games. However, when I tried it over
18+
modem from home, it was no longer that much fun.
19+
20+
When I started working with ASP (Application Service Provider) programs, I
21+
tumbled across Tarantella and Citrix. Being a security fanatic, the idea of
22+
running a server on windows didn't appeal to me, so Citrix went down the
23+
basket. However, Tarantella has its own problems (security as well as the
24+
high price). But at the same time somebody told me about this "great little
25+
administrator's tool" named VNC. Being used to windows programs' sizes, the
26+
surprise was reciprocal inverse to the size of VNC!
27+
28+
At the same time, the program "rdesktop" (a native Linux client for the
29+
Terminal Services of Windows servers) came to my attention. There where even
30+
works under way to make a protocol converter "rdp2vnc" out of this. However,
31+
my primary goal was a slow connection and rdp2vnc could only speak RRE
32+
encoding, which is not that funny with just 5kB/s. Tim Edmonds, the original
33+
author of rdp2vnc, suggested that I adapt it to Hextile Encoding, which is
34+
better. I first tried that, but had no success at all (crunchy pictures).
35+
36+
Also, I liked the idea of an HTTP server included and possibly other
37+
encodings like the Tight Encodings from Const Kaplinsky. So I started looking
38+
for libraries implementing a VNC server where I could steal what I can't make.
39+
I found some programs based on the demo server from AT&T, which was also the
40+
basis for rdp2vnc (can only speak Raw and RRE encoding). There were some
41+
rumors that GGI has a VNC backend, but I didn't find any code, so probably
42+
there wasn't a working version anyway.
43+
44+
All of a sudden, everything changed: I read on freshmeat that "OSXvnc" was
45+
released. I looked at the code and it was not much of a problem to work out
46+
a simple server - using every functionality there is in Xvnc. It became clear
47+
to me that I *had* to build a library out of it, so everybody can use it.
48+
Every change, every new feature can propagate to every user of it.
49+
50+
It also makes everything easier:
51+
You don't care about the cursor, once set (or use the standard cursor).
52+
You don't care about those sockets. You don't care about encodings.
53+
You just change your frame buffer and inform the library about it. Every once
54+
in a while you call rfbProcessEvents and that's it.

README.md

-50
Original file line numberDiff line numberDiff line change
@@ -360,57 +360,7 @@ The server program will tell you a URL to point your web browser to. There,
360360
you can click on the noVNC-encrypted-connection-button to connect using the
361361
bundled noVNC viewer using an encrypted Websockets connection.
362362

363-
History
364-
=======
365363

366-
LibVNCServer is based on Tridia VNC and OSXvnc, which in turn are based on
367-
the original code from ORL/AT&T.
368-
369-
When I began hacking with computers, my first interest was speed. So, when I
370-
got around assembler, I programmed the floppy to do much of the work, because
371-
its clock rate was higher than that of my C64. This was my first experience
372-
with client/server techniques.
373-
374-
When I came around Xwindows (much later), I was at once intrigued by the
375-
elegance of such connectedness between the different computers. I used it
376-
a lot - not the least priority lay on games. However, when I tried it over
377-
modem from home, it was no longer that much fun.
378-
379-
When I started working with ASP (Application Service Provider) programs, I
380-
tumbled across Tarantella and Citrix. Being a security fanatic, the idea of
381-
running a server on windows didn't appeal to me, so Citrix went down the
382-
basket. However, Tarantella has its own problems (security as well as the
383-
high price). But at the same time somebody told me about this "great little
384-
administrator's tool" named VNC. Being used to windows programs' sizes, the
385-
surprise was reciprocal inverse to the size of VNC!
386-
387-
At the same time, the program "rdesktop" (a native Linux client for the
388-
Terminal Services of Windows servers) came to my attention. There where even
389-
works under way to make a protocol converter "rdp2vnc" out of this. However,
390-
my primary goal was a slow connection and rdp2vnc could only speak RRE
391-
encoding, which is not that funny with just 5kB/s. Tim Edmonds, the original
392-
author of rdp2vnc, suggested that I adapt it to Hextile Encoding, which is
393-
better. I first tried that, but had no success at all (crunchy pictures).
394-
395-
Also, I liked the idea of an HTTP server included and possibly other
396-
encodings like the Tight Encodings from Const Kaplinsky. So I started looking
397-
for libraries implementing a VNC server where I could steal what I can't make.
398-
I found some programs based on the demo server from AT&T, which was also the
399-
basis for rdp2vnc (can only speak Raw and RRE encoding). There were some
400-
rumors that GGI has a VNC backend, but I didn't find any code, so probably
401-
there wasn't a working version anyway.
402-
403-
All of a sudden, everything changed: I read on freshmeat that "OSXvnc" was
404-
released. I looked at the code and it was not much of a problem to work out
405-
a simple server - using every functionality there is in Xvnc. It became clear
406-
to me that I *had* to build a library out of it, so everybody can use it.
407-
Every change, every new feature can propagate to every user of it.
408-
409-
It also makes everything easier:
410-
You don't care about the cursor, once set (or use the standard cursor).
411-
You don't care about those sockets. You don't care about encodings.
412-
You just change your frame buffer and inform the library about it. Every once
413-
in a while you call rfbProcessEvents and that's it.
414364

415365
Basics
416366
======

0 commit comments

Comments
 (0)