Advertisement
Guest User

syscalls

a guest
Jun 20th, 2018
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.90 KB | None | 0 0
  1. //Z WIKI
  2. 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.
  3.  
  4. 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ć:
  5.  
  6. dostęp do systemu plików,
  7. komunikacja międzyprocesowa,
  8. uruchamianie innych programów,
  9. sterowanie urządzeniami systemowymi,
  10. obsługiwanie komunikacji sieciowej.
  11.  
  12. 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.
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19. //Z DOCA
  20. 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.
  21. Jest to sposób na dostanie się przez process do pamięci i/lub funkcji kernela.
  22.  
  23. 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.
  24.  
  25. 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