Chinaunix

标题: cnix0.10更新(看了redor的帖子,所以转个贴) [打印本页]

作者: xiexiecn    时间: 2008-12-09 20:53
标题: cnix0.10更新(看了redor的帖子,所以转个贴)
cnix0.10更新

cnix已经几年没有更新了,大概最近两个月在老代码的基础上继续开发,现在基本上完成当时定下的第一个阶段的目标。
1. cnix支持的系统调用:不一一列举了,大家可以看kernel/systable.c。系统调用编号和linux基本一致,主要是为了开发调试方便。
2. cnix支持的应用程序:gcc,binutils,coreutils,vim,make,sed,find,...,gnu的程序移植性非常好。
3. cnix支持的文件系统:minix V2 filesystem。
4. 可以在cnix自编译内核,然后替换根目录下的kernel,就可以进行测试。
a. 编译内核
cd /usr/src; make hdimg
b. 测试内核
cp hdimg /kernel; sync
重新启动机器(vmware)
c. 编写应用程序
vim + gcc,老习惯。
5. cnix主页
http://newcnix.googlecode.com
a. 下载vmware映像
http://code.google.com/p/newcnix/downloads/list
分成了四个压缩包,全部下载到一个目录下,解压缩(解压后有206M),然后用vmware(VMware-workstation-5.5.2-29772)加载。
b. cnix开发,移植应用程序
http://newcnix.googlecode.com/sv ... /doc/cn/porting.txt
6. TODO:参看源代码根目录下的TODO文件。

[ 本帖最后由 xiexiecn 于 2009-1-16 10:28 编辑 ]
作者: xiexiecn    时间: 2008-12-09 20:54
标题: 回复 #1 xiexiecn 的帖子
这个帖子在linuxforum和chinaunix的kernel板块发过,不过没多少人回。借c/c++板块的人气,广告一下,呵呵。现在开发人员太少,希望可以找到一些志同道合的同志。
本来没想在这个板块发,不过最近看了redor的“我最近有一个新的idea了, 有没有人愿意研究操作系统开发的? ”,感觉或许会有人有兴趣。
linuxforum上的原帖:
http://www.linuxforum.net/forum/ ... &o=7&fpart=
chinaunix的kernel板块原帖:
http://linux.chinaunix.net/bbs/thread-1041563-1-5.html

[ 本帖最后由 xiexiecn 于 2009-1-16 10:28 编辑 ]
作者: xiexiecn    时间: 2008-12-10 00:02
标题: 回复 #1 xiexiecn 的帖子
顶楼的帖子是从linuxforum转来的,这一个多月我们又加了tcp/ip协议栈。目前可以跑ping,简单的http server,还可以跑telnet。截了几张图:

[ 本帖最后由 xiexiecn 于 2008-12-10 00:07 编辑 ]

boot.JPG (71.22 KB, 下载次数: 100)

boot.JPG

ping.JPG (74.55 KB, 下载次数: 98)

ping.JPG

telnet.JPG (79.22 KB, 下载次数: 116)

telnet.JPG

作者: xiexiecn    时间: 2008-12-24 14:58
现在支持telnetd。看图。

cnixtel.JPG (40.9 KB, 下载次数: 111)

cnixtel.JPG

作者: flw    时间: 2008-12-24 15:01
很强!牛人啊!
膜拜中……
作者: alexhappy    时间: 2008-12-24 15:06
汗。。。。太牛了
作者: cugb_cat    时间: 2008-12-24 15:06
都是牛人,我给加个精吧,也方便别人检索。
作者: emacsnw    时间: 2008-12-24 15:52
很强。cnix完全port了glibc吗?
作者: xiexiecn    时间: 2008-12-24 16:52
标题: 回复 #8 emacsnw 的帖子
目前用的newlib,glibc还没空去弄,因为newlib有很好的文档可以参考。对这个有兴趣的话,可以看一下下面这个文档:
http://newcnix.googlecode.com/sv ... /doc/cn/porting.txt
现在打算先把网络弄稳了,接着再加上中文和图形,我和cnqin打算09年年底可以跑上基本的图形程序(不打算用xwindows),希望可以实现。

[ 本帖最后由 xiexiecn 于 2008-12-24 17:05 编辑 ]
作者: xiexiecn    时间: 2008-12-26 09:16
标题: 回复 #9 xiexiecn 的帖子
花了大半天移植了cce,现在支持中文。图:

