Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Z WIKI
- Wywołanie systemowe (ang. system call) stanowi interfejs między wykonywanym programem a (posiadającym zwykle wyższe uprawnienia) jądrem systemu operacyjnego. Funkcje systemowe wywoływane są przez specjalny, wspierany przez dany procesor mechanizm, na przykład z użyciem wyznaczonego przerwania lub instrukcji skoku dalekiego.
- Mechanizm ten pozwala na realizację zależnych od platformy sprzętowej zadań, do których proces użytkownika może nie mieć bezpośredniego dostępu. W nowoczesnych systemach operacyjnych realizacja takiego wywołania poprzedzona jest przez weryfikację uprawnień programu. Przykładami wywołań systemowych mogą być:
- dostęp do systemu plików,
- komunikacja międzyprocesowa,
- uruchamianie innych programów,
- sterowanie urządzeniami systemowymi,
- obsługiwanie komunikacji sieciowej.
- Lista wywołań systemowych ściśle zależy od typu oraz wersji systemu operacyjnego i dlatego w większości zastosowań bezpośrednie korzystanie z nich nie jest wskazane. Zamiast tego w wywołaniach pośredniczą standardowe biblioteki programistyczne.
- //Z DOCA
- System calls są to żądania wykonania usługi od kernela (operacje specyficzne dla hardware/systemu, lub operacje uprzywilejowane). Są inicjowane w user modzie, dla operacji takich jak, n.p: otwieranie plików, uruchamianie nowych programów, itp.
- Jest to sposób na dostanie się przez process do pamięci i/lub funkcji kernela.
- Jak to się dzieje? Process wypełnia rejestry odpowiednimi wartościami (argumenty) i wywołuje odpowiednią instrukcję która przerzuca nas w świat kernela.Ta instrukcja to na architekturze x86 przerwanie int o wartości 0x80.
- Większość programistów nie używa syscalli bezpośrednio tylko używają do tego biblioteki (np. Glibc na Linuxie) która dokonuje “brudnej pracy” za nich - formatowanie argumentów tak jak wymaga to kernel i wywołanie przerwania.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement