Skip to content

lcapitulino/mit-so-course

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

		         The JOS operating system
                        ===========================

			Luiz Fernando N. Capitulino
			  <[email protected]>

1. Introduction
---------------

 This' my version of the JOS operating system, built from the MIT's operating
system engineering classes.

 The original course's page used to be hosted at:

http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/6-828Fall-2006/CourseHome/index.htm

2. Trying it
------------

$ cd src
$ make
$ bochs

3. Source-code directory layout
-------------------------------

|-- boot -> JOS boot loader
|-- conf -> lab config files (not kernel related)
|-- fs   -> file system
|-- inc  -> include files shared between kernel and user modes
|-- kern -> kernel code
|-- lib  -> libOS
`-- user -> user programs

4. Tools' versions
------------------

 JOS has been developed and tested on Mandriva Linux 2007.1, 2008.0 and
early 2008.1's development version.

 Important versions of used tools:

o bochs: 2.2.6, 2.3.5
o GCC: 4.1.2, 4.2.2
o binutils: 2.17.50.0.9, 2.17.50.0.12

5. Repository
-------------

 JOS is hosted in a GIT repository at:

http://repo.or.cz/w/mit-so-course.git

 To clone do:

$ git clone git://repo.or.cz/mit-so-course.git

6. Tags
-------

 All important milestone's have been tagged, the most important ones are
the lab's final commit.

 To see all the finals do:

$ git tag -l | grep final

 The grade script should complete with 100% score for all labs except lab1.

 [ I don't know why lab1's grade script doesn't work. Either I didn't
   tag at the right time or the VGA exercise wasn't done... I don't
   like VGA stuff, I remember I've skipped something... ]

7. Duration
-----------

 If you check my first and last commits, you'll think that the course took
more than 8 months to be done (from 2007-03-04 to 2007-12-10).

 But, if you check carefully you'll realize that there was a pause of more
than three months. That's because I had to stop working on this project to
work on my Google Summer of Code project.

 So, I've spent less than five months on this actually.

 Btw, this was one of the best projects I've ever worked on my life!

8. Real hardware test
---------------------

 I've tried JOS on a real hardware but had no success.

 Right after the file system is loaded you see 'Presence 1 Device 1', and
then user-mode gets a page-fault.

 I've made two tests without the file-system. The first one I ran just the
hello world program, it worked. In the second I put primes program to run
and it also got a page-fault.

 I have no idea where the problem is. Unfortunately a debug session
will take too much time because:

	1. The two disks setup makes it harder to test
	2. The VGA driver is quite slow to print things on the screen

 So, if you have interest in making JOS running on real hardware I
think you should fix those problems first.

 The monitor works, btw.