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
    +关注

    关注

    88

    文章

    11628

    浏览量

    218013
  • 操作系统
    +关注

    关注

    37

    文章

    7329

    浏览量

    128653
  • 虚拟机
    +关注

    关注

    1

    文章

    968

    浏览量

    30183
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    轮询操作系统的原理

    的事情。代码清单中,如果只是实现LED翻转,串口输出,液晶显示等这些操作,那么使用轮询系统将会非常完美。 但是,如果加入了按键操作等需要检
    发表于 12-05 08:18

    EV10AS180A模数转换器支持哪些操作系统

    外部设备的通信通常需要通过特定的接口(如SPI、I2C、LVDS等)和通信协议实现。这些接口和协议是硬件层面的标准,与操作系统无关。然而,实际应用中,用户可能需要通过操作系统提供的驱
    发表于 11-18 09:18

    单片机的操作系统

    。 ‌ ‌ RT-Thread ‌:国产开源系统,集成GUI、网络协议栈、文件系统等组件,兼容POSIX接口,适合物联网设备。 ‌ 嵌入式操作系统 ‌ μClinux ‌:针对无M
    发表于 11-14 06:18

    搭载国产操作系统的人证核验访客机有哪些?这几款推荐给你

    国际环境风云变幻,芯片被卡脖子等事件越来越频繁。传统Windows/Android系统存在供应链风险(如芯片断供、系统停更),而国产操作系统可通过自主可控与安全升级,保障长期可用性。尤
    的头像 发表于 11-04 10:50 206次阅读
    搭载<b class='flag-5'>国产</b><b class='flag-5'>操作系统</b>的人证核验访客机有哪些?这几款推荐给你

    能支持国产操作系统的人脸识别门禁终端有哪些?

    近年国家一直推动信创工程,要求关键领域使用国产技术,尤其是涉及国家安全的关键场所,比如政府、部队,需要确保数据安全和系统可控。减少对外依赖。不少软硬件厂商、芯片企业纷纷响应,积极推动国产
    的头像 发表于 10-09 14:19 535次阅读
    能支持<b class='flag-5'>国产</b><b class='flag-5'>操作系统</b>的人脸识别门禁终端有哪些?

    国产操作系统加速崛起——鸿蒙电脑补齐鸿蒙生态最重要拼图

    国产操作系统加速崛起——鸿蒙电脑补齐鸿蒙生态最重要拼图 5月19日,首次应用鸿蒙操作系统的个人电脑(PC)四川成都正式发布。这标志着我国拥有了完全自主可控的电脑
    的头像 发表于 05-21 11:41 506次阅读

    国产操作系统都是谁在用?国内企事业单位真实使用情况深度解析

    近年来,“国产操作系统”这个词频繁出现在各种政策文件、技术论坛和媒体报道中。随着信息安全需求的不断提升,以及对“去IOE”理念的深入贯彻,越来越多的国内企事业单位开始关注并部署国产操作系统
    的头像 发表于 05-19 13:44 1321次阅读
    <b class='flag-5'>国产</b><b class='flag-5'>操作系统</b>都是谁在用?国内企事业单位真实使用情况深度解析

    国产系统安全吗?2025穿透式测评:这5套操作系统竟让黑客集体沉默!

    在当今数字化快速发展的时代,信息安全成为了每一个用户最为关心的话题之一。尤其是国际局势复杂多变的背景下,“国产电脑操作系统”是否能够保障我们的数据安全、提供稳定可靠的使用体验,成了众
    的头像 发表于 04-21 10:34 3402次阅读
    <b class='flag-5'>国产</b><b class='flag-5'>系统</b>安全吗?2025<b class='flag-5'>年</b>穿透式测评:这5套<b class='flag-5'>操作系统</b>竟让黑客集体沉默!

    国产操作系统有哪些?政企官方认证的5大国产系统,实测好用才敢推荐!

    近年来,“国产操作系统”这个词越来越频繁地出现在政策文件、企业采购清单和行业新闻里。尤其是“信创”浪潮下,无论是政府机关还是央企国企,都在加速替换国外操作系统。但面对市面上琳琅满目的
    的头像 发表于 04-17 15:34 5319次阅读
    <b class='flag-5'>国产</b><b class='flag-5'>操作系统</b>有哪些?政企官方认证的5大<b class='flag-5'>国产</b><b class='flag-5'>系统</b>,实测好用才敢推荐!

    【「鸿蒙操作系统设计原理与架构」阅读体验】01-初始华为鸿蒙

    非常有幸能够获得发烧友的华为鸿蒙系统书籍的阅读资格,自己从事嵌入式软件多年,但是对于操作系统的了解还是比较少的,一直从事MCU的部分开发任务,近两随着中美关系的紧张化,国产化的
    发表于 01-25 11:05

    DeepEdge10芯片成功适配国产鸿蒙操作系统

    日前,DeepEdge10芯片已成功完成与国产鸿蒙操作系统的适配工作,标志着该芯片在边缘场景应用领域实现了供应链及操作系统层面的全面国产化安
    的头像 发表于 01-24 15:31 1317次阅读

    云天励飞DeepEdge10芯片与国产鸿蒙操作系统完成适配

    日前,DeepEdge10芯片已完成国产鸿蒙操作系统的适配。目前已构建适配鸿蒙的芯片编译平台框架,完成图形等子系统的适配。基于DeepEdge10的鸿蒙操作系统桌面环境已经可以成功启动
    的头像 发表于 01-24 10:14 1704次阅读

    国产银河麒麟操作系统V10和星光麒麟V1.0操作系统如何选择?

    国产银河麒麟操作系统和星光麒麟操作系统都是由中国电子旗下科技企业麒麟软件有限公司(简称“麒麟软件”)开发的国产自主可控的操作系统。麒麟软件介
    的头像 发表于 01-24 09:14 4253次阅读
    <b class='flag-5'>国产</b>银河麒麟<b class='flag-5'>操作系统</b>V10和星光麒麟V1.0<b class='flag-5'>操作系统</b>如何选择?

    deepin操作系统介绍

    希望从自己的能力和对桌面操作系统的理解,能给 Linux 的用户与开发者更多的选择。我们也相信 deepin 能够得到更多用户的认可与喜爱,成为开源世界的最佳选择。  一、 deepin 操作系统 先说 Linux
    的头像 发表于 12-23 09:08 3233次阅读
    deepin<b class='flag-5'>操作系统</b>介绍

    名单公布!【书籍评测活动NO.53】鸿蒙操作系统设计原理与架构

    操作系统操作系统和基础软件国产化攻坚战中走在前列,得到业界越来越多的关注和认可。 OpenHarmony开源三多以来,已经有越来越多
    发表于 12-16 15:10