LINUX
Posts
477 posts리눅스 bash 스크립트에서 연관 배열(associative array) 사용하기
통상적인 배열(array)에 대한 내용은 이전 게시물을 참고하자. 여기로 리눅스 bash 스크립트에서 연관 배열(associative array)을 사용하는 방법이다. 연관 배열은 인덱스를 수자로 사용하지 않고 문자열을 사용할 수 있다. 변수를 연관 배열로 사용하려면 해당 변수가 연관 배열임을 미리 선언해 주어야 한다. declare 명령으로 선언하면서 -A 옵션으로 연관 배열임을 지정해야 한다. # 변수 arr_test를 연관 배열로 선언 declare -A arr_test 이제 인덱스를 문자열로 사용할 수 있다. 아래의 예시를 보자. # 배열 값 할당 arr_test[abc]=0 arr_test[def]=1 # 배열에 저장된 내용 출력 echo ${arr_test[ab
[Linux][Kernel] fd(file descriptor: 파일 디스크립터) 등록 - 코드리뷰
리눅스 시스템 프로그램을 보면 fd를 얻어오는 코드를 자주 볼 수 있어요. fd를 보통 file descriptor라고 하죠.특정 프로세스에서 파일 핸들이라고 이야기하고요. 그럼 fd가 커널 공간에서 어떻게 생성되고 저장되는지 살펴보도록 할께요.#include #include #include #include #include #include #define MAX 1024 int main (int argc, char ** argv[]) { int fd; int readn = 0; int writen = 0; char
[Linux][Kernel] Kernel Panic @__stack_chk_fail - 스택 카나리 (Stack canary Feature)
최근 흥미로운 커널 패닉이 나왔는데요. 디버깅 과정을 공유 좀 하고자 해요. 일단 콜스택부터 볼께요. sock_has_perm() 함수가 돌다가 갑자기 __stack_chk_fail() 함수 호출로 panic()이 일어났거든요. 왜 이런 현상이 발생했을까요?crash> bt e5752c00PID: 1787 TASK: e5752c00 CPU: 4 COMMAND: "net_socket"bt: WARNING: stack address:0xe853fa38, program counter:0xc0ee5b60 #0 [ ] (panic) from [ ] #1 [ ] (__stack_chk_fail) from [
[Linux][Kernel] Process 프로세스 상태 (1) - 런큐(Runqueue) 디버깅
이번 시간에는 각 프로세스 상태에 대해 조금 더 짚어보려고 해요. 리눅스 커널 책을 보면 프로세스 상태에 대한 State Machine을 많이 볼 수 있는데요.Running/Ready 상태 이런 거죠. 실제 리눅스 커널에서는 어떤 API로 구현되는 지 살펴보려고 해요. 무엇보다 실제 데이터 구조체를 살펴보려고 해요. 1> Running State Process 프로세스가 실행되기 위해서는 뭘 해야 할까요? 런큐에 프로세스를 큐잉해야 해요. Runqueue에서 돌고 있는 프로세스를 Running 상태 프로세스라고 볼 수 있어요. 그럼 Crash Tool로 이 디버깅 정보를 어떻게 확인 가능하냐면요. 아래 커맨트로 볼 수 있어요.crash> runqCPU 0 RUNQUEUE: c4b4cb80


![[웹툰단행본] 『통제구역관리부』 1권 후기 : 이상한 변칙과 기이한 일들이 일어나는 공간에 대하여](https://img.zoomtrend.com/2026/06/09/1780996474-SE-5eda86fa-0d63-4afd-b8dd-b801879fed52.jpg)
