菜鸟崛起 Chapter 1.4 软件程序运行

1.4  软件程序运行

上面我们介绍了计算机的硬件构成,但是只有硬件的计算机只是一堆废铁,不能帮助我们做任何的工作,要让计算机变得能够符合我们的心意是离不开软件的支持的,硬件是计算机的骨肉,那么软件就是灵魂了。

一般来说,目前的计算机系统将软件分为两大类,一个是系统软件(OS),一个是应用程序,我们在了解OS之前先来了解一下什么是程序,尤其是机器程序。

1.4.1  机器程序与编译程序

我们前面谈到计算机只认识9和1,而且计算机最重要的运算与逻辑判断是在CPU内部,而CPU其实是具有微指令集的。因此,我们需要CPU帮忙工作时,就得要村考微指令集的内容,然后撰写让CPU读的懂的脚本给CPU执行,这样才能让CPU运作。

不过这样的流程有几个很麻烦的地方,包括:

l 需要了解机器语言:机器只认识0和1,因此你必须要学习直接写给计算机看的语言,这是相当困难的。

l 需要了解硬件的相关功能函数:因为你的程序必须要写给机器看,当然你就得要参考机器本身的功能,然后针对该功能去撰写程序代码。例如,你要让DVD影片能够播放,那就得要参考DVD光驱的硬件信息才行。万一你的系统有比较冷门的硬件,光是参考技术手册可能就会累死。

l 程序不具有可移植性:每个CPU都有独特的微指令集,同样的,每个硬件都有其功能函数。因此,你为A计算机写的程序,理论上是没有办法在B计算机上面运作的。而且程序代码的修改也是非常困难的,因为是机器码,并不是人类看得懂的程序语言。

l 程序具有专一性:因为这样的程序必须要针对硬件功能函数来编写,如果已经开发了一支浏览器程序,想要再开发档案管理程序时,还得从头再参考硬件的功能函数来继续编写,每天都在和硬件奋战。

从上面的图示我们可以看到高阶程序语言与程序代码是很容易查看的。问题是,在这样的环境底下我们还是得要考虑整体的硬件系统来设计程序。

举例来说,当你需要将运作的数据写入内存中,你就得要自行分配一个内存区块出来让自己的数据能够填上去,所以你还得要了解内存地址是如何定位的,想到这里就不禁觉得程序员知道的好多啊。

为了克服硬件方面老是需要重复撰写内存地址句柄的问题,所及就有了操作系统(Operating System,OS)的出现。下面我们就来认识一下OS。

时间: 2024-10-18 09:33:36

菜鸟崛起 Chapter 1.4 软件程序运行的相关文章

【计算机概论】数据表示方式与软件程序运行

数据表示方式 数字系统 本质即二进制与十进制的相互转换. 文字编码系统 常用的英文编码表为ASCII系统,这个编码系统中,每个符号(英文,数字或符号等)都会占用1B的记录. 中文当中的编码系统最常用的是big5(简体是GB2312)编码表.每个中文字符占用2B. 为了解决某些生僻字被识别成乱码的问题,由国际组织ISO/IEC指定了所谓的Unicode编码系统,即UTF8或统一码,从而打破了所有国家的不同编码. 软件程序运行 目前的计算机系统将软件分为两大类,一个是系统软件,一个是应用程序. 机器

菜鸟崛起 DB Chapter 2 MySQL 5.6的概述与安装

在上文菜鸟崛起 DB Chapter 1 数据库概述我们初步认识了数据库,也知道市面上常见的几种数据库,下面我们就针对常见的MySQL数据库展开对DataBase的探讨. 2.1  MySQL介绍 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品.MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系

菜鸟笔记 -- Chapter 3.5 人生的第一个Java程序Hello World

