Skip to content
No description or website provided.
Find file
Pull request Compare This branch is even with yyu:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
boot
commands
doc
fs
include
kernel
lib
mm
scripts
Makefile
README.rst
bochsrc
bochsrc.gdb
hdfd.tar.gz

README.rst

Orange'S

The current version of Orange'S.

If you are reading my books, click here.

Develop Orange'S in Mac OS X

Install the Mac version "gcc":

  1. install Xcode
  2. in Xcode: Preferences > Downloads > Components > Command Line Tools > install

Build cross-compilers:

$ tar vxjf binutils-2.22.tar.bz2
$ cd binutils-2.22
$ ./configure --target=i686-elf --disable-nls
$ make all
$ make install

$ tar vxjf gcc-4.6.3.tar.bz2
$ cd gcc-4.6.3
$ ./configure --target=i686-elf --disable-nls --enable-languages=c,c++ --without-headers
$ make all-gcc
$ make install-gcc

Tip: how to know what have been installed:

$ make DESTDIR=/tmp/binutils install
$ make DESTDIR=/tmp/gcc install-gcc

Change Makefile:

-DASM           = objdump
-CC             = gcc
-LD             = ld
+DASM           = i686-elf-objdump
+CC             = i686-elf-gcc
+LD             = i686-elf-ld
+AR             = i686-elf-ar

-LDFLAGS                = -Ttext $(ENTRYPOINT) -Map krnl.map
+LDFLAGS                = -Ttext $(ENTRYPOINT) -Map krnl.map -m elf_i386

-       sudo mount -o loop a.img /mnt/floppy/
+       hdiutil mount -mountpoint /mnt/floppy a.img

Install Bochs:

$ tar vxzf bochs-2.5.1.tar.gz
$ cd bochs-2.5.1
$ ./configure --with-x11
$ make

we don't have to really "make install" it. creating a symbol link will suffice:

$ cd ..
$ mv bochs-2.5.1 /opt/
$ ln -s /opt/bochs-2.5.1/bochs /opt/bin/

Change bochsrc:

-romimage: file=/usr/share/bochs/BIOS-bochs-latest
-vgaromimage: file=/usr/share/vgabios/vgabios.bin
+romimage: file=/opt/bochs-2.5.1/bios/BIOS-bochs-latest
+vgaromimage: file=/opt/bochs-2.5.1/bios/VGABIOS-elpin-2.40

-keyboard_mapping: enabled=1, map=/usr/share/bochs/keymaps/x11-pc-us.map
+keyboard_mapping: enabled=1, map=/opt/bochs-2.5.1/gui/keymaps/x11-pc-us.map

Make sure /opt/bin is in $PATH. If not, append a line in ~/.bashrc:

export PATH=/opt/bin:$PATH

Run Orange'S:

$ cd /path/to/Orange'S/
$ make image
$ bochs
Something went wrong with that request. Please try again.