`

从编程的角度理解操作系统及其软件设计

阅读更多
        我们都知道操作系统是装在计算机上的,所有的计算机本质上是由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来开发软件了。                                                
分享到:
评论

相关推荐

    深入理解计算机系统(英文版)

    本书为软件和硬件之间搭起了一个桥梁,它给出了一种帮助读者分别从硬件和软件的角度去理解一个程序及其行为的途径,这也填补了国内计算机系统教学中的一个空白。本书的最大优点是帮助读者理解概念,让读者很清楚地在...

    CSAPP(深入理解计算机系统)

    本书为软件和硬件之间搭起了一个桥梁,它给出了一种帮助读者分别从硬件和软件的角度去理解一个程序及其行为的途径,这也填补了国内计算机系统教学中的一个空白。本书的最大优点是帮助读者理解概念,让读者很清楚地在...

    深入理解计算机系统·英文版 Computer.Systems.A.Programmer’s.Perspective

    本书为软件和硬件之间搭起了一个桥梁,它给出了一种帮助读者分别从硬件和软件的角度去理解一个程序及其行为的途径,这也填补了国内计算机系统教学中的一个空白。本书的最大优点是帮助读者理解概念,让读者很清楚地在...

    TCP IP网络编程

    《TCP/IP网络编程》涵盖操作系统、系统编程、TCP/IP协议等多种内容,结构清晰、讲解细致、通俗易懂。书中收录丰富示例,详细展现了Linux和Windows平台下套接字编程的共性与个性。特别是从代码角度说明了不同模型...

    Java数据库编程宝典 PDF格式

    这样可以使读者从不同角度和不同方面深刻理解使用Java语言进行软件开发的特点。 本书适合具有一定Java基础并想更多了解Java语言与数据库结合方面的知识的编程人员学习使用,同时对于Java语言的初学者来说,也是一本...

    计算机二级公共基础知识

    如果从根结点开始,按层次(每一层从左到右)用自然数1,2,……,n给结点进行编号,则对于编号为k(k=1,2,……,n)的结点有以下结论: ① 若k=1,则该结点为根结点,它没有父结点;若k>1,则该结点的父结点编号...

    《计算机应用基础》学习方法.doc

    理解操作系统的工作任务和应用方式。重点掌握操作系统的分类 。 (四)Windows XP操作系统应用:了解Windows XP操作系统的版本、设置显示属性、系统还原功能和汉字输入技术。理解Windows XP的登录与退出、用户管理、...

    Oracle SQL高级编程(资深Oracle专家力作,OakTable团队推荐)--随书源代码

    从1996年开始使用Oracle,在应用开发、大型系统实现以及性能评估方面具有丰富的经验。她是OakTable的成员,同时是Expert Oracle Practices (2010年 Apress出版)一书的合著者。  RIYAJ SHAMSUDEEN 专注于性能/...

    MFC Windows程序设计(第2版修订版)--源代码

    本书并不是一本关于C++的书,而是一本关于使用MFC而不是Windows APl,进行32位Windows应用程序编程,以访问操作系统的基本特性和服务的书。它原本为以下两种编程人员所写:  曰打算学习MFC的WindowsAPl程序员  ...

    数据库图书管理系统实训报告.docx

    从技术角度考虑,此系统开发可行。 数据库图书管理系统实训报告全文共5页,当前为第3页。 系统功能分析 1、系统功能结构图 全部图书查询图书借阅查询图书管理查询学生信息查询图书归还图书借阅图书管理图书管理系统...

    数据库图书管理系统实训报告.doc

     从技术角度考虑,此系统开发可行。 2。2系统功能分析 1、系统功能结构图 2、系统功能分析 图书管理系统的流程是用户先选择自己的身份,是管理员或者是学生。如果是学生, 则进入学生登录界面,登陆成功后,学生所能...

    Reversing:逆向工程揭密

    从工程实际的角度来看,大体上可以将软件逆向工程分为两大类: 第一类是从已知软件系统的完整代码出发,生成对应系统的结构以及相关设计原理和算法思想的文档。实际上,学习和研究别人的源代码就属于此类。Chikofsky...

    C#编程经验技巧宝典

    115 <br>0192 如何获取“我的文档”系统文件夹路径 115 <br>0193 如何获取应用程序当前执行的路径 116 <br>0194 如何获取当前操作系统的信息 116 <br>0195 如何实现基本数据类型随意转换 116...

    OPenGL编程书籍

    理解OpenGL如何工作非常重要,你可以在教程的末尾下载源程序,但我强烈建议你至少读一遍教程,然后再开始编程. 2.你的第一个多边形: 在第一个教程的基础上,我们添加了一个三角形和一个四边形。也许你认为这很简单...

    数据库图书管理系统实训报告(1).doc

     从技术角度考虑,此系统开发可行。 2.2系统功能分析 1、系统功能结构图 2、系统功能分析 图书管理系统的流程是用户先选择自己的身份,是管理员或者是学生.如果是学生,则 进入学生登录界面,登陆成功后,学生所能做...

Global site tag (gtag.js) - Google Analytics