觉得学东西应该要先有一个体系的概念,要明白这个是怎么回事,自己在学什么,在做什么,这样的学习才有意义,或者说才是积极的,就像我们看书要有个大纲、目录才好,随意看只会是看小说那样,那个适合看闲书,是陶冶性情之类吧。如是,散乱、没概念,没系统,总是觉得不妥当,当然,相信很多人都会认同这一点,散乱是垃圾的属性,而放对地方,有体系,有组织的就是资源。而中国的大学,在本科,据我的经验,应该是所谓的分专业,但并不会给学生描述整个体系是怎么回事,描述应该怎样做,不知是不是默认你已经知道是怎么回事或者其实就没有人负责,因为这个体制没这个要求,而人人各司其职,做好本分的思想指导下,结果就是苦了学生。学生不知道整个体系是怎么回事,只能被动地学习,得过且过地应付式过日子。有些不安分的、爱折腾的家伙,但苦于没有指引,结果是在探索中浪费了大部分时间,在最后探索出个大概体系,结果发现时间已经过了一半。也许这个也是没办法的,本科只是打好基础嘛,这个是一些教授的说法,然后到研究生才会分学术和工程两个方向。但广大的学生相信更多是在本科就出来工作的,偏向技术的也就是工程了!也许到那时才分个清楚,那样岂不是只有扼腕痛惜?!苦于自己的经历,不想让后来的人重滔自己的摸索经历而浪费时间,觉得有必要把自己摸索出来的整个体系写出来,以供借鉴。于是利用饭后消化粮食的时间,写了这篇博文,希望对后来者有帮助。
先是从计算机层面讲起吧,这个是一个无绪的开发过程,举个例子,
现代的软件都是基于大型组件进行组装的。没有人独自从上到下完成所有内容,你会先安装一个可靠的操作系统(一般会是Linux),然后在上面安装
web
服务器和数据库服务器。在安装了大量的软件后,才能真正动手解决问题。比如说想生成一个
HTML
页面,在此时写一个
HTML
页面简直易如反掌(一切都市基于OS引出的API,然后你要做的就是调用这个功能,但你却不必关心这个功能操作系统(OS)是怎样实现的)。但整个系统确是很复杂的,事实上这个对外只提供简单页面浏览的系统已经复杂到了极点,相信没人敢说自己完全了解整个系统的全部内容。这个可以称为无绪状态在软件开发中的例子。这个是基于强大的CPU的开发。(这个就是你很有钱(对应于资源充足),然后你要弄一个属于自己的生活社区,但你不得不为此该很多基础设施——学校,医院,超市,公路.....,然后你发现,你要的只是一个文明的生活环境,并且这么多东西你自己一个人是无法享受完的,但为了这个环境,你又必须建造和维持这个庞大的社区)
IT无非就是分计算机层面和嵌入式层面,然后其实两者是统一的。计算机只是标准化的体系结构而且,而嵌入式是后来定制,性能差异可以很大。两者都是基于有运算能力的CPU部件,这个是核心。
现在说到嵌入式,按处理能力,大致分为微控制器(MCU)和微处理器(MPU)两个级别。
微控制器,一般用于一些控制场合,在其上所写的程序严格地讲,觉得还不能称之为软件吧,最多是两三百KB,但更多时候是几KB到几十KB的程序。这个是比较低端的层面应用的。
而微处理器层面的嵌入式,是可以跑操作系统的,一般是Linux。针对各种微处理器,有多种发布版的Linux(所谓发布版,就是根据一定的微处理器或者应用定制好的,已经有自己特点、特色的操作系统),其中最出名的就是Android。(苹果的IOS也是根据Unix内核基础上定制和增强的。)当然除了Android,还有很多其他比较好的开源Linux发布版,如OpenWRT是运行在路由器上的一款嵌入式Linux发布版。这个可以用于对用户体验有要求的商业了。(毕竟商业的对象时人嘛,人当然就是要求好的体验的啦,具体来讲就是好用,方便,简单,为迎合这一点,那么就要额外地做很大的运算量了。某些软件其实核心的代码是很小的,但为了迎合人,而附带一个UI,那个就是额外负担了,一个UI的运算量也许就是你核心功能运算量的几百倍)
为什么都是Linux呢?因为Linux是开源的,这个源代码都可以看到,所以开发,研究和学习都是基于这个,你不可能要求基于Windows的吧,人家只是提供二进制文件(这个概念要开始接触了,就是已经编译、链接好的可以直接在机器上跑的文件)。
然后还有从软件和硬件的角度分,其实两者是可以统一起来的,硬件就是直接,这个导致的优点就是速度上快了。然后这个上是用硬件描述语言verilog开发,这个可以写好处理器的内核,然后交给半导体生产商生成。在这个时候就要介绍一个牛逼的公司了,ARM,市场上90%(貌似那一年的数据是80%)以上的嵌入式处理器都是基于这个公司开发的内核。然后这个设计的内核用verilog写出IP核库的形式提供。这个可以类比于软件开发中的函数库。苹果的A4处理器就是在ARM写的IP核基础上改进的。一流的公司制定标准,二流的公司设计方案,三流的公司生产产品。那么从这个角度看,ARM就是一流的公司了,而苹果最多就是二流和三流的混合体。从苹果的硬件(处理器)和软件(IOS),你可以发现了吧——“天下文章一大抄”,只不过人家是有素质的抄(付钱),而某些国内的是比较无赖的抄(不付钱,具体是谁,自己想,公众场合不便说吧)。所以说为什么信息产业就是好呢,这个就是人的力量很重要,智力&知识很重要。一旦有契机,一帮屌丝(当然是hacker级别或者什么吧)也可以依靠商业规则举起一件小有名气的公司,这个也不是没有可能的。。。至此,食物消化得差不多了,血液回流上大脑了,胡乱写了些,也许思路不怎么清晰,但只能到这里了,希望大家努力&在年轻的时候专注于技术也是好的方向吧,毕竟可以以技术打江山的,有了技术,剩下的就是契机了吧。。。