【原创】计算机软硬件构成基本关系
⼤纲
硬件:
计算机的主要部件有: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,
设备管理,
提供系统调⽤的接⼝。
编译器
编译原理那套实现
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论