无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
12
返回列表 发新帖
楼主: 不点
打印 上一主题 下一主题

如果有可能的话,我感觉 yaya 应该帮我整合操作系统

    [复制链接]
31#
 楼主| 发表于 2014-12-1 12:06:13 | 只看该作者
我在 kolibri 的 LiveCD 中可以运行 DOSBox 仿真器,成功进入 DOS。

可是我在官方的 svn 代码库里面没有找到相关的软件。

有谁能研究一下,这究竟是如何实现的吗?
回复

使用道具 举报

32#
 楼主| 发表于 2014-12-1 12:55:28 | 只看该作者
在 kolibri 中可以使用各种编译器:FASM,NASM,MASM,还有如下的 C 语言编译器和一个 Pascal 编译器:

Environments Visual C++ 6, C++ from Visual Studio .NET/2005

Compilers GCC, G++

Compiler Borland C++

The compiler Tiny C

Compiler Pascal Pro

参考网址:Use of various compilers in KolibriOS
http://kolibri-n.org/inf/hll/hll_eng.php

点评

能用VC2005/VC6那我被吓坏了,如果真的可以的话找一份API清单来所有这些问题都不难解决,内核改造成使用UTF8/unicode,于是万国语言支持so easy(网上有开源中文输入法),然后支持一个TRUETYPE字体解析就可以彻底解  详情 回复 发表于 2014-12-1 20:39
回复

使用道具 举报

33#
 楼主| 发表于 2014-12-1 19:53:40 | 只看该作者
我可以做与系统底层有关的移植工作,CPU 指令之类的东西,我不害怕。

需要有人做中文化方面的工作,包括字库、字符编码、输入法之类的东西。

驱动程序的开发当然也是需要的,我也做不了这些工作。

网络我也不懂,需要有人做这些工作。

总之,谁愿意帮忙的话,现在就可以动手做了。等你做完了,我的移植工作说不定也全面完成了。

回复

使用道具 举报

34#
 楼主| 发表于 2014-12-1 20:19:00 | 只看该作者
这里是 distrowatch 的 kolibri 页面:
http://distrowatch.com/table.php?distribution=kolibri

KolibriOS

最后更新: 2014-11-20 03:02 UTC

【KolibriOS】

    发行归类: Other OS
    基于何种发行: Independent
    来源: Russia
    处理器架构: i386
    桌面: KolibriOS
    类型: Desktop, Old Computers, Live Medium, Netbooks
    状态: 活跃发展中
    受欢迎程度排名: 152 (75 每日点击次数)

KolibriOS是微型开源操作系统,它采用单片式内核及显示驱动,面向32比特的x86架构计算机。KolibriOS是MenuetOS的分支,完全以FASM(一种汇编语言)编写。然而,C、C++、Free Pascal、Forth等其他高级编程语言及编译器也能用于应用软件的开发。KolibriOS的特性在于一套丰富的应用软件,包括字处理软件、图像显示软件、图形编辑器、网页浏览器,以及30多种游戏。

受欢迎程度排名 (每日点击次数): 12 个月: 152 (79), 6 个月: 152 (75), 3 个月: 149 (79), 4 个星期: 131 (79), 1 个星期: 131 (71)

点评

看样子他们已经解决了应用层面和硬盘以及网络以及usb的问题了,移植万国语言支持(其实就是unicode\utf8以及字库支持)和重要的g4d.功能就行了  详情 回复 发表于 2014-12-1 20:46
回复

使用道具 举报

35#
发表于 2014-12-1 20:39:51 来自手机 | 只看该作者
本帖最后由 sunsea 于 2014-12-1 20:42 编辑
不点 发表于 2014-12-1 12:55
在 kolibri 中可以使用各种编译器:FASM,NASM,MASM,还有如下的 C 语言编译器和一个 Pascal 编译器:

...


