免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: lmarsin
打印 上一主题 下一主题

学习linux内核时,模仿linux编写的操作系统 [复制链接]

论坛徽章:
0
81 [报告]
发表于 2010-04-08 19:37 |只看该作者
膜拜

论坛徽章:
0
82 [报告]
发表于 2010-04-09 08:41 |只看该作者
LZ真是太牛逼了,佩服得五体投地……

论坛徽章:
0
83 [报告]
发表于 2010-04-09 18:08 |只看该作者
我也来膜拜一下

论坛徽章:
0
84 [报告]
发表于 2010-04-10 13:21 |只看该作者
怎么没有头像?看着怪难受的

论坛徽章:
0
85 [报告]
发表于 2010-04-14 10:55 |只看该作者
lz真是牛!!小弟佩服。。。以后也要像lz一样自己写点东西出来。

论坛徽章:
0
86 [报告]
发表于 2010-04-14 15:39 |只看该作者
lz牛牛,膜拜

论坛徽章:
0
87 [报告]
发表于 2010-04-15 15:13 |只看该作者
用 bochs 试了,还是这个提示
mik 发表于 2010-03-24 17:54



我用bochs2.4.2 测试了一下一楼的img文件,
可以运行

只有uname 和help 命令?

论坛徽章:
0
88 [报告]
发表于 2010-04-15 16:29 |只看该作者

gcc 4.3编译不过 太新了? 和76楼一样

本帖最后由 bxfqing 于 2010-04-15 17:11 编辑

我修改了GCC的编译选项 文件 makefile.os
编译通过了,不知道取消了栈保护会有什么后果
  1. CCFLG   = -O2 -c -nostdinc -fno-stack-protector -fno-builtin -I$(INCLUDE) -I.
复制代码

最新的源代码:
  1. Linking...
  2. ======================================LIBS======================================
  3. ./obj/main.o ./lib/kernel.a ./lib/char.a ./lib/block.a ./lib/mm.a ./lib/fs.a ./lib/kernellib.a ./lib/test.a
  4. ================================================================================
  5. ./lib/kernel.a(vsprintf.o): In function `number':
  6. vsprintf.c:(.text+0x221): undefined reference to `__stack_chk_fail'
  7. ./lib/mm.a(memory.o): In function `free_page':
  8. memory.c:(.text+0x72e): undefined reference to `__stack_chk_fail'
  9. make: *** [kernel.bin] Error 1
复制代码
  1. servo@servo-laptop:/opt/fairysky0.01$ gcc -v
  2. Using built-in specs.
  3. Target: i486-linux-gnu
  4. Configured with: ../src/configure -v --with-pkgversion='Ubuntu 4.3.3-5ubuntu4' --with-bugurl=file:///usr/share/doc/gcc-4.3/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --enable-shared --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --enable-nls --with-gxx-include-dir=/usr/include/c++/4.3 --program-suffix=-4.3 --enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc --enable-mpfr --enable-targets=all --with-tune=generic --enable-checking=release --build=i486-linux-gnu --host=i486-linux-gnu --target=i486-linux-gnu
  5. Thread model: posix
  6. gcc version 4.3.3 (Ubuntu 4.3.3-5ubuntu4)
复制代码


查看mm.a文件,的确有未声明的函数
  1. servo@servo-laptop:/opt/fairysky0.01$ nm -a  ./lib/mm.a

  2. memory.o:
  3. 00000000 b .bss
  4. 00000000 n .comment
  5. 00000000 d .data
  6. 00000000 n .note.GNU-stack
  7. 00000000 r .rodata.str1.1
  8. 00000000 r .rodata.str1.4
  9. 00000000 t .text
  10.          U __stack_chk_fail
  11. 00000390 T copy_page_table
  12.          U current
  13. 00000060 T do_no_page
  14. 000004d0 T do_wp_page
  15. 00000670 T free_page
  16. 00000000 T get_free_page
  17. 00000070 T init_mem
  18. 00000008 b max_mem
  19. 00000000 D mem_map
  20. 0000000c b mem_map_size
  21. 00000000 b mem_start_index
  22.          U memcpy
  23. 00000000 a memory.c
  24.          U memset
  25. 00000004 b page_num
  26.          U panic
  27. 00000004 C pparams
  28.          U printk
  29. 00000740 T put_page
  30.          U sprintf
复制代码

论坛徽章:
0
89 [报告]
发表于 2010-04-16 10:23 |只看该作者
顶一个

论坛徽章:
0
90 [报告]
发表于 2010-04-17 23:06 |只看该作者
我一直认为能写操作系统的都是属于比尔盖茨那种非人类
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP