카테고리

asm (27) bootloader_x86_grub (1) C (92) compile (11) config (76) CPP (13) CSS (1) debugging (7) gimp (1) Go (1) html (1) Java (1) JavaScript (1) kernel (19) LibreOffice (3) Linux system progamming (21) MFC (1) opencv (4) OpenGL (1) PHP (1) Python (4) qemu (29) shell (3) socket (7) troubleshooting (2) ubuntu18.04 (2) windows (1)

2018/12/08

시스템 호출
    • 시스템 콜은 프로그램이 커널에 서비스를 요청할 때 요구된다.
    • 운영 체제마다 다른 커널을 사용하기 때문에 시스템 호출은 시스템에 따라 다르다.
    • 모든 syscall은 그들과 관련된 ID(숫자)를 가지고있다.
    • Syscalls은 인수, 즉 입력 항목을 사용한다.

레지스터에 의한 시스템 호출 입력

Argument 
Registers
ID
rax
1
rdi
2
rsi
3
rdx
4
r10
5
r8
6
r9


시스템 호출 항목
Syscall
ID
ARG1
ARG2
ARG3
ARG4
ARG5
ARG6
sys_read
0
#filedescriptor
$buffer
#count








sys_write
1
#filedescriptor
#buffer
#count






sys_open
2
$filename
#flags
#mode






sys_close
3
#filedescriptor










...













Pwritev2
328
















댓글 없음:

댓글 쓰기