728x90
15.1 Linux
15.1.1 리눅스의 개요
- 1991년 리누스 토발즈가 MINIX에 기반하여 실제로 사용할 수 이쓴ㄴ 운영체제 발표
- 개발자뿐 아니라 일반인 및 기업용으로 사용 가능한 운영체제
- 인텔 CPU뿐 아니라 ARM 등 다양한 CPU를 지원하며, 실습용 컴퓨터부터 슈퍼컴퓨터까지 널리 사용됨
15.1.2 리눅스의 장단점
- 장점
- 무료로 사용 가능
- 유닉스 표준인 POSIX를 거의 모두 준수함
- 높은 안정성
- 낮은 성능의 하드웨어에서 동작 가능
- 개인용 컴퓨터에서 서버 기능 수행 가능
- 단점
- 교육, 유지보수 문제
- 보안 문제가 상대적으로 심각할 수 있음
- 떨어지는 보급률
- 특정 하드웨가 지원되지 않을 수 있으나 최근에 좋아지고 있음
15.1.3 리눅스 커널
- MINIX와는 달리 일체형 커널 구조
- 일체형 커널이지만 소스가 공개되어 있기 때문에 필요 없는 부분은 제거 가능
- 멀티태스킹, 멀티유저 시스템
- 멀티코어, 멀티프로세서 지원
- 대부분 C언어로 작성되어 있어 다양한 하드웨어 지원이 쉬움
- POSIX 표준 지원
- 세마포어, 메시지 큐, 공유 메모리 등 프로세스 간 통신 지원
- ext4, FAT, NTFS, HPFS 등 다양한 파일 시스템 지원
- 필요한 서비스를 모듈로 만들어 커널을 교체하거나 시스템을 재시동하지 않고 기능 추가 가능
- 주변장치를 파일로 인식하여 접근
15.1.4 임베디드 시스템과 실시간 시스템
- 임베디드 시스템
- 미리 정해진 특정한 기능을 수행하기 위해 하드웨어와 소프트웨어를 결합하여 설계된 컴퓨터 시스템
- 보통 실시간 시스템에 이용됨
- 실시간 시스템
- 시스템의 상황과 무관하게 정해진 마감시간 내에 주어진 이벤트에 반응해야 함
- 실시간 운영체제(RTOS)는 주어진 마감시간 내에 작업을 처리하는 데 중점을 둠
- 경성 실시간 시스템
- 시스템은 반드시 마감시간 내 작업을 완수해야 함
- 예 : 항공기의 전자제어 시스템
- 연성 실시간 시스템
- 시스템이 마감시간 내 작업을 완수하면 좋지만, 그렇지 않더라도 목적달성에 실해한 것은 아님
- 기준에 따라 어떤 작업을 완수할 것인가 결정해야 함
- 예 : 멀티미디어 재생
15.1.5 임베디드 리눅스
- 임베디드 시스템을 위해 개발된 리눅스
- 운영체제의 크기를 최소화하여 필요한 부분만 남김
- 임베디드 시스템에 사용되는 마이크로프로세서는 범용 CPU와 기능 차이가 크기 때문에 성능이 최적화되어야 함
- 리눅스는 원래 범용 컴퓨터 시스템을 위한 운영체제이기 떄문에 실시간 시스템의 요구사항에 대응할 수 있어야 함
- 장점
- 무료로 사용 가능하며, 운영체제를 응용에 적합게 수정 가능
- 많은 사용자와 개발자로부터 검증받았으며, 많은 검증된 코드를 사용 가능
- 운영체제의 최신 동향 반영
- 범용 컴퓨터 시스템에서 리눅스에 익숙한 개발자는 빠르게 적응 가능
- 단점
- 경성 실시간 시스템에 적절하지 못함
- 실시간 운영체제에 비해 요구되는 하드웨어 사양이 높음
15.2 Windows
15.2.1 윈도우의 역사
- 처음에는 PC에서 그래픽 사용자 인터페이스를 제공하는 것이 목적임
- Windows NT에서 POSIX 표준 및 Windows 3.0의 API를 지원하는 Win32 추가
- 보안과 신뢰성 강화
- Windows 95에서 운영체제 기능 강화
- 이전의 윈도우가 MS-DOS 위에서 윈도우가 동작한다면, Windows 95에서는 윈도우 안에 MS-DOS 포함
- 32비트 마이크로프로세서인 80386의 성능을 활용하면서 기존 16비트 프로그램 호환성 제공
- Windows XP에서 Windows NT 구조에 Windows 95/98의 사용자 편의성 결합
- 2022년 기준으로, 2021년 발표된 Windows 11이 최신 버전의 윈도우
15.2.2 윈도우 커널
- Windows XP 이후의 윈도우는 Windows NT 기반
- 사용자 모드와 커널 모드로 분리
- 마이크로커널을 확장한 형태의 커널 구조
- 운영체제가 해야 할 가장 핵심적이고 기본적인 일인 주소변환, 프로세스 및 쓰레드 관리, 프로세스 간 통신만 커널 내부에서 구현하고 나머지는 서비스로 구현
- 커널의 규모가 작기 때문에 관리가 편하고 서비스를 설정하기 쉬우며, 결함 허용성이 높아짐
- 사용자 모드와 커널 모드 사이 잦은 전환으로 성능이 저하될 수 있음
- Windows NT 커널은 운영체제의 기본 서비스는 커널 모드를 나가지 않은 상태에서 동작하며, 운영체제 환경은 사용자 모드에서 별도 프로세스로 동작하게 만들어 절충한 구조
- 커널 모드에서는 마이크로커널 위에 여러 운영체제가 제공하는 서비스 동작
- I/O 관리자
- Win32 윈도우 관리자와 그래픽 장치 인터페이스
- 성능 향상을 위해 커널 모드에서 도앚ㄱ
- 보안 참조 모니터
- LPC(Local Procedure Call) 기능
- RPC와 비슷하지만 같은 기계에서 동작하는 프로세스 사이의 메시지 전달을 통한 정보교환
- 가상 메모리 관리자
- 주소공간 관리 및 가상 메모리 처리
- 객체 관리자
- 프로세스 관리자
- 사용자 모드에서 하드웨어를 접근하기 위해서는 API를 이용하여 커널 모드의 권한 이용
- 하드웨어는 직접 접근하지 않고 추상화 계층을 거치는데, x86 CPU 외의 다양한 하드웨어에서 윈도우를 동작시키기 위해서임
15.3 Android
15.3.1 모바일 운영체제
- 모바일 환경의 요구조건
- 배터리로 동작하기 때문에 전력 소모량을 줄여야 함
- 대부분 무선 네트워크로 인터넷이 연결됨
- 터치 스크린 등 입출력장치가 일반적인 PC 환경과 다름
- 저수준 운영체제와 고수준 사용자 인터페이스가 결합된 형태
- 현재 안드로이드와 iOS가 대표적인 모바일 운영체제
15.3.2 안드로이드의 개요
- 2008년 처음 발표되고, 2022년 발표된 안드로이드 13이 최신 버전임
- 현재 스마트폰에서 가장 널리 사용되고 있으며, 셋톱 박스, 스마트 TV, 자동차 등 사용 범위가 넓어지고 있음
- 안드로이드의 특징
- 기본적으로 운영체제의 소스 공개
- ARM, x86 CPU를 지원하며, 다른 CPU 지원도 이론적으로는 가능
- C와 C++로 구현된 운영체제에 Java로 개발된 응용 프로그램 동작
- iOS에 비해 다양한 하드웨어를 지원하기 때문에 파편화 문제 존재
- 안드로이드 런타임(ART)
- 응용 프로그램을 처음 설치할 때 중간 코드를 실제 기계 코드로 번역하고, 이후 실행할 때 번역된 코드를 실행해 성능을 높임
- 설치 시 코드를 번역하는 과정이 포함되기 때문에 시간이 더 걸림
참고 문헌 : 김진욱·이인복. 운영체제 워크북. 한국방송통신대학교출판문화원, 2023.
728x90
'전산 > 운영체제' 카테고리의 다른 글
운영체제 - 제 14장 운영체제 보안 (0) | 2024.06.01 |
---|---|
운영체제 - 제 13장 분산 운영체제 (0) | 2024.06.01 |
운영체제 - 제 12장 저장장치 및 파일 관리 (0) | 2024.05.31 |
운영체제 - 제 11장 장치관리 (0) | 2024.05.29 |
운영체제 - 제 10장 페이지 교체 알고리즘 (0) | 2024.05.25 |