zw1.JPG (96.87 KB, 下载次数: 101)

zw1.JPG

zw2.JPG (84.57 KB, 下载次数: 108)

zw2.JPG

作者: xiexiecn    时间: 2008-12-26 20:09
标题: 回复 #1 xiexiecn 的帖子
更新了一下vmware镜像,有兴趣的可以下载:http://code.google.com/p/newcnix/downloads/list
使用cnix:
配置ip,添加路由,ip和路由根据实际情况修改net文件。
cd /root
./net
运行telnetd
cd /httpd
./miniinetd -v 23 /bin/telnetd
进入中文环境
/usr/cce/bin/cce
ping程序,需要先编译一下:),使用ip地址
cd /root
gcc -o ping ping.c
作者: zliming    时间: 2008-12-27 10:32
看了代码,写的太好了
和linux的差别是那些?没有看过linux的代码
作者: Kendiv    时间: 2008-12-27 12:09
无他,只想问问,搞这个有什么实际意义?
作者: zhugw    时间: 2008-12-27 13:45
标题: 祝贺LZ取得的重要进展
很好的帖子。功夫不负有心人,十年磨砺剑出鞘 ,首先祝贺LZ取得的重要进展,希望你们继续努力向着自己的目标前进。

这里,向LZ提几个建议:
(1) 针对Linux和Windows版本分别做一个体积较小的演示版本
在googlecode的主页上提供了文件大小为40M的vmware镜像下载,下载安装起来比较麻烦,截至我发这贴的时候,下载记录是1,看来我是你们对外发布版本的第一个用户。

我建议你们针对Linux和Windows版本分别做一个体积较小的演示版本,这个演示版本:
A) 包含bash、coreutils即可(或者使用busybox)
B) 最好自带QEMU或者BOCHS模拟器
C) 压缩之后体积控制在5M以内
提供这个精简版本的目的是:对于试用者来说,他下载完cnix后,立刻就可以运行cnix了。我用过了,做的很好,有了一个对cnix的直观体验。

(2) CU正式开通“开源项目孵化平台”,你们可以去申请个板块。
CU正式开通了“开源项目孵化平台”,为国内开源项目提供一个交流与推广的平台,欢迎广大开源项目加盟CU,也欢迎有创办开源项目的朋友一起来聊聊如何做开源项目!
详情请参考:
http://linux.chinaunix.net/bbs/thread-1051486-1-1.html
你们可以去申请个板块。

(3) 浏览了下cnix的代码,请教一个关于内存布局的问题:
每个cnix的进程有独立的4G空间,其中0到1G为内核空间,1G到4G为用户空间,虚拟地址=物理地址,不知我的理解是否有错?如果是这样的话,建议你们尽早采用linux 2.2之后的内存布局方式:0到3G为用户空间,3G到4G为内核空间,用户和内核的代码段、数据段的基地址全部为0。

虚拟地址=物理地址的方案中,带来了编程的便利,但是有两个问题:
A) 要修改链接器的缺省配置,存在潜在的二进制兼容问题。
B) 无法移植到某些CPU上,如mips

(4) 最后希望LZ谈谈cnix的发展目标。

PS: LZ现在是学生还是工作,如果是工作的话,是在学校还是公司?你们用什么时间来开发cnix的,能谈谈开发过程和遇到的问题及如何解决的吗?
作者: langue    时间: 2008-12-27 14:30
标题: 回复 #14 zhugw 的帖子
这位同学很认真。
作者: xiexiecn    时间: 2008-12-27 21:35
to zliming:你的消息我回了,qq要周一才能告诉你,我记不住,现在出差,周末只能在网吧上网。
to Kendiv:兴趣而已,何必一定要追求什么意义,想做就做想玩就玩。
to zhugw:谢谢你这么认真回我的贴子。建议1和2,可以考虑,只是目前没那么多时间去弄。建议3,你的理解是对的,内存确实那样布局,现在还没考虑到mips的地步,碰到了再说,这种布局的影响主要表现在页表上,改起来比较集中,到时需要再说。建议4,发展目标似乎有点大,从想要实现的功能上,目前已经达到最早定下的目标(几年前了),明年打算进一步完善cnix并且加上GUI。
我已经上班三年了,这个项目是大四的时候做了半年多,后来就没再开发,今年8,9月份的时候重新启动,还有一个开发人员是cnqin,他也已经工作了。我不管上班下班,白天黑夜,只要有时间又想写代码的时候就写,:wink: ,不想写的时候就停几天。开发过程遇到问题不少,你可以看http://code.google.com/p/newcnix ... /doc/cn/porting.txt,里面有段题外话就提到了移植gcc的时候碰到的一个问题。

