본문 바로가기

Linux

[Linux] 리눅스 커널 개념 정리

728x90

 

1. Linux 커널이란 ? 

리눅스 운영 체제(OS)의 주요 구성 요소이며 컴퓨터 하드웨어와 프로세스를 연결하는 핵심 인터페이스
주로 디바이스 관리, 프로세스 관리, 메모리 관리, 시스템 콜 제공과 같은 기능 == 컴퓨터 자원 관리

 

2. Linux 커널의 주요 기능

- 디바이스 관리 
 : 리눅스 커널은 디바이스 드라이버라는 하드웨어 입출력을 제어하는 소프트웨어를 이용하여 장치를 관리함

- 프로세스 관리
 : 리눅스에서는 프로그램을 실행할 때 파일 시스템 내 특정 디렉터리에 있는 프로그램의 파일을 읽어와 메모리에   적재함. 이 프로그램이 메모리에서 실행되는 프로세스가 되는데 프로그램이 종료되면 프로세스 역시 삭제됨


사용자가 시스템에 로그인을 하면 약 100여개의 프로세스가 동시에 실행되는데, 프로세스가 이용할 수 있는 CPU는 하나이므로 여러 프로세스를 동시에 이용할 수 는 없다.
> 따라서 커널은 동시에 실행되는 프로세스 간 CPU를 이용할 수 있는 시간을 분배하여 각 프로세스에 PID(Process Id)를 통해 관리하게 됨

- 메모리 관리 
 : 프로그램이 실행될 때 메모리에는 프로그램뿐만 아니라 프로그램이 이용하는 데이터 영역 또한 메모리에 할당됨.
  사용자 프로그램의 요구에 따라 메모리 영역을 분배하거나 이용이 끝난 메모리 영역 회수 등을 담당하는 것이 커   널이 수행하는 메모리 관리이다.
 
  ! 메모리 관리에서는 가상 메모리 또한 지원함
  가상 메모리 : 실제로는 없는 메모리지만 실제로 존재하는것처럼 메모리를 사용할 수 있게 해줌
  가상 메모리는 실제 메모리가 아닌 HDD와 같은 보조 기억장치의 일부도 프로세스가 볼 때에는 같은 메모리인 것    처럼 보리게 하기 때문에 실제 내장된 메모리보다 더 큰 용량의 메모리 사용이 가능

  스왑(swap) : HDD에 마련된 가상 메모리 영역
  스왑 아웃 : 메모리에 있는 프로그램 전체 영역을 보조 기억 장치로 내보내는 것  
  스왑 인 : 내보냈던 데이터를 메모리에 다시 가져오는 것 


- 시스템 콜 제공
: 시스템 콜이란 표준 출력이나 파일을쓰는 write, 읽어들이는 read, 프로세스를 fork하는 기능 등을 가지고 있어서    사용자 프로그램에서 액세스할 수 있도록 도와줍니다.
  (리눅스 커널에서는 약 300개의 시스템 콜을 제공하고 있음)

 fork : 프로세스를 복제하는 방법

 

3. Linux 커널 파라미터란 ? 

리눅스에서 사용되는 시스템 변수들을 의미.
커널 변수값을 제어하여 시스템을 운영 용도에 맞게 최적화 할 수 있는 설정