Linux: Reverse Engineering unter Windows für Nouveau

Für den Nouveau-Entwickler Samuel Pitoiset war es problematisch, an Informationen über die Graphic Counter der Nvidia-Tesla-Architektur heranzukommen: Diese lassen sich nur unter Windows mit Nvidias NVPerfkit abgreifen. Um die gewohnten Werkzeuge zum Reverse Engineering zu nutzen, portierte Pitoiset deshalb einfach die Bibliothek Libpciaccess(öffnet im neuen Fenster) . Den Patch dazu stellt der Entwickler nun bereit.
Die Nouveau-Entwickler nutzen die Envytools(öffnet im neuen Fenster) für ihre Arbeiten. Diese wiederum basieren auf Libpciaccess(öffnet im neuen Fenster) , über die direkt auf den PCI-Bus und -Geräte zugegriffen werden kann. Allerdings ist die Bibliothek nur auf Posix-Plattformen verfügbar, weshalb Pitoiset diese nun auf Windows portierte und mittels Cygwin(öffnet im neuen Fenster) nutzt. Eine Verwendung von MinGW(öffnet im neuen Fenster) (Minimalist GNU for Windows) hält der Pitoiset ebenfalls für möglich.
Die Portierung hängt außerdem von dem Werkzeug WinIO(öffnet im neuen Fenster) ab, mit dem sich auf die Ein- und Ausgabeports sowie auf Speicher unter Windows zugreifen lässt. Eine kurze Anleitung(öffnet im neuen Fenster) zur Verwendung der Bibliotheken findet sich im Quellcode-Repository von Libpciaccess. Getestet hat Pitoiset seine Portierung bisher aber nur mit der 32-Bit-Ausgabe von Windows 7, eine Testphase auf einem 64-Bit-System steht noch aus.
Pitoiset arbeitete in Googles Summer of Code 2013 an dem Reverse Engineering von Nvidias Tesla. Die Dokumentation(öffnet im neuen Fenster) der dabei erzielten Ergebnisse ist im Github-Repository des Entwicklers verfügbar. Dort finden sich auch Anfänge zur Dokumentation von Fermi und Kepler - den neueren Chips von Nvidia.