纠纷奇闻作文社交美文家庭
聚热点
家庭城市
爱好生活
创业男女
能力餐饮
美文职业
心理周易
母婴奇趣
两性技能
社交传统
新闻范文
工作个人
思考社会
作文职场
家居中考
兴趣安全
解密魅力
奇闻笑话
写作笔记
阅读企业
饮食时事
纠纷案例
初中历史
说说童话
乐趣治疗

如何开发一个全新的操作系统(手机操作系统。。。

2月6日 回头爱投稿
  为什么80的码农都做不了架构师?
  首先个人文笔有限,并不是专业写文章的人,同时知识面也比较局限,以下只是个人对这个问题,在日常闲余时间去对这个问题进行的一些探索总结,如有疏漏不足望客官海涵。这是系列文章,后续我会持续记录。好现在来聊聊这个问题。
  如何开发一个全新的操作系统呢?这个是很大的问题,很多人在很多时候都会想到这个问题。
  前段时间我又想到这个问题,同时在网络上进行初步查找资料,以期望来得到这个问题的答案。在查找过程中,首先找到的不是如何开发的具体思路与方法,而是为什么做一款操作系统那么难?这个文章在开源中国也有,有兴趣的朋友可以看看。我对这个文章的总结理解就是做一款操作系统非常耗钱,如果不能商业化,就算做出来也是活不来的。就文章里的观点我就不评论了,有没有必要再去开发一个全新系统也不讨论了,当然做系统难肯定是难的,而一直以来能让我们可以做选择的,无非就是做与不做的选择。如果我们选择就为了个人乐趣做一个操作系统呢,可行吗?在我看来没有答案,只有做了才知道。当然很多人会说一个人是做不了这个事,需要团队,这一点我也不否认。
  好回到主题,那么如果要开发一个操作系统要如何做呢,首先我整理了一下现有成熟操作系统派系,Windows、Unix,其他或许还有但是大多数人估计听都没听过,就不特意去深入叙述了。WindowsPC机的王者、Unix派系的系统就五花八门了,比如苹果的MacOSX、iOS啊,知名的Linux啊,以及基于Linux衍生各类系统,移动端知名的就是安卓系统。这个话题衍生下去内容也很多,这也不是我们要关注的点。因此只是有个大概的了解就可以了。这些系统都是如何开发的呢,或者简单点问是用什么语言开发的,在网络找到最多的答案是C语言汇编语言。我们姑且相信这是真实的答案。那么有了这个答案后,后面就有新的问题,有了语言用什么工具呢,有了工具如何调试呢?带这这个问题我开始新的探索之路。
  C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。这个是百度百科里的介绍,同时下面有给我们整理了对应的编译器、集成开发环境。
  编译器
  GCC,GNU组织开发的开源免费的编译器
  MinGW,Windows操作系统下的GCC
  Clang,开源的BSD协议的基于LLVM的编译器
  VisualC::cl。exe,MicrosoftVC自带的编译器
  集成开发环境
  CodeBlocks,开源免费的CCIDE
  CodeLite,开源、跨平台的CC集成开发环境
  OrwellDevC,可移植的CCIDE
  CFree
  LightTable
  VisualStudio系列
  那么有这些,我们是不是先要学会C语言跟这些工具呢,然后就可以开始开发系统了?当然不是,首先我们要理解什么叫操作系统。这方面的资料又是海量的,需要大量的时间去了解,但是我在这里归结两个点,第一个点操作系统是一个集合体,是有很多子程序组合而成的。第二点目前的操作系统都是可以兼容很多不同的硬件环境。为什么只提这两个点呢,因为通过这两个点可以帮助我们判断很多事情。第一件最重要的事,我们要开发一个怎么样的操作系统,是大而全,还是小而美的系统,大而全自然工程量会几何性的增长。第二件事就是既然操作系统是集合体,我们能不能先开始搭建最重要的子程序,先搭建一个框架的问题。目前手机成为了生活息息相关的必须品,未来还有各种智能设备会出现在人们的生活中,目前这些设备都基于Linux系统去开发的居多,比如:OpenWrt项目。题外话:同时我也搜索到另外一篇文章叫为什么谷歌会从零开始构建一个全新的操作系统?,同时我也搜索了下国产操作系统发展,得到大多就是以Linux为基础二次开发的操作系统。同时得到一个有趣的现象就是公司倒闭了,所有的努力过的东西就这样随风而去,没有留下可以让其他人可以追寻的脚印,让更多的国人对如何开发一个操作系统更多只停留在想象上,无从入手。
  基于上面两个总结,以及自身的能力做出判断是,想朝开发操作系统踏出第一步,需要先想好做一个怎么样的操作系统。未来最火热的是什么,手机?好就手机,当然我们做的系统最好也能在这些小设备上、比如路由器啊、智能音响、家庭投影啊等上面运行,未来物联网是趋势,终极目标是可以在手机上运行。好现在目标有了,我们来分解下难度,首先就目前安卓手机配置五花八门,连安卓也是需要厂商自行适配调整,而它的对手苹果就纯粹得多,只支持自家定制的配置。而回到我们自己这里,那么我们不可能一开始就制作一个兼容性很高的操作系统,我们要先尝试做一个就支持固定配置,然后预留拓展功能的系统。方向目标都有了,那就到了如何去实现上了。
  上面我们去了解了操作系统的原理啊,发展史啊等等信息,归结到底在与硬件与语言的配合,这里就有个新问题,我们也使用C语言和汇编语言吗?这两种语言已经很古老的语言,但是目前底层还是使用这两种语言开发,同时我们如果使用C语言跟汇编语言,这是站在巨人的肩膀上啊,毕竟这两种语言是经历过岁月沧桑论证的,用不用呢,我的选择不用,因为我们本身就是来尝试一个新事物的。能改变的就去试试改变,或许改着改着就有新的变化呢。
  那么如果创造一门语言呢,这又是一个大话题,网络上有句玩笑就是编程语言很多时候就是某个无聊的牛人在某个圣诞节的半夜闲得无聊折腾出来的,因此我继续我的探索之旅,看看编程语言相关知识,编程语言分为大致是命令式语言、函数式语言、逻辑语言和面向对象的语言(实际上还有很多不同的划分版本),那么C语言属于什么呢,就我看来C语言属于命令式语言也可以称为过程式语言,通俗点理解就是,比如把大象放进冰箱分几步,这个过程的实现在C语言上面体现就按照步骤一个步骤一条多条语句来实现一整件事,按顺序来写,而汇编语言呢?汇编语言属于符号语言,什么是符号语言呢,这个要先说起计算机基础知识,机器语言,机器语言是谁能理解的呢,CPU,简单点说就是我们给CPU下个指令。这个指令是一串二进制码类似这样1000100111011000机器指令而这些二进制码是谁定义的呢,CPU生产商吗,是也不是,因为CPU又分阵营也有理念冲突,也有需求冲突的,因为这些冲突大致分成两个派系CISC(复杂指令集)、RISC(精简指令集计算机)具体的知识点就不展开细说了,我们只关心我们自己的,我们的目标需要用到的是RISC(精简指令集计算机),因为市面上的手机大多数都是用这个指令集的CPU,而汇编语言就是例如ax,等汇编指令,通过汇编的翻译器会转换成一条条的机器指令然后让CPU来执行,首先我不知道现在那些开发系统的牛人们还在使用汇编语言不,还是已经把汇编语言整合进新的开发语言里进去了,这个不得而知,反正我就知道汇编就干了这个活就好了。
  好两种基础语言了解完了,我们来了解下跟我们有关系的东西,那就是CPU指令集,既然要做当然要做支持最新的指令集是最好的,因为本身我们没有实力去生产CPU,这个是我们个人力量无法去改变的东西,好我们里来看看我们的手机,苹果手机CPU,哇塞自己设计让人代工生产,好吧我们搞不了,里面指令集怎么样的我们更无所得知,这路走不通了,那我们来看看安卓手机,小米、OPPO、VIVO、华为比较常见,一看手机CPU,两种居多,高通、联科发。再来看看这两家公司最新CPU上用的是什么最新指令集呢,一家牛逼的公司映入眼前:英国Acorn有限公司简称ARM,然后到官网找找最新指令集ARMV8指令集,还分ARMV8A、ARMV8R、ARMV8M,后面的先不管,我们就认准了ARMV8A指令集。好了他们的CPU就认这个指令集里的指令。等于我们首先要去学习这个指令集,否则后面啥也做不了。
  
  好些的问题出现了,如果学习ARMV8指令集呢,光靠看书肯定不行,需要实践调试,那么如何调试呢。这个就涉及到新的领域,ARM开发板的知识面,那么第一个想法是能不能把身边的手机啊、路由器拿来调试呢,答案是可以,但是先别高兴,前提是你有对应的设备的一些资料,没有对应的硬件资料,还是行不通的。于其去研究这些设备硬件,不如想找找有没有提供这些资料的开发板类似的东西卖。那要买个怎么样的开发板才适合我们目前的状态使用呢,这个又要先了解下这些硬件是怎么样植入系统的,或者说刷入系统的,就我目前找到资料显示,一般性的手机也好,其他小设备也好,本身在没有系统的时候,内部先有一个bootloader,类似PC机子上的BIOS,是最底层的引导软件,一般都是由硬件生产商写入的,简单的说,bootloader就是在操作系统内核运行前就运行的一段小程序。这段小程序可以初始化必要的硬件设备,将系统的软硬件环境带到一个合适的状态,并从外部存储器或通过网络等通信方式加载内核,创建内核需要的一些信息并将这些信息通过相关机制传递
  给内核,最终调用操作系统内核。因此我们需要买一个开源bootloader的,支持最新ARMV8A指令集、相关其他资料也公开的开发板。市面上有没有,我正在找,同时也在找这方面行业的朋友。如果你是从事这行业的可以评论留言给我。谢谢
  目前探索到这一步,同时附带购买了一些书籍来补充对应一些点上的知识,比如汇编语言是如何设计的等等为后续做准备,后面有新的进展,再来文记录。
  2018年11月02日中国义乌随笔
投诉 评论 转载

全国各学报投稿邮箱大全南昌大学学报(人文社会科学版)NCDLchinajournal。net。cn南华大学学报(社会科学版)nhdschinajourn……抖音上热门的诀窍,抖音上热门最佳时间是什。。。大家可以将抖音短视频APP理解为一个流量分发平台,当你的视频符合抖音短视频APP的需求的时候,会将你的视频分发给更多的人看到,此时就可以称之为你的视频上了热点。良多人都不知道热……免费文字转语音,语音转文字一个致力于为大家的生活、工作、学习提供更多价值的公众号!之前给大家分享过一期文字转语音,语音转文字的教程,但不全,可能不能帮所有人解决问题,这次我发现了好多方法,应该能把……制作我的小程序零食小程序经验分享新春将至,新一轮的年货采购潮也逐渐来临,零食类商家迎来了销售高峰。在这个关口,商家若想扩大自己的销售额,就得学会打通各个渠道,而小程序无疑是一个好的选择。不过大部分商家都不懂技……range函数用法完全解读Python学习者2019011915:44迭代器是23种设计模式中最常用的一种(之一),在Python中随处可见它的身影,我们经常用到它,但是却不一定意识到它的存……抖音绑定自己淘宝店,抖音怎么绑定淘宝pid类似这样的:最近一直有淘宝朋友问我抖音短视频APP购物车功能的开通方法,看到良多抖音短视频APP固然粉丝量没有达到百万却拥有抖音短视频APP购物车权限,这和之前传说需要百……知乎万人点赞推荐的五款APP,小众却实用,你。。。APP作为手机功能的主要呈现方式之一,随着手机越来越智能化的发展,APP的种类也越来越多。除了人人都会下的微信、支付宝外,其实有许多的APP有太多人知道,但是他们的功能也很强大……抖音淘宝链接怎么设置跟着抖音短视频APP短视频的流行,越来越多的人想在抖音短视频APP上赚钱,越来越多的淘宝商家也想在抖音短视频APP上宣传推广本人的产品,那如何在抖音短视频APP上插入淘宝链接,……抖音直播需要什么设备,抖音直播赚钱教程传统的就是发著作上抢手添加著作的人见度,经由他人关于你著作的认同或许你所传达的正能量得到认同,官方不会那末不给体面的!相信很多玩小视频的用户刚开始都觉得本人所发的著作或许……如何开发一个全新的操作系统(手机操作系统。。。为什么80的码农都做不了架构师?首先个人文笔有限,并不是专业写文章的人,同时知识面也比较局限,以下只是个人对这个问题,在日常闲余时间……LabVIEW编程基础:以实例学编程之forwhile。。。LabVIEW又称为G语言,简单易学、形象直观,采用图形化的编程方式,是专为测试、测量和控制应用而设计的系统工程软件。在前面两篇文章中分别讲了顺序结构与条件结构的编程方法……视频分割如何将一个视频分割成多个视频现在网上有很多流传的小视频都是从某部电影或者是某部电视剧中截取下来的一小部分,通过一些第三方工具将视频进行分割,然后再将这些分割后的视频上传到网络平台中,这样就有了现在短视频,……
电脑中有什么让你自豪的软件?精选网址集手机装上这个神器,可以让你躺在床上玩电脑。。。这几款顶级黑科技APP,实在是太逆天啦,用了。。。有哪些知名的免费建站软件?它们都有什么特。。。时机已到,偷偷安利近期发现的三个超级神站推荐一款免费地图下载器1给1的人用,电脑上值得装的三款小众效率。。。有什么免费的图片播放软件,可插入文字和音。。。【持续更新】影视站长必备全部资料整理!(5。。。老司机私藏已久的5个精品资源网站,要啥有啥。。。6个在线资源网站,一分钟爆掉10T硬盘,让你。。。
班级郊游出行计划立减180元罗技G603鼠标259元新低坚持做好这七件事,你的思想和人格会越来越独立做鱼,不放一滴油,就能成就如此美味!无油而亮,无味精而鲜上半年净亏37亿,融资超百亿,商汤科技撑得起120亿美元估值旧门翻新(旧木门翻新价格)證道歌其一四一黄金手镯一般多少克不要买太重足底按摩注意事项有哪些?马廷强为什么残疾,大毒枭马惜如之子竟天生残疾离婚时无过错方可以提出哪些损害赔偿?白头发是什么原因白头发与什么有关热传聚热点网

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找美丽时装彩妆资讯历史明星乐活安卓数码常识驾车健康苹果问答网络发型电视车载室内电影游戏科学音乐整形