手机操作系统和电脑操作系统的区别,做一个手机和电脑通用的操作系统真的不可能成功么?
诺基亚的MeeGo,微软的UWP,谷歌的Android,都曾经梦想着打通PC端和移动端,但是最终都折戟沉沙。时至今日,仍然没有一个操作系统能够实现这个目标。难道,做出一通用系统真的不可能成功么?
感谢官方邀请!
个人认为,有共同设计语言,让用户在使用过程中能获得“共通感”的高效体验操作系统族,是比较可行的。例如苹果的iOS、iPadOS、watchOS、macOS和TVos。完完全全的单一系统给全部类型的设备使用是不可行的,因为涉及到难以共通2点:性能与用途以及用户的操作。 1.性能与用途,每种设备的要求不一样。
什么电脑可以装linux系统 比如,手机是要实时的网络连接,手游级别的娱乐性能和一天的续航能力,它的系统要精简指令集,配合芯片达到不错的效率。
电脑要更高的性能,游戏拥有更好的特效,生产力软件要火力全开,同时还有可能有更多复杂工作,它的系统指令集要齐全,芯片要更强性能。
智能手表要专注于传感器追踪,每天跑了多远,消耗了多少能量,实时心跳怎么样?它的系统长时间工作,同时也要配合芯片实现超低能耗。
这决定了操作系统要用什么样的内核,重量级的还是轻量化的?APP的话该如何制作多版本,目前的各类设备性能综合来看,还不不足以支撑一个全能的内核。
2.用户的操作,这是更重要的一点。
手机、平板、电脑、电视、手表,这些东西的操作方式都不一样。
手机平板一般用来日常使用+娱乐。平板可以说是手机的放大版,因此做共通系统还行。
笔记本要用来工作,大部分都是用键盘鼠标,尽管有很多笔记本开始装备触屏,但用起来根本不是手机平板那味,效率很低。你说可以用来娱乐,软件软件不适配,网页网页是个PC版,那么在使用超极本的平板模式时,到底软件该渲染PC页面还是平板页面?
电视上,不是你的手指也不是键盘鼠标,大多是操控都是用遥控器了。整个界面很大,但并不适合办公,电视是一个单纯的浏览工具,所以在大部分智能电视的主UI上,大部分采用大块的图块+字,提高效率。
手表呢?显示界面少,反馈的感也少,因此苹果做了触感来加强反馈;功能少,但依旧要快速直达,还有语音助手用的更勤。
-------------------分界线-----------------
主要还是效率
硬件的运行效率,用户的使用效率,难以在单一操作系统上得到统一
我想写一个自己的操作系统,比如Unix或Linux,最起码我需要具备些什么?然后我需要怎么做?
Unix和Linux属于大型操作系统,凭个人之力,根本不可能完成。以Linux系统为例,它的版权人林纳斯.托瓦兹(Linux之父)是个天才程序员,没日没夜忙了差不多半年,写出Linux的0.01版,也就是初级版本,你猜源代码有多少?大概有1万行。
Linux0.01版发布后,林纳斯和全球成千上万黑客(和现在喜欢在网上偷鸡摸狗的黑客不
同,那时的黑客都是程序员大牛,主要以改进电脑软硬件性能为乐趣)一起修改完善。从1991年0.01版发布,到1994年Linux1.0正式版发布,三年时间,参与的程序员能轻松坐满一个足球场,你猜代码有多少行?一共17万多行。
林纳斯.托瓦兹(Linus Torvalds),Linux系统之父。你的手机、你家的电视机顶盒、你常取款的 ATM上的系统,都是基于 Linux 系统改造而来,没有这个人,就不会有现在的开源软件。
除非你认为自己的编程天赋和勤奋努力程度能碾压上述大牛,那么可以试试以个人之力,写一个Linux级别的操作系统。
更重要的是,当时还是486电脑当道的时代,操作系统远没有今天复杂,那怕是iOS和安卓这样的公司化运作的操作系统项目,也并没有从0写起,而是“踩在前人的肩膀上爬梯子”,iOS的内核是Unix,安卓系统的内核是Linux,苹果公司和谷歌公司在原有系统上“改
扩建”,搞成了自己的东西。
肯·汤普森(Kenneth Thompson),C语言前身B语言的,Unix的发明人之一,程序员们的祖师爷。
当然,如果不是要写Linux这样的大型操作系统,就是想写来玩玩,比如搞个mini的,还是有可操作性的:建议从最基础的玩起,先写监控程序(操作系统的原型),仅具有加载程序和运行程序的功能。监控程序玩熟练之后,可以写用于单片机的微型操作系统,包含控制程序、编译器和简单的应用程序。个人要熟练写操作系统,大致说来需要具备下列素质:熟练运用C语言编程;会汇编语言;了解基本的硬件知识;会写硬件驱动程序;会软件架构设计;不过,上面这些都精通了,随便去互联网大厂拿个七八十万年薪的offer是分分钟的事,何苦自己折腾!
如何从零开始开发一个操作系统?
操作算是在软件开发里面功能非常齐全难度非常大的一个超级工程,目前国内掌握操纵系统技术的科技公司也是少的可怜,而且不完全是技术层面的东西了,还需要构建生态链,国内的阿里公司在这方面已经做过尝试了,只能讲不是很成功,主要开发出来了需要真的有人去使用,现在无论桌面的操作系统还是移动端的操作系统都有巨无霸存在,而且还是垄断性质般的存在,现在华为手机因为安卓禁止使用服务导致国外的销量下滑,现在华山一条路只能启动一个自主的操作系统的研发,还在华为公司已经做了大量的准备,不至于这么被动,但任重而道远。
回到主题从零开始开发一个操作系统,本身就不是一个人能做的事情。这个工程量巨大,但从学习的角度可以研究一下如何完成一个简化版的linux,记得刚学习C语言的时候基本语法刚学习完的时候,就去学校的图书馆借了一本linux内核深度剖析,觉得自己的C语言基础玩的差不多,结果看了100多页实在是坚持不下去了,所以编程的学习是一个长期积累的过程,只是学了一门编程语言距离真正的编程还得差得远,编程的学习是一个长期积累的过程。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论