IT

오래된 컴퓨터에서 작은 운영을 설치해야합니까?

lottoking 2020. 8. 2. 17:14
반응형

오래된 컴퓨터에서 작은 운영을 설치해야합니까? [닫은]


내가 운영하는 것을 작성하는 것은 엄청나게 복잡하다는 것을 알고 있기 때문에 이것이 헛된 것입니다.

  • 다음 리눅스 나 창을 만들 것은 생각하지 않습니다.

  • 나는 그것이 끔찍하고 괜찮습니다.

Assembly , C 및 (일부) C ++ 에서 모든 것을 직접 작성하고 싶습니다 .

현재 물어볼 다른 것들로 바빠서 현재 시간이 없기 때문에 미래의 프로젝트이지만, 지금 물어볼 다른 즉시 생각하기 때문에 이것에 대한 많은 답변을 얻을 수 있습니다 이런 종류의 접근 방식에 대한 유용한 리소스를 구축하고 활용하십시오 사용하여 가상 부트 프로그램을 사용하여 빌드하는 등 미니 웍스 구축과 관련된 모든 것).

모니터, 마우스 및를 키보드 사용하여 이전 데스크탑 중 하나를 설정하고 하드 드라이브 에서 작업을 시작하려고합니다 .

내 자신의 부트 로더를 작성하는 방법을 배우고 싶습니다 (이것에 많은 리소스를 찾았지만 완전성을 위해 여전히 좋은 것을 추가), 내 자신의 USB 드라이버 (필요한 경우), CD 드라이버 (필요한 경우)) 등 모든 것부터 시작합니다.

  • 컴퓨터에 코드를 어떻게 넣습니까? 플로피 디스크로하는 것이 가장 좋습니까? 대부분의 컴퓨터는 USB 스틱으로 할 수 있습니까?

  • 어떤 드라이버가 필요하며 해당 드라이버를 작성하는 것에 대한 참조를 제안 할 수 있습니까?

  • 부팅 순서 후-무엇입니까? 보호 모드 제공은 방법

  • 운영 서비스의 도움없이 메모리를 관리 얼마나 많이 사용합니까? 원하는 주소 만 사용입니까? 초기화가 필요하지 않습니까?

  • 의심 할 여지없이 어떤 혼란 스러울까요?

  • 명령 줄 O / S와 그래픽으로 만들 수 있습니까?

  • 내장 된 그래픽 O / S 란 무엇입니까? 예를 들어, 명령 행, 글꼴이있는 그림, 상단에 그림이있는 방법은 무엇입니까?

  • 멀티 태스킹 환경에 대한 정보는 어디에서 읽을 수 있습니까? (즉, 나란히 실행되는 두 개의 개의 그래픽과 같은 명령 행이 있음).

  • 경계 윈도우 시스템을 어떻게 설정합니까? 한 후 화면에 그래픽을 표시하는 것이 얼마나 간단한 멀티 태스킹입니까?

저를 믿으십시오. 이것은 매우 복잡한 프로젝트 라는 것을 이해합니다. 아마도 프로젝트를 완성하거나 어떤 용도로든 글을 쓰지 않을 것입니다.

내가 언급하지 않은 다른 많은 것들이 있습니다. 어떤 생각이 든다면 자유롭게 추가하십시오.

답변 당 하나의 "주제"(예 : USB 드라이버)를 넣은 다음 리소스 목록,주의 할 사항 등을 입력하십시오.

또한 다른 O / S 또는 기존 코드를 구축하지 않는 것이 좋습니다. 나는 많은 기존 코드 (예 : 리눅스 커널, 예제 리소스, 기존 드라이버 등) 읽을 것이라는 것을 알고 있지만 궁극적으로 나는 모든 글을 직접하고 싶다. 나는 다른 것을 만들어 내야 한다는 것을 알고 있으며 , 마음을 바꾸고 그 길을 가면 읽을 수있는 많은 질문이 있습니다. 그러나 이것은 모든 것을 처음부터 시작하는 것입니다.

그래픽을 얻는 방법에 대한 제안 제안 사항이 있습니까? 다른 비디오 모드와 작동 방법 등?


먼저 첫 번째 것들. 읽기 , 읽기 , 읽기 , 읽기 , 읽기 자신의 시스템을 구현하기 전에 작동해야하는 작동 방식을 제대로 이해합니다.

운영 서비스에 관한 Andrew Tanenbaum의 책 중 하나를 가져옵니다. 이것은 우리가 대학의 OS 수업에서 것입니다.

