네트워크

User mode와 Kernel mode

개발정리 2024. 10. 3. 14:16

User mode와 Kernel mode


 

 

1) 컴퓨터는 H/W와 S/W로 나뉘며, S/W는 커널 모드 (Kernel mode)와 유저 모드 (User mode)로 나뉜다. H/W에서 제일 관심 가져야 할 부분은 NIC (Network Interface Card), 즉 랜 카드이다. 

 

2) 하드웨어가 있고, 하드웨어를 제어하기 위한 소프트웨어가 존재한다. 이를 드라이버(Driver) 라고 부른다. 랜 카드가 동작하기 위해서는 드라이버가 설치되어 있어야 한다.

 

운영체제 즉 커널을 이루고 있는 구성 요소가 존재하고, 그 곳엔 프로토콜이 구현된 소프트웨어가 들어있고 그 중에 TCP/IP 가 있다. 여기까지가 운영체제 수준이다. 

 

 

...

 

 

맨 위에 어플리케이션인 크롬이 떠 있다고 가정해보자. 커널의 구성요소를 유저 모드 어플리케이션 프로세스가 접근할 수 있도록 길을 열어 준다. 

 

(커널 모드와 유저 모드의 차이는 신 계와 인간 계의 차이이다.)

 

비유하지면, 인간 계에서 신 계에 메세지를 전할 때엔 신 계에서 정해준 인터페이스를 통해서만 전달할 수 있다. 인터페이스의 형태는 파일 형태로 되어 있다. 이처럼 TCP/IP를 추상화 시킨 인터페이스 파일을 소켓이라 부른다. 

 

 

...

 

 

OSI 7계층에서 L5 를 넘어가면 유저 모드 어플리케이션에 속한다. TCP 는 전송 계층 (L4), IP는 네트워크 계층 (L3)에 해당된다. 그리고 TCP/IP를 슬래시로 구분하는 이유는 이 둘의 계층이 다르기 때문이다. (L4/L3)

 

드라이버와 NIC 의 일정 부분은 데이터 계층 (L2)에 속하며 NIC은 물리 계층 (L1) 에 속한다.

 

 

...

 

 

 

 

 위 이미지를 외우자. 

 

 

소켓의 실체는 네트워크 추상화가 이루어진 파일이다. 그리고 소켓을 열고 닫는 주체는 프로세스이다. 즉 어떤 프로세스가 어떤 소켓(파일)을 열었다라고 이해하면 된다.  

 

 

...

 

 

정리

1) 컴퓨터 = H/W & S/W

2) S/W = Kernel Mode & User Mode

3) H/W 에서 NIC (Network Interface Card)는 랜 카드

3) 랜 카드가 동작하기 위해선 드라이버 설치 필요 

4) 운영체제인 커널 모드 구성 요소 중 TCP(L4) / IP(L3) 가 있으며 이 둘은 계층이 다르다.

5) 유저 모드 어플리케이션 (ex. 크롬) 이 커널 모드 구성요소에 접근하기 위해선 파일에 접근해야 하며 이를 소켓이라 부른다.

6) 소켓을 열고 닫는 주체는 프로세스 (크롬)이다.