计算机软件,硬件及软硬件接口的理解---以不同层次程序员的视角

最近在自学计算机相关的基础课程,感觉自己稍微理解了计算机的硬件,软件,以及软硬件接口三大层面的内在关系。

记录一下自己的理解。

我想通过不同层次程序员的视角来看计算机的软件,硬件及软硬件接口。

首先是计算机的硬件。计算机的硬件主要包括CPU,内存以及I/O设备。机器语言程序员,可以通过直接编写CPU可执行的机器指令,从而实现具体的功能,比如读取内存数据。

也就是说,机器语言程序员在编程时,是能够看到计算机的硬件设备,并且需要了解CPU的指令集,以及各个I/O硬件设备的数据手册,才能完成编程。

因此从机器语言程序员的视角,能看到的计算机的部分,都是纯硬件。

但是面向纯硬件编程的话,程序难以实现移植,而且每当I/O设备型号改变的时候,都需要重新阅读其数据手册,任务量庞大而无趣。于是需要一个可以操控所有硬件的程序,这个程序便是操作系统内核(kernel)。通过内核,可以直接使用硬件资源,而不在需要追条编写机器指令,控制计算机的每一步动作。

但是编写操作系统内核的程序员,面向的仍然是计算机中实实在在的硬件,他们需要将多条机器指令组合起来,实现对各个硬件设备的控制。

因此从编写操作系统内核的程序员的视角,能看到的计算机的部分,仍然是纯硬件。

在操作系统内核的基础上,程序员若想使用某个硬件资源,比如读取硬盘的数据,便可直接调用内核留下的函数接口。程序员不在关心CPU是如何一步一步完成硬盘数据读取的,可以很容易的使用硬件资源。这一层可以称作系统调用层。

因此从编写系统调用层程序的程序员视角,已经看不到计算机内部的硬件动作,所看到的就是软件。

操作系统内核和系统调用层合起来就是操作系统,正是操作系统连接了软件和硬件,成为了软件和硬件的接口。

在操作系统基础上编写各种应用程序的程序员的视角来看,看到的就是纯软件了。
--------------------- 
作者:living_in_code 
来源:CSDN 
原文:https://blog.csdn.net/weixin_35270638/article/details/78671411 
版权声明:本文为博主原创文章,转载请附上博文链接!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值