Primerno god nazad byla zadacha napisat' RTOS (Run-Time OS) s podderzhkoi Video, Audio, IPStack-a i t.d.
Osnovnaya problema sostoyala v tom chto u processora dlya koego prednaznachalas' OS ne bylo MMU, t.e. dinamicheskaya pamyat' byla nedostupna.
Ya nadeyalsya shto smogu vospol'zovatsya socketam-i iz linuxa ili iz nekotoryx nezavisimyx istochnikov, no okazalos' shto oni vse orienterovanny na dynamicheskuyu pamyat'.
I tut ya reshil otkazatsya ot ponyatiya socketa i sdelal novye obtekty staticheski dislocirovannye v pamyati, kotorye aktivizitruytusya 100 raz v secundu i obrabatyvayut dannye poluchennye iz ethernet porta.
Poluchennuyu setevuyu biblioteku nazvali HMATNet. V chest' avtorov.
Hmayakyan (Eto ya) Matveev (Eto Ivan Matveev) Net
Reshsenie bylo nastol'ko prostym i xoroshym shto u menya voznik vopros a voobshe sockety eto xorosho ili kak?
Vy ne dumayte ya dostatochno mnogo rabotal s socketami i pod linux, Windows, i pod TI-ovskim NDK, i pod Win CE.
No vse bol'she dumayu shto nashi obyekty byli gorazdo udobnee.
Kstati vysheukazannyh RTOS zarabotal i pozvolyal prinimat' dannye s 4-x kamer nezavisimo 25-kadrov v sekundu. Podderzhyval odin kanal zvuka. Ethernet, COM i esho mnogo chego. Bylo zadeystvovano 60 DMA kanalov.
No samaya slozhnaya chast' etogo RTOS byl IP stack. I vsyo sdelano bylo bez dynamicheskoi pamyati i bez socketov.
Voznikayet vopros esli sockety eto xorosho to pochemu imi nel'zya pol'zovatsya vsyudu i pochemu net dostupnoi i normal'noi biblioteki?
Kstati nasha biblioteka imela dva inputa callback 10 ms i libo ethernet packet, libo esli est' EMAC, adres EMAC ustroistva i predostovlyala pochti polnocennyh IPStack.