「原创声明:保留所有权利,禁止转载」
个人理解的软件底层包含哪些内容
我个人会把硬件之上,应用之下的软件部分认为是软件底层。
那么底层包括哪些部分呢?
- 指令集:封装芯片的具体操作实现
- 操作系统:封装系统调用,驱动等提供软件需要处理的资源并协调调度。
- 编译器:将软件转化成可以被操作系统识别并运行的指令或调用,并对代码进行优化,优化性能。
- 各种封装库:github 上的大部分工具库,提供网络、文件等基础软件服务和操作系统的交互。
指令集
目前最火的指令集是 RISC-V,只要和硬件有点关系的大厂都在关注。如国内的玄铁 910。
当然还有 ARM 架构的也不会少。
操作系统
工业默认是 Linux 吧,在 linux 之上封装的厂商可能也不少。
这个没有国家资本扶持很难。华为也在自己做,国内华为可能是最强的。
编译器
目前由于芯片比较火,同时芯片设计自己的 DSL(domain specific language) 是最快的方式。
还是美国卡脖子的缘故,相比于操作系统,近两年需求大增。
封装库
不管 python/java/c++ 都有大量的开源封装库,只能说用的越多,知道的越多。当然底层还是以 linux x86 系统为主。
如果库用到嵌入式(Arm 架构),开源的代码如果有自己的底层指令优化,极大的概率是需要修改源码的。
操作系统和编译器一个级别的难度,都是系统级的软件工程。
操作系统在我读大学的时候看过什么 linux 源码解读,就压根看不下去。😓
TesterHome 为用户提供「保留所有权利,禁止转载」的选项。
除非获得原作者的单独授权,任何第三方不得转载标注了「原创声明:保留所有权利,禁止转载」的内容,否则均视为侵权。
具体请参见TesterHome 知识产权保护协议。