우리가 아는 파일은 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
'운영체제' 카테고리의 다른 글
리눅스/파일 디스크립터 (0) | 2022.10.14 |
---|---|
NAS, DAS, SAN (0) | 2022.10.13 |
운영체제 프로세스 자원 할당에 대하여 ( 2 ) (0) | 2022.09.28 |
운영체제 프로세스 자원 할당에 대하여 ( 1 ) (0) | 2022.09.28 |
퍼옴 // 컨텍스트 스위칭이 일어나는 경우 (0) | 2022.09.27 |