最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

[oeasy]python0021_python虛擬機的位置_可執(zhí)行文件_轉(zhuǎn)化為字節(jié)形態(tài)

2022-11-27 21:12 作者:oeasy  | 我要投稿

程序本質(zhì)

回憶上次內(nèi)容

  • \n 就是換行

    • 他對應(yīng)著 ascii 字符的代碼是(10)10進(jìn)制

    • 他的英文是 LF,意思是Line Feed

  • 我們可以在《安徒生童話》中找到每個字符對應(yīng)的字節(jié)形態(tài)

  • 不光txt文件是文件

  • 我們的python游樂場本質(zhì)上也是一個二進(jìn)制可執(zhí)行的文件

  • 這個文件在哪?

  • 我們可以讀懂這個可執(zhí)行文件嗎???

python3 到底是個啥?

which python3

ll /usr/bin/python3

  • 這個 python3

    • 是一個符號鏈接文件

    • 只有9字節(jié)

    • 他指向 python3.8

  • python3.8

    • 也在 /usr/bin 里面

  • 就是/usr/bin/python3.8

  • python3.8

    • 是一個5.3M的文件

    • 可以看得見

  • 可以直接運行這個phthon3.8嗎?

直接運行

/usr/bin/python3.8

  • python3.8 就在硬盤里呆著

    • usr 是 unix software resource

    • bin 是二進(jìn)制 binary

    • python3.8 是這個文件的名稱

    • 位置就在/usr/bin/python3.8

  • 在運行命令的時候

    • 把這個文件從硬盤裝載到內(nèi)存

    • 然后用 cpu 開始逐行執(zhí)行文件中的0101指令

  • 可以把他復(fù)制到shiyanlou用戶的宿主文件夾下嗎?

復(fù)制

  • 復(fù)制到shiyanlou用戶文件夾下

    • 再觀察

#把/usr/bin/python3這個py文件的解釋器拷貝到~(當(dāng)前用戶文件夾)

#cp的意思是copy

cp /usr/bin/python3 ~

#確認(rèn)python3已經(jīng)拷到~(當(dāng)前用戶文件夾)

#ls的意思是list

ls ~/python3.8

#查看python3文件細(xì)節(jié)

ls -lah ~/python3.8

  • python3 指向的 python3.8 只有 5.3M

    • 這個可執(zhí)行文件怎么這么?。?/p>

    • 5.3M 這也就是一張照片的大小

  • 以前的 Python3.5 只有 4.3M

    • 更小

  • 目前這 5.3M 的 Python3 里面到底有什么呢???

研究 python3

#用vi打開這個剛拷貝過來的python3vi ~/python3.8

  • 這個樣子看起來

    • 全是亂碼

    • 完全看不懂啊

  • 這個東西我們確實看不懂

以字節(jié)形式觀察python3.8

vi ~/python3.8

  • 用vim打開~/python3.8

  • :

    • 進(jìn)入命令行模式

  • :%!xxd我們可以看到這個文件的二進(jìn)制形態(tài)

    • %是指的對于所有行的范圍

    • !是執(zhí)行外部命令

    • xxd指的是轉(zhuǎn)化為 16 進(jìn)制形式

  • 什么是xxd命令呢?

xxd

  • xxd 可以查看文件的二進(jìn)制形態(tài)

    • dump的本意是(傾倒垃圾)

    • 這里指的是轉(zhuǎn)儲

    • 把文件轉(zhuǎn)儲為16進(jìn)制形式匯編代碼形式

  • :xxd –r 可以還原回去 ??

    • :%!xxd 轉(zhuǎn)成字節(jié)形態(tài)

    • :%!xxd –r 轉(zhuǎn)回文本形態(tài)

  • 反復(fù)橫跳...

另存為python3.8hex

  • 一行是(16)10 進(jìn)制 ?個字節(jié)

    • G到最后一行

    • 總共有 343148 行

  • 這就是 真正的機器語言??

    • cpu能執(zhí)行的東西

    • 真真切切看到了的

    • 真的存在硬盤上 01010 的二進(jìn)制可執(zhí)行指令??!

    • 這些指令執(zhí)行出來就是我們的游樂場!?。?/p>

    • 或者說是我們的python虛擬機

  • 可是這個指令我們看不懂怎么辦???

  • 先把他另存出來

    • :w python3.8hex

    • 把當(dāng)前緩存(buffer)另存(write)為

    • python3.8hex

  • 對python3.8強制退出

    • :q!

    • 不保存修改強制退出

  • python3.8hex就是我們要的機器語言的字節(jié)形態(tài)

    • 可是這字節(jié)形態(tài)我們還是看不懂啊

總結(jié)

  • python3 的程序是一個 5.3M 的可執(zhí)行文件

    • 我們通過which命令找到這個python3.8的位置

    • 將這個python3.8復(fù)制到shiyanlou的用戶目錄下

    • 這個文件還是能夠執(zhí)行的

  • 將這個文件轉(zhuǎn)化為字節(jié)形態(tài)

    • 確實可以轉(zhuǎn)化

    • 但是這個文件我們看不懂啊?。。??

  • 怎么才能看懂這些東西呢???

  • 我們下次再說!??

  • 藍(lán)橋->https://www.lanqiao.cn/teacher/3584

  • github->https://github.com/overmind1980/oeasy-python-tutorial

  • gitee->https://gitee.com/overmind1980/oeasypython

  • 視頻->https://www.bilibili.com/video/BV1CU4y1Z7gQ 作者:oeasy


[oeasy]python0021_python虛擬機的位置_可執(zhí)行文件_轉(zhuǎn)化為字節(jié)形態(tài)的評論 (共 條)

分享到微博請遵守國家法律
安吉县| 永仁县| 武川县| 乡宁县| 花垣县| 双桥区| 德州市| 凉城县| 平谷区| 合阳县| 溆浦县| 永吉县| 岚皋县| 恩平市| 阿拉善盟| 麻江县| 封丘县| 承德市| 成都市| 明光市| 长白| 宁陵县| 新疆| 定陶县| 邢台县| 新野县| 新化县| 蒙山县| 九龙城区| 武平县| 金秀| 江山市| 黑水县| 东城区| 肇源县| 湖南省| 巴塘县| 湟源县| 棋牌| 乌拉特中旗| 延长县|