全部博文(236)
分类: Python/Ruby
2022-02-08 11:03:34
py 的程序是按照顺序
#什么是python3 sudo whatis python3 #如果不能解释 sudo unminimize # 更新时间比较长,更新结束后再 sudo whatis python3
帮助告诉我们
#python3在哪里? whereis python3 #可执行的这个东西到底在哪? which python3
python3.8 就在硬盘里存着
位置就在/usr/bin/python3.8
#把python3拷贝到当前用户文件夹~ cp /usr/bin/python3 ~ #确认python3已经到用户文件夹 ls ~/python3 #查看python3文件细节 ls -lah ~/python3
python3 指向的 python3.8 只有 5.3M
#运行用户文件夹下的这个刚考过来的python3 ~/python3
#用vi打开这个刚拷贝过来的python3 vi ~/python3
:%!xxd我们可以看到这个文件的二进制形态
man xxd
#把python3对应的汇编指令输出 objdump -d ~/python3 > ~/python3.asm #分窗口分别打开打开python3 和 python3.asm vi -o python3 python3.asm
下图中上半部分是机器代码
下半部分是得到的相应汇编指令
不同架构的 cpu 就会有不同的指令集
如果不移植的话
这里会有不同的 section 模块
比如 48 83 ec 08 对应 sub $0x8,%rsp
Python3 执行的过程大致是这样
通过表达式组成语句
简化版的 Python3 的执行过程是:
系统执行 python3 这个可执行文件
给了 python3 一个参数 hello.py
全解释完成后
这些都是基于解释器python3.8的
不同架构的 cpu 都可以运行 python
不同系统的环境都可以运行 python
因为 /usr/bin/python3.8 本身是二进制文件
python3.8 构建了一个运行时环境
python3 的程序是一个 5.3M 的可执行文件
我们可以把指令对应的汇编找到
汇编语句是和当前机器架构的指令集相关的
我们执行的过程其实就