能用VC2005/VC6那我被吓坏了,如果真的可以的话找一份API清单来所有这些问题都不难解决,内核改造成使用UTF8/unicode,于是万国语言支持so easy(网上有开源中文输入法),然后支持一个TRUETYPE字体解析就可以彻底解决语言问题。(再不济也可以弄点阵字库unifont.hex),然后弄个通用硬盘驱动以及通用网卡驱动,还有开源的一些HTTP,TCP协议栈啥的(貌似不是难事,linux就是几乎通用,网络方面也有现成的开源协议栈)和USB驱动就行了,其他驱动暂且不用
回复

使用道具 举报

36#
发表于 2014-12-1 20:46:51 来自手机 | 只看该作者
不点 发表于 2014-12-1 20:19
这里是 distrowatch 的 kolibri 页面:
http://distrowatch.com/table.php?distribution=kolibri


看样子他们已经解决了应用层面和硬盘以及网络以及usb的问题了,移植万国语言支持(其实就是unicode\utf8以及字库支持)和重要的g4d.功能就行了
回复

使用道具 举报

37#
 楼主| 发表于 2014-12-1 22:01:30 | 只看该作者
dosbox for kolibri 的编译结果能够下载到:

http://diamond.kolibrios.org/prg/dosbox.7z

但是,源代码不能得到。难道说源代码是用 dosbox 官方网站上的,然后只是用 kolibri 的编译器编译一下就行了?

谁知道内幕的,说说看。

点评

我不知道,不过我看见编译器里有这么三条, Environments Visual C++ 6, C++ from Visual Studio .NET/2005 Compilers GCC, G++ Compiler Borland C++ 那就应该是了  详情 回复 发表于 2014-12-2 07:11
http://board.kolibrios.org/viewtopic.php?f=43&t=671&start=120 問問看?  详情 回复 发表于 2014-12-1 23:11
回复

使用道具 举报

38#
发表于 2014-12-1 23:11:44 | 只看该作者
不点 发表于 2014-12-1 22:01
dosbox for kolibri 的编译结果能够下载到:

http://diamond.kolibrios.org/prg/dosbox.7z

http://board.kolibrios.org/viewt ... t=671&start=120
問問看?
回复

使用道具 举报

39#
发表于 2014-12-2 07:11:02 来自手机 | 只看该作者
不点 发表于 2014-12-1 22:01
dosbox for kolibri 的编译结果能够下载到:

http://diamond.kolibrios.org/prg/dosbox.7z

我不知道,不过我看见编译器里有这么三条,
Environments Visual C++ 6, C++ from Visual Studio .NET/2005

Compilers GCC, G++

Compiler Borland C++
那就应该是了
回复

使用道具 举报

40#
发表于 2014-12-2 08:10:28 | 只看该作者
一连测试了 2台电脑
一台家用 微星785GTM-45  能进桌面,鼠标正常,游戏也正常
办公   华硕b75  进桌面,鼠标正常,游戏也ok  关机都正常,
就是英文水平很菜,要是有汉化版,就好了!
另外看到大家都下载不到,
上传一个 放入不点大师改好的,11.30号的版本
kolibri.zip (1.17 MB, 下载次数: 21)
回复

使用道具 举报

41#
 楼主| 发表于 2014-12-2 15:34:45 | 只看该作者
本帖最后由 不点 于 2014-12-2 15:35 编辑

做个好汉真是好,一个好汉三个帮。能得到大家的支持,不至于孤苦伶仃的,这味道确实比较正。

话说又考虑了一两天,刚开始时有点懵,不知道究竟是怎么个整合法,权衡了很多,思路比较乱。

现在终于又有点眉目了。四个字:稳扎稳打。细说如下。

目前已经做到了,让 kolibri 运行在扩展内存顶端的 64M 空间上。kolibri 与别的操作系统可以共存。

仔细想想,现在的 grub4dos 也是一个操作系统(只不过功能简单罢了)。那么,根据刚才的结论,kolibri 就可以与 grub4dos 共存。

