汇编语言
汇编语言对应cpu指令集(二进制机械码),兼容性不好,不能跨平台,arm的汇编和x86汇编差别很大
处理器指令集:https://cloud.tencent.com/developer/article/1671396
- 并发,当有多个线程在操作时,如果系统只有一个CPU,则它根本不可能真正同时进行一个以上的线程,它只能把CPU运行时间划分成若干个时间段,再将时间 段分配给各个线程执行,在一个时间段的线程代码运行时,其它线程处于挂起状。.这种方式我们称之为并发(Concurrent)
- 并行,当系统有一个以上CPU时,则线程的操作有可能非并发。当一个CPU执行一个线程时,另一个CPU可以执行另一个线程,两个线程互不抢占CPU资源,可以同时进行,这种方式我们称之为并行(Parallel)
多核cpu和多cpu:https://www.zhihu.com/question/271821176
汇编中没有线程概念,进程是操作系统为了实现并发组织的集合结构
编译器
编译目标:X86(gcc)、arm(arm-linux-gcc编译)等处理器架构
汇编直译的代码可以可以绕过内核(写入内核的汇编代码),没有系统函数之间的层级调用(汇编没有c语言那样的头文件定义) https://www.zhihu.com/question/43575404?sort=created
- crt是c语言用户层系统封装,c依赖头文件
- 内核头文件代码定义硬件地址等信息
编译原理
- 词法分析
- 语法分析,生成AST
coff/elf文件
cof(编译obj),Common Object File Format
–>扩展cof文件,结构和elf、pe基本相同
elf(linux),Executable And Linkable
pe(windows),Portable Executable