# 信息就是位+上下文 # > 源代码就是由0,1 著称的位序列(8 个比特称之为字节) > 程序的编码都是ASCII 标准表示文本字符 > 可以理解英语和汉字等各种语言组成的文件叫做文本文件,所有其他的文件称之为二进制文件。 # 程序被编辑成二进制文件的顺序 # *源程序文本(文本)->修改了后的源程序文本(文本)->汇编程序(文本)->可重定向目标程序(二进制)->可执行文件(二进制)* >预处理器->编译器->汇编器->链接器 c语言的编译是这样的,包括大多数编译型语言也是这样的。 # shell # 启用这个会有着一个单独的shell进程,当你在shell进程里面输入命令时的执行顺序是: >检测是否是保存的命令->是则运行储存命令有的效果->不是则运行目录导引的可执行文件,没有可执行文件则报错。 shell和linux天然能够直接运行二进制文件。 输入命令后先将程序运行写在寄存器上然后才是内存中 # 内存和高速缓存 # >程序运行时会将先加载在内存然后才是寄存器。 >运行开销 磁盘>主存>寄存器 各种储存硬件执行的速度比较: 寄存器>高速缓存1>高速缓存2>高速缓存3->内存->磁盘->网络储存。 每一种速度的区别极大,但相对的造价也是越来越高。 # 进程,线程,超线程# 电脑给每个人一种错觉,每次运行只会有着一个进程。 上下文切换:进程的控制权期间的过程就是上下文切换。 一个进程有着多个线程,线程比进程更加高效,而协程(go程序层面提出的概念)比进程高效。 超线程指得是线程的并发。 # 虚拟内存 # 虚拟内存是给进程的一种错觉,给了每一个进程都在独占主存的错觉,每个进程看到的虚拟内存都是一样的,叫做虚拟内存地址空间。 [scode type="yellow"]在许多语言中将范围内常用数字都设置了固定的虚拟地址空间地址[/scode] ps:每一个变量都会随机分配新的虚拟内存地址。 Loading... # 信息就是位+上下文 # > 源代码就是由0,1 著称的位序列(8 个比特称之为字节) > 程序的编码都是ASCII 标准表示文本字符 > 可以理解英语和汉字等各种语言组成的文件叫做文本文件,所有其他的文件称之为二进制文件。 # 程序被编辑成二进制文件的顺序 # *源程序文本(文本)->修改了后的源程序文本(文本)->汇编程序(文本)->可重定向目标程序(二进制)->可执行文件(二进制)* >预处理器->编译器->汇编器->链接器 c语言的编译是这样的,包括大多数编译型语言也是这样的。 # shell # 启用这个会有着一个单独的shell进程,当你在shell进程里面输入命令时的执行顺序是: >检测是否是保存的命令->是则运行储存命令有的效果->不是则运行目录导引的可执行文件,没有可执行文件则报错。 shell和linux天然能够直接运行二进制文件。 输入命令后先将程序运行写在寄存器上然后才是内存中 # 内存和高速缓存 # >程序运行时会将先加载在内存然后才是寄存器。 >运行开销 磁盘>主存>寄存器 各种储存硬件执行的速度比较: 寄存器>高速缓存1>高速缓存2>高速缓存3->内存->磁盘->网络储存。 每一种速度的区别极大,但相对的造价也是越来越高。 # 进程,线程,超线程# 电脑给每个人一种错觉,每次运行只会有着一个进程。 上下文切换:进程的控制权期间的过程就是上下文切换。 一个进程有着多个线程,线程比进程更加高效,而协程(go程序层面提出的概念)比进程高效。 超线程指得是线程的并发。 # 虚拟内存 # 虚拟内存是给进程的一种错觉,给了每一个进程都在独占主存的错觉,每个进程看到的虚拟内存都是一样的,叫做虚拟内存地址空间。 <div class="tip inlineBlock warning"> 在许多语言中将范围内常用数字都设置了固定的虚拟地址空间地址 </div> ps:每一个变量都会随机分配新的虚拟内存地址。 最后修改:2021 年 09 月 14 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果觉得我的文章对你有用,请随意赞赏