커널은 운영체제의 성능을 담당한다. 하지만 같은 커널을 사용하더라도 사용자의 편리성에 의해서 널리 사용이 되는 것도 있는 반면 좋은 커널을 사용하더라도 편리성이 떨어지면 도태된다.
이것이 인터페이스의 중요성이다. 인터페이스는 성능에 큰 영향을 미치진 않지만 사용자가 커널의 기능을 더 잘 사용할 수 있게 돕는다.
또한 며칠 전 OS에 대한 짧은 책과 친구와 대화를 통해 짧게나마 운영체제를 공부하며 생긴 의문점이 있었는데 그 의문이 이번 '가상머신' 이라는 단원에서 해소가 되었다.
커널 : 프로세스 관리, 메모리 관리, 저장장치 관리와 같은 운영체제의 핵심적인 기능을 모아놓은 것
인터페이스 : 커널에 사용자의 명령을 전달하고 실행결과를 알려주는 것
시스템 호출
: 커널이 자신을 보호하기 위해 만든 인터페이스
- 커널이 제공하는 시스템자원의 사용과 연관된 함수이다
- 응용 프로그램이 하드웨어 자원에 접근하거나 운영체제가 제공하는 서비스를 이용하려 할 때는 시스템 호출을 사용해야한다
- 운영체제는 커널이 제공하는 서비스를 시스템 호출로 제한하고 다른 방법으로 커널에 들어오지 못하게 막음으로써 컴퓨터 자원을 보호한다
- 시스템 호출은 커널이 제공하는 서비스를 이용하기 위한 인터페이스이며, 사용자가 자발적으로 커널 영역에 진입할 수 있는 유일한 수단이다
장점
- 악의적인 사용자 혹은 미숙한 사용자로부터 컴퓨터 자원을 보호할 수 있다. (안정성)
- 컴퓨터 자원을 관리하기가 수월하다 (효율성)
단점
- 사용자가 자신이 원하는 위치에 데이터를 저장할 수 없다.
드라이버
: 다양한 컴퓨터 하드웨어를 사용할 수 있게 돕는 프로그램
→ 소프트웨어 개발자가 전 세계에 있는 하드웨어 드라이버를 만들 수 없기에 하드웨어 제작자가 소프트웨어를 만드는게 유리
→ 이 때 하드웨어 제작자가 만든 소프트웨어를 디바이스 드라이버 라고 한다
ps. 마우스나 키보드 같이 작은 하드웨어의 디바이스 드라이버는 커널에 포함되어 있어 바로 작동되지만 프린트같은 크고 복잡한 디바이스 드라이버는 사용자가 직접 설치해야함
단일형 구조 커널
: 초창기의 운영체제 구조로 커널의 핵심 기능을 구현하는 모듈들이 구분없이 하나로 구성되어 있음
장점
- 하나로 구성되어 있어서 모듈간의 통신비용이 줄어 효율적인 운영이 가능
단점
- 하나로 구성되어 있어서 버그나 오류를 처리하는데 어려움
- 한 기능에 문제가 생겼을 때 시스템 전체로 확장 가능성이 높음
계층형 구조 커널
: 비슷한 기능을 가진 모듈을 묶어서 하나의 계층으로 만들고 계층간의 통신을 통해 운영체제를 구현하는 방식
장점
- 단일형 구조 커널보다 버그나 오류를 쉽게 처리할 수 있음
- 오류가 생긴 부분만 처리하면 되기 때문에 디버깅이 쉬움
마이크로 구조 커널
: 계층형 구조 커널과는 반대로 가장 기본적인 기능만 제공하는 커널
→ 커널 소스가 방대해짐에 따라 오류를 잡기 어려워짐 이에 커널을 매우 가볍게 제작함
장점
- 각 모듈은 독립적으로 작동해 하나의 모듈이 실패하더라도 운영체제가 멈추지 않음
- 많은 컴퓨터에 이식이 가능하고 커널이 가벼워 CPU 용량이 작은 시스템에도 적용이 가능함
가상머신
: 운영체제와 맞지 않는 응용 프로그램을 이용할 수 있게 해주는 중간 다리 역할
→ 자바로 프로그래밍을 하면 운영체제 위에서 작동하기 때문에 여러 운영체제에서 작동이 가능함
장점
- 호환성이 높아져 어떠한 운영체제에서도 운용이 가능함
단점
- 응용 프로그램이 가상머신을 통해서만 작동하기 때문에 느려짐
용어 정리
* API : 응용 프로그램이 자신과 연관된 프로그램을 만들 수 있도록 제공하는 인터페이스
* SDK : 개발용 응용 프로그램까지 하나로 묶어서 배포하는 개발 툴
* 디버깅 : 오류가 발생한 곳을 찾아 수정하는 행동
'OS > 쉽게 배우는 운영체제' 카테고리의 다른 글
프로세스 관리 (1) (0) | 2022.02.18 |
---|---|
컴퓨터의 구조와 성능 향상 (2) (0) | 2022.02.14 |
컴퓨터의 구조와 성능 향상 (1) (0) | 2022.02.14 |
운영체제의 개요 (1) (0) | 2022.02.12 |
쉽게 배우는 운영체제 출처 (0) | 2022.02.12 |
댓글