This is the home directory of Syd, a clock SYnchronization Daemon. It runs without root privileges, and allows an application to use an NTP-accurate clock without touching at system clock
In short, Syd is a daemon that periodically asks for the exact UTC (Universal Time Coordinate) time to a NTP (Network Time Protocol) server. Based on the response, it maintains a file containing the information needed to compute the present UTC time with bound precision (or accuracy). Depending on how fast is your internet link, you may obtain precisions ranging from 1 second to few milliseconds.
The fact of having the data stored in a file can be of little or no use if no one is able to use them. We have provided several commands and C functions to access and use this information. Basically, they allow to obtain the current time estimate, its accuracy, set the system clock using the estimate time etc.
The Syd daemon tries to optimize the use of the link bandwidth, and will tune itself in order to use as few messages as possible. To this purpose it uses a probabilistic protocol, that helps in reaching a high precision with a limited number of data exchange with the remote NTP server.
Thus, and unlike the past revisions, Syd is the basic component of a larger set of small applications. After some experiments, we concluded that a self-contained (and monolytic) clock synchronization daemon is less desirable than an open set of components, that can be arranged to suit the need of the user, or integrated in a different application. In this sense, the C functions provided by the library logck.o are intended as the functional interface to the Syd daemon.
We used the acronym TOUTATIS (a TOolset for Universal Time Accurate TImeStamping) to indicate the package containing Syd and the rest.
The source needed to compile the code is contained in a compressed tar archive that you can freely download (read the copyright notice inside).
The software is specifically designed to be compiled and run on the Linux operating system, using the GNU C Compiler (GCC) and other GNU tools. Its porting to other Unix systems should be feasible with little effort.
The steps to follow are the usual ones: download, uncompress using the -xzvf GNU tar option, then check the make.init file to verify the compatibility with your configuration (mainly, the directory containing the executable code, that containing the man pages, and the one containing the linux library and headers). Next, invoke
make clean; make; make install
Detailed instructions about how to use Syd and friends can be found in the man pages, beginning with the one of syd and following the SEE ALSO links. They are automatically installed by the make install command. Some of them can also be downloaded.
If you need a widely portable application, you may take advantage of java_syd : its characteristics are quite similar to those illustrated for syd, but it is completely implemented in JAVA. Therefore, any platform running the JAVA compiler and runtime support can run it.
Enjoy, and let me know whether TOUTATIS is or is not useful for your application!
Augusto Ciuffoletti (email@example.com)