Tech Artifacts/Linux

Linux - 05. filesystem

inode에는 파일 이름이 없다 — 파일 시스템이 감추는 것"Permission denied"가 떴다. 파일 권한을 고쳤는데도 안 된다. 왜? 종종 진짜 원인은 파일이 아니라 부모 디렉토리에 있다. 또 디스크에 공간이 남았는데 파일이 안 만들어진다 — 이번엔 inode가 다 떨어졌기 때문이다. 이런 일들은 파일 시스템이 실제로 어떻게 돌아가는지를 모르면 진단할 수 없다.리눅스는 "모든 것은 파일"이라고 한다. 그런데 디스크는 그냥 0과 1의 블록 덩어리다. 이 블록들을 어떻게 "이름 있는 파일"로 조직하고, 누가 접근할지 통제하는가 — 이 글이 푸는 질문이다."모든 것은 파일" — VFS 추상화리눅스는 디스크 파일, 하드웨어 장치, 프로세스 정보, 네트워크 소켓까지 모두 파일로 다룬다. 그래서 같은 도구..

Tech Artifacts/Linux

Linux - 04. memory

각 프로세스는 수십 TB 메모리를 독점한다고 착각한다 — 가상 메모리의 속임서버에서 free를 치면 "free가 거의 없다"고 나온다. 메모리 부족인가, 패닉할 일인가? 보통 아니다. 또 누군가 malloc(1GB)를 호출하면 즉시 1GB RAM이 사라질까? 그것도 아니다. 두 사실 모두 리눅스 메모리 관리가 만들어내는 환상의 결과다.이 글은 그 환상을 다룬다 — 각 프로세스가 "자기만의 거대한 주소 공간"을 독점하는 듯 보이게 만드는 가상 메모리, RAM이 부족할 때 디스크까지 끌어쓰는 swap, 그리고 모조리 고갈됐을 때 시스템을 살리기 위해 프로세스를 죽이는 OOM killer까지. 이 셋을 모르면 free/vmstat 숫자를 읽을 수 없고, "서버가 느린데 CPU는 한가하다" 같은 메모리 병목을 ..

Tech Artifacts/Linux

Linux - 03. process

수백 개 프로그램이 코어 몇 개를 나눠 쓰는 법 — 프로세스와 스케줄러컴퓨터를 켜면 웹 브라우저, 셸, SSH 서버, 시스템 모니터까지 수십 ~ 수백 개 프로그램이 "동시에" 돌아간다. 하지만 CPU 코어는 보통 4 ~ 16개뿐이다. 어떻게 가능할까?정답은 CPU를 매우 빠르게 번갈아 쓰기 때문이다. 1초에 수천 번 문맥(context)을 바꿔가며 각 프로그램에 조금씩 CPU를 나눠준다. 사람 눈엔 "동시에" 보이지만, 실은 빠른 교대 실행일 뿐이다. 이 교대를 가능하게 하는 두 추상 — 프로세스(독립된 메모리 방을 가진 실행 단위)와 스케줄러(수백 개 중 지금 누구를 CPU에 올릴지 고르는 커널의 판관) — 가 이 글의 주제다.이 둘을 모르면 "프로세스가 응답 없다", "좀비가 쌓인다", "CPU를 하..

Tech Artifacts/Linux

Linux - 02. boot systemd

