A ty vysokourovnove architektury budou napsany v cem konkrentne ? Rozkouskovani a parsing packetu bude vzdy docela nizkourovnova prace nehlede na programovacim jazyku. Musim prece cist presne jak to mam RFC, ne doufat, ze to snad dopadne dobre a ten int bude opravdu 32 bitu a jeste se to spravne prehodi podle endianity. Na druhou stranu bullet proof memory alokator by docela hodil.
„Rozkouskovani a parsing packetu bude vzdy docela nizkourovnova prace nehlede na programovacim jazyku. Musim prece cist presne jak to mam RFC, ne doufat, ze to snad dopadne dobre a ten int bude opravdu 32 bitu a jeste se to spravne prehodi podle endianity.“
K tomu ale přece vůbec není potřeba memcpy, které ti omylem přepíše kus paměti, která s tím vůbec nesouvisí.
A například v Pythonu se parsuje binární paket takto:
struct.unpack("!I",bytearray(q[16:20]))
Kupodivu je endianita jasně daná, i je jasně dané, že je to 32bit unsigned.
Napr. v jazyce Erlang jsou na praci s binarnimi daty celkem elegantni syntakticke konstrukce ktere jsou velmi rychle (mikrosekundy). Delat v tom nejaky binarni protokol je radost. Na ASN1 tam je knihovna a pod. Integery jsou tam pro jistotu nekonecne. Na SSL je tam systemova interni knihovna (nevim jak moc kompletni).
Neda se to embedovat do jinych jazyku (jako treba Lua).
Jinymi slovy - daji se najit potecionalne zajimave cesty ci jejich naznaky.
Vsetko sa to zaklada na viere ze kniznice v nejakom jazyku su nezranitelne. Odporucil by som sa pozriet na videa z defcon tusim 19. Prednasajuci napisal program v c nieco ako hello world co vypisoval co bolo v prikazovom riadku ako parameter. Pomocou printf funkcie spravnych parametrov co pretiekli v pameti ziskal prava root, len tak za 40 minut prednasky.
Prelozil som si zaciatok. "Scheme-79 je jednocipovy mikroprocesor ktory implementuje dialekt jazyka lisp". Co by to bolo v realnom serveri? Nieco ako matematicky koprocesor pre 386? Ako hlavny procesor si to neviem predstavit hlavne preto lebo vsetky program by sa museli prerobit z x86 na lisp, to je tak 20 rokov prace ludstva. Viem si to predstavit v dalekej buducnosti ako pocitac lode Enterprise a namiesto lispu by bola anglictina napriklad.
Jednou k tomu stejně dojde. Například, až bude bude jednou průmysl donucen přestat hopkat kolem vonneumanovské architektury a přejít ke skutečně masivně paralelním architekturám (dataflow), protože ze samotné podstaty sekveční architektura prostě nejde donekonečna chaoticky oblepovat "zlepšováky" typu OoOE.
Jinak co se týče obhajoby tvrzení, že eliminovat složitost výpočetních systémů u zdroje (tzn. v hardwaru) je nejen správné, ale i nutné, nemá-li tato složitost dosáhnout skutečně absurdních a nezvladatelných rozměrů, mnohem více je k dočtení zde.