0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

科普:这些年我们在国产操作系统做的工作

如意 来源:python小生 作者:python小生 2020-08-25 11:45 次阅读

国产操作系统不仅仅是换皮肤

本来今天要推QT5的研究文章,但通过昨天的议论,我觉得很多国人对国产操作系统上有误会,“这不就是在linux系统上换一个皮肤嘛”,这种评论我听到的最多。所以我觉得有必要给对国产操作系统有误会的人做个科普。让大家了解这么多年我们在国产操作系统上做了哪些工作。

作者:python小生来源:今日头条|2020-08-24 19:00 收藏 分享

昨天写国产操作系统的文章,头条推荐量突破10万,这证明国人对国产操作系统还是很关注的。有很多人也私信给我各种技术问题,其中能解答的我也有回复。也有很多问题因为超出我知识的盲区,无法做出解答,非常抱歉。

本来今天要推QT5的研究文章,但通过昨天的议论,我觉得很多国人对国产操作系统上有误会,“这不就是在linux系统上换一个皮肤嘛”,这种评论我听到的最多。所以我觉得有必要给对国产操作系统有误会的人做个科普。让大家了解这么多年我们在国产操作系统上做了哪些工作。

什么是桌面操作系统?

桌面操作系统就是大家平常电脑里面用的操作系统。 桌面操作系统应该是所有操作系统类型中最为复杂、研发技术难度最高的一种操作系统了。 世界上非常优秀的桌面操作系统有微软的Windows和苹果的Mac OS,其他的Linux桌面操作系统,比如Fedora、Suse、Ubuntu包括我们自己的deepin操作系统,虽然这十几年取得了长足的进步,但是相对于Windows和Mac OS,不论技术先进性、交互设计还是产品质量方面都还有非常大的差距。

桌面操作系统都有哪些部分组成?

一个普通用户使用的桌面操作系统的组成部分主要包括:

内核、驱动以及固件:主要用于驱动硬件可以正常工作,除了CPU、内存、磁盘外,最主要的是要广泛兼容不同的网卡、显卡、声卡和外设等硬件设备。

软件仓库及众多开发库:如果没有开源社区众多大神打包好的软件仓库和各种开发库,要基于Linux来开发一个操作系统甭说开源爱好者,甚至就是一个中型公司都很难做起来,可以说开源软件仓库从本质上改变了操作系统和开源软件的开发模式,丰富的软件仓库使开源开发者、组织和公司能够使用最新技术的同时开发成本也降低了很多。

桌面环境:就是大家平常一开机就用到的桌面、任务栏和开始菜单等,可以说一个高质量和交互设计极佳的桌面环境可以极大降低用户使用新的桌面操作系统的门槛。

应用商店:对于用户来说,绝对不仅仅是一个好玩的桌面环境就能留下的,没有好的应用商店带来的海量应用和方便易用的安装操作,普通用户用几天就会放弃,可以说应用商店是留住普通用户的最基本要求。

预装应用:在国内来看,至少需要解决QQ、Office、网银和一系列方便易用的多媒体应用才能算是一个好用的桌面操作系统。目前国产操作系统可以兼容很多windows软件,若是有迫切的需要,可以去官网提交自己的需求来加速适配。

什么是桌面环境?

桌面环境简单来说,就是在内核和X Server之上,写一批程序让用户登录后就可以直觉性、流畅的使用桌面、任务栏、开始菜单、文件操作和系统设置。

这里对X server做个科普,X server是Linux系统里面图形接口服务器的简称。

Windows系统的界面是这个系统不可分割的一部分,各种窗口操作界面显示都是由系统核心直接管理的,

而Linux的图形界面并不是系统的必要组成部分,它可以在无界面的条件下运行。当需要Linux提供界面的时候,系统就会建立一个或者数个X server,通过X协议跟窗口管理器交互,由独立于系统的应用程序来产生窗口,状态栏,按钮之类的交互界面。

比较常见的Linux界面操作环境有KDE和GNOME,为它们提供系统支持的就是X server,而并非Linux核心。

总结一下linux图形界面层次关系:

linux本身--》X服务器《-[通过X协议交谈]-》窗口管理器(综合桌面环境)--》X应用程序。

