Idézet: bomlat - Dátum: 2005. nov. 1., kedd - 13:01
Hmmm.
fél órás netes keresgélés alapján kettönk között a fő különbség az,hogy én deklaráltan,te pedig tikoltan nem értesz a témához.
flat memória esetében hogyan különíted el egymástol a kernelt és az usert?
továbbá nem csak az NT,hanem a linux is szegmentálást használ az user proceszek elkülönítéséhez,és valóban,ahogy írtad megszakítás kell a gate-k hívásához....
A cel-ben pedig azzal szemben amit irtam van szegmentált memóriakezelés,és a központi cpu-nak arra épül a védelme,de a vektroprociknak nincsen ilyen védelmük,ráadásul a doksika alapján csak kernel módban írhatóak/olvashatóak,vagyis felületes benyomás alapján rajtuk keresztül szépen törhető a rendszer.
http://www.research..../494/kahle.html
Synergistic processing element
The SPE [11] implements a new instruction-set architecture optimized for power and performance on computing-intensive and media applications. The SPE (Figure 3) operates on a local store memory (256 KB) that stores instructions and data. Data and instructions are transferred between this local memory and system memory by asynchronous coherent DMA commands, executed by the memory flow control unit included in each SPE. Each SPE supports up to 16 outstanding DMA commands. Because these coherent DMA commands use the same translation and protection governed by the page and segment tables of the Power Architecture as the PPE, addresses can be passed between the PPE and SPEs, and the operating system can share memory and manage all of the processing resources in the system in a consistent manner. The DMA unit can be programmed in one of three ways: 1) with instructions on the SPE that insert DMA commands in the queues; 2) by preparing (scatter-gather) lists of commands in the local store and issuing a single “DMA list” of commands; or 3) by inserting commands in the DMA queue from another processor in the system (with the appropriate privilege) by using store or DMA-write commands. For programming convenience, and to allow local-store-to-local-store DMA transactions, the local store is mapped into the memory map of the processor, but this memory (if cached) is not coherent in the system.
http://neworder.box....php?newsid=2604
http://www.codeguru.com/Cpp/W-P/system/dev...icle.php/c8035/
fél órás netes keresgélés után szép, hogy eljutottál ide. az, hogy valaki a lényeget kiemelve, egyszerűsített képet ír le, még nem jelenti azt, hogy hülye. teljesen felesleges elmerülni a részletekben egy nem szakmai topikban. Elég ha annyit tudsz (32 bites esetben) hogy van egy taszkleíró per processz, ami tartalmaz egy laptáblát. A laptábla felső 2Gigájába vannak belepozva az OS szolgáltatások, a processzek lineáris címeket látnak és lineáris címzést használnak.
rigng0-ra kerülni 3módon lehet:
- ljmp, lcall - ekkor kell az általad hőn szeretett call gate szegmens ismerte
- sysenter
- int<num>
OS design kérdése, ki mivel főz.
amit e cell-ről írsz. Vegyünk egy windows desktopot. A windows desktopodon lehetnek ablakok amik system jogokkal futnak. A íruskeresők/defragek ablakjai ilyenek. Ha te ezeken az ablakokon keresztül az ablakok kontrollereibe valahogy rosszindulatú kódot tudsz injektálni, megtörted a rendszert. De ez igaz bármilyen grafikus felületet futtató unix, vax, whatever rendszerre. Attól hogy egy védelmi mechanizmus nem hardveresen implementált, attól az még működhet. Ahogy meg lehet írni - ésszel - a víruskereső, defrag, whatever program kontrolljait úgy, hogy ez a probléma ne álljon fel. Dehogy mégegy példát hozzak, sokáig nagyon sok unix box-on a rendszerszolgáltatások ftp, telnet root jogokkal futottak. Egy alkalmas kalóznak elég volt TCP/IP felől buffer overflow hibára futtatni ezeket a szolgáltatásokat és uralma alá kerítette a gépet...
Szerkesztette: SFIJ 2005. 11. 01. 13:48 -kor