[ 本帖最后由 xiexiecn 于 2008-12-27 21:36 编辑 ]
作者: cheng_lai_shun    时间: 2008-12-27 23:28
大牛你好!
作者: zhugw    时间: 2008-12-27 23:56
我OS的实现比较感兴趣,看过不少相关的资料,我也看过你们的几年前做的cnix,今天看到cnix的新版本,感觉比前一个版本要强多了,取的进展很大。

你们在GUI方面的考虑是什么?如果计划移植Xwindows的话,最好先实现动态链接库的功能,不然静态链接的X程序太大了。动态链接库和虚拟文件系统这两项功能是应该尽快增加的功能,希望你们的cnix明年能给我们带来更多惊喜!:wink:

最后问个题外话,你看过minix的源码吗,你感觉的是linux0.11版容易理解还是minix 2.0容易理解?
作者: redor    时间: 2008-12-28 14:16
原帖由 xiexiecn 于 2008-12-9 20:53 发表
cnix0.10更新

cnix已经几年没有更新了,大概最近两个月在老代码的基础上继续开发,现在基本上完成当时定下的第一个阶段的目标。
1. cnix支持的系统调用:不一一列举了,大家可以看kernel/systable.c。系统 ...



很不错, 支持一个先....
作者: xiexiecn    时间: 2008-12-29 08:22
标题: 回复 #18 zhugw 的帖子
每个人看法都不一样吧,本科的时候学过minix,那两本书翻了很多遍,再后来看过 深入理解linux内核 这本书。也有看过linux0.11的代码,我觉得容易看明白,主要是因为先学过minix。本科毕业以后没再去看linux代码了。
作者: inside2004    时间: 2009-01-03 10:34
很强啊,似乎是校友
作者: xiexiecn    时间: 2009-01-03 17:18
标题: 回复 #21 inside2004 的帖子
这个和强不强没什么关系,主要是有没有兴趣,愿意不愿意做,会不会坚持做的问题。现在os的资料多如粪土,任何一个人想自己捣鼓一个都有可能。出于学习的目的大家都会想重新造一个轮子,不过这么多人偶尔花点时间一起造同一个轮子,我想会更有意思一点。
作者: xiexiecn    时间: 2009-01-03 17:19
标题: 回复 #22 xiexiecn 的帖子
前面也有人说这样做有什么意义,我也不知道,其实现在都有linux之类的诸多开源os,大家往上做贡献就好了。不过,我的英文比较差,打中学开始就学英文,已经很长时间了,有阵子也喜欢到linux内核列表转转,不过看着看着,觉得讨论问题还是没有用中文讨论自在,可能这也是为啥又造一个轮子的原因吧。
作者: 老手    时间: 2009-01-03 17:44
原帖由 xiexiecn 于 2009-1-3 17:19 发表
前面也有人说这样做有什么意义,我也不知道,其实现在都有linux之类的诸多开源os,大家往上做贡献就好了。不过,我的英文比较差,打中学开始就学英文,已经很长时间了,有阵子也喜欢到linux内核列表转转,不过看 ...


中国人这么多 ,分些人去造各种各样的轮子没有坏处 。起码比天天去玩 ,无所事事好 。 说不定哪一天哪一处捣鼓出一个好轮子 , 那我们就赚大了。就算没有成果 , 那也没花费大家的一分钱  ,耽误谁的什么事。

我们可以不去做 , 但起码也不乱给人泼冷水吧。
作者: xiexiecn    时间: 2009-01-03 17:52
标题: 回复 #24 老手 的帖子
不懂你说的具体意思:wink: ,是说我给别人泼冷水吗 不知道哪里看出来的。不过你说的我明白,呵呵。
作者: zhugw    时间: 2009-01-03 19:08
刚刚看了新的代码,cnix部分支持mmap了,做的挺快的,祝你们09年的计划顺利完成:wink: 。另外,你们可以做一个TO DO LIST,算是对自己的督促。
作者: xiexiecn    时间: 2009-01-04 11:13
标题: 回复 #26 zhugw 的帖子
TODO是有的,就是cnix/TODO文件。
作者: zhugw    时间: 2009-01-04 12:24
看到TODO了,cnix还没有在real机器上测试过。

