不会开机的男孩

Orange‘s 一个操作系统的实现 配置问题

| Comments

最近在瞅《Orange‘s 一个操作系统的实现》,个人认为相当好的OS入门实践书籍,配合之前看过的大部分的理论书,容易理解那些抽象的概念(无代码无真相),

和《Linux内核完全注释》都是相当不错的入门书籍。

这里记录一下可能遇到的问题,主要是配置问题,实现逻辑书里面很详细,代码注释也很详细,仔细多想应该没啥问题。

我这里环境是ubuntu 10 64bit, 而书中代码是32bit的。这里在编译链接的时候出了一点小问题。这里记录下。

错误:

ld: i386 architecture of input file `kernel/kernel.o' is incompatible with i386:x86-64 output

需要修改makefile

CFLAGS          = -I include/ -c -fno-builtin -m32
LDFLAGS         = -m elf_i386 -s -Ttext $(ENTRYPOINT)

错误:

klib.c:(.text+0xe5): undefined reference to `__stack_chk_fail'

这里应该是少了c的标准库,还是需要修改makefile文件

LDFLAGS         = -m elf_i386 -s -Ttext $(ENTRYPOINT) -lc

Comments