2013. augusztus 28., szerda

Neumann János vs. Mark Zuckerberg

Egy informatikai mellékszál Tibor bá blogján...


Curix, 2013.augusztus.20th. at 18:23

Ha te ezt a társadalmi problémát tényleg így akarod kezelni, informatikai megközelítésből, akkor jóval nagyobbat kell “durrantanod”, mint Mark Zuckerbergnek.
...


Kedves Loránd, 2013.augusztus.21st. at 07:43

Márhogy a Facebook??? Ó anyám borogass…
http://hajnalvilag.blogspot.hu/2012/03/gondolat-temeto.html

Ha nagy durranást keresel, Neumann Jánost ajánlom figyelmedbe.


Curix, 2013.augusztus.21st. at 09:18

Mindegy, hogy nekem mit ajánlasz.
Kérdezz meg pár fiatalt ki az a Neumann?
Aztán kérdezd meg tőlük mi az a Facebook.
Aztán az eredmény után borogatni fogod magad.


Kedves Loránd, 2013.augusztus.23rd. at 07:16

Mivel te kérdeztél, neked válaszolok.

A mai gondolkodás szintjén: a Facebook trendi, Mark aranyos és kőgazdag menő csóka, akármit megtehet, és még vizslája is van. Vagy puli? Neumann egy kis köpcös tudós-forma, és már régen meghalt, kit érdekel?

Nálam: A Facebook egy technikai szempontból középszerű eszköz nagy tömegek számára önmaguk hülyítésére, amelyet a hasonló tucatnyi, lényegében egyforma startup közül végül a kockázati tőke kiválasztott és alátette az irgalmatlan szerverparkot. Guánószobor, tömör aranyból. Ezzel szemben az összes informatikai eszköz a mosógép paneljétől a szuperszámítógépekig, sőt a mai “informatika” fogalma a Neumann által leírt elveken alapul. Az “igazság” egy szelete, ipari gyémánt.

“Kérlek, engedd meg nekem”, hogy a saját szakterületemen megmondjam, mi a “nagy durranás”… és ha megkérdeznek, ennek megfelelően válaszoljak, ne az utca népe szintjén.


Avatar, 2013.augusztus.23rd. at 16:35

Khm… A mai modern processzorok itt-ott azért eléggé felrúgják a Neumann elveket. Pl. több mag esetén valós párhuzamos utasításfeldolgozás van procin belül, valamint eltérően kezelik, külön cache-elik az utasításokat és az adatokat, és többnyire NX bit támogatás is van, ami épp a Neumann elv univerzalitásából fakadó egyik problémát hivatott kezelni.

De az kétségtelen, hogy Neumann igen jelentős szerepet játszott az informatika megalapozásában.


Kedves Loránd, 2013.augusztus.24th. at 06:49

“felrúgják”… nem értek egyet. A tény, hogy egy magba máshogy kombinálva pakoljuk azokat a logikai elemeket, amelyeket Neumann leírt, még ugyanazokról az elemekről beszélünk. Ez kábé annyira ellentétes az elvekkel, ahogy a repülőgép “felrúgja” a gravitáció törvényét: attól függ, ki nézi és mennyit tud róla. De ezt nem itt fogom megvitatni.


Avatar, 2013.augusztus.24th. at 16:51

Jó, ne vitassuk meg. De a módosított Harvard architektúra akkor se lesz ugyanaz, mint a Neumann architektúra.



Kedves Loránd, 2013.augusztus.25th. at 09:45

hohó, kolléga, az más. Én nem kaptam külön ilyen oktatást, saját keresgélésemre alapozva, és olvasva ezt: First Draft of a Report on the EDVAC by John von Neumann, arra a következtetésre jutottam, hogy ő volt az az ember, aki két részre választotta egy konkrét probléma gépi megoldását. Előtte a feladat “algoritmusa” egy célgép hardverében öltött testet, ő viszont meghatározta a “bármilyen informatikai feladat” megoldáshoz szükséges alapkomponenseket, ezek viszonyát. Azt mondta, hogy építhető olyan hardver, amely bármilyen program futtatására alkalmas, és a megoldandó feladat erre írt programként, “konfiguráció” formában cserélhető azonos hardveren / azonos program “futtatható lehet” más hardveren. Ez teszi lehetővé azt, hogy egyáltalán “programról” beszéljünk, áramkörök és elektronikai eszközök helyett.

