[Linux][Kernel] panic@___might_sleep
By Guillermo Austin Kim | 2017년 12월 7일 |
리눅스 커널 synchronization의 꽃 중의 하나인 Mutex Lock에 대해서 조금 짚어 볼께요. Mutex Lock은 보통 스핀락(Spinlock)과 많이 비교하죠. 사실 소스 코드를 보면 Mutex Lock이 스핀락보다 훨씬 소프트웨어적으로 복잡해요. 그 이유는?1> Mutex Lock을 잠근 프로세스만 해제할 수 있어요2> 이미 다른 프로세스가 Mutex Lock을 획득한 상태면 struct mutex.wait_list에 대기하고 Wait Queue에 넣고 잠들어야 해요.음, 이 소리는. Mutex Lock을 잡고 있는 프로세스가 Mutex Lock을 해제하면 누군가가 다시 대기 중이던 프로세스를 WaitQueue에서 끄집어 내서 런큐에 큐잉을 해줘야겠죠. 마지막으로 Mutex
4.10 프로세스 디스크립터 접근 매크로 함수
By Guillermo Austin Kim | 2019년 2월 7일 |
리눅스 커널 코드를 읽으면 다음 매크로를 자주 볼 수 있습니다.+ current_thread_info()+ current 위 매크로를 활용해서 프로세스 태스크 디스크립터와 struct thread_info 구조체 필드 정보를 읽어 프로세스를 제어합니다. 4.10.1 current_thread_info()이전 절에서 프로세스 스택 최상단 주소에 struct thread_info 구조체에 프로세스 실행을 저장한다고 분석했습니다. current_thread_info() 매크로 함수는 프로세스가 어떤 함수를 실행하더라도 struct thread_info 구조체가 있는 스택 최상단 주소를 전달합니다. current_thread_info() 매크로 함수 구현부를 분석하기 전에 매크로 함수가 어느 코드에서 쓰는
virbr0 NAT 인터페이스 disable 시키기
By 황제펭귄의 IT | 2017년 12월 11일 |
출처:http://www.cyberciti.biz/faq/linux-kvm-disable-virbr0-nat-interface/virbr0 NAT 인터페이스 disable 시키기왜 disable 시킬까? by Vivek Gite · 0 commentsThis entry is part 9 of 12 in the series Redhat KVM Virtulization virtual network (virbr0)는 guest들이 네트웍 서비스에 접근하는 것을 허락하기위해서 Network address translation (NAT) 를 위해 사용된다. 하지만 NAT는 늦고 데스크탑 설치를 위해서 권장된다. 이 Network address translation (NAT)를 disable시키기 위해서는 아래와
리눅스에서 도커(Docker) 이미지 추가 및 실행
By 반달가면 | 2020년 4월 17일 |
우분투 계열 배포판(리눅스 민트)에서의 도커 설치는 이전 게시물을 참고하자. 여기로 도커 이미지들은 도커 허브(Docker Hub) 웹사이트에서 찾을 수 있다. Docker Hub 추가하고 싶은 이미지의 이름을 찾은 후, docker pull 명령으로 추가하고 docker run 명령으로 실행할 수 있다. # 도커 이미지 hello-world 추가(다운로드) sudo docker pull hello-world # hello-world 이미지 실행 sudo docker run hello-world 추가된 이미지 목록은 아래와 같이 docker images 명령으로 확인 가능하다. # 도커 이미지 목록 확인 sudo docker images -it 옵션을 사용