2018-02-03 22:33:37 +08:00
INTRODUCTION
2012-10-07 12:05:06 +08:00
============
2012-09-19 14:41:55 +08:00
ucore labs was used as OS Experiments in OS Course Of Dept. of Computer Science & Technology, Tsinghua University.
2012-09-19 14:40:45 +08:00
2012-08-26 23:42:26 +08:00
ucore is a teaching OS which is derived from xv6& jos in MIT, OS161 in Harvard and Linux.
2018-02-03 22:36:41 +08:00
2012-08-26 23:42:26 +08:00
ucore was developed and used in Department of Computer Science & Technology, Institute for Interdisciplinary Information Sciences, Tsinghua University.
2018-02-03 22:36:41 +08:00
2012-08-26 23:42:26 +08:00
The codes in the files that constitute xv6& jos are Copyright (2006-Current) Frans Kaashoek, Robert Morris, and Russ Cox and uses MIT License.
2018-02-03 22:36:41 +08:00
2012-08-26 23:42:26 +08:00
The codes in the files that constitute OS/161 are written by David A. Holland.
2018-02-03 22:36:41 +08:00
2012-09-17 15:25:07 +08:00
The codes in the files that constitute ucore are Copyright (2010-Current) Yu Chen, Naizheng Wang, Yong Xiang and uses GPL License.
2018-02-03 22:36:41 +08:00
2012-09-17 15:25:07 +08:00
The documents in the files that constitute ucore are Copyright (2010-Current) Yu Chen, Yong Xiang and uses Creative Commons Attribution/Share-Alike (CC-BY-SA) License.
2012-09-19 14:40:45 +08:00
2018-02-03 22:33:37 +08:00
MAINTAINERS
2013-09-16 18:20:53 +08:00
========
2015-01-30 20:40:04 +08:00
OS course for Dept. CS. in Tsinghua Univ., and MOOC OS course
2013-09-16 18:20:53 +08:00
-----------------------------------
2018-02-03 22:33:37 +08:00
- Chen, Yu: http://soft.cs.tsinghua.edu.cn/~chen
- Mao, Junjie: eternal.n08@gmail.com
- Zhang, Wei: zhangwei15@mails.tsinghua.edu.cn
2013-09-16 18:20:53 +08:00
2012-08-26 23:42:26 +08:00
CONTENTS
2012-10-07 12:05:06 +08:00
========
2013-09-16 18:20:53 +08:00
labs info
2015-01-30 20:40:04 +08:00
----------------
2018-02-03 22:36:41 +08:00
```
2013-09-16 18:20:53 +08:00
lab0: preparing
2012-08-26 23:42:26 +08:00
lab1: boot/protect mode/stack/interrupt
lab2: physical memory management
lab3: virtual memory management
lab4: kernel thread management
lab5: user process management
lab6: scheduling
lab7: mutex/sync
lab8: filesystem
2018-02-03 22:36:41 +08:00
```
2012-08-26 23:42:26 +08:00
2012-10-07 11:57:42 +08:00
WORK IN MS WINDOWS
2012-10-07 12:05:06 +08:00
==================
2018-02-03 22:36:41 +08:00
```
2012-10-07 11:58:10 +08:00
Working in Linux is encouraged. But If you like to work in MS Windows, we provide virtual machine environment (Runnint Ubuntu in VirtualBox) in
2012-10-07 11:57:42 +08:00
Windows to help you to finish the labs. If you don't want to install ubuntu and other softs to finish these labs in Windows, you can use
VirtualBox soft (https://www.virtualbox.org/) and a virtual disk image with all these softs. Below example is shown how to setup lab environment in Windows.
2012-09-30 21:55:12 +08:00
You can download this virtual disk image -- oslabs_for_student_2012.zip (576.2MB,) from http://pan.baidu.com/share/link?shareid=69868& uk=2585194235, which
is an VirtualBox disk image (contains ubuntu 12.04 and needed softs, and is zipped with zip and xz format), and can be unzipped
by haozip software (http://www.haozip.com).
2015-02-11 03:18:12 +08:00
After unzip oslabs_for_student_XXX.zip, you will get
2012-09-30 21:55:12 +08:00
---
2015-02-11 03:18:12 +08:00
C:\vms\ubuntu-14.04.vbox.xz
C:\vms\ubuntu-14.04.vmdk.vmdk.xz
C:\vms\ubuntu-14.04.vmdk-flat.vmdk.xz
2012-09-30 21:55:12 +08:00
---
then you will continue unzip all these files, and get
---
2015-02-11 03:18:12 +08:00
C:\vms\ubuntu-14.04.vbox
C:\vms\ubuntu-14.04.vmdk.vmdk
C:\vms\ubuntu-14.04.vmdk-flat.vmdk
2012-09-30 21:55:12 +08:00
---
2012-09-30 22:01:59 +08:00
If you installed VirtualBox soft, then the last step is: double clik file "ubuntu-12.04.vbox" and run ubuntu 12.04 in VirtualBox.
In ubuntu 12.04 login Interface:
username: chy
password: < SPACE KEY >
After you login, you will see the directory ucore_lab in HOME directory.
2018-02-03 22:36:41 +08:00
```
2012-09-30 21:55:12 +08:00
2014-08-22 08:47:07 +08:00
TESTED ENVIRONMENT
==================
2018-02-03 22:36:41 +08:00
```
UBUNTU 14.04+: GCC-4.8.2+ CLANG-3.5+
FEDORA 20+: GCC-4.8.2+
```
2014-08-22 08:47:07 +08:00
2012-08-26 23:42:26 +08:00
EXERCISE STEPS
2012-10-07 12:05:06 +08:00
==============
2018-02-03 22:36:41 +08:00
```
2012-10-07 12:10:01 +08:00
0 Get the newest os lab src codes/docs.(Insure you can connect to github in ubuntu running on VrtualBox)
2015-02-11 03:18:12 +08:00
0.1 If you try to get all codes
2012-10-07 12:05:06 +08:00
$rm -rf ucore_lab
2018-02-03 22:36:41 +08:00
$git clone git://github.com/chyyuu/ucore_os_lab.git
2012-10-07 12:05:06 +08:00
$cd ucore_lab
2015-02-11 03:18:12 +08:00
0.2 If you gloned ucore_lab and only try to get the updated codes
2018-02-03 22:36:41 +08:00
$cd ucore_os_lab
2012-10-07 12:05:06 +08:00
$git pull
2012-08-26 23:42:26 +08:00
1 $cd labX
2 read codes (specially the modified or added files)
3 add your code
4 compile your code
$make
5 check your code
$make qemu
OR
$make grade
2015-02-11 03:18:12 +08:00
6 debug your code
$make debug
7 handin your code
2012-08-26 23:42:26 +08:00
$make handin
2018-02-03 22:36:41 +08:00
```
2012-08-26 23:42:26 +08:00
2014-07-28 00:31:56 +08:00
OPTION
==============
Now, ucore suuport LLVM/Clang-3.5 +
in step4:
$ USELLVM=1 make
then you will use clang to compile ucore
2012-09-15 23:16:10 +08:00
GRADE/RANK
2012-10-07 12:05:06 +08:00
==========
2018-02-03 22:36:41 +08:00
```
2012-09-15 23:16:10 +08:00
Superman: Finish all OS labs in one month by yourself
Master: Finish all OS labs in two month by yourself
Veteran: Finish all OS labs in three month by yourself
Apprentice: Finish all OS labs in one semester with other guy's help
2018-02-03 22:36:41 +08:00
```
2012-09-15 23:16:10 +08:00
2012-08-26 23:42:26 +08:00
RESOURCE REPOSITORY
2012-10-07 12:05:06 +08:00
===================
2018-02-03 22:36:41 +08:00
```
2012-08-26 23:42:26 +08:00
Basic OS labs (for students who learn OS course)
2018-02-03 22:36:41 +08:00
The newest lab codes and docs is in https://github.com/chyyuu/ucore_os_lab
2012-08-26 23:42:26 +08:00
2012-09-15 23:16:10 +08:00
Advanced OS labs (for OS geeks or hackers or guys with Superman/Master Rank)
2012-08-26 23:42:26 +08:00
The newest lab codes and docs is in https://github.com/chyyuu/ucore_plus
2018-02-03 22:36:41 +08:00
```
2012-08-26 23:42:26 +08:00
UCORERS (Contributors)
2012-10-07 12:05:06 +08:00
======================
2018-02-03 22:36:41 +08:00
2012-08-26 23:42:26 +08:00
Junjie Mao, Yuheng Chen, Cong Liu, Yang Yang, Zhun Qu, Shengwei Ren, Wenlei Zhu, Cao Zhang, Tong Sen, Xu Chen,
2018-02-03 22:36:41 +08:00
Cang Nan, Yujian Fang, Wentao Han, Kaichen Zhang, Xiaolin Guo, Tianfan Xue, Gang Hu, Cao Liu, Yu Su,Xinhao Yuan, Wei Zhang, Kaixiang Lei...