9 리눅스 0.11 체험 학습 운영 체제에서

간략한 소개

2019 년 가을, 나는 (이 오래된 리눅스 0.11 기록을 기반으로하지만) 항목이 좋은 선택이 그들의 자습서 및 운영 체제의 실험 설계 느낌, HIT 운영 체제에서 과정을 가르쳤다. 실험은 대략 같은 시작 인터럽트 주변 IO, 문맥 전환 / 시스템 콜, 공정 관리 및 스케줄링 간 통신, 메모리 관리 / 어드레스 변환 및 파일 시스템과 같은 운영 시스템의 핵심 개념을 커버. 그리고 교과서에서 각 실험에 대한 설명은 해당하지만, 매우 원활하고있다. 나는 일부 리소스를 컴파일 완료 후, 우리는 자율 학습 학생들의 일부를 도움이되기를 바랍니다.


안내 자료

사용되는 교재는 리튬 Zhijun 리우 Hongwei 및 컴파일 "Caozuoxitong 원리를 구현하고 연습"(ISBN : 978-7-04-049245-3), 당신은 할 수 있습니다 여기에 얻을. 실험 및 해당 과정뿐만 아니라,이 책은 GUI 및 네트워크 프로토콜을 구현, 여전히 커널 수준 스레드, 가상 메모리를 포함한 네 개의 주요 항목의 최종 디자인입니다.

또한, 조 Jiong 편집 "리눅스 커널 전체 노트 - 커널 버전 0.11"좋은 참고서도, 당신은 할 수 있습니다 여기에 얻을.


실험 자료

당신은 할 수 있습니다 해킹 - 리눅스 - 0.11 개발 환경에 필요한 도구에 액세스 할뿐만 아니라, 각 실험에 대한 참조 코드, 예제 및 고려 사항의 효과를. 다음과 같이 창고 레이아웃에 대한 설명은 다음과 같습니다

  1. oslab.zip : 원래 리눅스 코드는 0.11이며, GNU / 리눅스 도구를 사용하면은 Bochs와 2.3.7과 GCC 3.4으로 개발해야합니다.

  2. TMP / : 기타, 메인 실험은 중요하지 않습니다.

  3. . 연구소 6.Ext 인쇄 페이징 상태 / : 6 파일럿의 완료 후, 나는 실험에게 인쇄 된 페이지 주소 변환을 설계했습니다.

  4. 인이 포함 된 각 디렉토리에 책 대응의 여덟 팔 카탈로그에 다른 실험 원래 리눅스 0.11 파일 변경에 상대 하는 README.md뿐만 아니라, 실험 결과의 고려 사항 및 예제를 설명합니다.


사용하여 rsynccp도구의 종류, 우리는 쉽게 원래 리눅스 0.11 코드를 수정하고 수정 된 커널을 실행할 수 있습니다. 예를 들어, 내 컴퓨터에서, 당신은 bash는 명령에 해당하는 커널 다음 랩 6.Ext를 실행할 수 있습니다 :

qiuhaoli@VM:~/tmp/oslab$ rsync -a ../Hack-Linux-0.11/Lab\ 6.Ext.\ Print\ paging\ status/linux-0.11/ ./linux-0.11/

qiuhaoli@VM:~/tmp/oslab$ sudo ./mount-hdc 

qiuhaoli@VM:~/tmp/oslab$ cd ./hdc/usr/include/

qiuhaoli@VM:~/tmp/oslab/hdc/usr/include$ sudo cp ../../../../Hack-Linux-0.11/Lab\ 6.Ext.\ Print\ paging\ status/hdc/usr/include/* .

qiuhaoli@VM:~/tmp/oslab/hdc/usr/include$ cd ../../..

qiuhaoli@VM:~/tmp/oslab$ cd linux-0.11/

qiuhaoli@VM:~/tmp/oslab/linux-0.11$ make && ../run


빌드 환경

이 다운로드 oslab.zip 후에는 참조 할 수 있습니다 HIT-설명서 전체 빌드의 실험 환경을 제공합니다. 32 비트 라이브러리 빌드 프로세스의 부족 문제가 발생할 수 있습니다, 당신은 해당하는 32 비트 라이브러리의 버전 또는하여 설치를 지정할 수 있습니다 multilib와 같은 해결 :

qiuhaoli@VM:~/tmp$ sudo apt install  gcc-multilib linux-libc-dev:i386


또한, 일부 헤더 파일이나 라이브러리는 다른 GNU / 리눅스 배포판에 배치됩니다, 또는 시스템 위치의 다른 버전은 예를 들어 다를 수 있습니다, /usr/include/asm그리고 /usr/include/asm-generic몇 가지 링크 할 수 있습니다 :

qiuhaoli@VM:~/tmp$ ln -s /usr/include/asm-generic /usr/include/asm


당신이 파일을 알거나 도서관에 그 대응 폴더 없을 때 마지막으로, 당신은 사용할 수 있습니다 apt-file예를 들어, 찾기이 도구를 :

qiuhaoli@VM:~/tmp$ apt-file search /usr/include/asm

gcc-multilib: /usr/include/asm
linux-libc-dev: /usr/include/asm-generic/auxvec.h
...




추신

이러한 좋은 실험,하지만 때문에 오래된 플랫폼과 코드의 디자인뿐만 아니라 C 자체의 일부 기능 등을 있지만, 실험의 과정에서 항상 몇 가지 문제가 역사 또는 디자인 결함으로 남은 발생합니다. 당신이에 관심이 있다면 제발 연락 날은, 지금부터, RISC-V 플랫폼을 기반으로 사용 녹는 교육 중심의 운영 체제를 쓰기 위해 노력하고있어!

추천

출처www.cnblogs.com/liqiuhao/p/12128070.html