Azt állítom, hogy amikor “más architektúráról” beszélünk, akkor is azokat a komponenseket használjuk, amelyeket ő nevezett meg, korszakalkotásnak pedig azt tartom, hogy használható definíciót adott ezekre a (bizonyára már akkor is sokakban felmerült, de elnagyolt vagy használhatatlanul bonyolult) elemekre. Te mit gondolsz erről?


Avatar, 2013.augusztus.25th. at 11:15

Arról volt szó, nem vitatjuk meg.
Neumann egyik zsenális ötlete volt a memóriában adatként tárolt program, ami a számítógép univerzalitásának alapköve a gyors átprogramozhatóság biztosításával. Így a program akár a saját kódját is tudja módosítani működés közben. Viszont hordozza azt a veszélyt is, hogy adatként kezelendő memóriaterületek programként kerüljenek futtatásra, amit több támadástípus ki is használ (ilyenben Neumannak még nem nagyon kellett gondolkodnia). Ennek megakadályozására szolgál az adat és a program ismételt különválasztása, az adatok nem futtatható memóriában való tárolása, ami viszont sérti azt a Neumann elvet, hogy a program ugyanolyan adat, mint a többi.


Kedves Loránd, 2013.augusztus.28th. at 17:33

Nem is vitázom, csak érdekelt, hogy van-e valami, amit elnéztem a témában.

Amit elmondtál, tudom. Mellesleg, amikor még minden töredék másodpercért meg kellett küzdeni, nem volt belső cache meg feltételes ágak párhuzamos előfeldolgozása, stb, akkor ismert trükk volt a belső ciklusmagok kódjának futás közbeni módosítása. Adatként kezelték anno a programkódot a védelmi rendszerek is, amelyek pl kontrollösszeget számoltak az éppen futó kódból (hogy ne lehessen csak úgy megállni bennük), aztán ezzel maszkolták byte-szinten a további részeket futtatás előtt (hogy a visszafejtett kód egy rakás szemét legyen az előző részek hibátlan futása nélkül). Egyesek számítási adatokat tároltak, vagy kódot futtattak az interrupt vektor táblában is…
Amikor én voltam egyetemista, haverok-buli-fanta helyett érdekes dolgokkal foglalkoztunk szabad időnkben. Nem én voltam a mester, de sokat tanultam belőle. Nyilván a gyorsan növekvő sebesség, a védett mód, több mag, virtuális környezetek, stb. új feltételeket teremtettek.

Én viszont nem erről beszélek, hanem arról, hogy tudtommal Neumann János definiálta azt az “általános feladatmegoldó architektúrát”, amelyben a konkrét feladat nem hardver formájában van jelen, hanem mint a hardver működését leíró műveletsor, “ugyanolyan”: megváltoztatható, cserélhető adat formájában. Akkor éppen ez volt a legnagyobb dobás! Továbbá: meg is csinálta ezt a gépet, és benne létrehozta a világ első, csak informatikai szinten, byte-sorozat formájában létező programját. Amikor pedig programozható eszközről beszélünk, ma is az általa alkotott fogalmakat (CPU, ALU, memória, I/O) használjuk, bár persze ezek számtalan formában specializálódtak. Ahogy a repülőgép alatt is mást értünk ma, mint a Wright fivérek idején.

Talán azzal lezárhatjuk ezt az oldalágat, hogy igen, Mark Zuckerberg közismert és gazdag, Neumann János pedig zseniális, korszakalkotó informatikus. Nekem szabad előbbit egy legyintéssel elintézni, utóbbit pedig etalonnak tekinteni. Még ha ezzel újfent nem leszek népszerű…