Linux
리눅스 · GNU/Linux
는 CPU·메모리·장치와 를 관리하는 운영체제 커널이며, 일상적으로는 이 커널을 포함한 도 라고 부른다. 셸·서비스 관리자·패키지 도구는 커널 위에서 실행되는 별도 프로그램이다.
밑줄 용어에 마우스를 올리거나, 키보드로 선택하거나, 터치하면 설명을 볼 수 있습니다.
01무엇이고, 어떤 일을 하나
- 여러 에 CPU 시간과 를 나누어 제공한다.
- 파일·소켓·장치 접근을 시스템 호출과 권한 판정으로 중재한다.
- 은 커널과 도구를 ·패키지 정책으로 묶어 배포한다.
02어떤 순서로 동작하나
- 프로그램 시작
셸이나 서비스 관리자가 실행 파일과 환경을 정하고 를 시작한다.
- 사용자 코드 실행
는 자신의 가상 주소 공간에서 명령을 수행하고 필요한 자원 작업을 요청한다.
- 커널 진입
파일 읽기나 소켓 통신은 시스템 호출을 거쳐 권한·파일 시스템·네트워크 계층에서 처리된다.
- 결과 전달
커널이 자료 또는 오류를 돌려주면 프로그램이 다음 동작을 결정하며, 종료 뒤 부모가 종료 상태를 회수한다.
03먼저 알아둘 용어와 구성요소
- 라는 커널을 공통으로 사용해도 패키지 형식, 기본 경로, 서비스 이름, , 보안 정책은 배포판마다 다르다.
- /etc/os-release의 ID는 식별자, ID_LIKE는 호환 계열, VERSION_ID는 릴리스를 뜻한다.
- 컨테이너에서는 이 여도 커널은 호스트의 것을 공유하므로 두 출력이 서로 다른 계열을 가리킬 수 있다.
- 와 는 메타데이터를 조회하고 의존 관계를 해결하여 여러 패키지를 하나의 설치 계획으로 묶는다.
- 실행할 외부 명령을 찾는 디렉터리 목록을 담은 환경 변수이다. 셸은 alias·함수·내장 명령·명령 캐시 등의 규칙도 적용하므로 만으로 모든 명령 해석을 설명하지 않는다.
- 동적 실행 파일은 가 필요한 를 찾은 뒤 실행을 이어 간다.
inxi의 메모리·Swap 요약을 커널 통계와 연결하기
설치 용량·커널이 이용할 용량·현재 사용량을 구별하고, Swap 사용량 0이 의미하는 범위를 확인한다.
실습 구성과 전제
- 화면은 게스트의 이며 inxi 3.3.33 출력을 보여 준다.
- inxi 요약 두 장은 서로 다른 시점이다. 작은 사용량 차이를 곧바로 누수나 성능 문제로 판정하지 않는다.
도구의 필드 정의부터 맞춘다
- inxi의 total은 설치된 RAM 규모, available은 예약 영역 등을 뺀 커널 사용 가능 총량이다. free의 available이나 /proc/meminfo의 MemAvailable과 같은 뜻이 아니다.
- 화면의 사용률은 inxi available을 기준으로 한다. 설치 용량 4 GiB를 분모로 임의 계산하면 표시값과 다를 수 있다.
원본 크기로 보기 ↗- Info Memory 행은 total 4 GiB, available 3.54 GiB, used 627.8 MiB (17.3%)다.
- Swap 행에는 type partition, size 3.91 GiB, used 0 KiB와 /dev/dm-1이 보인다.
확인 기준RAM 용량과 Swap 파티션 크기를 서로 다른 자원으로 기록한다.
한 시점의 사용량과 시간에 따른 압력을 분리한다
- 다른 요약은 629.8 MiB/3.54 GiB와 17.4%를 보여 준다. ·캐시·관측 시각이 바뀌면 사용량도 변할 수 있다.
- 누수나 압력 여부는 시간에 따른 추세, 점유, 회수·입출력 지표와 함께 판단한다. 단일 전체 사용률만으로 특정 가 원인이라고 할 수 없다.
bashfree -h vmstat 1 5 cat /proc/meminfo현 환경에서 메모리 가용 추정치와 시간 구간별 활동을 비교하는 조회 예시다.
원본 크기로 보기 ↗- 간략 출력은 Mem 629.8 MiB/3.54 GiB (17.4%)로 표기된다.
- Uptime과 프로세스 수가 상세 화면과 달라 같은 순간의 완전한 반복 측정으로 볼 수 없다.
확인 기준vmstat 첫 줄과 후속 구간의 의미를 구분하고 si·so 및 실행 대기·I/O 지표를 함께 읽는다.
Swap 0과 Swap 비활성을 구별한다
- 사용량 0은 그때 Swap에 사용 중인 양이 없다는 뜻이다. 구성·활성화 여부는 활성 Swap 목록으로 별도 확인한다.
- Swap 사용량이 존재하는 것만으로 현재 심한 스와핑이라고 할 수도 없다. 실제 swap-in/out 활동과 메모리 압력의 동시 관측이 필요하다.
bashswapon --show cat /proc/swaps cat /proc/pressure/memory활성 Swap과 지원되는 커널의 메모리 압력을 읽는다. PSI 경로는 커널 설정에 따라 없을 수 있다.
확인 기준활성 목록, 사용량, 구간별 입출력을 서로 다른 항목으로 기록한다. 캡처에는 Swap 변경·비활성화 결과가 없다.
실습에서 확인한 동작 원리
- 같은 available이라는 이름도 도구에 따라 정의가 다르므로 필드의 분모와 단위를 확인한다.
- ·현재 RAM 점유·Swap 구성·현재 은 구별해서 관측한다.
04예제로 따라가기
- 의 /etc/os-release는 을, uname -r은 현재 실행 중인 커널을 설명하므로 두 버전 숫자가 같을 필요가 없다.
- 컨테이너 안의 파일이 여도 실제 시스템 호출을 처리하는 커널은 호스트의 커널이다.
- 같은 명령 이름이 /usr/local/bin과 /usr/bin에 있으면 순서에 따라 실행 대상이 달라져 설치 패키지 버전과 출력 버전이 다를 수 있다.
05혼동하기 쉬운 점과 확인 기준
- 디스크 파일이 교체돼도 장기 실행 가 이전 실행 파일·라이브러리 매핑을 보유할 수 있다. 새 셸에서 --version을 한 번 실행한 결과로 기존 서비스를 대표하지 않는다.
- 은 수정 사항을 이전 upstream 버전에 backport할 수 있다. 버전 숫자만 비교하기보다 패키지 release·보안 공지와 적용 거래를 대조한다.
06상세 노트 · 실습 자료
헤더 구조, 설정 예시, 수치 계산과 수업 캡처는 아래 노트에서 이어집니다.
공식 문서 · 표준
기초 개념과 동작 설명을 대조한 자료입니다. 제품 버전과 실제 설정에 따른 차이는 본문 및 원문에서 확인하세요.