PHK bejelentette az Ntimed első preview kiadását

 ( trey | 2014. december 22., hétfő - 18:12 )

Ntimed - első preview kiadás

Ahogy azt már korábban említettem, Poul-Henning Kamp - FreeBSD és egyéb nyílt forrású szoftverek fejlesztője - a The Linux Foundation szponzorálása mellett néhány hónappal ezelőtt elkezdte átnézni az ntp.org szoftverének (NTPD) forrását, de arra jutott, hogy sokkal egyszerűbb 0-ról újraírni a cuccot, mint a több mint 100 ezer programsorból álló meglevőből kiszórni a felesleges kódsorokat.

A munka az elmúlt hónapokban folyt és tegnap eljutott ahhoz az állapothoz, hogy PHK úgy döntött, ideje kiadni az első preview kiadást. A szoftver az Ntimed névre hallgat. A kódja megtalálható a GitHub-on.

Az Ntimed licence BSDL. A szoftver 25 forráskód fájlból áll. Mindegyik fájl elején megtalálható a 2 klauzulás BSDL 25 sorból álló szövegblokkja. Ha eltekintünk ettől a 625 sortól, akkor a lényegi forráskódsorok száma 3658.

PHK a szoftvert FreeBSD/amd64 és Debian/armv7l platformokon tesztelte.

A fejlesztő köszönetet mondott Dave L. Mills professzornak az inspirációért és a The Linux Foundation-nek, ami felismerte, hogy az NTPD helyzete veszélyessé vált Mills professzor nyugdíjba vonulásával, ami anyagilag támogatta munkáját, valamint ami szabad kezet adott neki, hogy tegye amit a legjobbnak gondol - mint írja - annak ellenére, hogy ő egy BSD-s srác.

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

Ha valaki megnezte, ez is csak egy CPU-n fog futni?

Asszem ez az a sw, amit 2014-ben csakis go-ban kezdenek el írni. :)

--
zsebHUP-ot használok!

vagy rust-ban :)

rust <3

--
NetBSD - Simplicity is prerequisite for reliability

Igen, csak egy CPU-n. :(
--
zsebHUP-ot használok!

a BSD-s arcok nem szeretik a threadeket:)

Vagy nem véletlenül singlethread az ntpd. Egyébként ahogy elnézem phk nem az kimondott thread gyűlülő: http://en.wikipedia.org/wiki/Poul-Henning_Kamp

A dlinkes rész kapcsán már tapasztalhatta, hogy mennyire fontos ez a kérdés, még akkor is, ha 2006-ban még nem volt ennyire divat a multicore. :)

Feltettem neki a kérdést, azt írta vissza, hogy minden listener socketre külön processz indul, ezzel akár még meg is kerülhető a probléma (ez utóbbit nem ő írta, én tettem hozzá).
Más kérdés, hogy szerintem eleve szerencsésebb abból kiindulni, hogy egy alkalmazás ki tudja használni a rendelkezésére álló eroforrasokat.
--
zsebHUP-ot használok!

Több CPU-n mennyivel és milyen formában lehetne hatékonyabb az ntimed futattása?

Ha jól tudom, akkor egy gépben általában egy idő-kezelő (HW óra) van. Ezt a több CPU-s futtatás mennyiben tudná hatékonyan kezelni?

============================================
"Share what you know. Learn what you don't."

Sok helyen az ntpd-t nem csak kliens funkcionalitással használják, hanem szerverként (is). Ha pedig nem broadcast/multicast, hanem pollozós kliensek is vannak, akkor azért a pár (tíz/száz/ezer) klienstől jövő poll lekezeléséhez (és ellesleg a saját óra szinkronban tartásához) azért jöhet jól ha valamilyen szinten (*) tudjuk a feladatokat párhuzamosítani, nem?

(*) hogy thread vagy processz vagy más, az lényegtelen az elv szempontjából

"The first step is a NTP protocol client daemon, 'Ntimed-client', which will synchronize a systems clock to some set of NTP servers

If this catches on, support for slave servers, refclocks and other protocols, such as PTP, can be added, subject to interest, skill, time and money."

[...]

"The plan is to have the first production ready release in Q1/2015.

Hopefully OS releases will then adopt Ntimed, first as alternative to, and later as replacement for NTPD in client applications."

--
trey @ gépház

Azt lehet tudni, miert nem tekintenek inkabb alternativakent az openntpd-re?

Ezt írta vissza válaszként a kérdésre:

"OpenNTPD has a very crude clock-steering algorithm, and is written narrowly for SNTP client usage.

Ntimed is aimed at the "full" NTP ecosystem, client, slave and master server."

--
trey @ gépház

Itt azt is írja:

"My main objection to OpenNTPD is not the lack of crypto, but that it's timekeeping isn't good enough, and that it is an evolutionary dead end."

(A lack of crypto alatt azt érti, hogy MITM-támadható)

Nem egyszerubb javitani rajta?

Feltételezem, azért írta, hogy evolúciós zsákutca, mert egy bizonyos szinten túl nem lehet.

--
trey @ gépház

Még mindig rootként fut az ntpd FreeBSD-n?

root@bsd:~ # ps aux | grep ntp
root 887 0.0 0.2 10136 468 - Is Wed11PM 0:00.01 ntpd: [priv] (ntpd)
_ntp 889 0.0 0.2 10136 504 - I Wed11PM 0:00.71 ntpd: ntp engine (ntpd)
_ntp 891 0.0 0.1 10136 300 - I Wed11PM 0:00.00 ntpd: dns engine (ntpd)
root@bsd:~ # id _ntp
uid=123(_ntp) gid=123(_ntp) groups=123(_ntp)

Ez az openntpd. Nem az alapértelmezett isc ntpd FreeBsd-n.

:D

A kód átnézés nem a hibák felderítésére kellett? Így majd most az új szoftverben lesznek új hibák, amit senki se nézett még át. Nice.

^opensource in a nutshell

Sajnos a szokásos károgás itt nem tűnik találónak.

http://phk.freebsd.dk/time/20140926.html

100.000 lines of code is insane for a program which basically steers your clock to some remote server, it can be done in 1000 lines if you really squeeze it.

https://github.com/bsdphk/Ntimed/blob/master/README.rst

after studying the 300,000+ lines of source-code in NTPD, I concluded that while it could be salvaged, it would be more economical, much faster and far more efficient to start from scratch.

(emphasis his)

Általában véve nem vagyok phk rajongója, de esetenként indokolt lehet egy nulláról történő újraírás.