这个世界上从功能完整性和产品质量来看主要有四个桌面环境:

RedHat主导开发的Gnome, Gnome2的稳定性和性能都非常好,包括后面的Mint桌面都是衍生于Gnome2。

Suse主导开发的KDE:可以说功能最为丰富的桌面环境,包括产品质量以及性能每年都在飞速进步。

Ubuntu主导开发的Unity: Unity身上还是可以看到很多Gnome2的影子,产品质量和性能都不错,Ubuntu自己独立开发了Mir、Unity桌面环境和一些全局菜单等独特特性。

Deepin主导开发的DDE: 作为DDE的开发者,客观的评价,产品质量、设计视觉都符合中国人的习惯,很多地方的交互设计细节要比其他桌面环境做的更加精致和简单,主要面向开箱即用的非技术型用户,从功能设计上并不适合技术高手和那些本来就喜欢折腾的技术型用户

其他轻量型的桌面环境,比如LXDE、XFCE、Enlightenment虽然性能极佳,但是从桌面环境的功能完整性和交互设计的精致性上都不够,比较适合有一定技术深度,追求性能和自己配置多于开箱即用的技术型用户。

剩下的就是一堆平铺类窗口管理器,比如大家熟知的:awesome, i3, xmonad, dwm, stumpwm等等,这些窗口管理器型的桌面环境有300多个,我曾经为了研究所有桌面环境的特性,把这些窗口管理器都用过,最喜欢的是xmonad。这类窗口管理器的可以把个人的工作环境内存和性能消耗降到极低,而且可定制性极强,甚至可以通过编程来打造自己独一无二的工作环境。这类窗口管理器型的桌面环境比较适合开发人员和黑客,当然也不乏国内一大批装X用户。

桌面环境和那些换主题的工作差别在哪里?

可以说,桌面操作系统的核心技术和产品功力都聚焦在桌面环境上。 只有掌握了桌面环境这个古老而又深奥的核心技术,才能说在桌面操作系统上可以任意修改和改进,才能给用户带来更好的用户体验。

因为桌面环境强调的是从上至下全栈技术攻克,不论技术深度、技术全面性和代码工程量来说都是巨大的,开发一个功能完备的桌面环境需要20+人以上的团队工作最少2年以上才能打造出来,而且桌面环境的技术核心全部都依赖一批古老的协议,比如:x11、xcb、composite等基础技术,互联网上几乎没有文档教你怎么一步一步的构建桌面环境,现成的桌面环境因为发展多年,代码已经非常复杂,最多只能从核心代码片段有所学习。一个人要自上而下框架式的学习桌面环境核心技术并实现一套功能完备的桌面环境几乎不可能。

所以,大部分的Linux发行版都是基于Gnome、KDE改的,大多数都是在网上找一批主题(Gtk+主题、图标主题、光标主题、窗口边框主题、DM主题、锁屏主题)再配上一张好看的壁纸就可以做一套自己DIY的桌面环境。很多Linux社区的用户说,你看我自己都可以做桌面环境,甚至很多国内的Linux发行版厂商也是拿着社区的桌面环境然后换一套皮肤就去骗政府的钱,说自己是自主研发的操作系统。

既然换套主题也可以很好,那么桌面环境和那些换主题的工作差别在哪里? 在我看来,主要在几个方面:

核心技术能力:如果没有掌握桌面环境的核心技术,所有的修改能力仅仅限于修改主题、logo、字符串替换的能力

产品质量无法保障:特别是有很多隐蔽性的bug,如果不掌握核心技术,连问题发生的原因都不知道,更不用提怎么解决

设计细节:如果大家仔细看那些只是套用主题的桌面环境,就会发现外面看着还可以,但是很多按钮的颜色、留白以及控件的对齐都是有问题的,甚至是粗糙的,为什么?这是由GTK+的主题设计导致的,GTK+强调的是一套原生控件打天下,但是面对无穷的应用和需求,不是所有的交互都能靠一套控件才能满足的,在大多数Linux社区开发者不具备控件自绘的能力前提下,大多数开发者都选择套用不合适的控件和控件主题去拼装,而GTK+主题的作者不可能在制作主题的时候测试所有软件,而且从GTK+先天限制也做不到,最后导致不论怎么套用主题,各种软件拼装在一起,就像各种质量参差不齐的补丁拼在一起一样的,大多数开源社区开发者被虐很多年可以忍受粗糙的设计细节,但是对于普通用户来说,这种拼装的设计细节就像拿着当年的诺基亚和现在的iPhone7放一块的感觉那么强烈。

