2010-02-24 10 views
5

Chcę nauczyć się wszystkich zaawansowanych szczegóły programowania niskopoziomowego więc chcę, aby móc potrzebne książki i strony internetowej sugestię dla zaawansowanego programowania niskopoziomowego

  • Dowiedz zaawansowany C/C++
  • optymalizacja kodu i bez montaż inline
  • Zrozum wnętrzności w exe, dll, nici, proces
  • luzie wykorzystanie technologii takich jak SSE, 3DNow, MMX
  • Debug & demontować wykonywalne/biblioteki i zrozumieć, co się dzieje wewnątrz
  • Różnice/cechy różnych procesorów/platform, takich jak x86, MIPS, ARM, PowerPC
  • Moim pierwszym celem jest system oparty na systemie Windows x86. Potem przychodzą platformy oparte na platformie linuksowej. I systemy wbudowane. Wszelkie książki, strony internetowe, samouczki, fora, wspólnoty, które dają mi to, czego szukam BEZPOŚREDNIO, są w porządku.
    Dzięki ..

    +0

    Dlaczego jesteś taki konkretny? Czy istnieje konkretna domena problemowa, o której myślisz? –

    +0

    nie, po prostu entuzjazm – Taz

    +0

    zarejestruj się, aby uzyskać dostęp do książki online: http://www.pearsonhighered.com/educator/course/C-Intermediate-Advanced-Programming/91054902.page – lsalamon

    Odpowiedz

    1

    To, o co prosisz, nie można znaleźć w pojedynczej książce. Większość z wymienionych elementów najlepiej znaleźć w podręcznikach użytkownika lub specyfikacjach funkcjonalnych dla różnych procesorów. Polecam zacząć od zrozumienia podstawowego x86 arch i pracy z niego. Jedna ze starych instrukcji Intel 386 lub 486 może być dobrym początkiem.

    Nie znam żadnych stron internetowych dla tego typu informacji.

    0

    To trochę za dużo, że chcesz się uczyć. :)

    Proponuję zacząć od podstawowej architektury ARM v4. jest to dość proste do zrozumienia. następnie przejdź do 8086, a następnie zbuduj na nowsze wersje ARM i x86. ARM jest typu RISC. i x86 typu CISC. nigdy nie poznasz wszystkich procesorów. (jak nigdy nie będziesz w stanie uczyć się wszystkich języków programowania) , ale posiadanie wiedzy 1 lub 2 pozwoli ci zrozumieć każdą inną, z którą się spotkasz. Nie ma nic dużo Object zorientowany na programowanie niskiego poziomu. , więc nie ma znaczenia, czy używasz C++ lub c. pobierz pełny symulator systemu, taki jak gxemul lub qemu. spróbować wykonać program montażowy Hello World - (bez korzystania z biblioteki wykonawcze procesora, - chcesz to trudne, prawda?) inni mogą być w stanie Cię w stosunku do SSE, MMX itp

    Zamówienie InfoCenter. arm.com dla języka asemblerowego ARM i specyfikacji architektury.

    1

    Kilka zalecenia spośród moich ulubionych, aby dostać się zaczęło:

    • „Efektywne C++ 55 konkretnych sposobów, aby poprawić swoje programy i wzory (3rd Edition)” - Scott Meyers

    • "Wewnątrz maszyny" - John Stokes

    • "Rozkosz hakera" - Henry S.Warren

    • „Oprogramowanie Optymalizacja Cookbook” - Richard Gerber

    • „Intel® 64 oraz IA-32 architektury Software Developer Obsługi, tom 2A: Zestaw instrukcji, AM” (253666-021)

    • „Intel® 64 oraz IA-32 architektury oprogramowania Program Obsługi, tom 2B: Zestaw instrukcji, NZ” (253667-021)

    0

    zawsze uważałem systemy komputerowe: Per programisty spective (http://www.amazon.com/Computer-Systems-Programmers-Randal-Bryant/dp/013034074X) za bardzo dobrą książkę. Ma dużą ilość informacji na temat architektury komputerów i nauczyła mnie zarządzania pamięcią, kompilacji i łączenia (jak również debugowania błędów łączenia), optymalizacji, relokowalnego kodu obiektowego i niektórych elementów architektury niższego poziomu, takich jak o studiowaniu informatyki od niskiego poziomu (np. jakie są wewnętrzne elementy procesora). Istnieje wiele dobrych ćwiczeń, od przykładów optymalizacji po implementację przepełnienia bufora. Omówiono w nim sposób pisania wbudowanego kodu assemblera (i uruchamiania go). Jest nawet sekcja dotycząca pisania kodu dla fikcyjnego procesora (Y86).

    Jednym z zastrzeżeń jest jednak to, że skupia się on na linii procesora Intela (moim zdaniem). Jeśli chcesz czegoś, co jest trochę bardziej podobne do pracy z linią ARM, prawdopodobnie zechcesz wziąć zalecenia od innych powyżej.

    1

    Może przyszedł czas na założenie konta na http://my.safaribooksonline.com/, odłączenie telefonu na kilka tygodni, załadowanie lodówki za pomocą Jolta i Funyun, pożegnanie z rodziną i przyjaciółmi, a następnie przeczytanie tylu książek, ile potrzebujesz mogą. Mają tam dość obszerną bibliotekę, która obejmuje większość tematów, których szukasz.

    Powiązane problemy