计算机基础知识

操作系统作用

  • 对软硬件进行统一的管理
  • 为APP开发者提供应用接口

从下图可以看到,操作系统位于应用软件与硬件层之间,操作系统屏蔽了软件应用层的差异,比如我使用的硬件改变了,这只需要更改驱动层的函数实现,并不需要去更改应用层的软件,这是操作系统提供应用接口的实例。

image-20240303130537209

计算机的组成

  • 输入设备
  • 输出设备
  • 外存(硬盘之类的非易失性存储器)
  • 内存(程序运行的缓存)
  • 中央处理器CPU(由运算器以及控制器组成)

这是传统的计算机结构,嵌入式设备中我想到了XIP,即程序可以在非易失性存储器直接运行,而不需要加载到ram上,但对于安全性是一个考量

image-20240303131036061

编程语言的发展

计算机语言由原来的二进制到汇编,再到高级语言,我们现在学的高级语言,都是站在巨人的肩膀上更上一层楼,没必要打破砂锅问到底,毕竟历经了几十年的发展,学不完的,做一个了解即可,术业有专攻

  • 机器语言是最早的计算机语言, 所谓的程序就是控制cpu按照指定指令运行的代码,由于太难记了,产生了助记符,即汇编。
  • 汇编语言相较与机器语言好记很多,但是还是不太符合人类的思想,以及对于不同设备之间的可移植性太差了。
  • 高级语言符合人类的编程思维,并且提高了可移植性,我们应该感谢前人的辛苦耕耘,让我们降低触碰计算机的门槛。

image-20240303133629419

  • 代码是编译出来的,编译出最终得到的是机器码,0101这样的,X86和arm的区别在于指令不同,我写一段代码,需要不同的编译器去编译,得到对应处理器能够理解的指令。
  • 如果用x86编译器 编译出的文件放ARM上跑, ARM: who are you ?

image-20240303134229415

的确越底层是越难,我们的工作都是基于某个语言去实现某个功能,

image-20240303134701922

推荐一个学习汇编的平台: 能够选择不同编译工具链生成特定汇编编码,支持ARM,x86以及RISC-V 如下图

https://godbolt.org/

image-20240303142119968

如果觉得我的文章对你有用,请随意赞赏