统一的操作接口:比如右键菜单、文件打开对话框、认证对话框等等,只有从深层次统一这些底层接口,才不会看到不同风格的右键菜单、文件打开对话框、认证对话框,这些都对于统一的桌面操作系统体验非常重要,想一想如果你自己买的iPhone各处都粗糙不一样,你会不会砸了它?但是为啥这么多开源爱好者就能忍受这些粗糙的东西?(因为自己没有花钱,花了钱你看他不把客服电话打爆。..)

一个完整的桌面系统从技术剖面看,从下到上主要分这几层:

内核驱动层:前面已经说了,主要是保障硬件的基本功能和兼容性,所有的Linux发行版都大同小异,差别就是内核补丁集不一样,或者集成的驱动和固件多少的差异

显示服务层:从内核引导到plymouth(我们俗称的开机动画)后,只要你见到登录界面输入密码的时候,这时候X Server已经起来了, X Server简单来理解就是Linux系统中掌握着绘制图形界面生杀大权的“天神”,所有程序要绘制图形的时候都要发送消息到 X Server, X Server才会给你画出来。同时X Server也是事件输入(键盘鼠标)输出(显示器)的抽象层,开发者可以不用考虑底层驱动和显卡驱动细节,直接就可以使用X11/XCB的API进行应用开发,只不过更多的开发者是使用Gtk+/Qt这些在X11/XCB更上层的API进行应用开发

显示管理器:简单的理解就是你看到的登录界面提示你输入密码的那个地方

资源管理器:这一层主要由一系列的底层守护程序来监控硬件的状态,并汇报给上层的桌面环境和应用进一步操作,比如常见的就有网络电源、磁盘、蓝牙、声音、键盘、打印等

桌面环境: 以深度桌面环境为例,主要包括桌面环境后台服务和守护进程、桌面环境对外提供图形开发工具库、二进制工具、DBus API服务和桌面环境UI界面层几个部分组成的,后面我会详细讲每一个细节

应用商店:主要提供系统的软件安装、卸载、升级等操作,保证用户可以安全易用的进行软件管理,同时提供了商店的评论和评分等功能

应用程序:主要包括深度开发的系列应用、合作开发的国内应用、Android应用、Windows应用和网页应用,开发者在linux系统中内置了Android RAT,因此,可以直接运行Android应用。

为什么开源的轮子不能用?

深度造了那么多轮子,为什么不用社区的?

社区技术大拿很多,但是技术强大的同时能把一个应用的UI和交互细节做好的开发者鲜有 社区大部分软件都是面向开发者,功能确实强大,但是对于小白用户来说太复杂了 深度希望十年之内解决linux桌面的问题,我们内部每天几百个commit的快速迭代,社区主导开发完了花都谢了 希望做出来再吹牛,不想天天在社区打嘴炮。

十几年开源社区为什么做不好桌面?

主要用户群体是开发者,大多数开发者喜欢黑客般的各种功能堆在一起,而普通用户只需要简单易用的产品 太过于碎片化:大家不齐心,每个人都造半成品互相打压,没有形成合力,最后社区除了大量的半成品,并没有多少应用能够比Windows软件更好(真正能和Windows平台堪比的应用不超过50个) 鄙视小白的氛围不好,技术稍微好一点的人就打击小白用户,大量真正的桌面小白用户走了以后,最后导致大家都不关心桌面的细节体验 做的太少,说的太多,有行动,10年就是翻天覆地变化,而不是大家时间长了都失望了。

开源社区擅长什么?

开源社区适合做远程协助,碎片化的事情,比如文档和翻译,深度社区全世界的翻译贡献者就超过300多名: https://www.transifex.com/linuxdeepin/public/ , 曾经创造西班牙语一星期就翻译完整个系统的奇迹

