您现在的位置是:Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款 >
05 ss訂閱鏈接轉換(請教一下,什么叫電子書)
Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款2024-07-10 17:11:25【】3人已围观
简介er0xffffe407:nop0xffffe408:nop0xffffe409:nop0xffffe40a:nop0xffffe40b:nop0xffffe40c:nop0xffffe40d:nop
0xffffe407: nop
0xffffe408: nop
0xffffe409: nop
0xffffe40a: nop
0xffffe40b: nop
0xffffe40c: nop
0xffffe40d: nop
0xffffe40e: jmp 0xffffe403
0xffffe410: pop %ebp
0xffffe411: pop %edx
0xffffe412: pop %ecx
0xffffe413: ret
End of assembler mp.
這段代碼正是arch/i386/kernel/vsyscall- sysenter.S文件中的代碼。其中,在sysenter之前的是入口代碼,在0xffffe410開始的是內核返回處理代碼(后面提到的 SYSENTER_RETURN即指向這里)。在入口代碼中,首先是保存當前的ecx,edx(由于sysexit指令需要使用這兩個寄存器)以及 ebp。然后調用sysenter指令,跳轉到內核Ring 0代碼,也就是sysenter_entry入口處。
內核中的處理和返回
sysenter_entry整個的實現可以參見arch/i386/kernel/entry.S。內核處理SYSENTER的代碼和處理INT的代碼不太一樣。通過sysenter指令進入Ring 0之后,由于當前的ESP并非指向正確的內核棧,而是當前CPU的TSS結構中的一個緩沖區(參見上文),所以首先要解決的是修復ESP,幸運的是,TSS結構中ESP0成員本身就保存有Ring 0狀態的ESP值,所以在這里將TSS結構中ESP0的值賦予ESP寄存器。將ESP恢復成指向正確的堆棧之后,由于SYSENTER不是通過調用門進入Ring 0,所以在堆棧中的上下文和使用INT指令的不一樣,INT指令進入Ring 0后棧中會保存如下的值。
低地址
返回用戶態的EIP
用戶態的CS
用戶態的EFLAGS
用戶態的ESP
用戶態的SS(和DS相同)
高地址
因此,為了簡化和重用代碼,內核會用pushl指令往棧中放入上述各值,值得注意的是,內核在棧中放入的相對應用戶態EIP的值,是一個代碼標簽 SYSENTER_RETURN,在vsyscall-sysenter.S可以看到,它就在sysenter指令的后面(在它們之間,有一段NOP,是內核返回出錯時的處理代碼)。接下來,處理系統調用的代碼就和中斷方式的處理代碼一模一樣了,內核保存所有的寄存器,然后系統調用表找到對應系統調用的入口,完成調用。最后,內核從棧中取出前面存入的用戶態的EIP和ESP,存入edx和ecx寄存器,調用SYSEXIT指令返回用戶態。返回用戶態之后,從棧中取出ESP,edx,ecx,最終返回glibc庫。
其它操作系統以及其它硬件平臺的支持
值得一提的是,從 Windows XP 開始,Windows 的系統調用方式也從軟中斷 int 0x2e 轉換到采用 sysenter 方式,由于完全不再支持 int 方式,因此 Windows XP 的對 CPU 的最低配置要求是 PentiumII 300MHz。在其它的操作系統例如 *BSD 系列,目前并沒有提供對 sysenter 指令的支持。
在 CPU 方面,AMD 的 CPU 支持一套與之對應的指令 SYSCALL/SYSRET。在純 32 位的 AMD CPU 上,還沒有支持 sysenter 指令,而在 AMD 推出的 AMD64 系列 CPU 上,處于某些模式的情況下,CPU 能夠支持 sysenter/sysexit 指令。在 Linux 內核針對 AMD64 架構的代碼中,采用的還是 SYSCALL/SYSRET 指令。至于這兩種指令最終誰將成為標準,目前還無法得出結論。
未來
我們將 Intel 的 sysenter/sysexit 指令,AMD 的 SYSCALL/SYSRET 指令統稱為"快速系統調用指令"。"快速系統調用指令"比起中斷指令來說,其消耗時間必然會少一些,但是隨著 CPU 設計的發展,將來應該不會再出現類似 Intel Pentium4 這樣懸殊的差距。而"快速系統調用指令"比起中斷方式的系統調用方式,還存在一定局限,例如無法在一個系統調用處理過程中再通過"快速系統調用指令"調用別的系統調用。因此,并不一定每個系統調用都需要通過"快速系統調用指令"來實現。比如,對于復雜的系統調用例如 fork,兩種系統調用方式的時間差和系統調用本身運行消耗的時間來比,可以忽略不計,此處采取"快速系統調用指令"方式沒有什么必要。而真正應該使用" 快速系統調用指令"方式的,是那些本身運行時間很短,對時間精確性要求高的系統調用,例如 getuid、gettimeofday 等等。因此,采取靈活的手段,針對不同的系統調用采取不同的方式,才能得到最優化的性能和實現最完美的功能。
[1] VxWorks Optimized for Intel Architecture, Hdei Nunoe, Wind River, Member of Technical Staff Leo Samson, Wind River, Technical Marketing Engineer David Hillyard, Intel Corporation, Mgr., Platform Architect
[2] Kernel Entry / Kernel Exit , Marcus Voelp & University Karlsruhe
[3] Dave Jones' blog, 買粉絲://diary.買粉絲demonkey.org.uk/index.php?month=12&year=2002
[4] Linux 內核源碼 v2.6.0 買粉絲://買粉絲.kernel.org/ [Linus Torvalds,2004]
[5] GNU C Library glibc 2.3.3 源碼 買粉絲://買粉絲.gnu.org/software/libc/libc.買粉絲
Linux Kernel Mailing List 中對系統調用方式的討論: [5] Linux Kernel Mailing List, "Intel P6 vs P7 system call performance" 買粉絲://買粉絲.ussg.iu.e/hypermail/linux/kernel/0212.1/index.買粉絲#1286 買粉絲://買粉絲.ussg.iu.e/hypermail/linux/kernel/0212.3/index.買粉絲#54
Linux 內核首次引入對 sysenter/sysexit 指令的支持: [6] Linux Kernel Mailing List, "Add "sysenter" support on x86, and a "vsyscall" page." 買粉絲://lwn.買粉絲/Articles/18414/
如何進入大數據領域,學習路線是什么?
分享大數據學習路線:
第一階段為JAVASE+MYSQL+JDBC
主要學習一些Java語言的概念,如字符、流程控制、面向對象、進程線程、枚舉反射等,學習MySQL數據庫的安裝卸載及相關操作,學習JDBC的實現原理以及Linux基礎知識,是大數據剛入門階段。
第二階段為分布式理論簡介主要講解CAP理論、數據分布方式、一致性、2PC和3PC、大數據集成架構。涉及的知識點有Consistency一致性、Availability可用性、Partition tolerance分區容忍性、數據量分布、2PC流程、3PC流程、哈希方式、一致性哈希等。
第三階段為數據存儲與計算(離線場景)主要講解協調服務ZK(1T)、數據存儲hdfs(2T)、數據存儲alluxio(1T)、數據采集flume、數據采集logstash、數據同步Sqoop(0.5T)、數據同步datax(0.5T)、數據同步mysql-binlog(1T)、計算模型MR與DAG(1T)、hive(5T)、Impala(1T)、任務調度Azkaban、任務調度airflow等。
第四部分為數倉建設主要講解數倉倉庫的歷史背景、離線數倉項目-伴我汽車(5T)架構技術解析、多維數據模型處理kylin(3.5T)部署安裝、離線數倉項目-伴我汽車升級后加入kylin進行多維分析等;
第五階段為分布式計算引擎主要講解計算引擎、scala語言、spark、數據存儲hbase、redis、ku,并通過某p2p平臺項目實現spark多數據源讀寫。
第六階段為數據存儲與計算(實時場景)主要講解數據通道Kafka、實時數倉druid、流式數據處理flink、SparkStreaming,并通過講解某交通大數讓你可以將知識點融會貫通。
第七階段為數據搜索主要講解elasticsearch,包括全文搜索技術、ES安裝操作、index、創建索引、增刪改查、索引、映射、過濾等。
第八階段為數據治理主要講解數據標準、數據分類、數據建模、圖存儲與查詢、元數據、血緣與數據質量、Hive Hook、Spark Listener等。
第九階段為BI系統主要講解Superset、Graphna兩大技術,包括基本簡介、安裝、數據源創建、表操作以及數據探索分析。
第十階段為數據挖掘主要講解機器學習中的數學體系、Spark Mlib機器學習算法庫、Python scikit-learn機器學習算法庫、機器學習結合大數據項目。
對大數據分析有興趣的小伙伴們,不妨先從看看大數據分析書籍開始入門!B站上有很多的大數據教學視頻,從基礎到高級的都有,還挺不錯的,知識點講的很細致,還有完整版的學習路線圖。也可以自己去看看,下載學習試試。很赞哦!(586)
相关文章
- 石油油管螺紋標準圖(錐管螺紋密封能承受最大的壓力是多少?)
- 02 youtube 買粉絲 mp3 320kbps download(Marie.Digby.-.[Unfold].專輯 給個地址,最好無損,其次ogg,最次MP3 320k)
- 直接看youtube的瀏覽器免費(開啟代理后,360以及其他瀏覽器都能訪問YouT.只有谷歌瀏覽不行?)
- 02 youtube to mp3 online 買粉絲nverter 320 kbps mp3 downloader juice 買粉絲(320KBpsMP3格式的音樂)
- 02 youtube to mp3 get mp3 pro(誰能幫我找一下JAY-Z 的22TWO'S的歌詞)
- 眼睛油管堵塞太干澀怎么辦(數控銑油管堵塞怎么辦?)
- 02 youtube 買粉絲 download app apk(手機文件哪些可以刪)
- 02 youtube to mp3 mac download(Minitube for Mac(Youtube客戶端) 特別版)
- 破碎錘油管接頭是多大的(挖機拆破碎錘怎樣拆油管(詳細教程))
- 02 youtube to mp3 software download 買粉絲(P2P是什么意思??)
热门文章
站长推荐
02 youtube 買粉絲 mp3 320kbps download(RMVB是什么)
02 youtube to mp3 online 買粉絲 download(小學英語語法歸納及語音訓練要視頻下載的誰有?)
02 youtube to mp3 player 買粉絲nverter 買粉絲 software apps for pc(為什么優酷網上的視頻不能下載呢?)
石油套管長度標準(在石油套管中,長度R2,或R3那些具體指什么呢,能麻煩詳細解釋一下嗎,謝啦······)
02 youtube to mp3 online 買粉絲 download manager沒速度(mac系統下如何用迅雷)
02 youtube 買粉絲 library github(GCN圖卷積網絡入門詳解)
電腦注冊tiktok賬號(tiktok怎樣注冊)
02 youtube to mp3 買粉絲 software是什么東西做(P2P是什么意?)