虽然这一点看起来很平凡,但想到它却不平凡。也许是岁数大了,脑筋开始退化,所以就浪费了两天的苦苦思索,才得到这个真理。真理没那么神秘,它也许是很显然的东西。即使很显然,也不一定能够认识到。人类的认知能力还很欠缺。用一个计算器很快就可以算出乘法的结果,但人却需要花费很长时间。就是说,对于电脑很显然的东西,对与人来说,却不显然了,需要慢慢计算才行。

言归正传。我们可以先让 kolibri 与 grub4dos 互相能够启动,进退自如,这样,我们就从 grub4dos 无缝过渡到 kolibri。kolibri 与 grub4dos 进退自如 —— 这一点肯定可以做到。我们早有经验,grub4dos 和 DOS 互相可以进退自如,况且 DOS 还破坏了中断向量表,而且 DOS 与 grub4dos 都在争用常规内存。kolibri 与 grub4dos 不存在内存重叠,经过改造后的 kolibri 不使用低端内存,而且 kolibri 也不破坏中断向量表,所以从原则上讲,应该更容易实现进退自如。

思路理清了,一步一个脚印,这就是稳扎稳打。

从 grub4dos 向 kolibri 的过渡,就好像从 DOS 向 Windows 的过渡。Win98 是最好的一个操作系统,兼具 DOS 和 Windows 的优点。后来的 Windows 强行割去 DOS,这样其实伤害了 DOS 上的开发者和用户。

如上所述,我们这样做,其结果是,保持了兼容性,让现有的 grub4dos 程序都能正常运行。这就尊重了现有的 grub4dos 应用成果,因此也应该会得到广泛的支持。

就是说,目前的 grub4dos 这一块,永远不割掉。用户想用什么,自己决定。如此一来,我们就可以静下心来,慢慢移植 grub4dos 的功能到 kolibri。就是说,kolibri 桌面环境刚开始时只是个空架子,没有各种 grub4dos 的功能。但后续的开发可以慢慢地添加那些必要的功能。

好了,这就是整体设想,和盘托出了。

回复

使用道具 举报

42#
 楼主| 发表于 2014-12-3 08:14:07 | 只看该作者
本帖最后由 不点 于 2014-12-3 08:16 编辑

风云突变,有人报告 kolibri 无法驱动键盘鼠标,导致桌面无法操作。这个情况在几年前我也碰到过,没想到过了这么多年,仍然没有解决。这说明 kolibri 在驱动开发上是软肋。

集成 kolibri 的工作只能暂时搁置下来。一直等到有人写好键盘鼠标驱动才行。

未来大概只有 Linux 可以集成了,这就把我们逼到了这一条路上了。

Linux 不是不可能集成,而是工作量太大,难度也相当高。

所以,目前就暂时不考虑了。

但是,继续考虑将 grub4dos 自身挪到扩展内存顶部运行的问题。这应该是可以实现的。

点评

不用集成操作系统,移植脱离bios的能力和把自己弄进拓展内存的能力就行,我手上有msahci(微软的通用AHCI驱动)和atapi(微软的通用IDE驱动)源码可以参考  详情 回复 发表于 2014-12-3 16:41
回复

使用道具 举报

43#
发表于 2014-12-3 09:18:59 | 只看该作者
DELL 笔记本, usb 鼠标有时启动后可以使用,有时不能使用。但 ps2 鼠标均正常。
桌面图标不能使用键盘选定和执行。进入命令行,则键盘正常。

点评

如果不支持 USB 鼠标,这不行啊。现在 USB 鼠标很多,PS2 鼠标越来越少了。  详情 回复 发表于 2014-12-3 10:53
回复

使用道具 举报

44#
 楼主| 发表于 2014-12-3 10:53:40 | 只看该作者
2011yaya2007777 发表于 2014-12-3 09:18
DELL 笔记本, usb 鼠标有时启动后可以使用,有时不能使用。但 ps2 鼠标均正常。
桌面图标不能使用键盘选 ...