최신 운영 체계 PDF

아마존의 최신 운영

어리석은 표지에도 불구하고 특히 교과서에 대한 훌륭한 책입니다. Tanenbaum 은이 분야의 전문가이며 OS가 어떻게 작동하는지에 대한 설명은 명확하고 이해하기 쉽습니다. 이 책은 대부분 이론이지만 필자는 또한 그 구현에 대해 더 많이 설명하는 책을 가지고 생각합니다. 나는 그것을 읽지 않았던 적이 없습니다.

프로세스 관리, 메모리 관리, 파일 시스템 및 OS에서 부팅이 가능한 상태로 만들기 위해 필요한 모든 작업에 도움이됩니다. 그 시점부터는 기본적으로 지원해야하는 하드웨어의 장치 드라이버 작성과 파일 및 장치, 읽기 및 프로세스 간 메시지 전달 메시지와 같은 쓰기 호출을 만들기 위해 C 라이브러리 함수 구현을 제공해야합니다. .

x86 어셈블리를 읽습니다 (x86 시스템 용으로 설계 및 가정). 프로세서 작동 모드 간 이동과 관련하여 많은 질문에 대답해야합니다.

전자 지식이있는 것이 x86 PC보다 간단하기 때문에 문서가 충분한 내장 장치 용 운영을 작성하는 것이 더 쉬울 수 있습니다. 나는 항상 내 자신의 OS를 작성하고 싶고 Digilent 의이 개발 보드위한 마이크로 배포 OS를 작성하기 시작했습니다 . Xilinx의 소프트 코어 MicroBlaze는 사용할 수 있습니다. 또한 RAM, 플래시 데이터 저장 장치, LED, 스위치, 버튼, VGA 출력 등이 있습니다. 간단한 드라이버 작성으로 많은 것을 할 수 있습니다.

내장형 장치의 장점 중 하나는 오랫동안 VGA 드라이버 작성을 피할 수 있습니다. 필자의 경우 Digilent 개발 보드에는 온보드 UART가 있으므로 모든 작업을 최소한의 번거 로움없이 명령 줄로 부팅 할 수 있습니다.

모든하려는 대상에 쉽게 사용할 수 있고 잘 테스트 된 컴파일러가 있는지 확인하십시오. OS 컴파일러를 동시에와 작성하고 싶지 않습니다 .


http://www.osdev.org/http://www.osdever.net/

OS 개발 세계에 오신 것을 환영합니다.

SO의 태그 위키 ( Intel 및 AMD 설명서, 컴파일러 / 어셈블러 문서 및 다양한 안내서)에있는 다른 x86 설명서 링크도 참조하십시오 .

부트 로더를 한 단계 씩 실행하고있는 것이 좋습니다.


처음에는 Bochs 또는 다른 가상 머신 에서 작업하는 것이 좋습니다. 원하는 곳은 어디에서나 가져갈 수 있기 때문에 디버그하기가 더 있고 (하드웨어의 정확한 상태를 볼 수 있음) 도움이 필요하면 외부에서 '하드웨어'를 사용할 수 있습니다.

사용 가능한 가장 유용한 테이블 조언은 가능한 빨리 C 코드를 사용 가능한 상태, 부팅, 디스크립터 설정 및 준비된 C를 실행하는 것이 안전한 시점에 도달하는 것입니다. 제정신 상태를 유지하고 계속 작업해야합니다. 일부 장소에서 필요한 어셈블리는 지루하고 어려운 경향이 있습니다.


가장 낮은 수준에서 운영하고 실행하는 시스템의 하드웨어를 어떤 식으로 수행하고 "사용자 코드"를 실행하는 것입니다. PC로 시작되는 일부 장치 또는 다른 장치에서로드 할 수있는 코드를 작성해야합니다. 구형 PC에는 펌웨어에 BIOS가있어 하드웨어가 어떻게 초기화를 수행하는지 (적어도 비디오, 키보드 및 일부 형태의 스토리지 또는 부트 로더) 결정합니다. (2017 년 10 월 업데이트 : 최신 PC에는 EFI 또는 UEFI 펌웨어가 있습니다. 이는 상당히 차이가 있습니다.이 토론에 동일한 목적을 제공합니다.)