3.5 第一个Java程序“Hello World” 3.5.1 工具介绍 编写Java程序可以使用很多种工具 l notepad(微软操作系统自带) l Notepad++ l Eclipse l MyEclipse 我们在初始学习阶段先通过Notepad++来学习,这样我们可以更直观的看到程序运行的流程. 3.5.2 HelloWorld 源代码 class HelloWorld{ public static void main(String[] args){ System.out.prin

菜鸟笔记 -- Chapter 3.1 计算机的基础

3.1 计算机的基础知识 每次想写些什么的时候,发现总是避不过计算机这块,在菜鸟笔记 Chapter 1 计算机从0讲起简单介绍一下计算机硬件,以后计划在线程和并发中详细介绍一下计算机的运行原理.这里我们还是先简单介绍一下计算机. 3.1.1 计算机 计算机(Computer)全称:电子计算机,俗称电脑.是一种能够按照程序运行,自动.高速处理海量数据的现代化智能电子设备.由硬件和软件所组成,没有安装任何软件的计算机称为裸机.常见的形式有台式计算机.笔记本计算机.大型计算机等. 计算机的应用已渗透

菜鸟笔记 -- Chapter 3.4 环境变量

3.4 Java环境的搭建 工欲善其事必先利其器.在学习Java语言之前,必须了解并搭建好它所需要的开发环境.要编译和执行Java程序,JDK(Java Developers Kits)是必备的.下面将具体认识下JDK和JRE,并进行介绍下载安装JDK和配置环境变量的方法. 3.4.1 Java的跨平台 Java的跨平台是指:通过Java语言编写的应用程序在不同的系统平台上都可以运行.在这里我们要对平台进行一下解读,在菜鸟笔记 Chapter 1 计算机从0讲起中我们知道了OS的出现是为所有的开

解决ArcGIS 10.1系列软件安装运行的相关问题

(Destop) 1.卸载旧版本软件,ArcGIS Destop要最后卸载,还有清除注册表 2.要安装破解版本里面的Lisence Manager 3.安装顺序Lisence Manager->Destop->,注意装完LisenceManager后,要停止服务,然后安装Destop,然后把许可文件覆盖到LisenceManager的bin文件下面的service.txt,然后启动服务,重读许可 4.打开ArcGIS Administrator,选择Advanced (ArcInfo)浮动版,

逆向第三课(深入.NET程序运行原理)

注:本文适用读者范围,对Windows下的PE文件有一定认识的朋友 一. 名词解释 a)        CLR: 公共语言运行时(Common LanguageRuntime),CLR时.NET框架的核心内容之一,可以把它看为一套标准资源,可以被任何.NET程序使用.它包括:面向对象的编程模型.安全模型.类型系统(CTS).所有.NET基类.程序执行以及代码管理等. b)        JIT: 即时编译(Just In-Time compile),这是.NET运行可执行程序的基本方式,也就是在

杂谈——Android从启动到程序运行发生的事情

转载请注明出处 博客地址:http://blog.csdn.net/JonsTank2013/article/details/51118563 作者:李中权 前言 好久没有写博客了,瞬间感觉好多学了的东西不进行一个自我的总结与消化总归变不成自己的.通过博客可能还可以找到一些当初在学习的时候没有想到的问题.想了半天,从大二上学期自学Android以来还没有对Android从启动到程序运行期间进行一个完整的归纳,刚好最近又学到了一些新东西,那就以这篇博客为媒介,总结一下从Android启动到程序运行

公排系统app软件程序如何开发?

公排系统软件开发,公排系统开发平台 公排系统开发 公排系统定制找[帆度]:134-2220-2839(谢凡)公排系统模式开发 公排系统平台开发 公排系统定制 公排系统平台搭健 公排系统APP开发 1.如何学习程序设计?    Java是一种平台,也是一种程序设计语言,如何学好程序设计不仅仅适用于Java,对C++等其他程序设计语言也一样管用.有编程高手认为,Java也好C也好没什么分别,拿来就用.为什么他们能达到如此境界?我想是因为编程语言之间有共通之处,领会了编程的精髓,自然能够做到一通百通.