linoox
发表于 2008-7-3 09:57:14
windows的最初设计是支持运行Windows原生软件以及os/2和unix软件的(并非象wine那样的兼容层支持,而是象lin-win内核那样的正真的内核支持)。但后来windows在市场上取得巨大成功就不在后两者下功夫了。否则现在的软件格局会很不一样。试想windows能普遍运行linux程序时linux软件界是怎样的?
----------------------------------------------------------------
Windows、确切地说是Windows NT、当初的设计目标是支持三种不同系统的应用软件。第一种是Windows本身的应用软件,即所谓“Native”Windows软件,这是微软开发Windows NT的真正目的。第二种是OS/2的应用软件,这是因为当时微软与IBM还有合作关系。第三种是与Unix应用软件相似、符合POSIX标准的软件,那是因为当时美国的军方采购有这样的要求。不过实际上微软对后两种应用的支持从一开始就是半心半意的,后来翅膀长硬了,就更不必勉为其难了。但是,尽管如此,当初在设计的时候还是考虑了对不同“平台”的支持,即在同一个内核的基础上配以不同的外围软件,形成不同的应用软件运行环境,微软称之为“子系统(Subsystem)”。于是,在Windows内核上就有了所谓“Windows子系统”、“OS/2子系统”、和“POSIX子系统”。当然,时至今日,实际上只剩下Windows子系统了。
那么,所谓子系统是怎样构成的呢?“Internals”书中阐明了Windows子系统的构成,说这是由下列几个要素构成的。
一、 子系统进程csrss.exe。包括了对下列成分和功能的支持:
● 控制台(字符型)窗口的操作。面向控制台/终端的应用本身不支持窗口操作(例如窗口的移动、大化/小化、遮盖等等),但是又需要在窗口中运行,所以需要有额外的支持。
● 进程和线程的管理。例如弹出一个对话窗,说某个进程没有响应,让使用者选择是否结束该进程的运行,等等。每个Windows进程/线程再创建/退出时都要向csrss.exe进程发出通知。
● DOS软件和16位Windows软件在(32位)Windows上的运行。
● 其它。包括对当地语言(输入法)的支持。
这个进程之所以叫csrss,是“C/S Run-time SubSystem”的意思,csrss是Windows子系统的服务进程。其实三个子系统都是C/S结构,但是OS/2子系统的服务进程称为os2ss,POSIX子系统的服务进程称为Psxss。之所以如此,据“Internals”说,是因为最初时三个子系统的服务进程是合在一起的,就叫csrss,后来才把那两个子系统移了出来另立门户,但剩下的还继续叫csrss。
liufree
发表于 2008-7-3 16:27:18
我不是搞技术的,但我支持LZ的想法
可作为可选内核、现阶段主要是测试,稳定性到在其次
中国一直对linux项目贡献较少,这不得不说是次机会
顺便BS一下国产linux厂商,把别人的东西拿来换个壳居然还不愿意公开源代码、更是气不过那些还申请所谓的专利的
linoox
发表于 2008-11-30 13:47:05
转:Linux兼容内核0.2.2版(UnifiedKernel-0.2.2)发布
http://linuxdesktop.cn/2008/11/05/unified-kernel-022.html
2008 年10月31日,Linux兼容内核项目开发组正式发布了Linux兼容内核0.2.2版本。该版本在0.2.1版的基础上,修正了包括进程/线程管理,虚拟内存管理等方面的bug,在稳定性和兼容性上有了较大的提高。
另外,Linux兼容内核0.2.2版本还升级了附带的Wine的内置dll版本,并修正了一些其中窗口管理、中文支持等的bug。
此次发布的源代码包中,还提供了图形界面的安装程序,方便用户更简便的安装Linux兼容内核,同时手动安装方式仍然保留。具体使用请参见README和INSTALL文件。
兼容内核官方网站: http://www.unifiedkernel.com/
兼容内核Wiki:http://en.wikipedia.org/wiki/Linux_Unified_Kernel
======================
Linux兼容内核项目
兼容内核是一个自由、开源的操作系统项目,目的是要把Linux的内核扩充成一个既支持Linux应用、也支持Windows应用,既支持Linux设备驱动、也支持Windows设备驱动的兼容内核;使用户可以直接在Linux操作系统上高效运行Windows应用。
通过兼容内核,我们希望原来习惯于windows操作习惯的用户可以在Linux上延续他们的操作习惯。用户购买的第三方软件可以变成与操作系统无关,对于用户来说,本来是一旦购买了Windows的应用软件,从此只能选择Windows操作系统,而现在却还可以有选择,这对于Linux 当然是意义重大,可以提高桌面Linux的市场竞争力。
killer唐斩
发表于 2008-12-13 22:23:29
我不是搞技术的,但我支持LZ的想法。虽然现在linux下有很多很好用的软件,我也很想用linux来办公,但我不得不用windows,原因很简单,现在很多政府网站上的各类行业管理系统非IE不能进入,无可奈何啊。
[ 本帖最后由 killer唐斩 于 2008-12-13 22:24 编辑 ]
panpanpdj
发表于 2008-12-14 01:16:46
如果可以实现是最好的,既有软件用,又可以把WINDOWS扔一边去
panpanpdj
发表于 2008-12-15 15:14:17
顶上去,希望开发组可以考虑一下:idea: :arrow:
linoox
发表于 2009-9-1 12:12:39
Linux 兼容内核 (longene) 0.2.4.1 版 (UnifiedKernel-0.2.4.1) 发布
2009-08-31 Toy Posted in NewsRSS
2009 年 8 月 31 日,Linux 兼容内核项目开发组正式发布了 Linux 兼容内核 0.2.4.1 版本。兼容内核的前一版本(0.2.4 版本)是基于 Linux 内核 2.6.23 的,0.2.4.1 版本没有增加 Window 方面的新特性,只是把 Linux 内核升级到 2.6.30 以支持新的文件系统(Ext4 等)和硬件。同时兼容内核 0.2.4.1 版本还对前一版本的一些 bug 进行了修正。
目前 Linux 兼容内核项目开发组正在进行兼容内核支持 SMP(对称多处理)的编码工作,使得兼容内核在具有 SMP 的双核、四核 CPU(有些双核 CPU 本身不支持 SMP)中充分发挥的硬件性能。由于增加 SMP 的支持有较大的技术难度,因此这个过程可能会比较长。兼容内核开发人员已经对 Windows 设备驱动框架的实现进行了探讨,NidsWrapper 代码移植到兼容内核的工作已经开展。预计不久将启动 Windows 设备驱动框架的开发工作。
关于兼容内核项目:
我们知道现代计算机操作系统是把系统划分为用户空间和系统空间两部分。操作系统内核在系统空间负责调度管理 CPU、内存、磁盘等硬件资源和协调应用程序的运行。应用程序运行在用户空间中,它是看不见操作系统内核的,应用程序需要进行磁盘读写等操作需要通过一个“应用程序(设计)界面(API)”获得操作系统的支持。
操作系统内核是分层次的,其底层是硬件抽象层,再往上是设备管理层包括设备驱动等,Windows NT,Unix、Linux、BSD 等操作系统的这两层对硬件资源管理的各自实现是不一样的,没有一个统一的标准(甚至同种操作系统内核中的内部接口也没有统一标准,不同版本的内核内部接口经常变动,这也是兼容内核难以跟上标准 Linux 内核版本升级的原因之一)。
再往上是内核与应用程序对接的接口层即应用程序(设计)界面(API)(win32 标准为二进制兼容、POSIX 标准为源码兼容),应用程序通过 API 的获得底层硬件的资源。API 一般是稳定的,否则就与应用程序不兼容导致应用程序不能正常运行。硬件资源管理的底层作支撑,操作系统同时支持多个应用程序(设计)界面(API)是办得到的。
事实上 Windows NT 的结构就是在微内核上设置 UNIX、Win32 和 OS/2 三个子系统,三个子系统都在核内它们是互相独立地位是平等的。只是到现在为止微软并没有推出纯净的 Unix 系统(即只有 UNIX 子系统的 Windows)。Windows NT 从设计开始就在内核层面兼容 UNIX,支持 POSIX 标准的。它在内核上提供了一个 UNIX API 的兼容层。它的后继者 Windows XP 和 Vista 也继承了这个特性,最新的兼容层叫 Interix。Windows 服务器版包含 Interix,桌面版需要下载安装。Windows 对 POSIX 的兼容程度很高的,通过了高级别的测试:http://en.wikipedia.org/wiki/Interix ;Windows NT 的结构见微软的网站: http://www.microsoft.com/china/windowsserver2003/sfu/default.mspx。
兼容内核项目是一个开源的计算机操作系统内核计划,它试图在 Linux 内核中构建一个 Win32 API 子系统,使之在内核层面既支持 POSIX 标准的 Linux 的应用程序又支持 Win32 标准的 Windows 应用程序。相比 Windows NT 的 POSIX 子系统,因微软的 Win32 API 技术细节不公开,兼容内核开发要难的多。目前兼容内核主要的技术依托为 Linux Kernel、Wine、NdisWrapper 和 ReactOS 等。它们都是开源项目,源码公开可以自由取得。
兼容内核开发路线:
兼容内核不采取一步到位、而采取逐步逼近的策略。对于 Windows 系统调用部分它以 Linux+Wine 为起点,兼容内核开发自身的功能模块来替代 Wine 的功能模块。兼容内核每实现一个功能就对 Wine 打相应的补丁,使得 Windows 程序转向使用兼容内核的功能。可以表示为:
(Linux + Wine) => … => … => (Linux’ + Wine’)。起点 Linux+Wine 显然是可以运行的,开发过程中的每一步都替代 Wine 的一些功能模块,实现一组有限的目标,每一步的结果都应该是一个可以运行的、更逼近 Windows 的、可以发行的版本。此发行版本有可以作为下一个开发版的起点。如此反复直至 Wine 的功能模块完全被替换。Wine 受技术路线限制不能实现的功能兼容内核也要加以实现。
对 Linux 内核的修改原则上以动态安装模块的形式实现,尽可能不改变 Linux 内核原有的代码,必要时才打一下补丁。这有利于保持原 Linux 内核的稳定和兼容内核升级的灵活性。
对于设备驱动支持部分兼容内核以 NDISWrapper 为起点,通过扩充和替换 NDISWrapper 功能模块和增加 Windows API 支持来实现设备驱动的装入和运行。
兼容内核下载地址:
http://www.longene.org/download.php
兼容内核的 CVS 数据库已对公众开放,它的 CVS 服务器 IP 是:218.108.51.90:2401
账号:anonymous
口令:anonymous
兼容内核官方网站:
http://www.longene.org/index.php
兼容内核 Wiki:
http://zh.wikipedia.org/w/index.php?title=%E5%85%BC%E5%AE%B9%E5%86%85%E6%A0%B8&variant=zh-cn
Linux 兼容内核白皮书(关于兼容内核的必要性、知识产权问题、开发路线和技术方案):
http://www.longene.org/whitepaper.php