- 浏览: 88843 次
- 性别:
- 来自: 北京
文章分类
我们都知道操作系统是装在计算机上的,所有的计算机本质上是由CPU、存储器(内存)、IO设备组成,
CPU包括运算器和控制器组成,IO设备包括输入设备和输出设备。
CPU的设计是一个计算机的关键,所有的其他东西都是围绕CPU设计的,CPU通过主板和存储器以及IO设备沟通,
当CPU改变时,对应的主板、内存、IO设备一般都需要改变,当然也可以不改变,因为有标准的存在,有接口的存在。
CPU对编程来说特别关键,因为他包含人为定义的指令系统,指令是控制CPU的关键,CPU是控制计算机的关键。区别
CPU的一点就是这个CPU所支持的指令系统,越新的CPU所支持的指令越多,因为有需要先进的指令被加进来了。不同
厂商生产的CPU所包含的指令系统肯定也不一样,但是还是有标准来控制他们尽量兼容,但是最新的指令是很难兼容的。
操作系统安装在计算机上,因为计算机所使用的CPU不太相同,所以操作系统需要去为这些CPU来分别编写来支持他们,
你用x86的操作系统装以前使用ibm cpu的苹果机,肯定装不上啊,因为操作系统支持的cpu有误。操作系统主要用汇编和
c语言来编写,汇编是针对不同的cpu的,因为汇编是对cpu指令系统的对应,如果cpu不支持这种指令,你让汇编用这种
指令操作cpu肯定是不行的。而c是对汇编的再包装,是个高级语言,因此不用太在意cpu的型号,注意这是使用汇编和c来
编写操作系统而不是其他软件。
安装完操作系统之后,我们就可以编写系统软件和应用软件了,记住这些软件是通过操作系统来运行的,你不能绕过操作系统
去做你想做的事,操作系统就是管理这些软件的,他是硬件和软件的中介,软件想操作硬件,必须通过操作系统来完成或者经过
操作系统的允许。操作系统为什么有漏洞,就是因为软件没有经过操作系统允许就干了操作硬件的事了。
操作系统本质上由内核、外壳、软件组成。内核操作硬件,外壳也是一个软件,一个系统软件,是内核和用户的交互的环境,
注意是环境。既然操作系统是由汇编和c来编写的,那么操作系统肯定给软件们留下了大量汇编和c的库、系统调用或者函数,
以方便汇编或c程序员去在这个操作系统上快速的开发软件,而不用每个函数都要自己实现。这些库、函数或系统调用,
就是操作系统的API,大部分都是c哈,这些api肯定需要实现大部分c标准库了,以方操作系统在各个软件的移植,
这些api加上一些文档就成了操作系统的SDK了。我们使用操作系统的SDK就可以开发最接近
操作系统的软件了,一般是系统软件,当然不排除其他比较底层的应用。
差不多了,我们可以使用汇编来编写驱动了,可以使用c调用操作系统api来开发软件了。
CPU包括运算器和控制器组成,IO设备包括输入设备和输出设备。
CPU的设计是一个计算机的关键,所有的其他东西都是围绕CPU设计的,CPU通过主板和存储器以及IO设备沟通,
当CPU改变时,对应的主板、内存、IO设备一般都需要改变,当然也可以不改变,因为有标准的存在,有接口的存在。
CPU对编程来说特别关键,因为他包含人为定义的指令系统,指令是控制CPU的关键,CPU是控制计算机的关键。区别
CPU的一点就是这个CPU所支持的指令系统,越新的CPU所支持的指令越多,因为有需要先进的指令被加进来了。不同
厂商生产的CPU所包含的指令系统肯定也不一样,但是还是有标准来控制他们尽量兼容,但是最新的指令是很难兼容的。
操作系统安装在计算机上,因为计算机所使用的CPU不太相同,所以操作系统需要去为这些CPU来分别编写来支持他们,
你用x86的操作系统装以前使用ibm cpu的苹果机,肯定装不上啊,因为操作系统支持的cpu有误。操作系统主要用汇编和
c语言来编写,汇编是针对不同的cpu的,因为汇编是对cpu指令系统的对应,如果cpu不支持这种指令,你让汇编用这种
指令操作cpu肯定是不行的。而c是对汇编的再包装,是个高级语言,因此不用太在意cpu的型号,注意这是使用汇编和c来
编写操作系统而不是其他软件。
安装完操作系统之后,我们就可以编写系统软件和应用软件了,记住这些软件是通过操作系统来运行的,你不能绕过操作系统
去做你想做的事,操作系统就是管理这些软件的,他是硬件和软件的中介,软件想操作硬件,必须通过操作系统来完成或者经过
操作系统的允许。操作系统为什么有漏洞,就是因为软件没有经过操作系统允许就干了操作硬件的事了。
操作系统本质上由内核、外壳、软件组成。内核操作硬件,外壳也是一个软件,一个系统软件,是内核和用户的交互的环境,
注意是环境。既然操作系统是由汇编和c来编写的,那么操作系统肯定给软件们留下了大量汇编和c的库、系统调用或者函数,
以方便汇编或c程序员去在这个操作系统上快速的开发软件,而不用每个函数都要自己实现。这些库、函数或系统调用,
就是操作系统的API,大部分都是c哈,这些api肯定需要实现大部分c标准库了,以方操作系统在各个软件的移植,
这些api加上一些文档就成了操作系统的SDK了。我们使用操作系统的SDK就可以开发最接近
操作系统的软件了,一般是系统软件,当然不排除其他比较底层的应用。
差不多了,我们可以使用汇编来编写驱动了,可以使用c调用操作系统api来开发软件了。
发表评论
-
Java对象引用类型
2013-05-09 09:55 895Java对象的引用类型分为强引用、软引用、弱引用和虚应用 强引 ... -
JVM调优大纲
2013-05-07 19:07 1717我觉得处理JVM调优问题需要以下五个步骤: ... -
diango创建数据异常no module named base
2013-05-05 22:02 1545本人使用django创建web项目使用的数据库是sqlite3 ... -
hibernate根据hbm自动生成数据库
2013-04-27 10:26 1018今天碰到一个很老的项目,只有hbm文件没有数据库,想根 ... -
svn分支合并到主线的十大注意事项
2013-04-07 10:39 0svn是java软件工程师常用的版本控制工具,但是对于分支到主 ... -
这几年收集的java相关资料
2013-04-06 14:46 614以下是我搜集的java相关资料,有需要的可以联系我,QQ470 ... -
很诡异的一个hibernate问题
2012-12-27 09:39 297在一个service里写了如下一段代码: List<Gr ... -
一种JavaWeb项目开发部署方式
2012-11-16 09:37 1092以前在myeclipse开发Java Web项目的时候 ... -
tomcat支持中文路径图片问题
2012-11-12 14:51 2640今天,上传图片,但是有文件夹是中文的或是图片文件名是中 ... -
已经安装jdk了,运行applet还是提示安装问题解决
2012-11-08 10:57 1242今天,同事的机子已经装了jdk,但是运行带有ap ... -
理解编译型编程语言心得
2012-11-01 14:11 7251,编译型语言,像c和c++都是,在源代码成为 ... -
集成到项目中web.xml报taglib标签错误
2012-10-31 15:45 805web.xml的报错位置: <taglib> ... -
使用润乾报表工具过程、心得和体会
2012-10-31 15:41 5596现在做的这个项目,需要导出相关报表,正好前几个 ... -
(转)Java开源软件六大帮派
2012-10-25 10:40 743原文链接:http://www.oschina.net/que ... -
Linux安装jdk详解
2012-10-22 16:34 7141,下载JDK,肯定官网下载,有多种类型,源码包、bin包、r ... -
(转)Linux设备命名规则
2012-10-19 15:21 1030在我们使用的计算机中 ... -
(转)Java几款性能分析工具的对比
2012-10-18 11:04 737在给客户进行应用程序维护的过程中,我注意到一些关于高负载条件下 ... -
Windows编程之钩子程序
2012-10-15 09:20 20521,钩子(Hook),是Windows消息处理机制的一个平台, ... -
(转)编程竞赛的几个在线提交系统
2012-10-12 14:28 1009下面是几个比较大的在线提交系统(Online Judge)里面 ... -
(转)世界上的操作系统认识
2012-10-10 10:41 68525款操作系统全面接触http://tech.163.com/ ...
相关推荐
本书为软件和硬件之间搭起了一个桥梁,它给出了一种帮助读者分别从硬件和软件的角度去理解一个程序及其行为的途径,这也填补了国内计算机系统教学中的一个空白。本书的最大优点是帮助读者理解概念,让读者很清楚地在...
本书为软件和硬件之间搭起了一个桥梁,它给出了一种帮助读者分别从硬件和软件的角度去理解一个程序及其行为的途径,这也填补了国内计算机系统教学中的一个空白。本书的最大优点是帮助读者理解概念,让读者很清楚地在...
本书为软件和硬件之间搭起了一个桥梁,它给出了一种帮助读者分别从硬件和软件的角度去理解一个程序及其行为的途径,这也填补了国内计算机系统教学中的一个空白。本书的最大优点是帮助读者理解概念,让读者很清楚地在...
《TCP/IP网络编程》涵盖操作系统、系统编程、TCP/IP协议等多种内容,结构清晰、讲解细致、通俗易懂。书中收录丰富示例,详细展现了Linux和Windows平台下套接字编程的共性与个性。特别是从代码角度说明了不同模型...
这样可以使读者从不同角度和不同方面深刻理解使用Java语言进行软件开发的特点。 本书适合具有一定Java基础并想更多了解Java语言与数据库结合方面的知识的编程人员学习使用,同时对于Java语言的初学者来说,也是一本...
如果从根结点开始,按层次(每一层从左到右)用自然数1,2,……,n给结点进行编号,则对于编号为k(k=1,2,……,n)的结点有以下结论: ① 若k=1,则该结点为根结点,它没有父结点;若k>1,则该结点的父结点编号...
理解操作系统的工作任务和应用方式。重点掌握操作系统的分类 。 (四)Windows XP操作系统应用:了解Windows XP操作系统的版本、设置显示属性、系统还原功能和汉字输入技术。理解Windows XP的登录与退出、用户管理、...
从1996年开始使用Oracle,在应用开发、大型系统实现以及性能评估方面具有丰富的经验。她是OakTable的成员,同时是Expert Oracle Practices (2010年 Apress出版)一书的合著者。 RIYAJ SHAMSUDEEN 专注于性能/...
本书并不是一本关于C++的书,而是一本关于使用MFC而不是Windows APl,进行32位Windows应用程序编程,以访问操作系统的基本特性和服务的书。它原本为以下两种编程人员所写: 曰打算学习MFC的WindowsAPl程序员 ...
从技术角度考虑,此系统开发可行。 数据库图书管理系统实训报告全文共5页,当前为第3页。 系统功能分析 1、系统功能结构图 全部图书查询图书借阅查询图书管理查询学生信息查询图书归还图书借阅图书管理图书管理系统...
从技术角度考虑,此系统开发可行。 2。2系统功能分析 1、系统功能结构图 2、系统功能分析 图书管理系统的流程是用户先选择自己的身份,是管理员或者是学生。如果是学生, 则进入学生登录界面,登陆成功后,学生所能...
从工程实际的角度来看,大体上可以将软件逆向工程分为两大类: 第一类是从已知软件系统的完整代码出发,生成对应系统的结构以及相关设计原理和算法思想的文档。实际上,学习和研究别人的源代码就属于此类。Chikofsky...
115 <br>0192 如何获取“我的文档”系统文件夹路径 115 <br>0193 如何获取应用程序当前执行的路径 116 <br>0194 如何获取当前操作系统的信息 116 <br>0195 如何实现基本数据类型随意转换 116...
理解OpenGL如何工作非常重要,你可以在教程的末尾下载源程序,但我强烈建议你至少读一遍教程,然后再开始编程. 2.你的第一个多边形: 在第一个教程的基础上,我们添加了一个三角形和一个四边形。也许你认为这很简单...
从技术角度考虑,此系统开发可行。 2.2系统功能分析 1、系统功能结构图 2、系统功能分析 图书管理系统的流程是用户先选择自己的身份,是管理员或者是学生.如果是学生,则 进入学生登录界面,登陆成功后,学生所能做...