理解
来源:互联网 发布:婚纱照电子相册软件 编辑:程序博客网 时间:2024/05/24 06:29
(1)我写了一个高级语言的操作系统比如说,然后高级语言运行被转换为机器语言,用编译器实现,其实操作系统也包含驱动程序还包含在操作系统上构建的应用,不管你都有
多少东西,统称操作系统。编译器先将高级语言编译为汇编语言(对高级语言进行词法分析,然后根据“编译的规则“将高级语言都编译为一条条汇编语言),再由汇编器将汇编语言都换为机器语言。
(2)回到那个先有鸡还是先有蛋的问题。首先是先有硬件(计算机),然后有了“”机器“”后,人开始操作机器,开始没有软件人都是手工操作机器,但是这样太费力,能否人只需操作一个按钮,触发一下机器,剩下的事都交给机器来做。这就涉及一个理论,所有东西的开始,都要有一个触发,触发后机器可以把这个活干完结束,也可以自己一直干,并且可以开启其它活开始干,但是机器比如说 计算机是需要 “”“电”来支持运转的,如果断电了,那一切都over了。
(3)实际情况时 因为有很多事是独立工作的,用户不能只触发一个按钮,就可以将自己所有的工作都干完对机器来说,所以用户想出了一种办法,把要自己需要手工操作的按钮,换为一系列0,1状态来表示,并且他们规定8位是一组,(前提是机器架构也是按照0,1这样去设计操作的,所以你这样操作机器才会认识)。所以不同厂家的的cpu的“0,1架构”序列一般都是不一样的,所以同一个操作系统如果想部署到 多个厂家的cpu上,可能需要 开发“中间件”的支持。但是现在好像是一般的cpu 都按照一定的架构去设计的,有一个标准,不同厂家的cpu比如说都是x86架构的,大家生产出来的指令集应该都是相同的。比如移动端是 arm架构。现在的cpu在升级,比如从i5到i7,应该只是说速度运算提高了,其他指令集可能增多了,但是整体架构是没变的。所以好多软件都可以使用。
(4)编译将高级语言编译为0101后,比如说是存储在寄存器中,然后cpu开始执行指令,而这一切都是电路来实现的。所以一直说的机器都是 cpu 内存 硬盘 主板这些,而构成实际的就是晶体管、各种 组成的数字电路。数字电路只是一种叫法,他其实就是一种电路。
(5)驱动程序也是这个概念,驱动程序 其实也是一种 中间件的 思想。
(7)那android 到底是什么呢,android是一种操作系统 毋庸置疑的,他也有驱动程序、应用程序,android天生支持的cpu架构是arm架构的,所以要想把android部署到x86的机器上,抱歉不可以。但是现在是不是也有“中间件”的技术可以将android 经过中间件处理后,部署到windows系统中。
(8)windows中,应用程序应该如何开发的。因为微软提供了 应用程序框架 其实就是win32 api,所有基于微软的。
(9)C++是一种语言,用来描述你的设计思维。但是电脑的细节太多。如果什么都自己写,几乎不可能干什么事。所以C++提倡代码重用,所以有了各种库。MFC就是其中一种库。
如果说C++是汉语。那么MFC就是某几个有名文人的诗词。你可以引用这些诗词来写文章。
(10)C++是一种高级语言,比如说他是汉语,但是c++的汉语 可以完全一一对应住 机器语言吗,那就不一定了。比如说 机器语言出了一个新词,如fuck,但是呢c++中还没有对应的语言 “草”。所以此时要升级编译器而不是语言,语言就这么多了 汉字比如说,但是汉子是可以造词的,不同的汉子搭配起来就是 就可以代表“fuck”了,但是编译器(翻译官)要升级,他要知道你这个新词应该翻译成什么。
(11)所以说所有的高级语言,只要定义了语法、词(词其实也可以再造字),然后其实可以代表所有的机器语言。只是说编译器(翻译官)支持多少翻译量,翻译过得语言才是机器识别的语言。但是有很多解释型的语言,比如说java,java虚拟机其实是实际的编译器,编译为实际的机器目标语言。
(12)c++程序编译后的程序,不一定
M(13)那android呢,android也是内核 上层应用软件,其实也是系统调用的意思,也就是前台语言可以直接调用 系统调用 或者用自己语言实现的库来来调系统调用,系统调用不是win32等api,win32API可能一个api 对应多个系统调用,语言可以可以用APi来开发,也可以直接调用系统调用。
(14)android 内核 上面是(davilk虚拟机),davilk由 三部分组成 与底层内核交互层Protable (可以屏蔽底层不同的平台)(jni+内核api),jni是标准的调用内核系统调用的方式。2虚拟机机层,3类库层,2层和三层也有一个中层,3层就是各种“类库”,比如java.lang就是,并且android除了jse的类库(其实不一定实现了100%),因为davilk是跟据之前apache harmory项目去改的,harmary就是一个jdk的翻版,因为当时就是抵制jdk不开源而开发的,所以当时他拿不到jdk的源码实现方式,但是它的思想是 类库跟jdk实现一致,但是里面的是方式(代码),是有所不同的,即可以让用jdk 类库开发的代码,用他一样可以运行。现在android也是这个思想,android的虚拟机就是根据harmory改的。所以现在用jdk开发的android应用,可以直接放到davik中去运行
(15)
多少东西,统称操作系统。编译器先将高级语言编译为汇编语言(对高级语言进行词法分析,然后根据“编译的规则“将高级语言都编译为一条条汇编语言),再由汇编器将汇编语言都换为机器语言。
(2)回到那个先有鸡还是先有蛋的问题。首先是先有硬件(计算机),然后有了“”机器“”后,人开始操作机器,开始没有软件人都是手工操作机器,但是这样太费力,能否人只需操作一个按钮,触发一下机器,剩下的事都交给机器来做。这就涉及一个理论,所有东西的开始,都要有一个触发,触发后机器可以把这个活干完结束,也可以自己一直干,并且可以开启其它活开始干,但是机器比如说 计算机是需要 “”“电”来支持运转的,如果断电了,那一切都over了。
(3)实际情况时 因为有很多事是独立工作的,用户不能只触发一个按钮,就可以将自己所有的工作都干完对机器来说,所以用户想出了一种办法,把要自己需要手工操作的按钮,换为一系列0,1状态来表示,并且他们规定8位是一组,(前提是机器架构也是按照0,1这样去设计操作的,所以你这样操作机器才会认识)。所以不同厂家的的cpu的“0,1架构”序列一般都是不一样的,所以同一个操作系统如果想部署到 多个厂家的cpu上,可能需要 开发“中间件”的支持。但是现在好像是一般的cpu 都按照一定的架构去设计的,有一个标准,不同厂家的cpu比如说都是x86架构的,大家生产出来的指令集应该都是相同的。比如移动端是 arm架构。现在的cpu在升级,比如从i5到i7,应该只是说速度运算提高了,其他指令集可能增多了,但是整体架构是没变的。所以好多软件都可以使用。
(4)编译将高级语言编译为0101后,比如说是存储在寄存器中,然后cpu开始执行指令,而这一切都是电路来实现的。所以一直说的机器都是 cpu 内存 硬盘 主板这些,而构成实际的就是晶体管、各种 组成的数字电路。数字电路只是一种叫法,他其实就是一种电路。
(5)驱动程序也是这个概念,驱动程序 其实也是一种 中间件的 思想。
(7)那android 到底是什么呢,android是一种操作系统 毋庸置疑的,他也有驱动程序、应用程序,android天生支持的cpu架构是arm架构的,所以要想把android部署到x86的机器上,抱歉不可以。但是现在是不是也有“中间件”的技术可以将android 经过中间件处理后,部署到windows系统中。
(8)windows中,应用程序应该如何开发的。因为微软提供了 应用程序框架 其实就是win32 api,所有基于微软的。
(9)C++是一种语言,用来描述你的设计思维。但是电脑的细节太多。如果什么都自己写,几乎不可能干什么事。所以C++提倡代码重用,所以有了各种库。MFC就是其中一种库。
如果说C++是汉语。那么MFC就是某几个有名文人的诗词。你可以引用这些诗词来写文章。
(10)C++是一种高级语言,比如说他是汉语,但是c++的汉语 可以完全一一对应住 机器语言吗,那就不一定了。比如说 机器语言出了一个新词,如fuck,但是呢c++中还没有对应的语言 “草”。所以此时要升级编译器而不是语言,语言就这么多了 汉字比如说,但是汉子是可以造词的,不同的汉子搭配起来就是 就可以代表“fuck”了,但是编译器(翻译官)要升级,他要知道你这个新词应该翻译成什么。
(11)所以说所有的高级语言,只要定义了语法、词(词其实也可以再造字),然后其实可以代表所有的机器语言。只是说编译器(翻译官)支持多少翻译量,翻译过得语言才是机器识别的语言。但是有很多解释型的语言,比如说java,java虚拟机其实是实际的编译器,编译为实际的机器目标语言。
(12)c++程序编译后的程序,不一定
M(13)那android呢,android也是内核 上层应用软件,其实也是系统调用的意思,也就是前台语言可以直接调用 系统调用 或者用自己语言实现的库来来调系统调用,系统调用不是win32等api,win32API可能一个api 对应多个系统调用,语言可以可以用APi来开发,也可以直接调用系统调用。
(14)android 内核 上面是(davilk虚拟机),davilk由 三部分组成 与底层内核交互层Protable (可以屏蔽底层不同的平台)(jni+内核api),jni是标准的调用内核系统调用的方式。2虚拟机机层,3类库层,2层和三层也有一个中层,3层就是各种“类库”,比如java.lang就是,并且android除了jse的类库(其实不一定实现了100%),因为davilk是跟据之前apache harmory项目去改的,harmary就是一个jdk的翻版,因为当时就是抵制jdk不开源而开发的,所以当时他拿不到jdk的源码实现方式,但是它的思想是 类库跟jdk实现一致,但是里面的是方式(代码),是有所不同的,即可以让用jdk 类库开发的代码,用他一样可以运行。现在android也是这个思想,android的虚拟机就是根据harmory改的。所以现在用jdk开发的android应用,可以直接放到davik中去运行
(15)
阅读全文