issues
search
tonykang22
/
study
0
stars
0
forks
source link
[컨테이너를 구성하는 리눅스 기술] 02. 리눅스 커널 소개
#99
Open
callmeaxxe
opened
2 years ago
callmeaxxe
commented
2 years ago
리눅스 커널
오픈 소스, 모놀리딕, 유닉스 계열, 컴퓨터 운영체제 커널
1991년 리누스 토르발스가 자신의 개인용 컴퓨터를 위해 고안되어 개발
크로스 플랫폼의 의도는 없었으나 그 이후로 다른 운영 체제나 커널 대비 더 다양한 컴퓨터 아키텍처를 지원하도록 확장
C언어, 어셈블러로 작성
가장 큰 오픈소스 프로젝트중 하나
1,200개 이상의 회사의 12,000명에 가까운 개발자
버전 5.11 커널 개발 통계 (lwn.net) (전체)
버전 5.11 커널 개발 통계 (lwn.net) (kernel, mm, fs, net 디렉토리 내역)
리눅스 커널의 이해
커널
컴퓨터 운영 체제의 핵심이 되는 컴퓨터 프로그램으로, 시스템의 모든 것을 완전히 통제
운영 체제의 다른 부분 및 응용 프로그램 수행에 필요한 여러 가지 서비스를 제공
어플리케이션 소프트웨어와 하드웨어를 연결
리눅스 커널의 주요 기능
1. 하드웨어 관리 및 추상화
디바이스 드라이버만이 하드웨어가 제공하는 기능이나 프로토콜에 관여
사용자 프로그램은 하드웨어에 종속적인 작업이 필요하지 않음
파일 저장 매체 종류를 고려하지 않고 사용 가능 → 블록 I/O 레이어
실제 파일이 저장된 위치 고려하지 않고 사용 가능 → 파일시스템
2. 프로세스와 쓰레드 관리
CPU 타임 공유와 메모리 보호
CPU 코어 갯수보다 더 많은 수의 프로그램이 동시 실행 가능 → 프로세스 스케줄러
메모리 주소 정보를 이용한 악의적 공격 → 메모리 보안 기능 (예, Address Space Layout Randomization)
운영 체제에서 실행하고 있는 프로세스가 자신에게 할당되지 않은 영역의 메모리에 접근하는 것을 차단
예) ASLR (Address Space Layout Randomization) : 주소 공간 배치를 랜덤화
3. 메모리 관리
개별 프로세스에 가상의 연속된 메모리 공간을 제공
32bit 머신: 4GB, 64bit 머신: 16 엑사바이트
실제는 물리 메모리내에서 같이 섞여서 할당되고 해제됨
물리 메모리보다 큰 크기의 프로그램이 동시에 실행 가능 → 페이징
4. I/O 관리
디바이스 드라이버 위에 다양한 I/O를 지원
“모든 것은 파일이다”
하부 시스템 구성에 상관없이 파일 입출력 형식로 제어 가능 → VFS
FD (File Descriptors) 기반으로 관리가 되어 동작함
리눅스 커널
버전 5.11 커널 개발 통계 (lwn.net) (전체)
버전 5.11 커널 개발 통계 (lwn.net) (kernel, mm, fs, net 디렉토리 내역)
리눅스 커널의 이해
커널
리눅스 커널의 주요 기능
1. 하드웨어 관리 및 추상화
2. 프로세스와 쓰레드 관리
3. 메모리 관리
4. I/O 관리