본문 바로가기

운영체제

운영체제 개발 - 1일차

반응형

OS에는

  1. 멀티태스킹
  2. 동적 메모리 관리
  3. 파일 시스템
  4. IPC(Inter-process communication)
  5. 응용프로그램을 위한 시스템 콜
  6. 외부와 시리얼 케이블로 통신하는 기능
  7. GUI 시스템

OS를 개발하는 과정에서 얻을 수 있는 3가지

  1. 하드웨어와 소프트웨어를 모두 다뤄 볼 수 있다.
  • OS개발의 첫 단계는 플로피 디스크나 키보드 같은 주변장치를 제어하는 디바이스 드라이버를 만드는 일이다.
  • 디바이스 드라이버를 바탕으로 OS의 핵심인 커널을 만든다.
  • 새로운 기기가 추가된다면 디바이스 드라이버를 개발하고, 이 드라이버를 바탕으로 커널에 관련 기능을 추가하는 과정을 반복한다.
  • 펌웨어 개발자(하드웨어 관련 작업), 응용프로그램 개발자(응용프로그램 개발) 둘 다에게 좋은 경험이 된다.
  1. OS의 기능을 실제로 구현하면서 문제 해결 능력을 기를 수 있다.
  2. 큰 성취감을 느낄 수 있다.

OS를 개발하는 데 필요한 지식

  1. PC 하드웨어에 대한 지식
  2. 어셈블리어
  3. C언어
  4. OS 이론
  5. 컴파일러
  6. 링커
  7. 개발을 도와주는 도구 사용법

하드웨어 지식

  • 32비트에서 64비트로 바꾸는 작업이나 PC 주변장치를 다루는 작업은 하드웨어에 대한 지식이 없으면 불가능하다.
  • 대부분 내용은 하드웨어와 함께 제공되는 스펙 문서에 있다.

어셈블리어

  • 기계에 더 가까운 프로그래밍 언어이다.
  • 일반적으로 프로세서가 실행하는 머신 코드와 어셈블리어 명령은 1:1로 변환된다. 이는 어셈블리어로 프로그래밍하려면 프로세서를 알아야 한다는 뜻이다.
  • OS를 개발하는 과정에서 어셈블리어가 차지하는 비중으로 보면 OS를 처음 부팅할 때와 프로세서에 동작 모드를 설정할 떄, 멀티태스킹의 일부분, 응용프로그램을 위한 시스템 콜의 일부분 정도이다.

C언어

  • OS 코드의 대부분을 C언어로 작성하기 떄문에 모르면 안된다.

OS 이론

  • 자신만의 아이디어를 덧붙이자.

컴파일러, 링커, 도구 사용법

  • 컴파일러와 링커는 작성한 소스코드를 부팅 가능한 이미지로 만들어주는 프로그램을 말한다.
  • 도구는 개발을 도와주는 IDE 프로그램부터 생성된 OS 이미지를 실행할 가상머신 프로그램에 이르기까지 다양한 종류의 프로그램을 의미한다.
반응형