Responsive image
博碩士論文 etd-0627107-123314 詳細資訊
Title page for etd-0627107-123314
論文名稱
Title
MinixARM:移植Minix 3到以ARM為基礎的嵌入式系統
MinixARM: A port of Minix 3 to an ARM-based embedded system
系所名稱
Department
畢業學年期
Year, semester
語文別
Language
學位類別
Degree
頁數
Number of pages
102
研究生
Author
指導教授
Advisor
召集委員
Convenor
口試委員
Advisory Committee
口試日期
Date of Exam
2007-06-22
繳交日期
Date of Submission
2007-06-27
關鍵字
Keywords
作業系統、嵌入式系統
Embedded System, ARM, Operating System
統計
Statistics
本論文已被瀏覽 5651 次,被下載 0
The thesis/dissertation has been browsed 5651 times, has been downloaded 0 times.
中文摘要
作業系統在理論方面相對於許多領域已是相當成熟的,但是要實做一個作業
系統卻相較之下難上許多。舉例來說,Virtual Memory的技術在20年前就已經發展出
來了,要了解這著機制在作業系統中到底如何實做卻不是一件簡單的事。
Minix是最初被用來作為教學用的小型作業系統。但是,麻雀雖小,五臟俱
全,他具備了作業系統開具備的各種要素,並且對應了POSIX的API,是一個完整
的類UNIX作業系統。Minix的第三版已經是一個真正的微內核架構,並且被應用在
嵌入式系統上。微內核的高容錯性與高模組化設計讓應用多變的嵌入式系統的開發
更具彈性。
但是,Minix 3目前只有X86的版本,這篇論文的目的是將Minix移植到
以ARM為基礎的嵌入式系統。以他作為一個實驗性的嵌入式系統平台。並且,因
為Minix 3和IA-32採用的segmented記憶體管理機制和ARM所提供的unsegmented記憶
體管理機制並不相容,所以我們也提供了一組API,簡化了移植的工作。
Abstract
Theories in operating systems are relatively matured, but implementations are hard
compared to many areas in computer science. For example, virtual memory has been around
for more than 20 years since its introduction, but, to understand how an operating system
supports virtual memory is not a trivial task, let alone implementation.
Minix is an operating system that has been designed for educational purpose. It’s a
good starting point for a novice who wants to learn operating systems. The third version of
Minix has been moved towards a true microkernel design and targeted at small computers and
embedded systems. The advantages of microkernel architecture is its high fault tolerance and
high modularity design which can make it much more flexible for versatile applications on
embedded systems.
However, to the best of our knowledge, Minix 3 only runs on Intel-based machine so
far. The objective of this thesis is thus to port Minix 3 to ARM-Based embedded systems, to
make it an experimental microkernel for embedded systems. Also, due to the incompatibility
between the segmented memory model used by Minix 3 on IA-32 and the unsegmented
memory model support by ARM, we also provide an API to simplify the porting effort.
目次 Table of Contents
List of Tables iv
List of Figures v
List of Listings vi
Chapter 1 Introduction 1
1.1 Introduction to Microkernel
1.2 Microkernel and Embedded System
1.3 Introduction to Minix
Chapter 2 Related Hardware and Software
2.1 Target Platform
2.2 Tool-chains
2.2.1 arm-linux-gcc v.s arm-elf-gcc
2.3 The SkyEye Simulator
2.4 Bootstrap Loader
2.5 Difference in Address Space between Monolithic Kernel and Microkernel
Chapter 3 Porting the Minix 3 Kernel
3.1 Overview
3.2 Introduction to Minix 3 Kernel
3.3 Implementation on SkyEye
3.3.1 Bootstrapping
3.3.2 Starting up the First Process
3.3.3 Sending Messages to the Virtual Console
3.3.4 Putting All Together
3.3.5 Implementation of Software Interrupt
3.4 Moving from SkyEye to Hardware Platform
3.4.1 Loading the Kernel Image to the Target Platform
3.4.2 Porting U-Boot to the Target Platform
3.4.3 Changes Made for the Target Platform
3.4.4 Simplifying the Context Switch Code
3.5 Implementation of Interrupt Dispatcher
3.5.1 Introduction to S3C2410 Interrupt Controller
3.5.2 Overview of Minix 3 Interrupt Dispatcher
3.5.3 Details of Implementation
3.5.4 Testing
Chapter 4 Porting Upper Layer Software
4.1 Overview
4.2 Memory Management Unit (MMU)
4.2.1 Memory Object Abstraction
4.2.2 Implementation
4.3 Upper Layer Software
4.3.1 Memory Driver
4.3.2 File System Server
4.3.3 Terminal driver
4.3.4 Process Manager Server
4.3.5 setjmp() and longjmp()
Chapter 5 Related Work
5.1 L4 Microkernel Family
5.2 Features Being Added on Minix 3
5.3 Minix-vmd
Chapter 6 Conclusion and Future Works
6.1 Conclusion
6.2 Future works
參考文獻 References
[1] M. Accetta, R. Baron, W. Bolosky, D. Golub, R. Rashid, A. Tevanian, and M. Young,
“Mach: A New Kernel Foundation for UNIX Development,” in Proceedings of the
USENIX 1986 Summer Conference, 1986, pp. 93–112.
[2] A. S. Tanenbaum, J. N. Herder, and H. Bos, “Can we make operating systems reliable
and secure?” IEEE Computer, pp. 44–51, Apr 2006.
[3] J. N. Herder, H. Bos, B. Gras, P. Homburg, and A. S. Tanenbaum, “Modular System
Programming in Minix 3,” The USENIX Magazine, vol. 31, no. 2, pp. 19–28, 2006.
[4] A. S. Tanenbaum and A. S. Woodhull, Operating Systems: Design and Implementation.
Upper Saddle River, NJ: Prentice Hall, 1987.
[5] ——, Operating Systems: Design and Implementation. Upper Saddle River, NJ: Prentice
Hall, 1997.
[6] ——, Operating Systems: Design and Implementation. Upper Saddle River, NJ: Prentice
Hall, 2006.
[7] J. N. Herder, “Towards a true microkernel operating system,” Master’s thesis, Vrije Universiteit,
Amsterdam, 2005.
[8] Microtime. Create arm920t-s3c2410 board. [Online]. Available: http://www.microtime.
com.tw/English/PreSOC.htm
[9] S. Electronics, S3C2410X 32-Bit RISC Microprocessor User’s Manual, Revision 1.2,
2003.
[10] The SkyEye Project. [Online]. Available: http://www.skyeye.org
[11] I. Corporation, Intel Architecture Software Developer’s Manual, Volume 2: Instruction
Set Reference Manual, 1999.
[12] A. Limited, ARM920T (Rev 1) Technical Reference Manual, 2001.
[13] A. Sloss, D. Symes, and C. Wright, ARM System Developer’s Guide: Designing and
Optimizing System Software. San Francisco, CA: Elsevier, 2004.
[14] A. Limited, Procedure Call Standard for the ARM Architecture, 2006.
[15] S. Chamberlain, Using ld: The GNU linker, version 2, Jan 1994.
[16] Jin-Wha Gu, “Process manager and fast context switch on minixarm,” Master’s thesis,
National Sun Yat-sen University, Kaohsiung, Taiwan, 2007.
[17] J. R. Levine, Linkers and Loaders. San Francisco, CA: Morgan-Kauffman, 1999.
[18] Qemu: Open Source Processor Emulator. [Online]. Available: http://www.qemu.org
[19] L4 microkernel family. [Online]. Available: http://www.l4hq.org
[20] H. H‥artig, M. Hohmuth, J. Liedtke, S. Sch‥onberg, and J. Wolter, “The performance of
u-kernel-based systems,” in Proceedings of 16th ACM Symposium on Operating Systems
Principles (SOSP’97), Saint-Malo, France, Oct 1997.
[21] System architecture group. L4KA::Pistachio microkernel. [Online]. Available: http:
//l4ka.org/projects/pistachio/
[22] TU-Dresden operating systems. DROPS operating system. [Online]. Available:
http://os.inf.tu-dresden.de/drops/
[23] B. Gerofi, “Design and implementation of the minix virtual file system,” Master’s thesis,
Vrije Universiteit, Amsterdam, 2006.
[24] I. Alting, “A port of the minix os to the powerpc platform,” Master’s thesis, Vrije Universiteit,
Amsterdam, 2006.
[25] Minix-vmd distribution. [Online]. Available: http://www.minix-vmd.org/
[26] Micrium Inc. Micro-C OS/2, Real-time priority based preemptive micro kernel.
[Online]. Available: http://ucos-ii.com/
[27] G. Harvey. Minix on the Prisma. [Online]. Available: http://dialspace.dial.pipex.com/
town/way/fr30/
電子全文 Fulltext
本電子全文僅授權使用者為學術研究之目的,進行個人非營利性質之檢索、閱讀、列印。請遵守中華民國著作權法之相關規定,切勿任意重製、散佈、改作、轉貼、播送,以免觸法。
論文使用權限 Thesis access permission:校內校外均不公開 not available
開放時間 Available:
校內 Campus:永不公開 not available
校外 Off-campus:永不公開 not available

您的 IP(校外) 位址是 3.138.125.2
論文開放下載的時間是 校外不公開

Your IP address is 3.138.125.2
This thesis will be available to you on Indicate off-campus access is not available.

紙本論文 Printed copies
紙本論文的公開資訊在102學年度以後相對較為完整。如果需要查詢101學年度以前的紙本論文公開資訊,請聯繫圖資處紙本論文服務櫃台。如有不便之處敬請見諒。
開放時間 available 已公開 available

QR Code