NTP's Fate Hinges On "Father Time"
Esther Schindler writes In April, one of the open source code movement's first and biggest success stories, the Network Time Protocol, will reach a decision point, writes Charlie Babcock. At 30 years old, will NTP continue as the preeminent time synchronization system for Macs, Windows, and Linux computers and most servers on networks? Or will this protocol go into a decline marked by drastically slowed development, fewer bug fixes, and greater security risks for the computers that use it? The question hinges to a surprising degree on the personal finances of a 59-year-old technologist in Talent, Ore., named Harlan Stenn.
At 59 years old, statistically Mr. Stenn isn't going to live long enough to maintain NTP for another 30 years. Perhaps something so crucial should be a voluntary communal effort?
Yes but there are an assload of companies out there making a shit-tonne of cash using these FOSS programs and not contributing in any way whatsoever. Its a complete disgrace and they should be exposed for the cheapskates they are.
.
Hopefully the ntp.org software fades away.
However, the Network Time Protocol should live on in more secure and more easily maintained implementations (e.g., NTimed and OpenNTPd).
Here is an interesting interview with Harlan Stenn at the 2013 Google Summer of Code
https://www.youtube.com/watch?...
Apparently he is keeping 7 doctoral and post-doc students busy working on timestamps, noise and 'something' that he did not seem to have a firm grasp on
He also mentioned a need for admins, a webmail guy and people who want to do documentation
Having been handed projects after a leads retirement, I think that documentation may be the more pressing need
Wherever You Go, There You Are
NTP doesn't just 'return a string of numbers'.
But either way, the article isn't about NTP the protocol, its about one shitty implementation of NTP that I don't think anyone even uses anymore. Windows and OS X certainly don't.
The summary and headline are equivalent to saying 'Netscape is going out of business, HTTP in danger of disappearing'
If he were to drop dead right this instant ... no one that matters would notice beyond his family.
Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
Feeling grumpy?
From page 2 of the linked article:
Apple Macintosh computers and servers running OSX use NTP, and Stenn said Apple developers have called him for help on several NTP issues. In the last such incident, he said he delayed a patch to give Apple more time to prepare OS X for it. When they were ready, he applied the patch and asked "whether Apple could send a donation to the Network Time Foundation," Stenn recalled. "They said they would do their best to see that Apple throws some money our way." But it hasn't happened yet.
Apparently somebody is under the impression that OSX still uses it, unfortunately this is how the business majors deal withit:
"Everybody loves us," Stenn said. "But people with money say, 'We don't give to open source projects.'"
http://www.informationweek.com...
Wherever You Go, There You Are
For someone who's so deeply invested in managing the Network Time Protocol, this dude really doesn't seem to be able to manage his time very well.
Irony: Agile development has too much intertia to be abandoned now.
"Everybody loves us," Stenn said. "But people with money say, 'We don't give to open source projects.'"
They don't give to GPL projects.
They hire BSD developers (CUPS, Clang, etc) because they can keep the parts closed they want.
I've been on the "NTP Hackers" mailing list for ~15 years now, my last major effort was to develop a server-optimized multi-threaded version of the core ntpd sw: I was hoping for wire speed packet processing on an embedded linux platform, but had to settle for 3-500 Mbit/s since the target kernel version did not support multi-thread targeting of incoming packets, i.e. I needed to have a single receive thread which would fetch the incoming packets, timestamp them and queue them up, then all the other threads/cores would grab them from there.
Back to the "why are there bugs in such a trivial protocol?" question:
By far the biggest cause of required effort when trying to modify or optimize the NTPD distribution is the need to support a big number of OSs and even larger number of OS versions, some of them more than 20 years old, even if the main targets are Unix-like or Windows.
The second problem is the need to support 30+ reference clocks, with all sorts of OS/version specific interfaces needed in order to timestamp events as accurately as possible.
The third and final major stumbling block is all the crypto stuff, which got added in order to be able to authenticate both time packets and monitoring/configuration requests, and this is where the latest major bugs have been found.
PHK (who is working on Ntimed) has spent a lot of time on NTP, including his time as a core FreeBSD hacker when he made sure that the FBSD had the best possible timekeeping kernel. This is the reason that my personal pool server has always used FreeBSD.
If your only need is to get 0.1s level time sync on a number of client only machines, then it really doesn't matter how you implement the NTP protocol, except that you should really try to measure and adjust the local clock frequency so as to track the reference time!
The default Windows time code implements Simple NTP (SNTP) which uses the NTP packet format but doesn't try to implement the proper control loop to steer the local clock, instead it just yanks the OS clock resulting in a sawtooth-like pattern of clock offsets.
Terje
"almost all programming can be viewed as an exercise in caching"
NTP doesn't just 'return a string of numbers'.
No, sometimes it returns A lot of strings of numbers.
Admit nothing. Deny Everything. Make Counter-accusations.
So he patched for and worked with Apple and they said we'll see ?
The way he did this, it is probably difficult for the responsible person at Apple to actually pay him. He should have offered to do the work as a contractor, someone would have found money in a budget, and when he sends a bill for five days contracting work they pay the bill. That's how it works.
He seems to be asking for a donation to an open source project. How can someone at a commercial company put that in a budget? The financial guys say "is there any legal reason why we have to pay this money", the answer is no, so it won't get paid.
systemd will perform the functionality at some point.
Already done for the client part of the NTP: systemd-timesyncd