硬件和软件

来源:互联网 发布:绩效考核软件 编辑:程序博客网 时间:2024/05/16 10:20


最近在写shell脚本,晚上在回家的路上,突然想起该怎么把linux和硬件联系到一起呢?请看几个对话

R师傅:

其实对我码农来讲,唯一可以看到的硬件连接就是USB了,因为键盘是码农写软件和Linux系统交互的平台,几乎也是唯一通道,原来硬件工程师就是做键盘值识别的啊?

Y师傅:

你没有拆过电脑吧?你的电脑上电是一个非常复杂的过程,说了你也不懂。最简单的,开机后一段时间,你的屏幕亮了,有声音了,Linux系统也进来了,这里面有无数的管脚配置,信号传递。。。

你们软件不懂I/O的控制、信号和协议?那它怎么实现功能呢?

R师傅?

比如一个shell的echo显示,我关心的是:输入是什么,输出又是什么,这里面可能有字符串命令匹配,循环,计算等等,还真没有关注过怎么输入,怎么输出。

那么电脑上很多软件和游戏,可以做很多事情,其实都是调用一套硬件设施,显示?触摸屏?声音?键盘交互?鼠标交互?你们硬件功能好像很单一

Y师傅:

嗯,那就对了,底层直接控制IO口,我说怎么老有Linux移植这一说,因为我们打造更加简单便宜的电脑。

例如,手机跑很多程序的时候,通过home键来回切换,其实是内存分配,cpu分配,硬件交互所有权分配的过程

点击屏幕时候,对于硬件来说输出就是坐标,但是同一个坐标值进入到不同 的程序代码里面去,结果就是不同的。

这是因为键值通过cpu传递给了不同的app接口,软件做的好复杂啊,不过功能再复杂,对我来说输出还是一堆number,只是显示出来的图像,客户会理解。

截屏功能,两个键一起按下,我就告诉软件一个信号,然后它把当时的显示设置保存,其实就是图片。

网线,无线,其实都是获取一串高低电平信号,信号来了软件处理完,才去驱动的硬件。以前一直觉得软件很虚难以看透,现在看应该是实现不同的展示,那么cpu频率足够高,内存足够大,软件岂不是无敌了?

R师傅:

对啊!

Y师傅:

哈哈,硬件速度是不断发展的,但是短期也是有限的!

0 0
原创粉丝点击