无忧启动论坛

标题: 请推荐仍在持续不断开发的开源操作系统 [打印本页]

作者: 不点    时间: 2014-11-10 20:58
标题: 请推荐仍在持续不断开发的开源操作系统
本帖最后由 不点 于 2014-11-10 21:10 编辑

我想选择一款,把它整合到 grub4dos 中。

您认为哪个合适,就推荐哪个。可以添加您对于这个操作系统的简单介绍,以及您对这个操作系统的评论。

之所以要求它持续不断在开发,是想作为一个标尺,表明它有恒久的价值和生命力。开发必须活跃,每年都有维护的动作。如果两三年都没有动静了,那就不予考虑。

不要推荐 linux,因为我了解 linux,整合 linux 的难度太高。

其他系统都可以推荐。您只管推荐,不管它能否整合到 grub4dos 中。我从推荐的操作系统当中,选择一个最合适的,进行整合。



作者: zhczf    时间: 2014-11-10 22:16
来支持不点大师,牛人啊,辛苦了
作者: asukaid    时间: 2014-11-11 02:12
随便找的5种,都属于BSD或GPL授权。
contiki
freertos
helenos
kolibrios
rtems
作者: chenall    时间: 2014-11-11 08:57
lwip A Lightweight TCP/IP stack
http://savannah.nongnu.org/projects/lwip/

不知这个能不能集成到GRUB4DOS里面用于实现HTTP/FTP等协议(SYSLINUX就是使用这个来实现的)


另外disk_io.c如下代码,里面的" || current_partition > 254 "是多余的吧

  1.               current_partition = 0;

  2.               if (/*!(current_drive & 0x80)
  3.                   ||*/ !safe_parse_maxint (&device, &ull)
  4.                   || current_partition > 254)
  5.                 {
  6.                   errnum = ERR_DEV_FORMAT;
  7.                   return 0;
  8.                 }
复制代码

作者: 不点    时间: 2014-11-11 09:55
chenall 发表于 2014-11-11 08:57
lwip A Lightweight TCP/IP stack
http://savannah.nongnu.org/projects/lwip/

不多余,是必须的。作用是阻止无限循环列出分区导致死机。

BIOS 攻击者在读逻辑分区表时返回成功 (CF=0)但根本没有成功。这导致逻辑分区表还是沿用原先的逻辑分区表,这样就循环死机了。

虽然我们已经可以化解这种攻击了(检验读取的扇区内容是否发生变化),但是,保留这个代码仍然是有好处的,它可以防止真实的循环分区表引起死机。

-------------------

目前是考虑操作系统实现,不是考虑网络功能。

最理想的情况是把 Linux 整合进来。如果困难太大,可以尝试整合 minix3。如果也不行,再考虑 kolibri。如果 kolibri 也不行,还有一个选择是 BareMetal OS,功能比较简单。目前我是这样计划的。

大家推荐的时候,要推荐比较成熟的,比如说,稳定不死机,功能丰富强大。最好是亲自试验过。


作者: jack95    时间: 2014-11-11 09:59
突破bios的绑架比添加什么功能都要显得意义深远许多。
作者: chenall    时间: 2014-11-11 10:12
不点 发表于 2014-11-11 09:55
不多余,是必须的。作用是阻止无限循环列出分区导致死机。