开源社区适合吐槽, 我说的是客观的吐槽,https://bbs.deepin.org/ 各种用户帮助开发团队发现更多测试版的bug和非常非常好的反馈建议 开源社区适合打包移植, https://www.deepin.org/dde/desktop-transplantation/ 目前深度桌面已经移植到 Arch, Manjaro, SparkyLinux, openSuse, Ubuntu, Gentoo, Fedora 等发行版

国内技术圈偏见

我在开源社区十几年看到国内技术圈很多偏见,最主要的有几个:

拿着自己的平铺式窗口管理器装X,鄙视小白用户:其实玩过的人都知道,就是一些配置,花一些耐心和毅力就能搞定,这些只能证明你比较能折腾,但折腾并不代表你的学识渊博和能力高超,更不是鄙视和嘲笑别人的资本

认为只有玩内核才是技术高手: 不懂linux的人这样认为,很多开发者也这样认为,真正开发内核的开发者都知道,内核开发和应用开发和其他任何开发都一样,唯一的不同就是更难调试,更复杂。不是只会内核开发的开发者才是最厉害的人,很多内核的开发都要和应用以及现实场景配合才有意义。更不是自己会编译内核就开始了不起了

认为做UI和桌面环境很容易: 其实很多嘲笑做UI的人,即使是一些开发者,我相信大部分人连XCB以及窗口移动,甚至窗口阴影都绘制不出来,在国内看到太多拿着无知当权威的喷子了,希望这些人长大以后学会谦虚。其实大家都是看着功成名就来评判的,苹果应该是这个世界上折腾UI细节最多的公司,但是没有人说苹果只会UI,为什么?国人就喜欢打压还没有成功的公司,然后跟风吹捧成功的公司和产品

Linux就是应该折腾: Linux早期的折腾对于开发者来说是非常有帮助的,但是人都有会老,都会累的那一天(要不是为什么达拉斯黑客大会那么多大牛最后用Mac, 是因为他们折腾没有你多吗?),一旦折腾完Linux就应该花更多时间去学习新的知识或享受生活, 而不是一直都在折腾,然后鄙视不会折腾的人。

通过上面的科普,大家还有认为国产系统仅仅是换肤那样简单的事情吗?我认为大家应该尊重每一位技术开发者,但是真的对于那些完全不基于调查,只是简简单单基于对国内开发团队鄙视而轻言下结论的人感到痛心,希望国人基于事实支持好的产品和团队,停止一切不实的攻击。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    11227

    浏览量

    208922
  • 操作系统
    +关注

    关注

    37

    文章

    6738

    浏览量

    123190
  • 虚拟机
    +关注

    关注

    1

    文章

    908

    浏览量

    28090
