창문 아래에서 bochs 실행

간략한 소개 : Bochs는 주로 x86 아키텍처를 기반으로하는 무료 오픈 소스 PC 에뮬레이터입니다. 이 시뮬레이터에서 linux0.11 커널을 배우는 것이 좋습니다.

  • 환경 설정 단계 :

1. Linux0.11 시스템 패키지 다운로드이 링크의 다운로드 패키지에는 이미 Bochs 소프트웨어가 포함되어 있습니다.

http://oldlinux.org/Linux.old/bochs/linux-0.11-devel-040329.zip 링크를 클릭하여 엽니 다.
2. linux-0.11-devel-040329.zip의 압축을 풉니 다. 디렉토리 구조는 다음과 같습니다.

 

 

여기에서 실제로 사용되는 파일은 Bochs-2.1.1.exe, bochsrc-hd.bxrc, bootimage-0.11, bootimage-0.11-hd, hdc-0.11.img입니다.

3. Bochs-2.1.1.exe를 클릭하여 설치합니다.

4. 설치가 완료되면 linux-0.11-devel-040329에있는 모든 파일을 방금 설치 한 bochs 아래의 루트 디렉토리에 복사하십시오. 원래 디렉토리는 다음과 같습니다.

복사 후 디렉토리는 다음과 같습니다.

 

 

5. 복사가 완료된 후 bochsrc-hd.bxrc를 실행합니다. 설치에 성공하면 열면 다음 인터페이스를 볼 수 있습니다.

 

 

이것은 이미 x86PC 시뮬레이터에 구축 된 Linux 운영 체제입니다. Linux 운영을위한 Linux 운영 플랫폼 명령을 설정합니다. 운영 체제를 배울 필요가 있기 때문에 우리는 운영 체제를 컴파일하고 Linux 커널을 이해하는 능력을 얻기 위해 Linux에서 간단한 소스 코드 수정을 완료해야합니다. 다음으로, 우리는 주로 리눅스 커널 소스 코드의 수정과 커널 컴파일 과정을 보여줍니다. Linux 버전으로 인해 성공적으로 컴파일하려면 코드를 조정해야합니다.

 

  • 커널 컴파일 프로세스 :

 

1. / usr / src / linux 디렉토리를 입력하고 아래 그림과 같이 cd ../src/linux 명령을 입력하십시오.

 

 

2. 컴파일하려면 make clean 및 make 명령을 입력합니다.

 

 

다음과 같은 오류가 나타나는 경우 : gcc-cc1 : 잘못된 옵션 "string-insns". 이것은 Linux 디렉토리의 Makefile에서 -mstring-insns 매개 변수를 제거하기위한 것입니다. 또한 각 하위 디렉토리 fs, lib, kernel 및 커널 디렉토리 아래의 세 드라이버 하위 디렉토리 (math, blk_drv, chr_drv)에있는 Makefike의 -mstring-insns 매개 변수가 제거됩니다. 여기에서는 루트 디렉토리에있는 Makefile 파일의 수정 만 보여줍니다.

3, 依次 修改 : / linux / Makefile / linux / fs / Makefile / linux / lib / Makefile,

/ linux / kernel / Makefile, / linux / kernel / math / Makefile, / linux / kernel / blk_drv / Makefile, / linux / kernel / chr_drv / Makefile. linux 디렉토리에서 다음을 입력하십시오. vi Makefile. 아래 그림과 같이:

 

 

파일에서 -mstring-insns 매개 변수를 찾아 삭제하고 저장하십시오.

4. / usr / local / bin에서 ar 파일을 찾고 ar 이름을 gar로 변경하고 다음 명령을 입력합니다. mv ar gar. 아래 그림과 같이:

 

 

5. linux 디렉토리로 돌아가서 make clean과 make를 다시 입력하여 커널 컴파일 링크를 완료합니다.

 

 

위의 프롬프트가 나타납니다. 즉, 표면 프로그램이 성공적으로 컴파일되었습니다. 컴파일 후 운영 체제의 기능을 확장하고 운영 체제를 학습하는 목적을 달성하기 위해 커널 소스 코드를 수정할 수 있습니다. 여기서는 부팅 후 개인화 된 문자열을 출력하도록 Linux 운영 체제 용 bootect.s 부팅 항목의 소스 코드를 간단히 수정합니다.

6. / usr / src / linux / boot 디렉토리를 입력하고 bootsect.s 소스 코드를 수정 한 후 저장하고 종료하십시오.

 

! Print some inane message
mov    ah,#0x03        ! read cursor pos
xor    bh,bh
int    0x10
mov    cx,#47
mov    bx,#0x0007        ! page 0, attribute 7 (normal)
mov    bp,#msg1
mov    ax,#0x1301        ! write string, move cursor
int    0x10
msg1:
.byte 13,10
.ascii "Loading system ...this is create by demon"
.byte 13,10,13,10
.org 508

 

7. 수정이 완료된 후 linux 디렉토리에서 make 명령을 다시 입력하여 컴파일을 완료합니다.

8. 성공적으로 만든 후 부팅 이미지 파일 이미지를 생성합니다. 이 이미지 파일을 출력해야하는 경우 먼저 bootimage-0.11-hd 파일을 백업 한 후 다음 명령을 사용하여 bootimage-0.11-hd를 새 부팅 파일로 바꾸고 다음 명령을 입력합니다. dd bs = 8192 if = 이미지 = / dev / fd0. 아래 그림과 같이:

9 Linux 운영 체제를 다시 시작하려면 재설정을 클릭합니다. 아래 그림과 같이:

 

추천

출처blog.csdn.net/wyyy2088511/article/details/111351584