초창기의 운영체제 구조 커널의 핵심 기능을 구현하는 모듈들이 구본 없이 하나로 구성되어 있다.
장점
단점
비슷한 기능을 가진 모듈을 묶어서 하나의 계층을 만들고 계층 간의 통신을 통해 운영체제를 구현하는 방식
단일형 구조보다 버그나 오류를 쉽게 처리할 수 있고, 오류가 발생했을 때 해당 계층만 따로 수정하면 되기 때문에 디버깅하기도 쉽다.
오늘날의 운영체제는 대부분 이 구조로 이루어져 있다.
계층형 구조의 커널에서 사용자의 다양한 요구를 수용하기 위해 계속 계층과 기능을 추가했더니 커널의 크기가 커지고 필요한 하드웨어 용량이 늘어나 커널 소스가 방대해짐에 따라 오류를 잡기 어려웠다.
이러한 계층형 구조의 접근 방식과 반대로 개발된 커널이 마이크로 구조 커널이다.
운영체제는 프로세스 관리, 메모리 관리, 프로세스 간 통신 관리 등 가장 기본적인 기능만 제공하고 나머지 영역은 사용자 영역에 구현되어 있다.
- 메모리 관리, 포로세스 간의 동기화 서비스를 커널이 제공, 둘의 동기화 모듈은 프로세스 간 통신 모듈로 연결되어 있다.
각 모듈은 독립적으로 작동하기 때문에 하나의 모듈이 실패하더라도 전체 운영체제가 멈추지 않는다.
많은 컴퓨터에 이식하기 쉽고, 커널이 가벼워 CPu 용량이 작은 시스템에서도 적용이 가능하다.
언어의 호환성이 떨어져 한쪽 운영체제에서 만든 소스코드가 다른 운영체제에서는 작동하지 않는 문제가 있었고, 그러한 호환성 문제를 해결한 것이 바로 자바이다.
자바가 작동하는 원리는 매우 간단한데, 운영체제 위에 가상머신(virtual machine)을 만들고, 그 위에서 응용 프로그램이 동작하는 것이다.
가상머신은 운영체제와 응용 프로그램 사이에서 작동하는 프로그램으로, 가상머신을 설치하면 모두 동일한 환경에서 작동하는 것처럼 보인다.
예로 윈도우 운영체제 환경에서 유닉스를 사용하고 싶을 때 유닉스 가상머신을 설치하면 된다.
가상머신을 사용하면 호환성이 높아지지만, 응용 프로그램이 가상머신을 통해서만 작동하기 때문에 느려진다는 단점이 있다.
참조한 책 및 링크
쉽게 배우는 운영체제
https://math-coding.tistory.com/80
https://wonit.tistory.com/80
https://velog.io/@hi4656/%EA%B0%80%EC%83%81-%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C%EC%99%80-%EA%B0%80%EC%83%81%EB%A8%B8%EC%8B%A0-%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C%EA%B0%80-%EC%9D%BC%ED%95%98%EB%8A%94-%EB%B2%95
``