BIOS 攻击者在读逻辑分区表时返回成功 (CF ...

前面有一个语句
current_partition = 0;

然后直接判断 current_partition > 254 ?难道此时的current_partition不应该是0吗?表示很不理解.
作者: xianglang    时间: 2014-11-11 12:11
我觉得现在G4D支持UEFI最实际。
作者: 不点    时间: 2014-11-11 14:38
chenall 发表于 2014-11-11 10:12
前面有一个语句
current_partition = 0;

看来是我眼花了。我所说的代码实际上是指这个片段:


  1.       if (pc_slice_no == 0xFE)
  2.         {
  3.           errnum = ERR_PARTITION_LOOP;
  4.           return 0;
  5.         }
复制代码


这个代码没有弄丢,目前仍然在起作用。

你所说的代码,我还真不知道是怎么回事。很有可能是我写的,但是却是有毛病的。

感觉就连 current_partition = 0 也不起什么作用,似乎它也可以删掉。

你看着怎么合适,你作个决断吧。


作者: pseudo    时间: 2014-11-12 02:12
chenall 发表于 2014-11-11 10:12
前面有一个语句
current_partition = 0;

没有信息表明safe_parse_maxint (&device, &ull)不会改动current_partition。

作者: 2013gdh    时间: 2014-11-12 21:03
要不, 试着精简下Clover, 目的是从g4d模拟efi, 能加载grub2的核心就很不错了
作者: 2013abcdefg    时间: 2014-11-13 12:23
freedos+opengem很容易启动
作者: alex20092009    时间: 2014-11-22 09:53
grub4dos 能支持UEFI最实际,现在pc都支援efi,现在用u盘制作grub4dos 安装windows xp, windows 7, windows 8 成功,只差efi无法在grub4dos运行安装windows
作者: minmax    时间: 2014-11-22 17:48
本帖最后由 minmax 于 2014-11-22 18:00 编辑

建議 TINY CORE LINUX
http://distro.ibiblio.org/tinycorelinux/
雖然不點有提到不想要LINUX,但是這個是我看到最小的OS 可CMD 可GUI,仍有維護,LINUX kernel,+ BUSYBOX COMMAND 讓這個OS維持極小與合適的硬體相容性
It starts with a recent Linux kernel, vmlinuz 3.0, and a 5MB core.gz. MicroCore 8MB is simply the kernel + core.gz - this is the foundation for user created desktops, servers, or appliances. TinyCore is simply the kernel + core.gz + Xvesa.tcz|Xorg.tcz + Xprogs +fltk-1.10.tcz + (user's choice of Window Manager) + wbar.tcz

TinyCore becomes simply an example of what the Core Project can produce, an 12MB FLTK/FLWM desktop.

作者: 不点    时间: 2014-11-24 20:47
本帖最后由 不点 于 2014-11-24 21:27 编辑

http://unix.stackexchange.com/questions/169135/cannot-load-grub4dos-through-kexec

上面这个网页是最近的报告 kexec 启动 grub.exe 失败的案例了。
linux 下的程序设计者不重视 bios 兼容性问题。
在 linux 系统内核以及各种驱动程序中,基本上完全脱离 bios。
它不是一个可以与 grub4dos 无缝融合的理想的操作系统。
从这一角度来讲,我作出放弃 linux 的决定,也有其必然性的一面。

linux 的优点是应用程序丰富。但这些应用程序大多都可以移植到
bsd,minix 等其他 unix 类的操作系统中。

linux 的内核太复杂,尽管那些解析 linux 内核的参考资料比较多,
可是要改造 linux 内核仍是十分艰巨的任务。

linux 文件系统的设计也透露出对微软的蔑视。举例来说,linux 下
竟然没有一个文件系统可以生成连续文件的,而微软的文件系统个个
都支持消除碎片的操作。

linux 的内核以及驱动程序开发者不重视 bios 问题,也不重视与微软
的兼容性问题。

linux 的成熟度比较高,但这不一定是优点。成熟度高,改造它的难度也会增大。

从以上这些情况综合分析和权衡以后,我决定放弃引入 linux 到
grub4dos 中的想法。

最后再补充说明一下,为何 linux 下用 kexec 启动 grub.exe 会失败。
那多半是因为 linux 的 pci 设备驱动程序破坏了 bios 的运行环境,造成进入
bios 后的各种异常,包括死机。

用一个精简的 linux 内核,带有很少的设备驱动程序,可以验证,再在那台失败的
电脑上能够成功从 kexec 启动 grub.exe。

这就可以断定是 linux 内核和驱动破坏 bios 数据引起的问题了。

在虚拟机下总是可以用 kexec 成功进入 grub.exe,这再一次暗示,正是驱动程序与
实际机器的 bios 相冲突而引起的问题。








欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) Powered by Discuz! X3.3