2010-02-03 3 views
14

간단한 부팅 가능한 hello world 프로그램을 만들기 위해 어떤 경로/단계를 안내해 줄 수 있습니까? C/C++에 대한 기본 지식이 있습니다.간단한 부팅 가능한 C 프로그램 만들기 시작하기

내 목표는 매우 간단 OS를 만드는 것입니다.

가능한 한 참조 및 샘플과 관련된 많은 링크가 필요합니다.

+3

용어 bootloader를 검색하십시오. 온라인에서 이용할 수있는 수많은 자원. 참조하십시오 : http://www.codeproject.com/KB/tips/boot-loader.aspx – dirkgently

+0

여기에 큰 질문은 "어떤 프로세서에서?"라고 생각합니다. 대부분의 경우, 그 프로세서의 부트 로더를보고 아이디어를 얻는 것이 좋습니다. 예, 프로그램을 진정으로 독립적으로 사용하려면 어셈블러, 기본 출력 루틴 등을 작성해야합니다. –

+0

다소 http://stackoverflow.com/questions/2145501/writing-an-operating-system-in-c/2145556#2145556 – sud03r

답변

5

그것은 매우 기본적인 부트 로더에 대한 튜토리얼입니다 this. 참조하십시오. C/C++와는 많이 관련이 없지만 부트 로더의 기본 구성 요소에 대한 정보가 있습니다. 당신이 빌딩 블록 정말 궁금하다면

는 교과서의 형태로보다 깊이있는 자원이있다. 예를 들어이 자습서에서는 부트 로더가 55 AA으로 끝나야하는 이유를 설명하지 않습니다. 또한 비교적 좁은 편입니다.

+1

OSdever.net을 (를) 연결 해 주셔서 감사합니다. 누구든지 질문이 있으면 forums.osdever.net을 시도하십시오. 우리는 서로를 돕는 데 꽤 능숙합니다;) – Brenden

+1

이 답변은 실제로 SO의 정신이 아닙니다. 늦었 어. 알아. – corazza

0

당신은 정적으로 링크 된 바이너리 (반군 ld.so)를 구축하고자, 당신은 그 진입 점에 점프하여 시작합니다. 진입 점은 일반적으로 .text 섹션의 시작입니다. Maye는 주소를 찾기 위해 objdump -section-headers 이미지을 실행합니다.

당신은 임베디드 OS의 커널을 내장하고 부팅 방법을 확인, 임베디드 디바이스에서 실행하려는 경우. 예를 들어, U-Boot가 Ångström 리눅스 기반 시스템을 가져 오는 방법을보십시오.

관련 문제