Chinaunix

标题: 在写一个OS内核,求合作者 [打印本页]

作者: weiweishuo    时间: 2013-09-18 19:00
标题: 在写一个OS内核,求合作者
我在写一个操作系统内核,目前已经完成到一个阶段。我想把它变成一个合作项目继续开发,如果你愿意参与,可以跟我联系(jiejinmv@163.com)。
   下面是你可能问到的:
1,内核概况?
**很小,代码量3000行,内核映像40KB。是基于intel i386的抢占式宏内核(因为宏内核不需要实现^.^)。有进程创建,调度,内存管理(主要是响应page-error来支持进程的虚拟内存空间),只读的ext2文件系统,和一个简单的shell。
  
2,内核的设计原则?
**1,我在性能可容忍的前提下,尽量简化代码逻辑和算法。
   2,写一个模块时,参考linux或oranges'的实现机制,但尽量不模仿,都是另行实现。
   对了,这个内核会提供posix的兼容层,我正在写。
  
3,我为什么不参与linux开发,那是更大的开源项目。
**如果你已经具备参与linux开发的能力,不建议你参与这个内核(屋檐太低)。我也晾晾我的底子:我大一读化学,今年转到计科读大二,编程是新近自学的,程度可想而知。这个内核面向对OS了解不深入的同学。
  
4,写这个内核的目的?
**把它当作跳板,希望有朝一日能参与到linux项目里去。有些同学选择读linux源码来了解它,我觉得写一个与之并行的内核,是另一种途径。
  
5,我“参与”之后做些什么?
  请在邮件里做下自我介绍:你对哪方面较了解,计算机体系结构,汇编还是c?下一步的开发计划已经有了:是增添对NTFS,FAT32文件系统的支持(只读的)。你想做的话,就附带说明。不做具体模块的同学,也要负责测试。有一点说在前面:内核是elf格式的,使用了gcc的内联汇编,这意味着你要转到linux(系统或虚拟机)下开发。
   我这个学期课程很多,你加入进来之后,暂时由你做的比较多,我会帮着测试。本来想等课闲下来,再发这帖子,但又怕放冷了。

作者: leaforestd    时间: 2013-09-18 20:08
有点意思.. 能不能放出源码看看?:wink:
作者: 鬼鬼一哈    时间: 2013-09-18 21:57
本帖最后由 鬼鬼一哈 于 2013-09-18 21:58 编辑

我大一读化学,今年转到计科读大二,编程是新近自学的,LZ乃神人也。膜拜,能能否告知学习的进程?
作者: weiweishuo    时间: 2013-09-19 17:30
leaforestd 发表于 2013-09-18 20:08
有点意思.. 能不能放出源码看看?


  本来就是开源的,大家留下邮箱,就会把源码发过去。
作者: 慕冬亮    时间: 2013-09-19 22:47
本人正在学习这方面的知识,研究生之后我会继续学习这方面的深入的知识,求指教。另外我想看一下您写的内核代码,之后我会给您发邮件的。如果不是因为我这方面额知识还不成熟,我很愿意和您合作!!
作者: weiweishuo    时间: 2013-09-20 10:02
回复 2# leaforestd
上传到github了:https://github.com/weiweishuo/papaya


   
作者: crspo    时间: 2013-09-21 11:21
可以直接参与linux,不需要把全部的代码都弄懂再参与。可以边参与边学习。
作者: Godbach    时间: 2013-09-22 09:25
回复 1# weiweishuo

LZ 乃牛人也。:wink:


   
作者: dj_shu    时间: 2013-09-29 17:46
求参与,QQ250191950
作者: hanshu830    时间: 2013-09-30 14:16
求参与, 顶起
作者: humjb    时间: 2013-09-30 14:40
没时间~,凑个热闹。
作者: wangkaird    时间: 2013-09-30 16:17
牛人,顶一个
作者: bangde32    时间: 2013-09-30 17:20
强大 顶起!
作者: fengzheyu    时间: 2013-09-30 20:07
大二就有这等觉悟,看来以后必定成大气候!我都研究生了还没想过写kernel~~~ 膜拜,好好加油
作者: thaldn    时间: 2013-09-30 21:11
万丈高楼平地起
加油
作者: ckf513728912    时间: 2013-09-30 22:21
谢谢分享                 
作者: fly3ds    时间: 2013-10-13 07:49
神人也!我大一大二的时候,还不知Linux为何物!
作者: fly3ds    时间: 2013-10-14 07:30
各种.d文件是怎么回事呢?