따라서 대상 시스템에서 BIOS 또는 기타 펌웨어를 사용하는 방법에 대한 저수준 세부 정보를 배우는 시작하십시오. 즉, BIOS 가로 드하고 수있는 프로그램을 작성하는 방법을 배웁니다. 결국 부트 로더로 변형됩니다. 작게 시작하십시오. 펌웨어 부팅 프로세스에서 직접 "Hello, Linus"를 인쇄하는 프로그램을 얻을 수 있습니다 (플로피 또는 USB 드라이브에서 시작하는 것이 좋을 것입니다. 또는 원하는 경우 하드 드라이브에서).

거기에서 나는 매우 간단한 직렬 드라이버를 작성하는 것이 좋습니다 ... 부트 로더를 업데이트하여 직렬 포트를 초기화하고 거기에서 다운로드를 시작하십시오. 그런 다음 가져 오는 코드를 실행할 수 있습니다. 거기에서 다른 블록 세트에 쓸 수있는 약간의 부트 스트랩을 작성하십시오 (아직 파일 시스템을 구현하지 않았습니다 ... 파티션 테이블 구문 분석조차도하지 않았습니다. 따라서 처음에는 디스크의 원시 블록 범위를 처리했습니다. ).

이 시점에서 부트 로더는 직렬 라인을 통해 새 코드를 가져 와서 파티션에 덤프 할 수 있어야합니다 (예, 일종의 파티션 테이블 처리를 구현합니다 ... 표준 PC 규칙을 준수하는지 여부는 현재 사용자에게 달려 있습니다. ), 실행합니다.

거기에서 훨씬 더 정교한 기능을 작업 할 수 있어야합니다. 이베이스에서 새 "커널"을 작성하고 컴파일 할 수 있습니다. 테스트 베드를 재부팅하고 새 커널을 배포 할 수 있습니다.

(부트 로더는 다운로드를 건너 뛰고 기존 이미지를 부팅하기위한 명령으로 직렬 핸드 셰이 킹 행에 대한 BREAK와 같은 신호를 받아야합니다. 또한 이러한 방식으로 시간 초과를 처리해야합니다).

거기에서 아주 간단한 터미널 레이어와 명령 셸을 작성 하시겠습니까? 파일 시스템? 커널 (일종의 파일 또는 개체)이 아닌 새로운 실행 가능 콘텐츠를 다운로드하는 명령을 구현합니다. 등등.

당연히 PC 키보드와 비디오를 사용하는 콘솔 드라이버로 시작할 수 있습니다 (올바르게 기억한다면 각각 BIOS INT 0x16h 및 INT 0x10H 항목). 그러나 다른 기존 (기능적) 시스템에서 빌드 / 배포 / 테스트주기를 자동화 할 수 있으므로 직렬 드라이버로 시작하는 것이 좋습니다. 새 OS가 크로스 컴파일 된 프로젝트로 시작되기 때문에이를 처리하는 능률적 인 방법을 갖추는 것이 필수적입니다.

프로젝트를 얼마나 진행하고 싶은지 모르겠습니다. 합리적으로 인상적인 목표는 "셀프 호스팅"을 달성하는 것입니다. 새 OS를 사용하여 새 OS의 작동 버전으로 (재) 빌드, 연결 및 부팅 할 수있는 간단한 어셈블러 / 컴파일러를 만들 수 있다면 그 목표를 달성 한 것입니다. (필수 사항은 아닙니다. 많은 임베디드 시스템은 절대 자체 호스팅이되지 않으며 그에 따른 문제는 없습니다.)


하드웨어 가상화 사용에 신경 쓰지 않는다면 'Nand에서 Tetris로'를 안내하는 코스 (책 + 강의 + 소프트웨어)가 있습니다. (이러한 목적을 위해 원자적이고 주어진) 전기 NAND 게이트에서 OS, 언어를 구축하고 마지막으로 개인용 컴퓨터에서 간단한 게임을 코딩하는 것까지 전체 컴퓨터 시스템을 완전히 직접 만듭니다.

나는 그것이 좋은 아이디어라고 생각하며 조만간 완전히 멈출 계획입니다. 이 책은 놀랍도록 저렴하며 MIT에서 강의를한다고 생각합니다. 처음부터 직접 구축 한 전체 시스템에 대한 완전하고 완전한 지식을 갖는 것보다 더 큰 느낌은 상상할 수 없습니다.

링크 : http://www1.idc.ac.il/tecs/


저는 작게 시작하여 8086 임베디드 개발 키트를 구입하여 멀티 태스킹 OS를 개발했습니다. 커널이 있고 하드웨어 수준에서 작업하는 데 익숙해지면 더 어려운 작업을 수행 할 준비가 된 것입니다.

