반응형
OS에는
- 멀티태스킹
- 동적 메모리 관리
- 파일 시스템
- IPC(Inter-process communication)
- 응용프로그램을 위한 시스템 콜
- 외부와 시리얼 케이블로 통신하는 기능
- GUI 시스템
OS를 개발하는 과정에서 얻을 수 있는 3가지
- 하드웨어와 소프트웨어를 모두 다뤄 볼 수 있다.
- OS개발의 첫 단계는 플로피 디스크나 키보드 같은 주변장치를 제어하는 디바이스 드라이버를 만드는 일이다.
- 디바이스 드라이버를 바탕으로 OS의 핵심인 커널을 만든다.
- 새로운 기기가 추가된다면 디바이스 드라이버를 개발하고, 이 드라이버를 바탕으로 커널에 관련 기능을 추가하는 과정을 반복한다.
- 펌웨어 개발자(하드웨어 관련 작업), 응용프로그램 개발자(응용프로그램 개발) 둘 다에게 좋은 경험이 된다.
- OS의 기능을 실제로 구현하면서 문제 해결 능력을 기를 수 있다.
- 큰 성취감을 느낄 수 있다.
OS를 개발하는 데 필요한 지식
- PC 하드웨어에 대한 지식
- 어셈블리어
- C언어
- OS 이론
- 컴파일러
- 링커
- 개발을 도와주는 도구 사용법
하드웨어 지식
- 32비트에서 64비트로 바꾸는 작업이나 PC 주변장치를 다루는 작업은 하드웨어에 대한 지식이 없으면 불가능하다.
- 대부분 내용은 하드웨어와 함께 제공되는 스펙 문서에 있다.
어셈블리어
- 기계에 더 가까운 프로그래밍 언어이다.
- 일반적으로 프로세서가 실행하는 머신 코드와 어셈블리어 명령은 1:1로 변환된다. 이는 어셈블리어로 프로그래밍하려면 프로세서를 알아야 한다는 뜻이다.
- OS를 개발하는 과정에서 어셈블리어가 차지하는 비중으로 보면 OS를 처음 부팅할 때와 프로세서에 동작 모드를 설정할 떄, 멀티태스킹의 일부분, 응용프로그램을 위한 시스템 콜의 일부분 정도이다.
C언어
- OS 코드의 대부분을 C언어로 작성하기 떄문에 모르면 안된다.
OS 이론
- 자신만의 아이디어를 덧붙이자.
컴파일러, 링커, 도구 사용법
- 컴파일러와 링커는 작성한 소스코드를 부팅 가능한 이미지로 만들어주는 프로그램을 말한다.
- 도구는 개발을 도와주는 IDE 프로그램부터 생성된 OS 이미지를 실행할 가상머신 프로그램에 이르기까지 다양한 종류의 프로그램을 의미한다.
반응형
'운영체제' 카테고리의 다른 글
OS 개발 - 4일차 (64비트 프로세서 OS 개발) (1) | 2024.01.29 |
---|---|
OS 개발 - 3일차 (64비트 프로세서 OS 개발) (1) | 2024.01.28 |
OS 개발 - 1일차 (2) (0) | 2024.01.25 |