如果不支持 USB 鼠标,这不行啊。现在 USB 鼠标很多,PS2 鼠标越来越少了。
回复

使用道具 举报

45#
发表于 2014-12-3 12:14:05 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

46#
发表于 2014-12-3 14:00:07 | 只看该作者
不点大师,不要放弃啊
毕竟成功的多
如果99%都成功,1%不成功,为了那一小部分而放弃所有吗
dell制造不兼容,是自己作死,
至少身边的用del非常少了,这就是趋势!

点评

谢谢您的建议。 光是 dell 作恶,其实也不是太要紧的。问题是,只要有 dell 的不兼容存在,就会有其他类似的机器存在。现在不容易估计出究竟有多大的比例。 更要命的是,kolibri 多年来在驱动方面没有进步,这  详情 回复 发表于 2014-12-3 14:13
回复

使用道具 举报

47#
 楼主| 发表于 2014-12-3 14:13:41 | 只看该作者
gkos 发表于 2014-12-3 14:00
不点大师,不要放弃啊
毕竟成功的多
如果99%都成功,1%不成功,为了那一小部分而放弃所有吗

谢谢您的建议。

光是 dell 作恶,其实也不是太要紧的。问题是,只要有 dell 的不兼容存在,就会有其他类似的机器存在。现在不容易估计出究竟有多大的比例。

更要命的是,kolibri 多年来在驱动方面没有进步,这一点比起 Linux 可差远了。我们初步的评估是看键盘鼠标显卡的支持,这是基本的,不可以存在失败。

如果这一步通过了,那么下一步是第二阶段的评估,那就要看硬盘的支持情况了。目前这个 kolibri 不支持我的笔记本硬盘,可以说是很糟糕的。

这些事情暴露出来的是 kolibri 的问题,不是 DELL 的问题。

回复

使用道具 举报

48#
发表于 2014-12-3 16:41:50 来自手机 | 只看该作者
不点 发表于 2014-12-3 08:14
风云突变,有人报告 kolibri 无法驱动键盘鼠标,导致桌面无法操作。这个情况在几年前我也碰到过,没想到过 ...

不用集成操作系统,移植脱离bios的能力和把自己弄进拓展内存的能力就行,我手上有msahci(微软的通用AHCI驱动)和atapi(微软的通用IDE驱动)源码可以参考
回复

使用道具 举报

49#
 楼主| 发表于 2014-12-8 11:15:34 | 只看该作者
本帖最后由 不点 于 2014-12-8 16:14 编辑

最近这几天又在反复思考这个问题。

先是思考究竟该不该继续整合 kolibri 的问题。连键盘鼠标这种基本的操作都不能有保证,实在是严重问题。进一步还有硬盘、USB 存贮设备、网卡、声卡等等,一系列的问题。当然我们重点只关心硬盘、U 盘、网卡等。

这些东西本来都不该是问题,因为它们是硬件,而硬件是基本的,本来是不可以驱动不了的。但残酷的现实却是,恰恰在不该出问题的地方出问题了。这不是埋怨 kolibri 的开发者,而是归咎于 x86 这个严重恶化的生态。

Linux 可以应付大多数这些复杂的情况,但是,那得增加多大的驱动代码量!天文数字,全都是为了应付恶意的硬件制造商。像 kolibri 这样小体积的操作系统软件,根本不可能做好硬件驱动这一块的工作。

假定硬件驱动搞不成,那整个工作也就瞎了,做了也没用。硬件规范的混乱,以及故意破坏规范的现象很普遍,让 x86 的驱动异常复杂,不可能有小体积的驱动。开发者们可能被迫远离 x86 了,除了完全依赖微软的那些开发者以外。