심지어 VGA 디스플레이 DOS 클론을 구축하는 것은 상당히 어려운 일입니다. 세부 사항은 엄청납니다. :-)

특정 주제.

컴퓨터에 코드를 어떻게 입력합니까? 플로피 디스크를 사용하는 것이 가장 좋습니까? 대부분의 컴퓨터가 USB 스틱에서 할 수 있습니까?

BIOS는 기본 부트 스트랩을 수행합니다.


어떤 드라이버가 필요하며 이러한 드라이버를 구축하는 데 참고할 사항이 있습니까?

직접적인 CPU / 메모리 작업이 아닌 모든 것. CPU 참조 설명서에 직접 포함되지 않은 모든 것.


부팅 순서 후-그럼 어떻게됩니까? 보호 모드 등으로 들어가려면 어떻게해야합니까?

보호 모드는 부팅 순서의 일부입니다.

그런 다음 멀티 태스킹을 시작하고 프로세스를 시작하는 방법을 알아냅니다.


운영 체제의 도움없이 메모리를 관리하려면 어떻게합니까? 원하는 주소 만 사용합니까? 초기화가 필요하지 않습니까?

옳은. 결국 가상 메모리 시스템을 분류하고 싶을 것입니다.


의심 할 여지없이 저를 혼란스럽게하는 것은 무엇입니까?

디버깅 도구 없음, IO 없음


명령 줄 O / S 및 그래픽 O / S로 만들려면 어떻게해야합니까?

슬픔으로. Windows 3.1 및 Linux, 특히 X 창을 찾습니다.


그래픽 O / S는 무엇을 기반으로합니까? 예를 들어, 맨 위에 글꼴과 그림이있는 명령 줄과 같은 작업을 어떻게 수행 할 수 있습니까?

X 창을 찾습니다.


마지막 조언 : 리눅스 / x 윈도우를 공부하세요. 완벽하지는 않지만 한 가지 접근 방식에 대한 이해를 제공합니다 . 또한 임베디드 시스템을 연구하십시오.


OS 개발 사이트에 대한 좋은 참고 자료가 많이 있으므로 다른 접근 방식을 설명하겠습니다.

베어 메탈에서 OS를 구현하는 경험을 원한다면 구형 PC보다 더 나은 하드웨어 선택이 있습니다. PC 아키텍처를 사용하면 30 년 디자인 역사의 흥미롭지 않은 인공물을 코딩하는 데 지나치게 많은 시간을 할애하게됩니다. 예를 들어, 프로젝트의 부트 로더 부분 만이 용감한 프로그래머를 많이 태 웠을 것입니다.

예를 들어, 디스크 및 / 또는 네트워크에서 커널을 읽으려면 한 세트의 드라이버가 필요합니다. 그런 다음 보호 모드로 들어가려면 코드가 필요합니다. 이 시점에서 다른 드라이버 세트가 필요합니다! 이 시점 이후에는 칩을 보호 모드로 전환하기 위해 수행하는 작업 중 거의 양도 할 수 없습니다. 4 년 이상 다른 PC에서 실행하고 싶은데 또 다른 드라이버 세트가 필요합니다.

ARM 또는 기타 32 비트 "임베디드"칩의 부트 스트랩을 살펴보십시오. 저렴한 개발 보드를 사용할 수 있거나 직접 납땜 할 수 있습니다! 일부는 이더넷과 USB가 내장되어 있습니다. 건전하고 딱딱하지 않은 아키텍처에서 작업하는 것이 더 재미있을 것이며 아마도 재사용 가능한 기술로 끝날 것입니다.