-bash-4.1$ make
makefile:23: kernel.d: No such file or directory
makefile:23: utils.d: No such file or directory
makefile:23: proc.d: No such file or directory
makefile:23: kbd_drv.d: No such file or directory
makefile:23: func_table.d: No such file or directory
makefile:23: disp.d: No such file or directory
makefile:23: video_drv.d: No such file or directory
makefile:23: ku_utils.d: No such file or directory
makefile:23: hs.d: No such file or directory
makefile:23: fs_ext.d: No such file or directory
makefile:23: struinfo.d: No such file or directory
makefile:23: mm.d: No such file or directory
makefile:23: fs.d: No such file or directory
makefile:23: tty.d: No such file or directory
set -e;rm -f tty.d;\
        gcc -M tty.c -I../include/ -I./usr/include/ > this_is_a_tmp_file;\
        sed 's\:\ tty.d: \'  this_is_a_tmp_file  > tty.d;\
        rm  -f this_is_a_tmp_file
set -e;rm -f fs.d;\
        gcc -M fs.c -I../include/ -I./usr/include/ > this_is_a_tmp_file;\
        sed 's\:\ fs.d: \'  this_is_a_tmp_file  > fs.d;\
        rm  -f this_is_a_tmp_file
set -e;rm -f mm.d;\
        gcc -M mm.c -I../include/ -I./usr/include/ > this_is_a_tmp_file;\
        sed 's\:\ mm.d: \'  this_is_a_tmp_file  > mm.d;\
        rm  -f this_is_a_tmp_file
set -e;rm -f struinfo.d;\
        gcc -M struinfo.c -I../include/ -I./usr/include/ > this_is_a_tmp_file;\
        sed 's\:\ struinfo.d: \'  this_is_a_tmp_file  > struinfo.d;\
        rm  -f this_is_a_tmp_file
set -e;rm -f fs_ext.d;\
        gcc -M fs_ext.c -I../include/ -I./usr/include/ > this_is_a_tmp_file;\
        sed 's\:\ fs_ext.d: \'  this_is_a_tmp_file  > fs_ext.d;\
        rm  -f this_is_a_tmp_file
set -e;rm -f hs.d;\
        gcc -M hs.c -I../include/ -I./usr/include/ > this_is_a_tmp_file;\
        sed 's\:\ hs.d: \'  this_is_a_tmp_file  > hs.d;\
        rm  -f this_is_a_tmp_file
set -e;rm -f ku_utils.d;\
        gcc -M ku_utils.c -I../include/ -I./usr/include/ > this_is_a_tmp_file;\
        sed 's\:\ ku_utils.d: \'  this_is_a_tmp_file  > ku_utils.d;\
        rm  -f this_is_a_tmp_file
set -e;rm -f video_drv.d;\
        gcc -M video_drv.c -I../include/ -I./usr/include/ > this_is_a_tmp_file;\
        sed 's\:\ video_drv.d: \'  this_is_a_tmp_file  > video_drv.d;\
        rm  -f this_is_a_tmp_file
set -e;rm -f disp.d;\
        gcc -M disp.c -I../include/ -I./usr/include/ > this_is_a_tmp_file;\
        sed 's\:\ disp.d: \'  this_is_a_tmp_file  > disp.d;\
        rm  -f this_is_a_tmp_file
set -e;rm -f func_table.d;\
        gcc -M func_table.c -I../include/ -I./usr/include/ > this_is_a_tmp_file;\
        sed 's\:\ func_table.d: \'  this_is_a_tmp_file  > func_table.d;\
        rm  -f this_is_a_tmp_file
set -e;rm -f kbd_drv.d;\
        gcc -M kbd_drv.c -I../include/ -I./usr/include/ > this_is_a_tmp_file;\
        sed 's\:\ kbd_drv.d: \'  this_is_a_tmp_file  > kbd_drv.d;\
        rm  -f this_is_a_tmp_file
set -e;rm -f proc.d;\
        gcc -M proc.c -I../include/ -I./usr/include/ > this_is_a_tmp_file;\
        sed 's\:\ proc.d: \'  this_is_a_tmp_file  > proc.d;\
        rm  -f this_is_a_tmp_file
set -e;rm -f utils.d;\
        gcc -M utils.c -I../include/ -I./usr/include/ > this_is_a_tmp_file;\
        sed 's\:\ utils.d: \'  this_is_a_tmp_file  > utils.d;\
        rm  -f this_is_a_tmp_file
set -e;rm -f kernel.d;\
        gcc -M kernel.c -I../include/ -I./usr/include/ > this_is_a_tmp_file;\
        sed 's\:\ kernel.d: \'  this_is_a_tmp_file  > kernel.d;\
        rm  -f this_is_a_tmp_file
nasm -o ../bin/boot.bin boot.asm
make: nasm: Command not found
make: *** [boot.bin] Error 127

作者: weiweishuo    时间: 2013-11-24 18:23
fly3ds 发表于 2013-10-14 07:30
各种.d文件是怎么回事呢?

你这里make出错是因为没装nasm。
.d文件是make过程中生成的中间文件,忽略它。
作者: yijing21    时间: 2013-11-28 20:20
参与Linux社区比你自己重新造轮子要好很多,另外你在linux社区积累的人气和贡献的代码对你的职业生涯都会有很大的帮助 ,最重要的是linux有成千上万的开发者  更开放 何必自己搞小圈子呢?




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2