源码论坛网站需要多大的空间,临沂建网站哪家好,windows优化大师值得买吗,人人开发app操作系统历史
UINX操作系统诞生之初是用汇编语言编写的。随着UNIX的发展#xff0c;汇编语言的开发效率成为一个瓶颈。寻找新的高效开发语言成为UNIX开发者需要解决的问题。当时BCPL语言成为了当时的选择之一。Ken Thomposn对BCPL进行简化得到了B语言。但是B语言不是直接生成…操作系统历史
UINX操作系统诞生之初是用汇编语言编写的。随着UNIX的发展汇编语言的开发效率成为一个瓶颈。寻找新的高效开发语言成为UNIX开发者需要解决的问题。当时BCPL语言成为了当时的选择之一。Ken Thomposn对BCPL进行简化得到了B语言。但是B语言不是直接生成机器码而是生成中间码之后解释执行有点像Java。解释型的语言执行效率无法胜任操作系统的开发。1971年Ken Thompson 和 Dennis Ritchie 对B语言进行了改良使其能够直接产生机器码C语言诞生。UNIX开始使用C语言重写同时C语言在实践过程中得到了发展由于是在开发过程中发展没有深思熟虑的设计过程。 使用时存在很多“灰色地带” 残留过多低级语言的特征例如可以直接利用指针进行内存操作C语言的目标是高效高效开发UNIX最终使得程序执行效率的高效。
软件方法论的发展
面向过程程序设计数据结构算法
主要解决科学计算问题用户要求简单而固定。 特点 1.分析解决问题所需要的步骤 2.利用函数实现各个步骤 3.依次调用函数解决问题 问题 1.软件可重用性差 2.软件可维护性差 3.构建的软件无法满足用户需求。
面向对象程序设计由现实世界建立软件模型
将现实世界中的事物直接映射到程序中可直接满足用户需求。 特点 1.直接分析用需求中涉及的各个实体 2.在代码中描述现实世界中的实体 3.在代码中关联各个实体协同工作解决问题 优势 1.构建的软件能够适应用户需求的不断变化 2.直接利用面向过程方法的优势而避开其劣势。
C语言的加强
当面向过程的方法论暴露的缺陷越来越多的时候业界开始考虑在工程项目中引入面向对象的设计方法而第一个需要解决的问题高效的面向对象语言并且能够兼容已有的C代码。
C是C语言的加强是一种更好的C语言。C是已C语言为基础并且完全兼容C语言的特性。通过学习C能够掌握更多的软件设计方法C是Java/C#/D等现代开发语言的基础学习C后能够快速掌握这些语言。如果是做安卓framework定制安卓RomC是必须掌握的技能。
以安卓系统为例C语言开发只是占其中的一部分HAL可以用C/C编写为了方便移植和开发大部分外设器件厂商的HAL采用C编写。Native层和ART大部分使用面向对象C编写。 操作系统的修改和驱动程序开发在现代软件产品中占据的比重越来越小。 安卓系统框架图链接
现代软件产品的特性
系统一般是由多种语言写成的 系统架构的目的是拥抱用户需求的变化 系统拥有较好的移植性 系统能够方便的部署和更新。 对于一个架构师而言掌握各种语言的优势并合理运用到系统中由此简化系统的开发是架构生涯的第一步。