不考虑那些有问题的电脑,只支持 90% 的电脑,这样行不行?不行。grub4dos 的一个关键特色就是兼容性好,确切地说,是 BIOS 兼容性好。至于说功能,倒不是特别根本性的。假如丧失了我们原本就有的兼容性,那根本不可接受。

另一方面,整合 Linux 的工作量太大,而且 Linux 庞大的驱动也是受不了的。更糟糕的是,Linux 也不能 100% 地应付所有的情况,失败也很多,这就是 Linux 为什么不能被广泛接受的原因之一。当然归根结底是硬件制造商的打压了。

所以,这个工作也就画个休止符吧,我觉得没什么可说的。今后把精力用在 ARM 系列上。

后来又思考把 grub4dos 自身放在高端内存运行的问题。由于硬件驱动做不好,我们只好还用 BIOS。但是,BIOS 是需要实模式的,这就需要常规内存。

我研究了 vm86 模式,了解到,vm86 模式可以通过分页,让虚拟地址 0 映射到物理地址的高端。但是,int13 磁盘驱动,内部可能使用 DMA,而这 DMA 是使用物理地址的,这就瞎火了。就是说,迫使 vm86 模式使用物理地址 0M 处的 1M 空间,这与实模式又完全一样了。所以,切换到 vm86 模式也不能解决所有的问题,而且还增加了很复杂的 DMA 问题。

那么可以粗略得出结论:如果把 grub4dos 的内核移动到内存顶端,那么需要在常规内存中保留一部分空间用来调用实模式的 BIOS。


现在情况已经明朗了:占用常规内存最多的,就是 int13 了。grub4dos 为 int13 进行缓冲,缓冲区有 64K 之大。另外自动探测几何参数,也要花费 64K 的空间。这么大的空间占用,不可能放在常规内存空间的顶部,即 int13 处理程序的代码中。

当 grub4dos 自身被 int15 保护起来之后,grub4dos 如果不接管控制,而是启动了别的操作系统,那么,grub4dos 就可以完全不再占用实模式内存(常规内存顶部的 int13 处理程序所占用的 12K 空间,是被 int15 保护的,不能算是占用了实模式内存)。

当 grub4dos 处于活动状态时,它需要额外占用常规内存,作为磁盘缓冲,或者探测几何参数之用。它在毁掉常规内存之前,首先把常规内存保存在扩展内存顶部的内核空间中,而在准备切换到操作系统中的时候,又可以恢复原先的常规内存内容。其实,底端 32M 空间都可以如此处理。

就是说,grub4dos 与操作系统争用底端内存的情况不可避免,解决办法是保存和恢复,这样就可以避免冲突。

然而这样的话,不可能在 grub4dos 运行的同时,也集成一个 DOS 内核,因为 DOS 内核也在使用常规内存。

看来最后还是归结到一点上,即,必须有保护模式的驱动才行。只有这样,才真正可以腾出实模式内存。

因此,这就不值得去做了。

点评

找到了微软自己的家当:微软自己公布的通用AHCI驱动、IDE小端口驱动、通用光盘、磁盘驱动,大部分是Win7带的 希望有用,或者对别的开发者有用 谢谢  详情 回复 发表于 2014-12-8 17:38
回复

使用道具 举报

50#
发表于 2014-12-8 17:38:35 | 只看该作者
不点 发表于 2014-12-8 11:15
最近这几天又在反复思考这个问题。

先是思考究竟该不该继续整合 kolibri 的问题。连键盘鼠标这种基本的 ...


找到了微软自己的家当:微软自己公布的通用AHCI驱动、IDE小端口驱动、通用光盘、磁盘驱动代码,大部分是Win7带的

希望有用,或者对别的开发者有用
谢谢

过会再挖掘挖掘微软泄露的2K和NT4代码试试

storage.7z

567.26 KB, 下载次数: 24, 下载积分: 无忧币 -2

回复

使用道具 举报

51#
发表于 2014-12-8 23:28:42 | 只看该作者
看看。。。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-9-22 09:39

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表