vmware模拟的网卡是PCNET,这种品牌的网卡不好找,你们最好写个NE2000的驱动,市场上很多廉价的杂牌网卡(20块钱左右,像什么金浪)和NE2000都是兼容的,而且bochs和qemu模拟的网卡也是NE2000
作者: xiexiecn    时间: 2009-01-04 12:31
标题: 回复 #28 zhugw 的帖子
恩,不过应该差不了多少,网卡驱动是cnqin写的。
作者: zhugw    时间: 2009-01-04 13:55
你和cnqin是一个单位的同事吗?如果是网上协作的话,感觉沟通问题的难度比较高,特别是耦合度比较高的模块,而且最后把各自写的模块集成起来调试也是一个大问题。
作者: xiexiecn    时间: 2009-01-04 15:02
标题: 回复 #30 zhugw 的帖子
不是同事,只是网上联系,一起开发有段时间了,沟通应该没问题,呵呵。
作者: knight_oliver    时间: 2009-01-06 10:30
标题: 回复 #31 xiexiecn 的帖子
膜拜中。
作者: 南无小和尚    时间: 2009-01-06 13:50
只为粘粘牛人的光
作者: CU城管    时间: 2009-01-06 14:17
原帖由 南无小和尚 于 2009-1-6 13:50 发表
只为粘粘牛人的光


以前有个电视,叫《大西洋底下来的小和尚》,说的就是你吧?

啧啧啧,湿漉漉的。
作者: xiexiecn    时间: 2009-01-13 17:13
标题: 回复 #1 xiexiecn 的帖子
最近加了VFS,现在支持iso9660,可以挂载光盘。不过光驱需要设置成IDE0-Slave。
作者: nbaloverme    时间: 2009-01-13 17:53
厉害,膜拜
作者: dj_ukyo    时间: 2009-01-20 10:36
更新了
作者: zhuhefang2006    时间: 2009-01-20 11:00
支持,有时间好好学习一下
作者: xiexiecn    时间: 2009-02-05 13:35
标题: 回复 #1 xiexiecn 的帖子
过年没有更新啥,就是在bochs又跑了一下,除了网卡驱动不支持之外,其他基本正常。听从zhugw的建议,做了个bochs的镜像,才10M,方便下载,大家有兴趣可以试试看。在:
http://code.google.com/p/newcnix/downloads/list
作者: xiexiecn    时间: 2009-02-05 13:49
标题: 回复 #39 xiexiecn 的帖子
想想还是把环境一起打包上来,很多朋友也许都懒得点一下那个链接 使用很简单,解压后,进入Bochs-2.3.7\cnix256M执行run.bat,可以试用几个简单的命令,用起来感觉上和linux没多大差别,主要都是gnu的程序(难怪stallman一直强调linux要称作GNU/Linux)。

[ 本帖最后由 xiexiecn 于 2009-2-5 13:53 编辑 ]

Bochs-2.3.7.part01.rar

4.77 MB, 下载次数: 37

Bochs-2.3.7.part02.rar

3.73 MB, 下载次数: 33


作者: xiexiecn    时间: 2010-04-22 17:18
有个网友把内核移到了3G空间以上,拉了个分支,有兴趣的可以看看:http://code.google.com/p/newcnix ... nk/newcnix/cnix-csl
他希望可以做成一个像exokernel的东东。
作者: lmarsin    时间: 2010-05-11 17:05
牛人,顶
作者: lvyc    时间: 2010-05-11 19:00
mo bai yi xia
作者: lengyuex    时间: 2010-05-11 20:35

作者: maxxfire    时间: 2010-05-12 00:57
大牛。。顶。。
作者: send_linux    时间: 2010-05-12 10:24

这个要来拜一下,现在流行写系统啊,呵呵
作者: bluesea666    时间: 2010-05-12 14:00
大牛啊!
学习了.
作者: huxk    时间: 2010-05-13 13:08
樓主 你是有追求的人

我頂你
作者: lrg223    时间: 2010-05-13 14:13
强贴留名
作者: 锋-行    时间: 2010-05-14 17:48
哇,人才啊!!!!!!!




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