西西河

主题:苹果已死,脸书当立? -- 大山猫

共:💬1049 🌺5083 🌵75
分页树展主题 · 全看首页 上页
/ 70
下页 末页
              • 家园 觉得中国处于安全性,也应该出钱开发并推广(免费)国产

                操作系统。等升级几次很成熟时再考虑收费,国内的市场够大的。

                • 家园 光安全这一点,没有那么大的商业利益来驱动这么大市场

                  因为操作系统不仅仅是操作系统,还有一系列在上面开发的软件。这些东西要都重写的话,几千亿投资也就是个起步。

                  国家能为了这点安全问题,投资几万亿搞这事么?

                  我说过了,除非新操作系统能带来巨大收益,才会引发大量人投资其中,创造出更多利润,形成利滚利的发展。

                  • 家园 我的意思是就重写一遍和WINDWOS类似或兼容的体统

                    当然有人会把他叫山寨。有那么多在微软工作过的中国人,召回一批搞。难道比搞原子弹还难?

                    • 家园 Longene:

                      浙大的毛德操老师发起的项目Longene:从linux内核出发修改,重构windows系统API,最终做到对windows程序的高度高效兼容。

                      关于知识产权的问题他在这里有回答:http://www.longene.org/techdoc/0175880001227686047.html

                      但是这个项目还有很长的路要走,目前看不到大规模应用的前景

                      • 家园 这不是重新发明轮子吗?

                        Wine不是已经把这个搞了,而且是开源的吗?

                        • 家园 不一样

                          1.longene大量借鉴了wine的源码

                          2.毛德操本人表示wine是在“用户空间”作兼容的,效率很难满足要求,longene正是针对这一点做出改进,更多的从内核考虑解决兼容性问题。具体请看《内核差异核内补》http://www.longene.org/techdoc/0531255001224577169.html

                          3.与wine效率对比:

                          Longene和Wine的效率测试对比分析

                          测试方法:

                          1、选定一台设备。

                          2、安装Wine,使用测试程序测试,得到测试结果。

                          3、卸载wine

                          4、安装Longene,使用测试程序测试,得到测试结果。

                          测试环境介绍:

                          model name: Pentium(R) Dual-Core CPU E5300 @ 2.60GHz

                          cpu MHz: 2600.000

                          cache size: 2048 KB

                          MemTotal: 1032748 kB

                          MemFree: 857724 kB

                          Buffers: 7872 kB

                          Cached: 116800 kB

                          测试程序介绍:

                          TestApi针对文件读写、注册表操作,消息操作分别测试。MFC编程。

                          TestAll将它们整合在一起,完整地测试以上操作。MFC编程。[测试程序打包下载]

                          测试程序流程:

                          1) 根据需要测试的文件数量、注册表项数量、消息数量,创建读写进程。

                          2) 文件测试:

                          Thread1负责创建一个文件,等待Thread2读取后,再次创建

                          Thread2负责读取并删除文件,等待Thread1创建后,再次操作

                          Thread1和Thread2使用Event同步

                          3) 注册表测试:

                          Thread3负责创建一个注册表键值,等待Thread4读取后,再次创建

                          Thread4负责读取并删除注册表键,等待Thread3创建后,再次操作

                          Thread1和Thread2使用Semaphore同步

                          4) 消息测试:

                          Thread5负责发送一个消息,等待主线程接收以后,再次发送

                          主线程负责接收消息,等待Thread5发送后,再次操作

                          Thread5和主线程使用Mutex同步

                          5) 使用的测试函数列表:

                          CreateFile

                          WriteFile

                          DeleteFile

                          CloseFile

                          RegCreateKeyEx

                          RegSetValueEx

                          RegOpenKeyEx

                          RegCloseKey

                          RegQueryValueEx

                          RegDeleteKey

                          PostMessage

                          GetMessage

                          CreateEvent

                          SetEvent

                          CreateSemaphore

                          ReleaseSemaphore

                          CreateMutex

                          ReleaseMutex

                          CreateThread

                          CloseHandle

                          WaitForSingleObject

                          WaitForMultipleObjects

                          测试结果:

                          下面对比数据以毫秒为单位,每100次为一组,共10组。

                          Longene0.3:

                          TestApi:

                          WriteFile ReadFile WriteReg ReadReg MsgTest

                          34 7 1 1 149

                          23 6 1 1 157

                          34 6 1 1 177

                          44 6 1 0 197

                          56 6 1 0 216

                          65 6 1 0 253

                          73 7 1 0 274

                          86 6 1 0 297

                          95 6 1 0 307

                          91 6 0 0 313

                          60.10 6.20 0.90 0.30 234.00

                          TestAll:

                          FileTest Write Number 100 Read Number 100 Time 20ms

                          RegTest Write Number 100 Read Number 100 Time 8ms

                          MesTest Send Number 10000 Recieve Number 10000 Time 184ms

                          All Time: 207ms

                          Wine1.0:

                          TestApi:

                          WriteFile ReadFile WriteReg ReadReg MsgTest

                          44 21 7 6 900

                          35 20 8 7 1147

                          45 21 7 6 1455

                          59 19 7 6 1731

                          69 22 6 6 2007

                          75 20 7 6 2286

                          85 21 7 6 2467

                          97 22 8 7 2467

                          112 23 7 6 2434

                          106 20 7 8 2478

                          72.70 20.90 7.10 6.40 1935.20

                          TestAll:

                          FileTest Write Number 100 Read Number 100 Time 73ms

                          RegTest Write Number 100 Read Number 100 Time 95ms

                          MesTest Send Number 10000 Recieve Number 10000 Time 1222ms

                          All Time: 1270ms

                          性能提升:

                          WriteFile: 17.33%

                          ReadFile: 70.33%

                          WriteReg: 87.32%

                          ReadReg: 95.31%

                          MsgTest: 87.91%

                          Summation: 83.70%

                          对比分析:

                          以写文件操作为例(实际上读操作也是一样),从整个过程看,Wine最低限度的操作有这么一些:

                          1) 客户进程通过进程间通信向服务进程发送get_handle_fd请求。注意这里至少有两次系统调用,一次是通过send_request()调用对于管道的write(),然后又通过wait_reply()调用对于管道的read()。

                          2) 内核调度服务进程运行。

                          3) 服务进程根据Handle找到目标文件在客户进程中的打开文件号,并通过进程间通信将其发送给客户进程。这里至少有三次系统调用,一次是通过send_reply()调用对于管道的write(),然后是系统调用poll(),接着又通过read_request()调用对于具体管道的read()。这里的系统调用poll()类似于select()。

                          4) 内核调度客户进程运行。

                          5) 客户进程通过系统调用dup()复制一个新的、临时的已打开文件号。

                          6) 然后用临时的已打开文件号调用write()。

                          7) 最后通过系统调用close()关闭临时的已打开文件号。

                          longene没有2和4过程的内核调度,因为longene去掉了WineServer。longene修改了1和3过程send_request和read_request的实现,由进程间通信改为系统调用,大大减少了通信所消耗的时间。

                          性能的问题在于两次进程调度。当客户进程通过IPC向服务进程发送请求时,服务进程被唤醒,内核则进行进程调度和切换。显然,用户此时希望服务进程能马上被调度运行,这样才能保证快速的响应。可是能否如愿以偿呢?这就不一定了。如果此时有个优先级更高的进程因某种原因(例如中断)而进入了就绪状态,服务进程就只好往后靠了。所以,在上列的第一和第二两个动作不一定是连续的,中间可能会有别的进程插进来。而对于桌面用户,这个优先级更高的进程得倒运行的正面效果也许感觉不到,而负面的效果却感觉到了。同样,当服务进程通过IPC回答客户进程时,客户进程也完全可能一时不能被调度运行。

                          文件性能测试受磁盘I/O速度的影响。longene只能节省进程调度所花费的时间,但并不能避免同是毫秒级别的磁盘读写所花费的时间。读写文件性能上的差异很好的体现了这一点。在写文件时,每次都要创建新的文件,而在读文件时,每次都是打开已有文件。所以写文件的Disk I/O比读文件的Disk I/O更多,因此性能提升比较小。

                          注册表性能测试可以体现出两次进程调度带来的性能差异。longene的注册表读写完成时间大概都在一毫秒之内,而进程切换都会消耗几毫秒。相比之下,注册表本身的操作所消耗的时间十分微小。

                          消息性能测试和注册表性能测试类似。以输入消息为例:

                          1) Wine需要从X11获得输入消息。

                          2) Wine获得输入消息后将消息放入WineServer。

                          3) Wine从WineServer获得输入消息。

                          虽然PostMessage没有和X11通信的过程,但Wine还是需要两次和WineServer通信才能获得输入消息。 longene无法避免花费和X11的通信时间,却也减少了大量的和WineServer的通信时间。

                          本次测试前,正好wine发布了新的1.2RC,实际测试wine1.2的结果和wine1.0几乎完全一致,可以看到wine的主要侧重点在于兼容度的提高,而由于架构的关系,在性能方面可提升的空间就很小了。

                    • 家园 兼容就有专利问题呀

                      我前面说过了,windows的垄断是知识产权的垄断,而不是技术垄断。

                      如果做到和Windows兼容势必侵犯微软的知识产权。如果不兼容,就得从头开发各种应用软件,起码得移植各种应用软件。

                      侵权这种事情小厂商做做还是行的,如果一个国家的战略就是侵权的话,这未免太令人匪夷所思了。

                      所以说如果为了安全,而重新开发一套Windows的话,成本太高了,不划算。

                      • 家园 不侵权,你不能给API上专利
                      • 家园 合着你第一个盖了方形的楼,我还不能盖方楼了,只能盖

                        园的?要不就是侵权?以中国目前的状态,可以改变游戏规则, 不是什么都美国人说了算。

                        • 家园 :(

                          中国是世界的一员,知识产权的协议大家都签了,怎么能打自己嘴巴呢?

                          为了那么点安全问题,就想把大家吃饭的桌子给掀了?我们要在共同的游戏规则基础上玩,玩得还要比美帝好,这才是正途。华为现在做得就很好呀,已经逼美帝“要”掀桌子了。

                          • :(
                            家园 安全问题不是一点吧?涉及国防,军事,政府,公安等

                            重要部门。这些部门很多还是用WINDOWS。这不把国家命脉放在不安全的位置嘛。

                            • 家园 没有那么严重

                              可以部署网络安全设备呀,防止这些PC和外面通讯。

                              更重要的地方都用国产Linux平台,比如红旗Linux。

                              • 家园 是的,是加了很多安全措施,可还是经常泄密。

                                有那工夫去堵漏洞,不如一劳永逸的搞自己的系统从根本上解决问题。

                                • 家园 成本太高

                                  不值得去做这件事情。

                                  事无完美!

                                  开发一个操作系统替代Windows,要么花几万亿重建一个操作系统生态系统,要么侵犯Windows的版权。侵犯版权成本也是很高昂的,我国毕竟已经世界诸国签了知识产权协议。你不认知识产权协议,人家也可以不认,双输的格局。

                                  怎么都不合算

                                  • 家园 这就是在其他领域也经常提到的是买还是造的问题。

                                    比如大飞机,大轮船,高铁, 军用直升机等,可以参照他们的经验教训。

分页树展主题 · 全看首页 上页
/ 70
下页 末页


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河