본문 바로가기
운영체제

운영체제 파일이란? 유저모드와 커널모드, NIC

by 흰색남자 2022. 10. 10.

우리가 아는 파일은 TXT, YAML, JAR, CLASS, MP4 등등 엄청 많다.

그러면 파일의 개념은 무엇일까? 를 오늘 알아보자.

 

컴퓨터의 구조는 3가지로 추상화할 수 있다.

 

 

1. User mode

우리가 알고있는 일반적인 명령을 실행할 수 있는 영역이고 응용프로그램이 해당 부분에서 동작한다.

 

2. Kernel mode

운영체제가 CPU의 제어권을 가지고 운영 체제 코드를 실행하는 모드로서, 이 모드에서는 모든 종류의 명령을 다 실행할 수 있습니다. 반면에 사용자 모드에서는 일반 사용자 프로그램이 실행되며 제한적인 명령만을 수행할 수 있습니다. 시스템에 중요한 영향을 미치는 연산은 커널 모드에서만 실행 가능하도록 함으로써 하드웨어의 보안을 유지하는 것입니다.

 

- 파일이란?

운영체제( 파일시스템 )에 유저모드 애플리케이션이 간접적으로 진입할 수 있도록 추상화된 인터페이스.

유저모드에서 커널모드에 진입할 수 있는 유일한 수단이라고 함.

우리가 txt파일을 하나 만들면 운영체제 API를 통해 파일시스템에 해당 정보가 Write, Read, Create 과정이 일어난다.

파일을 작성하면 운영체제 내부의 필터에 의해 검사하고 기록되게 된다. // 백신의 원리가 이거랑 똑같음

3. H/W 영역

- NIC / 네트워크 인터페이스 카드 : 커널모드에 존재하는 드라이버와 통신하며 동작함.

- 드라이버란? 운영체제와 H/W가 통신하기 위해 S/W적으로 처리함.

드라이버는 운영체제의 구성요소와 장치간의 상호 통신을 가능하게함.

 

사용자 모드와 커널 모드를 나눈 이유?

사용자 모드와 커널 모드 두 가지로 나누어서 좋은 점은, 응용 프로그램이 전체 컴퓨터 시스템을 해치지 못하게 함

응용 프로그램은 어떤 명령에 따라 사용자 모드에서 실행하기도 하고, 커널 모드에서 실행하기도 함

 

우리가 말하는 TCP/IP 소켓은 무엇일까?

소켓도 파일이다.

커널영역에 접근하기 위한 파일 중 하나.

유저모드 애플리케이션 프로세스가 접근할 수 있도록 커널모드 프로토콜의 TCP/IP를 추상화한 인터페이스

 

 

시스템 콜이란?

시스템 호출(system call)은 운영 체제의 커널이 제공하는 서비스에 대해, 응용 프로그램의 요청에 따라 커널에 접근하기 위한 인터페이스이다. 보통 C나 C++과 같은 고급 언어로 작성된 프로그램들은 직접 시스템 호출을 사용할 수 없기 때문에 고급 API를 통해 시스템 호출에 접근하게 하는 방법이다. 

 

 

 

 

사용자가 사용하는 애플리케이션은 시스템 콜 API를 활용하여 자원을 할당받고 READ, WREATE, CREATE 를 실행함.

와이어샤크도 WINPCAP이라는 시스템 콜 API를 사용한다고함

 

 

통신 과정

유저모드 ( 응용프로그램 // 크롬 등 ) > 커널모드 ( TCP, IP, 데이터링크 ) > NIC ( H/W )> L2      >    라우터 > 게이트웨이 > WWW

     OSI 5,6,7 계층                                           OSI 2,3,4 관리                                                       OSI1