- 浏览: 92579 次
- 性别:
- 来自: 北京
文章分类
我们都知道操作系统是装在计算机上的,所有的计算机本质上是由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 966Java对象的引用类型分为强引用、软引用、弱引用和虚应用 强引 ... -
JVM调优大纲
2013-05-07 19:07 1774我觉得处理JVM调优问题需要以下五个步骤: ... -
diango创建数据异常no module named base
2013-05-05 22:02 1594本人使用django创建web项目使用的数据库是sqlite3 ... -
hibernate根据hbm自动生成数据库
2013-04-27 10:26 1064今天碰到一个很老的项目,只有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 1207以前在myeclipse开发Java Web项目的时候 ... -
tomcat支持中文路径图片问题
2012-11-12 14:51 2698今天,上传图片,但是有文件夹是中文的或是图片文件名是中 ... -
已经安装jdk了,运行applet还是提示安装问题解决
2012-11-08 10:57 1298今天,同事的机子已经装了jdk,但是运行带有ap ... -
理解编译型编程语言心得
2012-11-01 14:11 7711,编译型语言,像c和c++都是,在源代码成为 ... -
集成到项目中web.xml报taglib标签错误
2012-10-31 15:45 852web.xml的报错位置: <taglib> ... -
使用润乾报表工具过程、心得和体会
2012-10-31 15:41 5642现在做的这个项目,需要导出相关报表,正好前几个 ... -
(转)Java开源软件六大帮派
2012-10-25 10:40 788原文链接:http://www.oschina.net/que ... -
Linux安装jdk详解
2012-10-22 16:34 7561,下载JDK,肯定官网下载,有多种类型,源码包、bin包、r ... -
(转)Linux设备命名规则
2012-10-19 15:21 1103在我们使用的计算机中 ... -
(转)Java几款性能分析工具的对比
2012-10-18 11:04 775在给客户进行应用程序维护的过程中,我注意到一些关于高负载条件下 ... -
Windows编程之钩子程序
2012-10-15 09:20 21211,钩子(Hook),是Windows消息处理机制的一个平台, ... -
(转)编程竞赛的几个在线提交系统
2012-10-12 14:28 1054下面是几个比较大的在线提交系统(Online Judge)里面 ... -
(转)世界上的操作系统认识
2012-10-10 10:41 73025款操作系统全面接触http://tech.163.com/ ...
相关推荐
通过这些实验和演示程序,学生不仅可以从理论角度理解操作系统,还能动手实践,提高解决问题的能力。这种学习方式对于培养未来的系统程序员、系统管理员或操作系统开发者至关重要,因为它们能提供宝贵的实践经验,有...
### 计算机USB系统原理及其主从机设计 #### USB协议原理 USB(Universal Serial Bus)即通用串行总线,是一...无论是从软件还是硬件的角度来看,都需要具备扎实的基础知识以及实践经验才能设计出高效可靠的USB产品。
通过多种视图的构建,从不同角度全面展示系统的各个方面,以满足不同涉众(如客户、设计师等)对系统不同方面的关注点与需求。本说明书详细记录了设计人员在系统架构层面的关键决策,为后续的项目管理、程序设计、...
这份"软件设计师复习资料"提供了丰富的学习资源,旨在帮助考生从多个角度理解和掌握各知识点的难点,以便在实际考试中能够游刃有余。 软件设计师是信息技术领域的一个专业职称,主要负责软件的设计、开发、测试和...
理解软件开发过程的各个阶段及其相互关系是软件设计师的基本功。 2. **设计模式**:设计模式是解决软件设计中常见问题的标准化解决方案,如工厂模式、单例模式、观察者模式等。掌握这些模式有助于编写出可维护、可...
### 知识点一:计算机系统的程序员视角概览 **标题**:“程序员角度深入...通过以上各知识点的详细介绍,读者可以从程序员的角度深入理解计算机系统的各个方面,从而更好地掌握编程技巧并在实际开发中应用这些知识。
2008年的软件设计师考试分为上午和下午两场,每场试题涵盖的内容广泛,涉及到软件工程、数据结构、计算机网络、操作系统、数据库系统等多个方面。上午试题主要考察理论知识,下午试题则更侧重于实践应用和分析能力。...
为了更好地理解操作系统的功能及设计问题,本章还对计算机组织和架构进行了简要的概述。具体包括以下几个方面: - **处理器**:处理器是计算机的核心部件之一,负责执行指令并控制计算机的运行。 - **内存**:用于...
从软件分层的角度看,操作系统创建了虚拟机的概念,它为用户提供了超越硬件限制的抽象层。虚拟机使得用户无需直接操作底层硬件,即可使用更为强大的计算能力,并且简化了编程和使用过程。 此外,操作系统还是用户与...
根据给定文件的信息,我们可以总结出以下相关的操作系统知识点: ### 操作系统概述 - **操作系统定义**:操作系统是用户与计算机硬件...这对于深入理解操作系统的工作原理及其在计算机系统中的重要地位具有重要意义。
它关注的是从安全意识和设计角度出发,提出不依赖于特定编程语言的通用安全编程规范。这些规范不仅限于软件开发初期的环境搭建、系统配置、代码架构设计,还涵盖了具体的编程实现过程。 #### 三、安全编程的关键...
### 人脑及其操作系统 #### 一、人类对脑的探求历程 1. **思维之谜** - 本书作者作为资深程序员,基于多年的研究和思考,试图探索人类思维的本质。这一章节从哲学和科学的角度出发,探讨了人类自古以来对思维本质...
本文将从理论与实践相结合的角度出发,对Java数据库编程及其应用进行详细的探讨和分析。 首先,我们需要了解Java数据库编程的基本概念。Java数据库编程指的是利用Java语言对数据库进行操作的一系列程序设计技术,它...
系统设计是软件设计师的核心职责之一,它要求设计师能够从宏观角度理解系统的整体架构,包括模块划分、接口定义、数据流设计等。考生需要掌握常见的设计模式(如MVC、观察者模式等),并能根据具体需求选择合适的...
这是从“自顶向下”(或外部视角)看操作系统的角度。操作系统还通过系统调用来提供服务,系统调用是用户程序与操作系统内核进行通信的接口,允许用户程序执行只有操作系统才能提供的特定任务,如文件管理、进程控制...
尽管书中有一些帮助读者理解Java如何转换为机器代码的提示,但其主要目的是帮助读者理解计算机系统的底层工作原理,而不局限于某一种编程语言或操作系统。本书强调了理解计算机系统对程序员编程工作的重要性,即使是...
需求分析是软件设计过程中的第一步,主要任务是从用户的角度出发,收集并理解用户的需求,明确软件的目标、功能以及性能指标等。在这个阶段,考生需要展示出良好的沟通技巧和问题理解能力,能够准确地捕捉到用户的...
《深入研究Windows系统内部原理系列之二:Windows体系结构——从操作系统的角度》是一本深入探讨Windows操作系统核心机制的专业读物。此书旨在帮助读者理解Windows系统如何运作,以及其背后的架构设计。以下是对该书...
这个项目涵盖了软件开发的各个阶段,从需求分析、设计、编码到测试和维护,每个阶段都产生了相应的文档,以确保项目的规范性和可维护性。下面我们将详细探讨这些阶段及其对应的文档。 1. 需求分析阶段: 在这一...