전원 ON부터 로그인까지 30초 — 그 사이에 무슨 일이 일어나는가서버 전원을 켰다. 30초~1분 뒤 SSH 로그인 프롬프트가 뜬다. 그 사이 30초 동안 무슨 일이 벌어지는가? 대부분 "부팅되겠지" 하고 넘긴다. 하지만 서비스가 부팅 후 자동으로 안 올라오거나, 부팅이 응급 모드(emergency)에 빠져 멈추거나, 부팅이 너무 느릴 때 — 이 연쇄를 모르면 어디서 막혔는지조차 진단할 수 없다.이 글은 전원 ON부터 로그인 프롬프트까지의 연쇄를 따라간다. 핵심 인물은 systemd, PID 1 — 모든 서비스의 출발점이다.부팅은 여섯 단계 연쇄다flowchart LR P1["1. 펌웨어BIOS/UEFI + POST"] --> P2["2. 부트로더GRUB2 2.12"] P2 --> P3["3...

Tech Artifacts/Linux

Linux - 01. overview

"리눅스"라 부르는 것의 반은 리눅스가 아니다RHEL(Red Hat Enterprise Linux)은 연 수백만 원짜리 유료 구독이다. 그런데 Rocky Linux는 RHEL과 거의 똑같이 생겼으면서 무료다. 같은 소스에서 나왔는데 한쪽만 돈을 받는다. 처음 보면 모순처럼 보인다.이 모순은 "리눅스"라는 단어가 숨기고 있는 것을 한 겹 벗기면 사라진다. 이 글은 그 한 겹을 다룬다 — 정확히 "리눅스"가 가리키는 것이 무엇인지, 그리고 왜 같은 코드에서 유료와 무료가 동시에 나올 수 있는지."리눅스"는 사실 커널이다정확히 말해 "리눅스(Linux)"는 커널 그 자체를 가리킨다. 우리가 "리눅스 OS"라 부르는 것은 사실 커널 하나가 아니라, 커널 + 사용자 공간 도구 + 패키지 관리자를 한 묶음으로 포장..

Archive

'Linux' 11

Tech Artifacts/Linux

Linux - 05. filesystem

inode에는 파일 이름이 없다 — 파일 시스템이 감추는 것"Permission denied"가 떴다. 파일 권한을 고쳤는데도 안 된다. 왜? 종종 진짜 원인은 파일이 아니라 부모 디렉토리에 있다. 또 디스크에 공간이 남았는데 파일이 안 만들어진다 — 이번엔 inode가 다 떨어졌기 때문이다. 이런 일들은 파일 시스템이 실제로 어떻게 돌아가는지를 모르면 진단할 수 없다.리눅스는 "모든 것은 파일"이라고 한다. 그런데 디스크는 그냥 0과 1의 블록 덩어리다. 이 블록들을 어떻게 "이름 있는 파일"로 조직하고, 누가 접근할지 통제하는가 — 이 글이 푸는 질문이다."모든 것은 파일" — VFS 추상화리눅스는 디스크 파일, 하드웨어 장치, 프로세스 정보, 네트워크 소켓까지 모두 파일로 다룬다. 그래서 같은 도구..

댓글
Tech Artifacts/Linux

Linux - 04. memory

각 프로세스는 수십 TB 메모리를 독점한다고 착각한다 — 가상 메모리의 속임서버에서 free를 치면 "free가 거의 없다"고 나온다. 메모리 부족인가, 패닉할 일인가? 보통 아니다. 또 누군가 malloc(1GB)를 호출하면 즉시 1GB RAM이 사라질까? 그것도 아니다. 두 사실 모두 리눅스 메모리 관리가 만들어내는 환상의 결과다.이 글은 그 환상을 다룬다 — 각 프로세스가 "자기만의 거대한 주소 공간"을 독점하는 듯 보이게 만드는 가상 메모리, RAM이 부족할 때 디스크까지 끌어쓰는 swap, 그리고 모조리 고갈됐을 때 시스템을 살리기 위해 프로세스를 죽이는 OOM killer까지. 이 셋을 모르면 free/vmstat 숫자를 읽을 수 없고, "서버가 느린데 CPU는 한가하다" 같은 메모리 병목을 ..

댓글
Tech Artifacts/Linux

Linux - 03. process

수백 개 프로그램이 코어 몇 개를 나눠 쓰는 법 — 프로세스와 스케줄러컴퓨터를 켜면 웹 브라우저, 셸, SSH 서버, 시스템 모니터까지 수십 ~ 수백 개 프로그램이 "동시에" 돌아간다. 하지만 CPU 코어는 보통 4 ~ 16개뿐이다. 어떻게 가능할까?정답은 CPU를 매우 빠르게 번갈아 쓰기 때문이다. 1초에 수천 번 문맥(context)을 바꿔가며 각 프로그램에 조금씩 CPU를 나눠준다. 사람 눈엔 "동시에" 보이지만, 실은 빠른 교대 실행일 뿐이다. 이 교대를 가능하게 하는 두 추상 — 프로세스(독립된 메모리 방을 가진 실행 단위)와 스케줄러(수백 개 중 지금 누구를 CPU에 올릴지 고르는 커널의 판관) — 가 이 글의 주제다.이 둘을 모르면 "프로세스가 응답 없다", "좀비가 쌓인다", "CPU를 하..

댓글
Tech Artifacts/Linux

Linux - 02. boot systemd

전원 ON부터 로그인까지 30초 — 그 사이에 무슨 일이 일어나는가서버 전원을 켰다. 30초~1분 뒤 SSH 로그인 프롬프트가 뜬다. 그 사이 30초 동안 무슨 일이 벌어지는가? 대부분 "부팅되겠지" 하고 넘긴다. 하지만 서비스가 부팅 후 자동으로 안 올라오거나, 부팅이 응급 모드(emergency)에 빠져 멈추거나, 부팅이 너무 느릴 때 — 이 연쇄를 모르면 어디서 막혔는지조차 진단할 수 없다.이 글은 전원 ON부터 로그인 프롬프트까지의 연쇄를 따라간다. 핵심 인물은 systemd, PID 1 — 모든 서비스의 출발점이다.부팅은 여섯 단계 연쇄다flowchart LR P1["1. 펌웨어BIOS/UEFI + POST"] --> P2["2. 부트로더GRUB2 2.12"] P2 --> P3["3...

댓글
Tech Artifacts/Linux

Linux - 01. overview

"리눅스"라 부르는 것의 반은 리눅스가 아니다RHEL(Red Hat Enterprise Linux)은 연 수백만 원짜리 유료 구독이다. 그런데 Rocky Linux는 RHEL과 거의 똑같이 생겼으면서 무료다. 같은 소스에서 나왔는데 한쪽만 돈을 받는다. 처음 보면 모순처럼 보인다.이 모순은 "리눅스"라는 단어가 숨기고 있는 것을 한 겹 벗기면 사라진다. 이 글은 그 한 겹을 다룬다 — 정확히 "리눅스"가 가리키는 것이 무엇인지, 그리고 왜 같은 코드에서 유료와 무료가 동시에 나올 수 있는지."리눅스"는 사실 커널이다정확히 말해 "리눅스(Linux)"는 커널 그 자체를 가리킨다. 우리가 "리눅스 OS"라 부르는 것은 사실 커널 하나가 아니라, 커널 + 사용자 공간 도구 + 패키지 관리자를 한 묶음으로 포장..

댓글

wall

방명록

방문 흔적을 남겨주세요. 질문이나 인사 모두 환영합니다.