[리눅스커널] 프로세스 - 유저 레벨 프로세스 생성 시 _do_fork() 함수 흐름
By Guillermo Austin Kim | 2018년 10월 21일 |
먼저 유저 레벨 프로세스는 어떻게 생성할까요? 저수준 리눅스 어플리케이션 프로그램으로 fork() 함수를 호출하면 리눅스에서 제공하는 라이브러리 도움을 받아 커널에게 프로세스 생성 요청을 합니다. 여기까지가 유저 모드에서 프로세스를 요청하는 단계입니다. 리눅스에서 제공하는 라이브러리는 시스템 콜을 발생하고 리눅스 커널에서는 fork() 함수에 대응하는 시스템 콜 핸들러인 sys_clone() 함수를 호출합니다. 먼저 sys_clone() 함수 코드를 봅시다. [https://elixir.bootlin.com/linux/v4.14.70/source/kernel/fork.c#L2020]1 #ifdef __ARCH_WANT_SYS_CLONE2 #ifdef CONFIG_CLONE_BACKWARDS3 SYSCAL
리눅스 ZFS에서 장애 디스크 교체
By 반달가면 | 2022년 4월 11일 |
리눅스 ZFS에서 디스크 장애가 발생했을 경우 해당 디스크를 교체하는 방법이다. 예를 들어 my_data라는 zpool에 속한 디스크 sdb에 문제가 생겼다고 가정하자. (zpool에 관한 내용은 이전 게시물을 참고하자. 여기로) 이럴 경우 먼저 sdb를 오프라인(offline) 상태로 변경하고, 디스크를 교체한 후 replace 명령을 입력하면 되겠다. # ZFS 상태 확인 sudo zpool status # my_data zpool에 속한 디스크 sdb를 오프라인으로 전환 sudo zpool offline my_data sdb 디스크가 오프라인이 되면 zpool 상태는 "ONLINE"에서 "DEGRADED"로 변경된다. 디스크 하나가 빠졌기 때문에 보호 능력은 떨어지지만, 데이터
리눅스에서 eml 파일 내용 추출
By 반달가면 | 2023년 2월 14일 |
리눅스에서 eml 파일의 내용을 추출하는 방법이다. mpack 패키지를 설치해서 작업할 수 있다. 데비안/우분투 계열 배포판일 경우 아래와 같이 설치하면 되겠다. # S/W저장소 정보 갱신 sudo apt-get update # mpack 패키지 설치 sudo apt-get install mpack 내용 추출은 munpack으로 가능하며, -t 옵션을 추가하면 텍스트/html 부분도 추출해 준다. my_email.eml 파일의 내용을 추출하려면 아래와 같이 할 수 있다. munpack -t my_email.eml part1 (text/plain) part2 (text/html) 위의 경우 텍스트 부분은 part1, html 부분을 part2라는 파일로 저장된 것이다. 첨부
우분투 S/W저장소 미러 서버를 사용하기 위한 클라이언트 설정
By 반달가면 | 2019년 4월 9일 |
우분투 계열 배포판에서 S/W저장소(software repository) 미러(mirror) 서버를 구축하는 방법은 이전 게시물을 참고하자. 여기로. 이 서버가 구축완료되었다는 전제로 클라이언트를 설정하는 방법이다. 예를 들어 구축한 미러 서버의 IP주소가 192.168.0.200이라고 하자. 우분투 공식 S/W저장소에 접속하지 않고 직접 구축해 놓은 미러 서버에 접속하기 위해서는 /etc/apt/sources.list 파일을 편집해야 한다. 우선 기존의 파일을 백업해 두자. # 기존 설정 파일 백업 sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak 이제 파일을 편집하자. # /etc/apt/sources.list 파일 편집 s