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