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

记录一下自己的理解。

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

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

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

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

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

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

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

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

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

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

在操作系统基础上编写各种应用程序的程序员的视角来看,看到的就是纯软件了。

以上是一个初学者的见解,若有问题,还请指出!



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

  1. 我理解的战争(程序员是需要有立场的)

    未来的战争是否会模拟地球环境来进行适应各种环境,就像英雄联盟的召唤师峡谷,而如果有足够的计算机与开发人员完全可以制造这样一个环境用作军事. 谷歌地图可以实时更新,而运用虚拟技术可以来做很多模式真实显示 ...

  2. 计算机软件硬件的会计处理,重庆会计从业考试《会计电算化》第二章第四节计算机软件...

    2014年重庆会计从业资格考试备考工作已经开始,中华会计网校为了帮助参加2014年重庆会计从业资格考试的学员巩固知识,提高备考效果,整理了会计从业资格考试复习资料供大家参考,希望对广大考生有所帮助,祝 ...

  3. 《软硬件接口》课程大纲

    <软硬件接口>课程大纲 Coursera课程 The Hardware/Software Interface是华盛顿大学提供的一门课程,其中汇编语言.进程结构.Java实现等章节内容我认为 ...

  4. 计算机组成与设计--软硬件接口 RISC-V版 读书笔记 0

    由于我从网上弄到的是英文版,所以打算硬啃,也当锻炼自己的英文能力了,如果我关于书的理解有什么错误,各位路过的读者欢迎指出 Preface 序言 About this book 关于本书 We beli ...

  5. 《计算机组成与设计:硬件、软件接口》阅读笔记

    分享一些初次阅读时的记录,本文原是导图,我直接粘在了这 可读性一般,需要导图的朋友可以私,希望可以帮到大家快速搭起这本书的知识结构. 计算机组成与设计:硬件.软件接口####计算机概要与技术**引言* ...

  6. 保持计算机软件和硬件在预算之内的程序员指南

    自由和开放源代码的软件,技能和过时的设备只能带您走远. 在某个时候,每个精疲力尽的程序员都将不得不花一些钱购买必要的计算机软件和硬件. 但是,为满足编程和开发需求而购买合适的工具并不等同于花钱买昂贵的 ...

  7. 微信小程序三元预算_保持计算机软件和硬件在预算之内的程序员指南

    微信小程序三元预算 免费和开源软件,技能和过时的设备只能带您走远. 在某个时候,每个值得花钱的程序员都必须花一些钱来购买必要的计算机软件和硬件. 但是,为满足编程和开发需求而购买合适的工具并不等于花钱 ...

  8. 单片机软件模拟SPI接口—加深理解SPI总线协议

    单片机软件模拟SPI接口-加深理解SPI总线协议   SPI(Serial Peripheral Interfacer 串行外设接口)是摩托罗拉公司推出的一种同步串行通讯接口,用于微处理器臌控制器和外 ...

  9. 3.PMAC硬件-组成和接口及安装

    拿到一块PMAC卡,首先我们要看一下他的硬件组成(DSP)和提供的各种接口(I/O.串口等),然后就开始做准备工作(设置跳线),最后是安装(插槽PCI和转接板). 硬件组成和接口 PMAC是基于Mot ...

最新文章

  1. mvc中的ViewData用到webfrom中去
  2. MLCC噪声啸叫及对策
  3. dailykt爬取tushare 数据存入本地mysql
  4. RabbitMQ direct交换机
  5. 【请收藏】自动化构建部署之Travis CI使用(GitHub/Travis CI/Vue)
  6. established 太多_ss -s closed过多,NON_ESTABLISHED告警
  7. 今日恐慌与贪婪指数为77 贪婪程度有所上升
  8. git修改本地和远程仓库名称的解决方法
  9. 如何使用 Firefox 阻止指纹识别的侵扰?
  10. 深度学习模型在训练集上很好而在测试集表现得不好而拟合次数并不多_机器学习中的过拟合,欠拟合和偏倚方差折衷...
  11. Windows2008|2003超出最大连接数
  12. 《Elementary Methods in Number Theory》勘误
  13. MPU6050六轴传感器的原理及编程说明
  14. 谷歌地球大陆版如何下载和使用,查看谷歌历史影像3D建筑街景等
  15. python鸭子类型_Python 语言中的 “鸭子类型”
  16. 剖析常见的患上胆囊息肉的症状
  17. 第2章 Python 分支结构
  18. Android中身份证正反面、营业执照横竖版的拍摄和裁剪
  19. Linux九阴真经之九阴白骨爪残卷14(备份和恢复)
  20. 2.文本预处理(分词,命名实体识别和词性标注,one-hot,word2vec,word embedding,文本数据分析,文本特征处理,文本数据增强)

热门文章

  1. 厘米到像素的转换公式
  2. .ren+网络热词,巧妙搭配出无限可能!
  3. 【知识整理】聊聊web app开发的那些事
  4. Bjarne Stroustrup 语录1
  5. C++是如何从代码到游戏的?
  6. Java流程控制——用户交互Scanner
  7. 使用领英助理解决领英搜索限制继续精准搜索人脉(客户)的方法
  8. 高效偏振无关透射光栅的分析与设计
  9. [渝粤教育] 西南科技大学 供应链管理 在线考试复习资料
  10. 创建销毁对象(第八条:杜绝使用FINALIZERS和CLEANERS)