무엇보다 실제 하드웨어에서 실행하려면 프로세서 설명서의 사본이 절대적으로 필요합니다. 인텔 설명서 ( http://www.intel.com/products/processor/manuals/ )는 매우 귀중합니다. 모드 전환 (실제 / 보호)에서 가상 메모리 관리 (그 정도까지 선택하는 경우), 시스템 호출 (사용자 모드를 수행하는 경우)에 이르기까지 모든 것을 다룹니다. 가장 중요한 것은 TSS 및 세그먼트 레지스터와 같이 기능을 수행하기 위해 설정해야하는 여러 가지 사항을 매우 자세하게 설명하며 대부분의 OS 텍스트는 프로세서보다 높은 수준의 개념에 더 관심이 있기 때문에 논의하지 않습니다. 구체적인 세부 사항.


BrokenThorn OS 개발 시리즈에 관심이있을 것입니다.


MikeOS와 같은 작은 기본 오픈 소스 OS의 코드를 읽으십시오.

또는 다음 단계를 제안합니다 (재미있을 것입니다!).

  1. 가상 머신을 작성합니다. 시스템 내부와 외부를 알 수 있도록 모든 프로세서 명령을 정의하십시오. 키보드, 마우스, 화면, 오디오 액세스를 위해 SDL과 인터페이스합니다. 한 번에 모든 것을 머릿속에 넣을 수 있도록 단순하게 유지하십시오. 최첨단 가상 머신 일 필요는 없으며 '실제'컴퓨터의 기능을 모방 할 수있는 가상 머신 일뿐입니다.
  2. 가상 머신의 프로세서에 대한 어셈블러를 작성하십시오. 이 어셈블러는 가상 머신의 언어로 작성된 프로그램 일 필요는 없지만 어셈블리 언어를 머신 코드로 변환 할 수있는 모든 것입니다.
  3. 실행 가능한 형식을 정의하고 간단한 링커를 작성합니다.
  4. 이제 운영 체제를 작성하는 데 필요한 모든 부분이 준비되었습니다! 어셈블리 언어로 작성하고, 어셈블합니다. 등등 .. 복잡한 부트 로딩 프로세스가 필요하지 않습니다. 먼저 시스템에서 OS를 실행하도록하십시오.

위의 단계는 간단한 OS를 작성하는 데 약간 어리석은 것처럼 보일 수 있지만 이건 정말 재미 있습니다.


MikeOS를 확인하십시오 . 작성된 상당히 간단한 OS는 (주석이있는 것처럼) 어셈블리를 읽을 수 있습니다. 매우 간단하지만 GUI가 있으며 일부 네트워킹 및 멀티미디어를 지원합니다.

편집 : MenuetOS 는 그래픽입니다. 그것도 쓰여진 것은 곧은 asm이지만 MikeOS보다 더 정교합니다.


야심 찬 목표가 있습니다. 그러나 실행이 핵심입니다.

대부분의 구조화 된 접근 방식 (교과서 또는 대학 수업)은 프로세스를 안내하지만 선택한 플랫폼의 난해한 세부 사항을 은폐하고 큰 그림 아이디어에 집중할 수있는 핵심적인 코드를 많이 제공합니다. 프로세스 스케줄링, 메모리 관리, 교착 상태 방지, I / O 등.

제 충고는 이것이다 : 기대치를 낮추고 기본적인 질문으로 시작하라.

운영 체제 란 무엇입니까?

컴퓨터 과학자는 OS가 그래픽 사용자 인터페이스, 웹 브라우저, USB 장치를 연결하는 방법 또는 사용자가 실제로 보거나 만질 수있는 모든 것을 결코 말하지 않을 것입니다. 대신, 가장 기본적인 수준의 OS는 위에서 언급 한 것들입니다. 그것들은 모두 자원 관리라는 하나의 큰 우산에 속합니다.

운영 체제는 메모리, CPU 및 주변 장치와 같은 컴퓨터의 하드웨어 리소스를 관리하는 프로그램에 지나지 않습니다.

다음은 간단한 운영 체제입니다. 프로그램을 사용하면 직렬 연결을 사용하여 프로그램 (16 진수 또는 이진)을 입력 할 수 있습니다. 프로그램을 입력하면 프로그램이 실행됩니다. 프로그램이 완료되면 제어권이 사용자에게 반환되어 프로그램을 다시 실행하거나 새 프로그램을 입력 할 수 있습니다.

64K 정도의 메모리가있는 임베디드 ARM 프로세서와 같은 "깨끗한"아키텍처에서이 작업을 수행하십시오. ARM에 대해 배우고 며칠 후에 어셈블리에서이를 코딩 할 수 있습니다. 그리고 짜잔! , 운영 체제가 있습니다.

OS가 수행해야하는 모든 작업을 수행합니다.

  • 사용자가 OS 자체를 덮어 쓰지 못하도록하여 메모리를 관리합니다.
  • 실행할 단일 프로세스를 예약합니다.
  • 단일 직렬 주변 장치에 대한 I / O를 처리합니다.

이를 통해 시작할 수있는 빌딩 블록이 제공됩니다. 이제 많은 선택권이 있습니다. 아마도 그중 하나는 두 개의 프로그램을 메모리에로드하고 사용자가 다음에 실행할 프로그램을 결정하도록하는 것입니다.

또는 사용자가 한 프로그램의 실행을 일시 중지하고 다른 프로그램으로 전환 한 다음 일시 중지하고 다시 전환하도록 할 수 있습니다. 이것은 완전히 수동이지만 초보적인 멀티 태스킹입니다.

당신의 선택은 무제한이지만 각각은 당신이 이전에 가졌던 것의 아기 단계입니다.

시야를 너무 높게 설정하지 않으면 재미 있어요!


StackOverflow : How to get started in operating system development에서 리소스 목록을 유지합니다 . 모험을 시작할 때 새 리소스를 추가하세요. (I 'm to begin :))


많은 학교에는 설명하는 내용의 대부분을 수행하는 OS 수업이 있습니다. 우리 학교 (CMU)는 C로 OS를 가르치고 커널, 파일 시스템 및 셸을 작성하고 부트 로더 용 코드를 제공 받았습니다.

안타깝게도 웹에서이 과정 (15-412)에 대한 확실한 리소스를 찾을 수 없었으며 시간이 지남에 따라 발전했습니다. 그러나 아마도 사람들은 웹에 좋은 리소스가있는 학교의 소스와 과제에 대한 링크를 게시 할 수 있습니다.


"Roll your own toy UNIX-clone OS"라는 튜토리얼을 즐길 수 있습니다. 튜토리얼은 매우 통찰력이 있으며 당신의 길에 도움이 될 것입니다.

행운을 빕니다.


훔칠 수있는 아이디어에 대해 A2 시스템 (이전의 Oberon 시스템 )을 연구하십시오 . 두 사람이 만든 그래픽 OS이지만 한 사람은 Niklaus Wirth입니다. 1990 년경에 처음 출시되었으며 속도는 놀랍도록 좋습니다. Gutknecht의 책이 있습니다.


저수준 그래픽 프로그래밍에 대해서는 http://www.osdever.net/FreeVGA/home.htm 에서 많은 정보를 제공합니다 . (텍스트 모드에서도 매우 흥미 롭습니다.)

의심 할 여지없이 저를 혼란스럽게하는 것은 무엇입니까?

PC에는 불분명 한 것들이 엄청나게 많다는 것을 알게 될 것입니다. x86 명령어 세트 자체는 복잡하고 하드웨어에 직접 액세스 할 때 화면에 단일 문자를 쓰는 방법을 이해하는 데 상당한 시간이 걸릴 수 있습니다. .

플로피 디스크 등에 대해 걱정하지 마십시오. 대부분의 경우 Bochs 또는 QEmu와 같은 에뮬레이터를 사용합니다.


Abraham Silberschatz의 운영 체제 개념을 살펴 보는 것이 좋습니다. 시스템 프로그래밍 개념을 이해하는 것은 기본적인 요구 사항입니다. OSes linux * BSD 및 GNU / Linux , 특히 이전 버전의 F / OSS 커널 내부를 살펴보십시오. 좀 더 문서화되어있을 것입니다.대체 텍스트 대체 텍스트


Minix를 살펴보십시오 . " 운영 체제 설계 및 구현 " 과 함께 소스 코드를 연구하십시오 . 프로젝트에 기여하는 것을 고려하십시오. 저는 Minix가 정말 훌륭하고 유망한 OS라고 생각합니다. 또한 자금이 잘 지원되는 프로젝트입니다. 즉, 기부금에 대한 대가를받을 수도 있습니다!


BIOS에는 이미 화면 모드 변경, 픽셀 색상 변경, 화면에 텍스트 쓰기 등을위한 많은 입력 / 출력 기능이 내장되어 있기 때문에 매우 쉽습니다. 그러나 파일 시스템에 대한 지원은 포함되어 있지 않습니다. 이는 OS에 통합해야하는 몇 안되는 사항 중 하나입니다.

BIOS는 하드 드라이브의 첫 번째 섹터를로드하고 거기에서 코드 실행을 시작하므로 OS는 하드 드라이브의 첫 번째 섹터에 첫 번째 명령과 함께 배치되어야합니다.

이 Wikipedia 기사는 화면에 텍스트를 작성하고 키보드 및 기타 항목에서 키를 수신하기위한 BIOS 인터럽트를 시작하도록합니다. https://en.wikipedia.org/wiki/BIOS_interrupt_call

c ++을 사용하는 하드웨어 작동 방식을 이해하는 것이 중요합니다.

참고 URL : https://stackoverflow.com/questions/1224617/how-can-i-build-a-small-operating-system-on-an-old-desktop-computer

반응형