发布网友 发布时间:2022-04-23 13:13
共5个回答
热心网友 时间:2023-07-29 19:27
喜欢研究手机的朋友会经常拿现在的手机和以前的手机对比,虽然说硬件层次没有什么可比性,但是有一些点却是让人感觉有点迷惑,比如最近就有人问为什么诺基亚的塞班系统用很长时间几乎不卡?其实就是以内塞班系统太小,兼容的软件也是非常小,不会有“杀内存”的现象,所以不会卡。
首先我们先说说这个“杀内存”现象,在现在的安卓手机里面非常明显,最直观的感觉就就是一个软件明明不大,但是占用的内存却非常多,这一点其实就和安卓的开源还有硬件不断扩大造成的,以前的安卓手机只需要3g的运行内存,就可以完全打游戏办公软件等等,但是后面发展越来越快,现在12g都有,这就给了很多软件开发商很多想法,最想要的就是自己的软件使用更多的内存,达到最好的效果,因此就有了“杀内存”的现象,说白了其实和安卓开源也有很大的关系。
而塞班系统可不是开源的,所有的软件都要有适应性,加上当时的手机硬件都是很垃圾的,想要玩什么王者荣耀这样的游戏不用想,最多就是给你出一个“飞机大战”这样的超级小游戏,qq也是迷你版的,所以基本上不需要什么内容,也不用“杀内存”等现象。
同时其实也想给很多安卓手机提一些意见,不要老是想着提升硬件,系统方面也得做好了,比如苹果手机就是用的“假后台”,即便是苹果8p不过3g的运行内存,一样畅玩王者荣耀等大型手机游戏,这一点不是说硬件堆积不好,而且如果可以更好地解决就不要一直提升硬件,毕竟最后吃亏的是消费者,花了更多的钱。
热心网友 时间:2023-07-29 19:27
这个话题真的太大太大了。一句话总结:1操作系统设计就是精简+迅速,2是绝对依靠C++做底层编程不存在内存泄漏,3是抢占式多任务调度最大效率利用硬件,4是诺基亚一直的用户调查都是稳定大于天。
90年代的个人电脑,主频都是33mhz到100mhz单核心处理器,当年英特尔跟AMD的处理器还没有多级缓存的概念,内存条都是512K到2M容量,记住,这点硬件性能微软倒腾出了界面花里胡哨的windows95,用图形化+易用性一举打败了几乎所有竞争对手。而微软能在这种硬件折腾出过渡动画多并且流畅的win95,线程调度跟内存优化可是微软的杀手锏。很不幸,一个叫EPOC的欧洲电脑操作系统也败在了微软手下,沦为一个嵌入式系统。
90年代中,诺基亚摩托罗拉索尼爱立信联手组建了塞班联盟,他们找到廉价卖身的EPOC,优化之后结合ARM联盟,推出来一款嵌入式操作系统,这个操作系统就叫塞班。换句话说,塞班是90年代桌面操作系统EPOC改进过来的,EPOC是跟微软windows竞争失败的操作系统产物。
从本质看,塞班系统非常完善,各种机制处理也是非常完美。在当年手机硬件性能有限的情况下,内存优化,线程调度,不吃硬件等等这种先天优化加成的操作系统特别适合嵌入式性能的手机。比如诺基亚7650,搭载的CPU是主频104mhz的ARM7架构130nm工艺,5级流水线冯诺依曼结构的处理器集合。这点性能现在不够手机处理器的千分之一。而当年移动端没有GPU就是显卡,塞班系统最初版本可是删除了几乎界面的所有过渡动画从而可以比较流畅的运行,耗电不多。而系统最基础的结合硬件的功能比如电话线程,信号线程,都是类似于驱动装载然后后台隐藏最小化的方式运行,这种方式让系统不从事繁重工作时候可以降低频率节省电量。7650可以在待机状态把104MHZ主频的处理器降频到33MHZ,这就是塞班的功劳。同时代的其它嵌入式硬件很难实现这种方式,因为这种随时刷新优先度不高的软件要做到后台隐藏是困难的,而当年的移动端SOC功耗控制很简陋。90年代末索尼爱立信大鲨鱼手机是第一款运行塞班系统的手机,宽大的2.7英寸黑白屏+可以触摸输入+迅速的反应+很省电的工作机制,顶着高价大卖。
要知道,微软推出的类似塞班的winCE并不具备这些优势,而另外一个嵌入式竞争对手palm是绝对的单任务系统从而反应迅速。相比塞班,winCE功耗非常非常非常非常大速度捉急特别是多任务的情况下;相比palm,塞班速度可以接受的快,并且多任务碉堡。诺基亚青睐塞班的这个优势,一举依靠塞班打垮其他的所谓“智能手机”成了当年的智能手机销量冠军。
-----------------------------------分割线----------------------------------------------
从操作系统层面解析塞班的快。
1是,塞班不是并行多任务,是抢占式多任务机制,这个东西很难解释,就是运行一个软件,线程优先级跟吃的硬件计算资源就成了专用,后台软件的处理是最小化的,类似windows。这是90年代走过来的古老操作系统都会有的机制,因为当年硬件性能非常有限,内存小的捉急,优化硬件资源占用可是当年操作系统的大学问。而现代操作系统比如安卓等等,是占用式多任务,完全依赖硬件资源,不*用户同时运行的数量。换句话说,耗电量低都是半导体工艺进步的功劳,安卓至今的多任务调度都是一坨。
2是,塞班的内存使用问题是个大学问。塞班的底层依赖C++,内存泄漏是绝对不允许产生的,程序员放任不管这个程序会报错,而安卓上的体验就是卡但是这个程序能运行。java这种多平台语言在塞班是没有优先级的,都是塞班系统运行一个虚拟机,然后java软件运行在虚拟机上,这跟安卓早期的工作方式相似,但也不同。因为塞班系统把java优先级掉的很低,java效率低下,编程要考虑的仅仅是系统分配的最大堆栈比如512Kb。运行效率高的程序无一例外都是C++编写的,先天就快,因为接近底层。当然这个底层不能跟游戏机那种卡着硬件编程相比了。
3是,塞班的以上两个问题造成程序员平均质量高。因为全屏化跟最小化运行,是要做两套东西的,有些比如输入法或者杀毒软件甚至需要做三套,运行在全屏幕环境,最小化低功耗环境,最小化大功耗环境。操作系统的*又非常多,比如输入法,必须调用系统自己的字库,然后作为DB外挂获取按键映射,打字选字后又从系统字库调用字体输出到屏幕,这个过程考虑一下,没有什么输入法接口,都是人工编程的。至于游戏之类那就更复杂了,很多游戏最小化就自动退出就是因为程序员实在懒得搞那么多套运行方式了。
4是,以上三个原因共同构成了,塞班程序运行效率高。打开A软件,B软件自动进入低功耗模式,几乎80%资源都可以用在打开的软件上面,这是一种非常先进的资源优化方式。相比palm的100%资源调用但是单任务,塞班的多任务80%这种效率依然是非常恐怖的。隔壁微软的windowsmobile一直到2009年最后一版wm6.5.3也没有解决资源调用问题,干脆WP7成了单任务墓碑机制。
--------------------------------------------分割线-------------------------------------------
但是塞班的问题也在它的优势上面。因为开发程序过于复杂,对人的要求太高。互联网时代,给塞班编写即时在线的通讯软件都是一个痛苦的事情,因为要考虑后台资源占用,必须做4到5套不同的运行方式,而调用系统驱动式的无线信号又要来回折腾很多次,而同时运行多个即时通讯软件又造成优先级调度问题,优化不好是会随时死机的。软件越大需要的工作量就翻倍,甚至翻几倍。加上EPOC操作系统先天问题就是古老,最大分辨率停止在480×0,再往上提高分辨率需要修改的地方太多,塞班3的改进堪比windowsXP的优化了。塞班最终是被程序员抛弃了,太古老太精简。互联网时代,安卓的胡乱调用反而成了优势,程序员再也不用担心优化问题了
热心网友 时间:2023-07-29 19:28
我们平常使用安卓手机用了一段时间,觉得很卡,是因为它的系统是开源的,塞班系统是不开源的,也就是说并不是什么软件都可以安装在塞班系统上的,而且它也不会杀内存。
热心网友 时间:2023-07-29 19:28
因为塞班系统内存太小了,能兼容的软件不多,所以不会卡。
热心网友 时间:2023-07-29 19:29
因为诺基亚的这个系统本身性能就非常的好,而且处理速度很快。