收藏 人收藏

    评论

    相关推荐

    什么是嵌入式操作系统?

    的导航系统,再到医院里的医疗设备,到处都有嵌入式操作系统的身影。它们就像是这些设备的指挥官,告诉它们该做什么。 有哪些知名的EOS? VxWorks:这家伙航天飞机和火车上
    发表于 11-08 15:07

    华为引领国产操作系统迈向新高度

    近日,华为 “原生鸿蒙之夜暨华为全场景新品发布会” 如同一颗璀璨的科技流星,照亮了国产操作系统的前行之路。全新的原生鸿蒙操作系统(HarmonyOS NEXT)正式登场,标志着国产
    的头像 发表于 10-24 16:06 741次阅读

    关于台式电脑国产操作系统鸿蒙、统信、麒麟等操作系统光驱驱动程序一些问题!

    现在国产化替代越来越深入,很多电脑都用了的是国产操作系统 对于:DVD刻录机光驱,移动USB刻录机光驱,WIN系统可以正常实现功能,或者联
    发表于 09-23 11:07

    第六届国产嵌入式操作系统技术与产业发展论坛议程发布

    嵌入式系统快速发展,操作系统智能系统正在发挥越来越大的作用,嵌入式操作系统急需升级换代适配智能系统
    发表于 07-26 10:54

    3568F-麒麟KylinOS国产操作系统演示案例

    :支持轻量级AI框架,功能域完成边缘智能计算。 (5)工业稳定:工业级系统稳定性,支持操作系统长时间无值守工作。 (6)泛连接:集成主流工业通信协议、物联网协议,实现云边端协同连接。
    发表于 07-25 15:55

    3568F-翼辉SylixOS国产操作系统演示案例

    SylixOS简介 SylixOS是“翼辉信息”开发的一款国产开源大型实时操作系统,内核自主化率达10 0%(据工信部评估报告),具有完全自主可控的技术能力,可满足广大用户国产化需求。 SyixOS
    发表于 07-25 15:52

    国产银河麒麟V10操作系统激活和不激活的区别

    国产银河麒麟V10操作系统是一款适配国产软硬件平台的新一代桌面操作系统,因流畅的交互体验和丰富的自研应用而备受市场青睐,应用越来越广泛。目前银河麒麟V10
    的头像 发表于 07-17 08:16 5819次阅读
    <b class='flag-5'>国产</b>银河麒麟V10<b class='flag-5'>操作系统</b>激活和不激活的区别

    中国加速本土技术采购,国产CPU与操作系统迎来机遇

    全球科技竞争日益激烈的背景下,中国政府近日发布了一项重要通知,明确将优先采购国产处理器(CPU)和操作系统,以加速信息技术应用创新的步伐,进一步推动国产技术的自主化。这一政策的出台,
    的头像 发表于 06-19 16:54 804次阅读

    国产CPU和操作系统被纳入政府采购清单:加速换国产OS

    国家发文要求将国产CPU和操作系统纳入采购清单,涉及35个项目,将推动国产CPU和操作系统产业发展。此举将提高我国信息系统安全性和可靠性,减
    的头像 发表于 05-13 17:42 1821次阅读
    <b class='flag-5'>国产</b>CPU和<b class='flag-5'>操作系统</b>被纳入政府采购清单:加速换<b class='flag-5'>国产</b>OS

    vivo蓝河破浪前行,国产操作系统掀起创新风暴

    vivo蓝河操作系统将掀起新一轮国产操作系统创新风暴
    的头像 发表于 04-21 09:31 1522次阅读
    vivo蓝河破浪前行,<b class='flag-5'>国产</b><b class='flag-5'>操作系统</b>掀起创新风暴

    麒麟软件:生成式AI浪潮席卷,国产操作系统加快产品和生态布局

    东南事业部总经理吉高建。在过去麒麟软件已经建立了国产操作系统的领先优势,那么现在,麒麟软件也思考和探索国产操作系统如何顺应生成式AI的发展
    的头像 发表于 04-12 14:18 2682次阅读
    麒麟软件:生成式AI浪潮席卷,<b class='flag-5'>国产</b><b class='flag-5'>操作系统</b>加快产品和生态布局

    国产RT-thread操作系统国民技术单片机上移植

    、参数函数位置以及延时方法等导致程序运行效率过低的情况。实时操作系统能很好地解决这些问题。一般无操作系统的情况下,经验丰富的工程师可能会使用状态机加定时器等实现任务
    的头像 发表于 03-05 08:20 526次阅读
    <b class='flag-5'>国产</b>RT-thread<b class='flag-5'>操作系统</b><b class='flag-5'>在</b>国民技术单片机上移植

    RK3568-麒麟KylinOS国产操作系统演示案例

    RK3568-麒麟KylinOS国产操作系统演示案例
    的头像 发表于 01-22 15:15 2696次阅读
    RK3568-麒麟KylinOS<b class='flag-5'>国产</b><b class='flag-5'>操作系统</b>演示案例

    RK3568-翼辉SylixOS国产操作系统演示案例

    RK3568-翼辉SylixOS国产操作系统演示案例
    的头像 发表于 01-22 14:59 2518次阅读
    RK3568-翼辉SylixOS<b class='flag-5'>国产</b><b class='flag-5'>操作系统</b>演示案例

    磐石操作系统的2023丨从繁荣生态,走向国产替代

    完成100%信创国产化改造,替换范围涵盖芯片、操作系统、中间件等。 20238月17日,中软国际发布2023中期报告,指出:紧跟国家发展战略,围绕国产服务器、
    的头像 发表于 12-22 20:10 1506次阅读
    磐石<b class='flag-5'>操作系统</b>的2023丨从繁荣生态,走向<b class='flag-5'>国产</b>替代