zoukankan      html  css  js  c++  java
  • 【原创】计算机软硬件构成基本关系

    大纲

    硬件:

    计算机的主要部件有:CPU、主板、显卡、内存、硬盘、网卡、声卡、显示器、键盘、鼠标;光驱、机箱、音箱等。

    软件:

    由底向上可以细分为:固件,驱动,操作系统,应用软件

    固件:

    就是硬件厂商写死的软件,一般不能更改或者很难更改,比如电脑主板自带的BIOS

    驱动:

    和固件类似,但是允许用户更新、卸载的,操作系统通过硬件驱动和硬件打交道。比如英伟达的显卡驱动。是一种可以使计算机和设备进行相互通信的特殊程序。

    操作系统只有通过这个接口,才能控制硬件设备的工作,假如某设备的驱动程序未能正确安装,便不能正常工作

    操作系统:

    比如Linux, Win7,或者手机了的Android,将底层硬件细节封装起来。

    应用软件:

    在操作系统基础上编写的应用程序,比如微软的办公Word,比如Google的Chrome浏览器。

    补充:

    1,固件和操作系统没关系,肯定能脱离操作系统而存在。无论你是安装Windows,还是Linux,或是BSD,主板的BIOS都在那里。

    2,因为操作系统将很多底层细节(比如不同的硬盘,不同厂商的显示器,不同型号的的主板等)封装了起来,依赖于操作系统,应用软件开发更加容易、有效率。但是某些场景下,应用软件也可以脱离操作系统二存在。比如工业控制领域。以单片机为例,写好跑马灯的汇编程序,用烧录软件将二进制文件烧录到单片机里面,就可以正确执行。

     3,固件是写在芯片里的程序代码,一般是用来引导或起动某个系统功能的执行,比如电脑中的CMOS。一般不会写在硬盘或存存器中。驱动是在系统的基础上,为了更好地发挥某个硬件的功能而特地写出的一段程序代码,它是建立在系统之上的。

    汇编器和链接器

    汇编器(Assembler)

    1,是将汇编语言翻译为机器语言的程序。一般而言,汇编生成的是目标代码,需要经链接器(Linker)生成可执行代码才可以执行。

    2,汇编程序系统软件语言处理系统软件。汇编器把汇编语言翻译成机器语言的过程称为汇编。

    链接器(Linker)

    是一个程序,将目标文件外加库链接为一个可执行文件。目标文件是包括机器码和链接器可用信息的程序模块

    1,为什么需要链接器

    对于源程序任意一行代码的修改都需要重新编译和汇编整个程序,全部重新翻译是对计算资源的严重浪费。这种重复对于标准库程序尤为浪费,因为程序员要编译和汇编那些在定义上几乎从未改变过的过程。

    于是可以单独编译和汇编每个过程,以使得某一行代码的改变只需要编译和汇编一个过程。这种方法需要一个新的系统程序,称为链接编辑器(link editor)或链接器(linker),它把所有独立汇编的机器语言程序“拼接”在一起。

    如何编写

    能输出二进制文件的语言都可以!知道它的所有指令集就OK。

    你用解释型(Python,Ruby)的语言写一个都可以,如IA-32,知道它的所有指令集就OK了。

    编译器和操作系统关系

    鸡和蛋的关系

    虽然编译器本身可以独立于操作系统,但这样需要添加大量操作系统完成的工作!

    因为操作系统已经封装了底层硬件操作的复杂性,所以现在的高级语言编译器是依赖于操作系统的,编译器通过系统调用和硬件打通等

    操作系统内核职责

    进程调度,内存管理,进程的创建和终止,文件系统,网络io,设备管理,提供系统调用的接口。

    编译器

    编译原理那套实现

  • 相关阅读:
    softmax in pytorch
    python使用xlrd读取excel数据
    redis集群扩容(添加新节点)
    redis集群添加新节点
    重新创建redis集群的注意事项
    在三台服务器,搭建redis三主三从集群
    UI自动化测试工具Airtest/Poco
    单个机器部署redis集群模式(一键部署脚本)
    内置函数二
    内置函数一
  • 原文地址:https://www.cnblogs.com/tkzc2013/p/15352903.html
Copyright © 2011-2022 走看看