LINUX
Posts
477 posts[라즈베리파이] 시그널 - 시그널을 받으면 프로세스 어떻게 반응할까?
시그널을 전달받은 프로세스는 어떤 동작을 할까요? 크게 2가지 동작을 수행합니다.1> 시그널을 무시한다.말 그대로 아무런 동작을 하지 않습니다. 하지만 SIGKILL, SIGSTOP 과 같은 시그널은 프로세스가 무시할 수 없습니다. 특정 상황에서 지정한 프로세스를 반드시 종료해야 하는 상황이 있기 때문입니다. 2> 시그널에 명시된 동작을 수행합니다.시그널 핸들러로 등록된 시그널 핸들러 함수를 실행하고 시그널 별로 명시된 동작을 수행합니다.대부분 시그널을 받으면 프로세스가 취하는 액션은 프로세스 종료입니다. 프로세스는 어떤 이벤트에 대해서 특정 루틴을 수행해야 하기 때문에, 시그널을 한 번에 하나의 용도로만 사용합니다. 이번 시간까지는 유저 프로세스 입장에서 시그널 처리 동작에 대해 살펴봤습
[라즈베리파이] 시스템 콜 - 매개 변수 점검(시스템 콜 핸들러)
리눅스 커널 시스템 콜 핸들러 인터페이스 함수를 열어 보면 수 많은 예외 처리 코드를 볼 수 있습니다. 유저 모드에서 시스템 콜을 호출할 때 잘못된 인자(스트링 갯수, 메모리 주소)를 전달할 수 있기 때문입니다. 먼저 write() 이라는 리눅스 시스템 저수준 함수를 살펴보겠습니다. write() 함수를 호출할 때는 다음 6번 째 줄 코드와 같이 세 가지 인자를 전달해야 합니다.[https://android.googlesource.com/platform/system/core/+/master/init/uevent_listener.cpp]1 ListenerAction UeventListener::RegenerateUeventsForDir(DIR* d,2
[ESXi 6.5] Photon OS 설치하여 Docker Host로 운영하기
거의 지난 주말부터 ESXi 서버에 대해서 살펴보고 있습니다. ESXi 서버는 그 안에 필요한 VM을 하나 하나 설치하는 것이니,쉽게 말해 나만의 IaaS 를 구축한다고 할 수 있겠습니다.(ESXi 서버가 https 포트만 포트포워딩 시켜 놓으면 외부에서도 작업을 거의 다 할 수 있는 것이 환상입니다) 그런데 CaaS 처럼 구축하기 위해서는 역시나 ESXi 서버에 Docker Host 기능을하는 Linux를 설치하여야 합니다. 여기에서도 잠깐, 아주 오래전 (약 10년전) 우분투 설치를 하다보면"최소 가상머신 설치" 라는 것이 있었습니다.JeOS (쥬~스 라고 발음했던 기억이) 라고 Just Enough OS 라고 불려최소로 설치하는 것을 의미했습니다. 마치 Docker에서 image 를 최소화 하
[라즈베리파이] 시스템 콜 - 커널 공간에서 시스템 콜 테이블 확인하기
시스템 콜 테이블은 sys_call_table 심볼에 저장돼 있습니다. 쉽게 설명을 드리면 전역 변수라고 봐도 무방합니다. T32 프로그램으로 시스템 콜 테이블을 확인하면 다음과 같습니다.d.v %y.l sys_call_table________address||value______|symbolNSD:80107FC4| 0x8012C6F4 \\vmlinux\kernel/signal\sys_restart_syscallNSD:80107FC8| 0x801212C0 \\vmlinux\exit\sys_exitNSD:80107FCC| 0x8011C100 \\vmlinux\fork\sys_forkNSD:80107FD0| 0x8026AB24 \\vmlinux\read_write\sys_readNSD:80107FD4|



