- Today
- Total
목록system call (2)
Byeo
BSD socket API에서 socket을 생성한 뒤에는 server-side 측에서 bind를 실행합니다. bind는 나의 ip:port를 socket과 연결하는 역할을 수행하죠. 이 번에는 BSD socket API중에서 bind를 분석해보려고 합니다. 이전 포스트 (socket system call)https://byeo.tistory.com/entry/socket-system-call socket system call 1 (syscall_socket ~ __sock_create)int socket(int domain, int type, int protocol); socket 시스템 콜의 동작을 한 번 들여다봅니다! https://man7.org/linux/man-pages/man2/socket...
지난 포스트에서 추가한 리눅스 시스템콜을 사용하기 위해서는 위에서 기술된 2번 항목처럼 syscall에 syscall_no를 넣어주면서 호출을 했어야 했는데요. C언어에서 byeo_hello(string, strlen)을 직접 호출하고 싶으면 어떻게 해야 할까요? 그 방법은 사실 커널보다는 glibc의 수정에 있었습니다. 이번 포스트에서는 시스템콜 함수명을 직접 이용해 호출할 수 있도록 설정을 해볼 예정입니다. 0. syscall( ) 흐름 시작 전에, syscall() 함수는 어떻게 실행될지 잠깐 살펴보려고 합니다. 이 함수는 glibc의 sysdeps/unix/sysv/linux/x86_64/syscall.S에 있는 함수입니다. 해당 함수는 syscall number를 별도의 register에 빼낸 ..