Śledzenie ścieżki wykonania procesu (programu) Robert Święcki - PWNing 2016
|
|
- Juliusz Skrzypczak
- 6 lat temu
- Przeglądów:
Transkrypt
1 Śledzenie ścieżki wykonania procesu (programu) Robert Święcki - PWNing 2016
2 Plan prezentacji Disclaimer Program a proces Śledzenie wykonania, czyli właściwie co? Motywacje Metody programowe Metody programowo-sprzętowe Metody sprzętowe Wydajność
3 Czym jest śledzenie wykonania kodu? ang. control flow path tracking (śledzenie ścieżki przebiegu sterowania) Czego oczekujemy
4 Czym jest śledzenie wykonania kodu? Wejście - wykonanie procesu (programu) Wyjście sekwencja wykonania wykonane bloki zależności czasowe W sposób możliwie szybki
5 Czym jest śledzenie wykonania kodu? void PRINT_B() { write(0, "B", 1); } void PRINT_A() { PRINT_B(); write(0, "A", 1); } void PRINT_NL() { write(0, "\n", 1); } int main(void) { for (int i = 0; i < 3; i++) { PRINT_A(); } PRINT_B(); PRINT_NL(); return 0; }...
6 Czym jest śledzenie wykonania kodu? 1 main inst 1,7 2 PRINT_A inst 8,11 3 PRINT_B inst 12,18 4 write inst 19,20 5 write_nocancel inst 21,25 6 PRINT_B inst 26,28 7 PRINT_A inst 29,33 8 write inst 34,35 9 write_nocancel inst 36,40 10 PRINT_A inst 41,43 11 main inst 44,48 12 PRINT_A inst 49,52 13 PRINT_B inst 53,59 14 write inst 60,61 15 write_nocancel inst 62,66 16 PRINT_B inst 67,69 17 PRINT_A inst 70,74 18 write inst 75,76 19 write_nocancel inst 77,81 20 PRINT_A inst 82,84 21 main inst 85,89 22 PRINT_A inst 90,93 23 PRINT_B inst 94, write inst 101, write_nocancel inst 103, PRINT_B inst 108, PRINT_A inst 111, write inst 116, write_nocancel inst 118, PRINT_A inst 123, main inst 126, PRINT_B inst 131, write inst 138, write_nocancel inst 140, PRINT_B inst 145, main inst 148, PRINT_NL inst 150, write inst 157, write_nocancel inst 159, PRINT_NL inst 164, main inst 167,169
7 Motywacje Malware research Analiza programów binarnych Debugowanie kodu Profilowanie kodu CTF-y Fuzzing
8 Malware research Obfuskacja kodu [demo w/strace].global _start _start: movq $231, %rax movq $10, %rdi jmp 1f.byte 0xC0 1: syscall d4 <_start>: 4000d4: 48 c7 c0 e mov $0xe7,%rax 4000db: 48 c7 c7 0a mov $0xa,%rdi 4000e2: eb 01 jmp 4000e5 <_start+0x11> 4000e4: c0 0f 05 rorb $0x5,(%rdi) Time locks (konieczne b.szybki proces śledzenia) Szyfrowanie kodu Kod dynamiczny (moduły) i samomodyfikujący się
9 Programy binarne Brak kodu źródłowego (i symboli) Reverse engineering Debugging Bughunting
10 Debugowanie programów Duża złożoność (np. Apache) wolny single-stepping Nietrywialne do analizy skoki warunkowe JIT Kod samomodyfikujący się Języki wysokiego poziomu - bytecode, interpretery
11 CTF-y Zarówno zadania RE jak i PWN Pierwszy rzut oka na zadanie - disasembler/dekompilator mogą się mylić strace./challenge [demo] Analiza przebiegu dla zadanego inputu Fuzzowanie (np. CGC DARPA) głównie AFL+QEmu-User lub modyfikacja dynamiczna kodu
12 Fuzzing Nie - jak się program dokładnie wykonuje (sekwencje) Lecz - co program właściwie wykonuje (coverage) Sekwencja wykonania jest o wiele mniej istotna od prostego określenia wykonanych bloków kodu code coverage sekwencje tuples i liczniki Code coverage maksymalizacja attack surface Galeria błędów na stronie AFL i Honggfuzz Np. błąd Critical w OpenSSL CVE (zgłoszony przeze mnie) został znaleziony przy użyciu instrumentacji SanCov i za pomocą fuzzera Honggfuzz
13 Fuzzing [demo] int check0() { } int check1() { } int check2() { } int main(void) { char buf[4] = {}; read(0, buf, 4); if (buf[0] == 'A') { check0(); if (buf[1] == 'B') { check1(); if (buf[2] == 'C') { check2(); if (buf[3] == 'D') { int *i = 0x ; *i = 0x ; } } } } return 0; }
14 Metody programowe Brak specjalizowanego wsparcia w sprzęcie Większośc współczesnych CPU ogólnego przeznaczenia z MMU je wspiera
15 Metody programowe - printf-based debugging #define LOG printf("\nfunkcja: %s, linia: %d\n", func, LINE ) void PRINT_B() { LOG; write(0, "B", 1); } void PRINT_A() { LOG; PRINT_B(); write(0, "A", 1); } void PRINT_NL() { LOG; write(0, "\n", 1); } int main(void) { LOG; for (int i = 0; i < 3; i++) { PRINT_A(); } PRINT_B(); PRINT_NL(); return 0; }
16 Metody programowe - printf-based debugging Funkcja: main, linia: 20 Funkcja: PRINT_A, linia: 9 Funkcja: PRINT_B, linia: 4 BA Funkcja: PRINT_A, linia: 9 Funkcja: PRINT_B, linia: 4 BA Funkcja: PRINT_A, linia: 9 Funkcja: PRINT_B, linia: 4 BA Funkcja: PRINT_B, linia: 4 B Funkcja: PRINT_NL, linia: 15
17 Metody programowe - instrument. (kompilacja) GCC/Clang Funkcje - wejście i wyjście void cyg_profile_func_enter(void *func, void *caller) { printf("wywołano %p z funkcji %p\n", func, caller); } void cyg_profile_func_exit(void* func, void *caller) { printf("powrót z funkcji %p do funkcji %p\n", func, caller); } $ gcc -finstrument-functions -ggdb -c prog.c -o prog-instr.o $ gcc -ggdb prog-instr.o instrgcc.c -o prog-instr $./prog-instr grep Wyw cut -f2 -d" " \ addr2line -sfe./prog-instr
18 Metody programowe - instrument. (kompilacja)./prog-instr grep Wywołano \ cut -f2 -d" " \ addr2line -sfe./prog-instr BABABAB main prog.c:14 PRINT_A prog.c:5 PRINT_B prog.c:1 PRINT_A prog.c:5 PRINT_B prog.c:1 PRINT_A prog.c:5 PRINT_B prog.c:1 PRINT_B prog.c:1 PRINT_NL prog.c:10
19 Metody programowe - instrument. (kompilacja) void sanitizer_cov_trace_pc(void) { printf("wywołanie z adresu: %p\n", builtin_return_address(0)); } void sanitizer_cov_trace_pc_indir(void *callee) { printf("skok z adresu %p do adresu %p\n", callee, builtin_return_address(0)); } Bloki, nie funkcje
20 Metody programowe - instrument. (kompilacja) $./prog-instrclang Wywołanie bloku: 0x4005ed Wywołanie bloku: 0x40060e Wywołanie bloku: 0x4005fb Wywołanie bloku: 0x Wywołanie bloku: 0x40056f BA Wywołanie bloku: 0x40060e Wywołanie bloku: 0x4005fb Wywołanie bloku: 0x Wywołanie bloku: 0x40056f BA Wywołanie bloku: 0x40060e Wywołanie bloku: 0x4005fb Wywołanie bloku: 0x Wywołanie bloku: 0x40056f BA Wywołanie bloku: 0x40060e Wywołanie bloku: 0x Wywołanie bloku: 0x40056f B Wywołanie bloku: 0x4005c3 Wywołanie bloku: 0x addr2line
21 Metody programowe - kod binarny Instrumentacja programu (pliku na dysku) Instrumentacja procesu Pakiety gdb-style - int3 (break) Linux ptrace() Windows WinAFL DynamoRIO DynInst Intel PIN In-flight instrumentation Intel PIN dla zadań DARPA CGC (emulacja syscalli)
22 Metody programowe - kod binarny Przykład dla Intel PIN export LD_BIND_NOW=1../../../pin -t./obj-intel64/calltrace.so --./prog main PRINT_A PRINT_B write write PRINT_A PRINT_B write write PRINT_A PRINT_B write write PRINT_B write PRINT_NL write exit
23 Metody programowe - śledzenie syscalli Linux szeroki zakres użycia interfejsu ptrace() Relatywnie wysokopoziomowe śledzenie procesu interakcja procesu z zasobami nielokalnymi, ujednolicone adresy wywołań (np. poprzez glibc) $ strace -i./prog... [ f690] write(0, "B", 1) = 1 [ f690] write(0, "A", 1) = 1 [ f690] write(0, "B", 1) = 1 [ f690] write(0, "A", 1) = 1 [ f690] write(0, "B", 1) = 1 [ f690] write(0, "A", 1) = 1 [ f690] write(0, "B", 1) = 1 [ f690] write(0, "\n", 1) = 1 [ f608] exit_group(0) =?
24 Metody programowe - śledzenie wyw. bibliot. $ ltrace -w2./prog-dyn libc_start_main([ "./prog-dyn" ]) write(0, "B", 1) = 1 > prog-dyn(print_b+0x1e) [400544] > prog-dyn(print_a+0xd) [400553] > prog-dyn(main+0x1a) [4005aa] write(0, "A", 1) = 1 > prog-dyn(print_a+0x28) [40056e] > prog-dyn(main+0x1a) [4005aa] > libc.so.6 ( libc_start_main+0xf0) [7fe10783d730]... write(0, "\n", 1) = 1 > prog-dyn(print_nl+0x1e) [40058e] > prog-dyn(main+0x38) [4005c8] > libc.so.6 ( libc_start_main+0xf0) [7fe10783d730] +++ exited (status 0) +++ write(0, "B", 1) = 1 > prog-dyn(print_b+0x1e) [400544] > prog-dyn(print_a+0xd) [400553] > prog-dyn(main+0x1a) [4005aa]...
25 Metody programowe - śledzenie wyw. bibliot. Wady Aplikacje dynamiczne (konieczne zmiany w GOT/PLT) Tylko wywołania biblioteczne i systemowe
26 Metody programowe - emulacja instrukcji Emulatory dla programów - np. qemu-user Konieczność translacji/emulacji każdej instrukcji dostęp do informacji o wykonaniu/adresie każdej emulowanej instrukcji CPU Użycie mechanizmów JIT skutkuje relatywnie szybkim procesem wykonania Zmodyfikowany qemu-user-i386 - używany w DARPA CGC przez większośc zespołów do określania code coverage wraz z feedback-guided fuzzerami Może śledzić wywołania systemowe
27 Metody programowe - emulacja instrukcji $ qemu-x86_64 -strace -d exec -B 0x /prog 2>&1 >/dev/null grep -E \ "main PRINT" Trace 0x55bbb1c78620 [ ] main Trace 0x55bbb1c786b0 [ b7] main Trace 0x55bbb1c78750 [ a9] main Trace 0x55bbb1c787b0 [ e] PRINT_A Trace 0x55bbb1c78820 [ e] PRINT_B Trace 0x55bbb1c78a60 [ b] PRINT_B Trace 0x55bbb1c78ac0 [ c] PRINT_A Trace 0x55bbb1c78b30 [ ] PRINT_A Trace 0x55bbb1c78b90 [ b3] main Trace 0x55bbb1c78750 [ a9] main Trace 0x55bbb1c78a60 [ b] PRINT_B Trace 0x55bbb1c78ac0 [ c] PRINT_A Trace 0x55bbb1c78b30 [ ] PRINT_A Trace 0x55bbb1c78b90 [ b3] main Trace 0x55bbb1c78a60 [ b] PRINT_B Trace 0x55bbb1c78ac0 [ c] PRINT_A Trace 0x55bbb1c78b30 [ ] PRINT_A Trace 0x55bbb1c78b90 [ b3] main Trace 0x55bbb1c78c50 [ bd] main Trace 0x55bbb1c78820 [ e] PRINT_B Trace 0x55bbb1c78a60 [ b] PRINT_B Trace 0x55bbb1c78cb0 [ c7] main Trace 0x55bbb1c78d10 [ ] PRINT_NL Trace 0x55bbb1c78da0 [ ] PRINT_NL Trace 0x55bbb1c78e00 [ d1] main
28 Metody programowe - emulacja instrukcji Qira [demo] Autorstwo: George geohot Hotz /2016 Timeless Debugger Oparty o zmodyfikowany qemu-user Działa w przeglądarce Stworzony z myślą o CTF-ach, ale nie tylko Nagrywa przebieg wykonania - podobnie do record btrace w gdb
29 Metody programowo-sprzętowe - sampling Mechanizm oparty of timery Okresowy zapis parametrów procesu (np. rejestrów CPU) Niezbyt dobry mechanizm do określania ścieżki przebiegu (mała precyzja) Częściej używany do profilowania programów $ perf record --per-thread -e instructions:u --./prog $ perf script prog instructions:u: _start+0x2 prog instructions:u: 400c60 libc_start_main+0x0 prog instructions:u: 400c72 libc_start_main+0x12 prog instructions:u: 400dc6 libc_start_main+0x166 prog instructions:u: 400d2e libc_start_main+0xce prog instructions:u: _dl_aux_init+0x300 prog instructions:u: 410ac8 _dl_non_dynamic_init+0x128
30 Metody programowo-sprzętowe - rejestry DR Debug Register Specjalizowane rejestry w CPU (w x86 - DR0-DR3 + DR6/7) Generowanie wyjątku w przypadku spełnienia warunku Adres PC osiąga zadaną wartość Odczyt z zadanego adresu Zapis do zadanego adresu Dostęp do szyny IO po zadanym adresem Wyjątek obsługiwany przez ten sam lub inny proces Może posłużyć do śledzenia przepływu sterowania niezbyt szybkie (liczne context switche) mała liczba rejestrów konieczne częste zmiany ich zawartości Implementacja hardware breakpoints w gdb
31 Metody programowo-sprzętowe - single-stepping Jedna z najwcześniejszych metod stosowania w debuggingu wolna, lecz pozwala na określenie ścieżki przebiegu sterowania zazwyczaj bit w rejestrze kontrolnym CPU TF w RFLAGS/EFLAGS dla x86 Typowy schemat: Ustaw bit TF Wznów wykonanie procesu Wyjątek jest generowany przez CPU przy następnej instrukcji maszynowej Bit TF jest czyszczony przez CPU Proces nadzorcy obsługuje wyjątek OS może przekazać sterowanie do innego procesu Ustaw bit TF...
32 Metody programowo-sprzętowe - single-stepping Przykładowe makro dla gdb define tfloop while(1) stepi end end start tfloop [demo]
33 Metody programowo-sprzętowe - BTF Branch Trap Flag Wspierane zarówno przez CPU Intel jak i AMD Dla Intel-a - od procesorów Intel Core Jak single-stepping, lecz dla instrukcji skoków (jmp, call, ret, itp.) W Linuksie, ptrace(ptrace_singleblock) Własne patche dla gdb Context-switche sprawiają, że jest to jedna z najwolniejszych dostępnych metod śledzenia ścieżki przebiegu procesu Użyteczna, lecz bardziej dla gdb-style debuggingu
34 Metody programowo-sprzętowe - BTF $./step./prog 2>&1 addr2line -fe./prog grep -E "^main ^PRINT_" wc -l 115 main PRINT_B PRINT_B PRINT_B PRINT_B PRINT_B PRINT_B PRINT_B PRINT_B PRINT_B PRINT_B main $./block./prog 2>&1 addr2line -fe./prog grep -E "^main ^PRINT_" wc -l 29 main PRINT_A PRINT_B PRINT_B PRINT_A PRINT_A main
35 Metody programowo-sprzętowe - LBR Intel Last Branch Record Od 4 do 16 specjalnych rejestrów MSR Rejestracja ostatnich punktów skoku (jmp, call, ret itp.) Przejściowe wsparcie (patche) dla interfejsu ptrace W linuksie wsparcie poprzez perf Szybsze od DR, Single-, Block- steppingu, konieczne context-switche Podstawa dla implementacji innych mechanizmów (np. BTS)
36 Metody programowo-sprzętowe - LBR $ perf record -e instructions:u --call-graph lbr --./prog prog : instructions:u: f870 sbrk+0xffffffffff (./prog) 12b2 libc_setup_tls+0xffffffffff8000a2 (./prog) b2b generic_start_main+0xffffffffff80014b (./prog) d5a libc_start_main+0xffffffffff8000fa (./prog) 834 _start+0xffffffffff (./prog)
37 Metody programowo-sprzętowe - BTS Branch Trace Store Nowsze procesory Intel x86 Rozwinięcie mechanizmu LBR Wykorzystanie mechanizmu DS - Debug Store Bufory cykliczne dla LBR Brak context switchy Wykorzystuje MMU (wolne) Linux Pierwotnie w ramach regularnego mechanizmu perf Od wersji kernela mechanizm AUXTRACE
38 Metody programowo-sprzętowe - BTS < raw event: size 24 bytes. 0000: e 1a b8 ff ff ff ff...) : 34 7c c x2e90 [0x18]: PERF_RECORD_SAMPLE(IP, 0x1): 0xffffffffb81a8e29 period: 2 addr: 0... thread: prog: dso: [kernel.kallsyms] prog branch-instructions: ffffffffb81a8e29 perf_event_task_tick+0x259 ([kernel.kallsyms]) 0x2ea8 [0x18]: event: 9 >= be0: eb f f f0eb -> 40f101 miss bf8: 30 f f f130 -> 40f180 pred c10: 87 f f f187 -> 40f110 miss c28: 50 f f f150 -> 40f130 miss
39 Metody programowo-sprzętowe - BTS [demo]
40 Metody programowo-sprzętowe - Intel PT Intel Processor Trace - od procesorów Intel x86 serii Broadwell >90 stron w Manualu x86 (Vol. 3C) Per-Core Omija MMU Mikrokod kompaktowy zapis kompresja adresów wiele rodzajów pakietów: skoki, timing, adresy, wyjątki, stronnicowanie Śledzenie różnych poziomów uprzywilejowania SMM Ring 0-3 VM
41 Metody programowo-sprzętowe - Intel PT
42 Metody programowo-sprzętowe - Intel PT Tylko tyle informacji, ile potrzebne do odtworzenia ścieżki sterowania Pakiet TNT (Taken-Not-Taken Branch) Potrzebny program binarny, aby odtworzyć ścieżkę Fuzzing nie wymaga programu binarnego, kosztem precyzji Implementacja w honggfuzz (--linux_perf_ipt_block) Zapis szybki Dekodowanie wolne Implementacje Dekodowanie - biblioteka libipt.so (od Intel-a) Linux: Kernel >= wymaga AUXTRACE Linux: Niestabilna implementacja, nawet w 4.8 Linux: Simple-PT od Andi Kleen Windows:
43 Metody programowo-sprzętowe - Intel PT.... Intel Processor Trace data: size 5824 bytes : // PSB : PAD : c 6b f TSC 0x38f26b6c e: PAD : cc c TMA CTC 0xc1cc FC 0x e: PAD : a 00 CBR 0x2a : PSBEND : 59 3a MTC 0x3a : 59 3b MTC 0x3b d5: MODE.Exec d7: 71 c0 fc 38 0b 8d 7f 00 TIP.PGE 0x7f8d0b38fcc df: 00 PAD e0: MTC 0x e7: 7d c0 fc 38 0b 8d 7f 00 FUP 0x7f8d0b38fcc ef: 00 PAD f0: 01 TIP.PGD no ip
44 Metody programowo-sprzętowe - ARM CoreSight CoreSight provides components for the implementation solutions for debug access, instruction tracing, cross-triggering and time-stamping On-chip PMU dla ARM Natywne narzędzia dostępne od ARM i od 3rd party vendors Linux - istnieje podstawowe wsparcie w drivers/hwtracing/coresight Wydaje się nie udostępniać funkcjonalności śledzenia procesu by default Wymagany patche od OpenCSD by Linaro - Patche te wspierają platformy ARMv7 Vertex oraz ARMv8 Juno, wydają się nie działać np. z Raspberry Pi3 Potencjalnie dobra technologia dla platformy Android
45 Metody programowo-sprzętowe - ARM CoreSight
46 Metody sprzętowe Wymagany dostęp DMA Karty PCI (PCMCIA, CardBus) Interfejs FireWire - firescope - Thunderbolt
47 Wydajność
48 Q&A
Spis treści. Wstęp 15
Praktyczna inżynieria wsteczna : metody, techniki i narzędzia / redakcja naukowa Mateusz Jurczyk i Gynvael Coldwind ; [autorzy]: Tomasz Bukowski [i 11 pozostałych]. Warszawa, 2016 Spis treści Wstęp 15
Programowanie Systemów Wbudowanych
Programowanie Systemów Wbudowanych Debugowanie z GDB Iwona Kochańska Gdansk University of Technology GNU debugger Identyfikacja i naprawianie błędów to część procesu wytwarzania oprogramowania Techniki
QEMU działa na procesorach procesorach: emuluje procesory: dostępne dla s.o. hosta:
QEMU Stosunkowo szybki emulator procesora, korzystający z tzw. dynamicznej translacji i kilku innych ciekawych technik programistycznych i optymalizacyjnych. działa na procesorach procesorach: Intel x86,
Q E M U. http://www.qemu.com/
http://www.qemu.com/ Emulator procesora Autor: Fabrice Bellard Obsługiwane platformy: Windows, Solaris, Linux, FreeBSD, Mac OS X Aktualna wersja: 0.9.0 Większość programu oparta na licencji LGPL, a sama
Struktury systemów operacyjnych
Struktury systemów operacyjnych Jan Tuziemski Część slajdów to zmodyfiowane slajdy ze strony os-booi.com copyright Silberschatz, Galvin and Gagne, 2013 Cele wykładu 1. Opis usług dostarczanych przez OS
Linux KVM - wparcie dla wirtualizacji w kontekście serwerów ARM
Linux - wparcie dla wirtualizacji w kontekście serwerów ARM Plan Terminologia i koncepcja wirtualizacji QEMU Czym jest? Architektura ARMv8 i wsparcie dla wirtualizacji poziomy uprzywilejowania dodatkowy
Środowisko Keil. Spis treści. Krzysztof Świentek. Systemy wbudowane. 1 Trochę teorii. 2 Keil
Środowisko Krzysztof Świentek Systemy wbudowane Spis treści 1 2 Źródła 1 http://infocenter.arm.com 2 http://www.keil.com/arm/mdk.asp 3 http://pl.wikipedia.org Spis treści 1 2 Co to jest toolchain? Zbiór
Wykład 3: Implementacja programów wbudowanych
Systemy wbudowane Wykład 3: Implementacja programów wbudowanych Problemy implementacji oprogramowania wbudowanego Szeregowanie zadań System operacyjny Obsługa przerwań 10/16/2010 S.Deniziak:Systemy wbudowane
ICD Wprowadzenie. Wprowadzenie. Czym jest In-Circuit Debugger? 2. O poradniku 3. Gdzie szukać dodatkowych informacji? 4
ICD 2 Czym jest In-Circuit Debugger? 2 O poradniku 3 Gdzie szukać dodatkowych informacji? 4 ICD 1 ICD 25.08.2009 Czym jest In-Circuit Debugger? Większość procesorów dostarcza systemów debugowania (ang.
Prezentacja systemu RTLinux
Prezentacja systemu RTLinux Podstawowe założenia RTLinux jest system o twardych ograniczeniach czasowych (hard real-time). Inspiracją dla twórców RTLinux a była architektura systemu MERT. W zamierzeniach
Analizator wydajności AMD CodeAnalyst
Analizator wydajności AMD CodeAnalyst Dostępny bezpłatnie dla Windows i Linux (różne funkcjonalności w obu systemach) Pozwala na 4 tryby pracy - profilowania: Bazujące na upływie czasu próbkowanie aplikacji
Optymalizacja programów Open Source. Profilery wysokiego poziomu część 1. Krzysztof Lichota
Optymalizacja programów Open Source Profilery wysokiego poziomu część 1 Krzysztof Lichota lichota@mimuw.edu.pl strace strace Wypisuje wywołania funkcji systemowych wraz z najważniejszymi parametrami Zasada
Systemy Operacyjne - Operacje na plikach
Systemy Operacyjne - Operacje na plikach Andrzej Stroiński Institute of Computer Science Poznań University of Technology 1 październik, 2012 Wprowadzenie do ANSI-C Pomoc systemowa man gcc man 2 write man
Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych.
Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych. 1. Przygotowanie środowiska programistycznego. Zajęcia będą
X P.I.W.O. Portowanie Tizena na nowe architektury na przykładzie ARMv6. Maciej Wereski Samsung R&D Institute Poland. 17 Maj 2014 - Poznań, Polska
X PIWO 17 Maj 2014 - Poznań, Polska Portowanie Tizena na nowe architektury na przykładzie ARMv6 Maciej Wereski Samsung R&D Institute Poland Plan prezentacji Środowisko budowania Tizena Infrastruktura GBS
Komputery klasy PC. Dariusz Chaberski
Komputery klasy PC Dariusz Chaberski Start systemu adres 0xFFFF:0x0000 POST (ang. Power On Self Test) sprawdzenie zmiennej BIOSu 0x0040:0x0072-0x1234 - zimny start (RESET, włączenie zasilania), gorący
Szkolenia specjalistyczne
Szkolenia specjalistyczne AGENDA Programowanie mikrokontrolerów w języku C na przykładzie STM32F103ZE z rdzeniem Cortex-M3 GRYFTEC Embedded Systems ul. Niedziałkowskiego 24 71-410 Szczecin info@gryftec.com
Programowanie w asemblerze Uruchamianie programów
Programowanie w asemblerze Uruchamianie programów 17 stycznia 2017 Uruchamianie programów Przy uruchamianiu i badaniu zachowania programów systemowych używa się wielu narzędzi. Prostsze z ich, takie jak
Monitor maszyn wirtualnych
Monitor maszyn wirtualnych Jest to oprogramowanie nadzorujące działanie systemów gości Może być to oddzielny software lub zintegrowany z systemem operacyjnym System gospodarza Oznaczany zazwyczaj jako
Architektura systemu komputerowego. Działanie systemu komputerowego. Przerwania. Obsługa przerwań (Interrupt Handling)
Struktury systemów komputerowych Architektura systemu komputerowego Działanie systemu komputerowego Struktura we/wy Struktura pamięci Hierarchia pamięci Ochrona sprzętowa Architektura 2.1 2.2 Działanie
Programowanie w elektronice: Podstawy C
Programowanie w elektronice: Podstawy C Projekt Matematyka dla Ciekawych Świata, Robert Ryszard Paciorek 2019-05-05 C / C++ są najpopularniejszymi językami kompilowanymi do kodu maszynowego
Politechnika Śląska w Gliwicach Instytut Automatyki 2005/2006
Bezpośrednia akwizycja zmiennych ze sterownika PLC do bazy danych Politechnika Śląska w Gliwicach Instytut Automatyki 2005/2006 Promotor: Autor: dr inż. Tomasz Szczygieł Aleksander Piecha Gliwice 27 listopad
Sprzęt komputera - zespół układów wykonujących programy wprowadzone do pamięci komputera (ang. hardware) Oprogramowanie komputera - zespół programów
Sprzęt komputera - zespół układów wykonujących programy wprowadzone do pamięci komputera (ang. hardware) Oprogramowanie komputera - zespół programów przeznaczonych do wykonania w komputerze (ang. software).
Łącza nienazwane(potoki) Łącza nienazwane mogą być używane tylko pomiędzy procesami ze sobą powiązanymi.
Przykład: $ ls more Łącza nienazwane(potoki) Łącza nienazwane mogą być używane tylko pomiędzy procesami ze sobą powiązanymi. Tworzenie łącza #include int pipe(int filedes[2]); Przykład: int
Tworzenie oprogramowania
Tworzenie oprogramowania Język C Budowa programu napisanego w języku C podział na pliki z definicjami funkcji, korzystanie z bibliotek systemowych i własnych automatyzacja kompilacji za pomocą make dzielenie
Informatyka. Wy-02 Tablice, wskaźniki, warunki i pętle. mgr inż. Krzysztof Kołodziejczyk
Informatyka Wy-02 Tablice, wskaźniki, warunki i pętle mgr inż. Krzysztof Kołodziejczyk krzysztof.m.kolodziejczyk@pwr.edu.pl 06.03.2019 Strona kursu http://w12.pwr.wroc.pl/inf/ Konspekt 1 if-else 2 do-while
PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO
PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO LABORATORIUM Temat: QNX Neutrino Interrupts Mariusz Rudnicki 2016 Wstęp W QNX Neutrino wszystkie przerwania sprzętowe przechwytywane są przez jądro systemu. Obsługę
Podstawy programowania. Wykład Pętle. Tablice. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład Pętle. Tablice. Krzysztof Banaś Podstawy programowania 1 Pętle Pętla jest konstrukcją sterującą stosowaną w celu wielokrotnego wykonania tego samego zestawu instrukcji jednokrotne
Programowanie w asemblerze Aspekty bezpieczeństwa
Programowanie w asemblerze Aspekty bezpieczeństwa 20 grudnia 2016 Ochrona stron pamięci Najstarsze(?) ataki: modyfikacja kodu programu. Lekarstwo: W XOR X (Write XOR execute) Oznacza to, że w atrybutach
1. Tworzenie nowego projektu.
Załącznik do Instrukcji 1. Tworzenie nowego projektu. Wybieramy opcję z menu głównego New->QNX C Project. Wprowadzamy nazwę przechodzimy do następnego kroku NEXT. Wybieramy platformę docelową oraz warianty
Piotr Dwieczkowski. Code coverage. Mierzenie pokrycia kodu, teoria oraz praktyka w C/C++
Piotr Dwieczkowski Code coverage Mierzenie pokrycia kodu, teoria oraz praktyka w C/C++ Plan Co to jest pokrycie kodu? Możliwe sposoby wykorzystania Rodzaje statystyk Wady i zalety mierzenia porycia kodu
Mikrokontrolery w mechatronice. Wykład 4
Mikrokontrolery w mechatronice Wykład 4 Program wykładu nr 4: Wybrane architektury mikrokontrolerów - konstrukcje zaawansowane Programowanie mikrokontrolera w języku wysokiego poziomu - wprowadzenie kompatybilność
Laboratorium Programowania Kart Elektronicznych
Laboratorium Programowania Kart Elektronicznych Marek Gosławski Przygotowanie do zajęć dowolna karta płatnicza Potrzebne wiadomości język angielski w stopniu pozwalającym na czytanie dokumentacji technicznej
Architektura komputerów
Architektura komputerów Wykład 5 Jan Kazimirski 1 Podstawowe elementy komputera. Procesor (CPU) c.d. 2 Architektura CPU Jednostka arytmetyczno-logiczna (ALU) Rejestry Układ sterujący przebiegiem programu
Prezentacja emulatora QEMU Zajęcia SO
Prezentacja emulatora QEMU Zajęcia SO 08.11.2006 Czym jest QEMU...? QEMU to emulator procesora: osiągający bardzo dobrą szybkość emulacji udostępniony jako otwarte oprogramowanie Do czego może się przydać..?
Struktura i działanie jednostki centralnej
Struktura i działanie jednostki centralnej ALU Jednostka sterująca Rejestry Zadania procesora: Pobieranie rozkazów; Interpretowanie rozkazów; Pobieranie danych Przetwarzanie danych Zapisywanie danych magistrala
Laboratorium Informatyka (I) AiR Ćwiczenia z debugowania
Laboratorium Informatyka (I) AiR Ćwiczenia z debugowania Krzysztof Kluza, Janusz Miller 1 Debugowanie Debugowanie, czy też po polsku odpluskiwanie, to proces polegający na kontrolowanym wykonaniu programu
WIRTUALIZACJA teoria i praktyka. Oskar Skibski, Piotr Sikora, Mateusz Kruszyński
WIRTUALIZACJA teoria i praktyka Oskar Skibski, Piotr Sikora, Mateusz Kruszyński Plan prezentacji Wstęp co to jest? po co to jest? Rodzaje wirtualizacji emulacja pełna emulacja API wirtualizacja Problemy
4 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK MP.01 Rok akad. 2011/2012 2 / 24
Wymagania proceduralnych języków wysokiego poziomu ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH modele programowe procesorów ASK MP.01 c Dr inż. Ignacy Pardyka UNIWERSYTET JANA KOCHANOWSKIEGO w Kielcach Rok akad.
Działanie systemu operacyjnego
Budowa systemu komputerowego Działanie systemu operacyjnego Jednostka centralna dysku Szyna systemowa (magistrala danych) drukarki pamięci operacyjnej I NIC sieci Pamięć operacyjna Przerwania Przerwania
Działanie systemu operacyjnego
Działanie systemu operacyjnego Budowa systemu komputerowego I NIC Jednostka centralna Sterownik dysku Sterownik drukarki Sterownik sieci Szyna systemowa (magistrala danych) Sterownik pamięci operacyjnej
Tworzenie oprogramowania
Tworzenie oprogramowania dr inż. Krzysztof Konopko e-mail: k.konopko@pb.edu.pl 1 Tworzenie oprogramowania dla systemów wbudowanych Program wykładu: Tworzenie aplikacji na systemie wbudowanym. Konfiguracja
Zewnętrzne układy peryferyjne cz. 1 Wykład 12
Zewnętrzne układy peryferyjne cz. 1 Wykład 12 Wyświetlacz LCD zgodny z HD44780 Wyświetlacz LCD zgodny z HD44780 2 HD44780 Standardowy sterownik alfanumerycznych wyświetlaczy LCD opracowany przez firmę
2. Architektura mikrokontrolerów PIC16F8x... 13
Spis treści 3 Spis treœci 1. Informacje wstępne... 9 2. Architektura mikrokontrolerów PIC16F8x... 13 2.1. Budowa wewnętrzna mikrokontrolerów PIC16F8x... 14 2.2. Napięcie zasilania... 17 2.3. Generator
U M L. System operacyjny Linux zagnieżdżony w zewnętrznym systemie operacyjnym (Linux)
http://user-mode-linux.sourceforge.net/ System operacyjny Linux zagnieżdżony w zewnętrznym systemie operacyjnym (Linux) Autor: Jeff Dike Koncepcja powstała w 1999 r. Początkowo jako patch do jądra 2.0
Wykład 1
Wstęp do programowania 1 Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 1 Wprowadzenie Cel wykładów z programowania proceduralnego Wykład jest poświęcony językowi C i jego
Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera
Dariusz Wawrzyniak Plan wykładu Definicja, miejsce, rola i zadania systemu operacyjnego Klasyfikacja systemów operacyjnych Zasada działania systemu operacyjnego (2) Definicja systemu operacyjnego (1) Miejsce,
POLITECHNIKA WARSZAWSKA Wydział Elektroniki i Technik Informacyjnych. Instytut Telekomunikacji Zakład Podstaw Telekomunikacji
POLITECHNIKA WARSZAWSKA Wydział Elektroniki i Technik Informacyjnych Instytut Telekomunikacji Zakład Podstaw Telekomunikacji Kamil Krawczyk Metody optymalizacji soft-procesorów NIOS Opiekun naukowy: dr
Programowanie w asemblerze Środowiska 64-bitowe
Programowanie w asemblerze Środowiska 64-bitowe 24 listopada 2015 Nieco historii najnowszej Intel wraz z HP rozpoczynaja pracę nad procesorem 64-bitowym z wykorzystaniem technologii VLIW. Powstaje procesor
Działanie systemu operacyjnego
Działanie systemu operacyjnego Budowa systemu komputerowego Jednostka centralna Sterownik dysku Sterownik drukarki Sterownik sieci Szyna systemowa (magistrala danych) Sterownik pamięci operacyjnej Pamięć
Architektura komputerów
Architektura komputerów Wykład 3 Jan Kazimirski 1 Podstawowe elementy komputera. Procesor (CPU) 2 Plan wykładu Podstawowe komponenty komputera Procesor CPU Cykl rozkazowy Typy instrukcji Stos Tryby adresowania
Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera
Dariusz Wawrzyniak Plan wykładu Definicja, miejsce, rola i zadania systemu operacyjnego Klasyfikacja systemów operacyjnych Zasada działania systemu operacyjnego (2) Miejsce, rola i zadania systemu operacyjnego
Programowanie mikrokontrolerów AVR
Programowanie mikrokontrolerów AVR Czym jest mikrokontroler? Mikrokontroler jest małym komputerem podłączanym do układów elektronicznych. Pamięć RAM/ROM CPU wykonuje program Układy I/O Komunikacje ze światem
Wykład 15. Literatura. Kompilatory. Elementarne różnice. Preprocesor. Słowa kluczowe
Wykład 15 Wprowadzenie do języka na bazie a Literatura Podobieństwa i różnice Literatura B.W.Kernighan, D.M.Ritchie Język ANSI Kompilatory Elementarne różnice Turbo Delphi FP Kylix GNU (gcc) GNU ++ (g++)
CPU. Architektura FLAGS Bit: dr Paweł Kowalczyk; DPTNS, KFCS UŁ. SI 16 bit. 16 bit. 16 bit.
Architektura 8086 8086 posiada 4 rejestry ogólnego użytku AX, BX, CX, DX, 2 rejestry indeksowe SI, DI, 3 rejestry wskaźnikowe SP, BP, IP, 4 rejestry segmentowe CS, DS, SS i ES oraz rejestr flag FLAG AH
Systemy operacyjne. Wprowadzenie. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak
Wprowadzenie Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak Plan wykładu Definicja, miejsce, rola i zadania systemu operacyjnego Klasyfikacja systemów operacyjnych Zasada działania systemu operacyjnego
Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska
Instytut Informatyki Politechnika Poznańska Proces transmisji może w prowadzać błędy do przesyłanych wiadomości błędy pojedyncze lub grupowe Detekcja: Wymaga uznania, że niektóre wiadomości są nieważne
1: ////////// 2: // test.c. 3: ssize_t ret = read(fd, buf, nbytes);
Poniżej wklejone są fragmenty kodu jądra, serwerów oraz sterownika. Kod ten przedstawia zarys mechanizmu używanego przy wywołaniach usług systemowych przez procesy użytkownika. W miejscach, w których występuje
Wstęp do Reverse engineeringu
Wstęp do Reverse engineeringu O mnie Agnieszka Bielec Eternal pracuję w CERT Polska jako Malware Analyst CTFy z p4 prowadze bloga eternal.red lubie ścianki wpinaczkowe i rower twitter Reverse Engineering
Informatyka I. dr inż. Andrzej Czerepicki.
Informatyka I dr inż. Andrzej Czerepicki a.czerepicki@wt.pw.edu.pl http://www2.wt.pw.edu.pl/~a.czerepicki Politechnika Warszawska Wydział Transportu 2018 Sprawy organizacyjne Harmonogram zajęć Regulamin
Linux vs rootkits. - Adam 'pi3' Zabrocki
Linux vs rootkits - Adam 'pi3' Zabrocki /usr/bin/whoami ADAM ZABROCKI /usr/bin/whoami ADAM ZABROCKI /usr/bin/whoami ADAM ZABROCKI http://pi3.com.pl pi3@itsec.pl (lub oficjalnie adam.zabrocki@wcss.pl) Plan
Inżynieria Wytwarzania Systemów Wbudowanych
GUT Intel 2015/16 1/30 Inżynieria Wytwarzania Systemów Wbudowanych Wykład 3 Iwona Kochańska Katedra Systemów Elektroniki Morskiej WETI PG October 18, 2018 Dobre praktyki GUT Intel 2015/16 2/30 Przenośność
Zadania: 1. Funkcja przeliczająca F na C: float FtoC(float f){ return (f 32.0) * 5.0 / 9.0; }
Zadania: 1. Funkcja przeliczająca F na C: float FtoC(float f){ return (f 32.0) * 5.0 / 9.0; 2. Utworzyć dodatkową funkcję, która przelicza F na K, na bazie poprzedniej F to C (z poprzednich zajęć), wg
2. Code Composer Studio v4 zintegrowane środowisko projektowe... 41
3 Wstęp...11 1. Procesory serii TMS320F2802x/3x/6x Piccolo... 15 1.1. Organizacja układów procesorowych serii F2802x Piccolo...23 1.2. Organizacja układów procesorowych serii F2803x Piccolo...29 1.3. Organizacja
Programowanie niskopoziomowe
Programowanie niskopoziomowe ASSEMBLER Teodora Dimitrova-Grekow http://aragorn.pb.bialystok.pl/~teodora/ Program ogólny Rok akademicki 2011/12 Systemy liczbowe, budowa komputera, procesory X86, organizacja
Programowanie Niskopoziomowe
Programowanie Niskopoziomowe Wykład 3: Architektura procesorów x86 Dr inż. Marek Mika Państwowa Wyższa Szkoła Zawodowa im. Jana Amosa Komeńskiego W Lesznie Plan Pojęcia ogólne Budowa mikrokomputera Cykl
Moduł wspierający diagnostykę i sprzętowe debugowanie
Moduł wspierający diagnostykę i sprzętowe debugowanie 1 Diagnostyka mikroprocesorowego systemu czasu rzeczywistego Programowe emulatory procesorów, Sprzętowe emulatory procesorów, Debugery programowe,
Linux -- u mnie działa!
Linux -- u mnie działa! Wirtualizacja - czyli jak z jednego komputera zrobić 100 Stanisław Kulczycki grung@kce.one.pl Agenda Co to jest wirtualizacja? Zastosowanie Metody wirtualizacji Popularne maszyny
Co nie powinno być umieszczane w plikach nagłówkowych:
Zawartość plików nagłówkowych (*.h) : #include #define ESC 27 dyrektywy dołączenia definicje stałych #define MAX(x,y) ((x)>(y)?(x):(y)) definicje makr int menu(char* tab[], int ilosc); struct
Obsługa plików. Systemy Operacyjne 2 laboratorium. Mateusz Hołenko. 25 września 2011
Obsługa plików Systemy Operacyjne 2 laboratorium Mateusz Hołenko 25 września 2011 Plan zajęć 1 Pliki w systemie Linux i-węzły deskryptory plików 2 Operacje na plikach otwieranie i zamykanie zapis i odczyt
Katedra Elektrotechniki Teoretycznej i Informatyki. wykład 12 - sem.iii. M. Czyżak
Katedra Elektrotechniki Teoretycznej i Informatyki wykład 12 - sem.iii M. Czyżak Język C - preprocesor Preprocesor C i C++ (cpp) jest programem, który przetwarza tekst programu przed przekazaniem go kompilatorowi.
Grzegorz Cygan. Wstęp do programowania mikrosterowników w języku C
Grzegorz Cygan Wstęp do programowania mikrosterowników w języku C Mikrosterownik Inne nazwy: Microcontroler (z języka angielskiego) Ta nazwa jest powszechnie używana w Polsce. Mikrokomputer jednoukładowy
Programowanie procesorów graficznych NVIDIA (rdzenie CUDA) Wykład nr 1
Programowanie procesorów graficznych NVIDIA (rdzenie CUDA) Wykład nr 1 Wprowadzenie Procesory graficzne GPU (Graphics Processing Units) stosowane są w kartach graficznych do przetwarzania grafiki komputerowej
002 Opcode Strony projektu:
ReverseCraft assem bler by gynvael.coldwind//vx Opcode Strony projektu: http://re.coldwind.pl/ http://www.uw-team.org/ Zasoby! czyli co możemy użyć... Instrukcje procesora Pamięć Wirtualna Rejestry CPU
Cel wykładu. Przedstawienie działania exploitów u podstaw na przykładzie stack overflow.
Exploity w praktyce Plan prelekcji Powtórka assembly x86 32. Pamięć uruchamianych programów. Prosty stack overflow exploit. Tworzenie shellcode i jego uruchomienie. Wstrzykiwanie shellcode wykorzystując
Spis treści 1. Wstęp 2. Ćwiczenia laboratoryjne LPM
Spis treści 1. Wstęp... 9 2. Ćwiczenia laboratoryjne... 12 2.1. Środowisko projektowania Quartus II dla układów FPGA Altera... 12 2.1.1. Cel ćwiczenia... 12 2.1.2. Wprowadzenie... 12 2.1.3. Przebieg ćwiczenia...
Kurs STARTER S5. Spis treści. Dzień 1. III Budowa wewnętrzna, działanie i obsługa sterownika (wersja 0504)
I Dlaczego sterownik? (wersja 0504) Spis treści Dzień 1 I-3 Wady i zalety poszczególnych rodzajów układów sterowania I-4 Charakterystyka rodziny S5 I-5 II Podłączenie sterownika do obiektu (wersja 0504)
Jerzy Nawrocki, Wprowadzenie do informatyki
Magistrala systemowa Jerzy Nawrocki, Jerzy Nawrocki Wydział Informatyki Politechnika Poznańska jerzy.nawrocki@put.poznan.pl Cel wykładu Asembler i koncepcja von Neumanna Wprowadzenie do programowania na
Systemy Operacyjne Wirtualizacja
Katedra Informatyki, Politechnika Świętokrzyska w Kielcach Kielce, 23 stycznia 2015 Plan 1 2 Symulacja Emulacja 3 4 5 6 jest techniką zarządzania zasobami, która umożliwia ich współdzielenie przez procesy
Systemy operacyjne II
Systemy operacyjne II Wojciech Kwedlo Wydział Informatyki PB, p. 205 wkwedlo@ii.pb.bialystok.pl aragorn.pb.bialystok.pl/~wkwedlo Pracownia specjalistyczna: Wojciech Kwedlo Krzysztof Bandurski Wojciech
Organizacja typowego mikroprocesora
Organizacja typowego mikroprocesora 1 Architektura procesora 8086 2 Architektura współczesnego procesora 3 Schemat blokowy procesora AVR Mega o architekturze harwardzkiej Wszystkie mikroprocesory zawierają
Mieszko Cichowicz. Spis Treści
Mieszko Cichowicz Spis Treści 1.Wstęp 2.Najprostsze metody odpluskwiania a) printf, fprintf b) assert 3.Jak działa odpluskwiacz? 4.Odpluskwianie w gdb. a)ogólnie b)pliki core 5.Odpluskwianie w Windows
Wykład. Materiały bazują częściowo na slajdach Marata Dukhana
Wykład Materiały bazują częściowo na slajdach Marata Dukhana Języki programowania Kompilowane np. C, C++, Pascal Interpretowane np. JavaScript, PHP, Python, VBA Pośrednie np. Java, C# Znane kompilatory
Wykład VII. Programowanie. dr inż. Janusz Słupik. Gliwice, 2014. Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik
Wykład VII Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2014 c Copyright 2014 Janusz Słupik Kompilacja Kompilator C program do tłumaczenia kodu źródłowego na język maszynowy. Preprocesor
Architektura typu multi cycle
PC ux ress Write data emdata [3-26] [25-2] [2-6] [5-] register [5-] Cond IorD em emwrite emtoreg IRWrite [25-] [5-] Outputs Control Op [5-] ux ux PCSource Op SrcB Src RegWrite RegDst register register
Wstęp do Programowania, laboratorium 02
Wstęp do Programowania, laboratorium 02 Zadanie 1. Napisać program pobierający dwie liczby całkowite i wypisujący na ekran największą z nich. Zadanie 2. Napisać program pobierający trzy liczby całkowite
Linux vs rootkits. - Adam 'pi3' Zabrocki
Linux vs rootkits - Adam 'pi3' Zabrocki /usr/bin/whoami ADAM ZABROCKI /usr/bin/whoami ADAM ZABROCKI /usr/bin/whoami ADAM ZABROCKI /usr/bin/whoami ADAM ZABROCKI /usr/bin/whoami ADAM ZABROCKI /usr/bin/whoami
PLC2: Programowanie sterowników logicznych SIEMENS SIMATIC S7-300/400 - kurs zaawansowany
PLC2: Programowanie sterowników logicznych SIEMENS SIMATIC S7-300/400 - kurs zaawansowany DZIEŃ 1 Nowy projekt i konfiguracja sprzętowa: Zakładka General okna parametrów zasilacza Zakładka General okna
Laboratorium 1. I. Zainstaluj program Eclipse (wersja C/C++ w odpowiednim systemie operacyjnym
Laboratorium 1 I. Zainstaluj program Eclipse (wersja C/C++ http://www.eclipse.org/downloads/) w odpowiednim systemie operacyjnym II. Zainstaluj narzędzia Windows CDT (w Eclipse jako software site dodajemy
Linux Kernel III. Character devices
Linux Kernel III Character devices Urządzenia systemu Linux (I) Character device Block device Network device Do urządzenia piszemy jak do pliku, Dozwolone działania: open, close, read, write, Np. /dev/tty1.
Architektura systemu komputerowego
Architektura systemu komputerowego Klawiatura 1 2 Drukarka Mysz Monitor CPU Sterownik dysku Sterownik USB Sterownik PS/2 lub USB Sterownik portu szeregowego Sterownik wideo Pamięć operacyjna Działanie
Projekt TrustedBSD jako klucz do bezpieczeństwa systemu FreeBSD
Projekt TrustedBSD jako klucz do bezpieczeństwa systemu FreeBSD Wojciech A. Koszek IX LO. im. C.K. Norwida w Częstochowie dunstan@freebsd.czest.pl SKI2005 09.06.2005 Główne funkcje jądra: Nadzór nad pracą
Podstawy programowania. Wykład 3 Konstrukcje sterujące. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład 3 Konstrukcje sterujące Krzysztof Banaś Podstawy programowania 1 Kod źródłowy i wykonanie programu Kod źródłowy w języku programowania zawiera przepis wykonania programu
Pośredniczy we współpracy pomiędzy procesorem a urządzeniem we/wy. W szczególności do jego zadań należy:
Współpraca mikroprocesora z urządzeniami zewnętrznymi Urządzenia wejścia-wyjścia, urządzenia których zadaniem jest komunikacja komputera z otoczeniem (zwykle bezpośrednio z użytkownikiem). Do najczęściej
Shellcody a architektura MIPS na systemach IRIX. Adam Zabrocki.
Adam Zabrocki http://pi3.shellcode.pl pi3@itsec.pl Architektura MIPS: MIPS Microprocessor without Interlocked Piped Stages: RISC Rationalized Instruction Set Computers (Reduced Instruction Set Computers)
Tworzenie projektu asemblerowego dla środowiska Visual Studio 2008.
Dwiczenie 5. TEMAT: CEL: Tworzenie projektu asemblerowego dla środowiska Visual Studio 2008. Celem dwiczenia jest poznanie możliwości VS 2008 w zakresie tworzenia i uruchamiania aplikacji z kodem mieszanym
Opracował: Jan Front
Opracował: Jan Front Sterownik PLC PLC (Programowalny Sterownik Logiczny) (ang. Programmable Logic Controller) mikroprocesorowe urządzenie sterujące układami automatyki. PLC wykonuje w sposób cykliczny
Działanie systemu operacyjnego
Budowa systemu komputerowego Działanie systemu operacyjnego Jednostka centralna dysku Szyna systemowa (magistrala danych) drukarki pamięci operacyjnej sieci Pamięć operacyjna Przerwania Przerwania Przerwanie
Tworzenie sterowników dla FreeBSD. Michał Hajduk mih@semihalf.com
Tworzenie sterowników dla FreeBSD Michał Hajduk mih@semihalf.com AGH, Kraków 23.04.2009 Szkic prezentacji Wstęp, defnicje Architektura urządzeń RTC, I2C, DMA Wprowadzenie do tworzenia sterowników Newbus,