如果兩種液體彼此互溶的程度很小,可以忽略不計,則可近似地看作這兩種液體形成了不互溶的雙液系。在這種系統(tǒng)中,只要同時存在兩種液體,那么系統(tǒng)的蒸汽壓高于任一純組分的蒸汽壓,系統(tǒng)的沸點低于任一純組分的沸點,而與其組分的比例無關(guān)。如水和溴苯形成的系統(tǒng)。這類體系的一個重要應(yīng)用便是水蒸氣蒸餾。如通過硝基苯的還原制備苯胺時,用水蒸氣蒸餾法蒸出苯胺,再如在肉桂酸制備的實驗中,通過水蒸氣蒸餾來除去未反應(yīng)完的苯甲醛。
這種體系按照會溶溫度(即部分互溶變?yōu)榛ト艿臏囟龋┑牟煌梢苑譃橐韵滤念悾?/p>
1.具有最高會溶溫度。這一類系統(tǒng)的溶解度的圖中,單雙相分界線呈“∩”型,線上是單相,線下是兩相。水和苯胺便屬于此類。
2.具有最低會溶溫度。這一類系統(tǒng)的溶解度的圖中,單雙相分界線呈“U”型,線上是兩相,線下是單相。水和三乙胺屬于此類。
3.同時具有最高和最低會溶溫度。這一類系統(tǒng)的溶解度的圖中,單雙相分界線呈“O”型封閉,圈內(nèi)是兩相,圈外是單相。水和煙堿屬于此類。
4.沒有會溶溫度。對于這類系統(tǒng),在液體存在的范圍內(nèi),無論按何種比例混合,它們總是彼此部分互溶。如乙醚和水等。
會溶溫度反應(yīng)了液體之間相互溶解的能力,會溶溫度越高,互溶性越差,反之越好。利用這個性質(zhì)可以選擇萃取劑。
兩個純液體可按任意比例互溶,每個組分都服從拉烏爾定律,這樣組成了理想的完全互溶雙液系,或稱為理想的液體混合物。通常,兩種結(jié)構(gòu)相似或極性相似的化合物可以按任意比例混合,并形成接近理想的液態(tài)混合物,如苯和甲苯、水和重水等。
但實際上,非理想液態(tài)混合物更為常見。對于非理想液態(tài)混合物,它們的行為與Raoult定律存在一定的偏差。
對于正偏差很大的系統(tǒng),存在最低恒沸點。屬于這類系統(tǒng)的有:水和乙醇、甲醇和苯、乙醇和苯等。
對于負(fù)偏差很大的系統(tǒng),存在最高恒沸點。屬于這類系統(tǒng)的有:水和硝酸、氯化氫和二甲醚、水和氯化氫等。
相溶,但不是太大,20攝氏度時正丁醇在水中的溶解度是7.7%,水在正丁醇中的溶解度是20.1%。
我的高達(dá)模型上色用的油性漆,我手上只有油性的光油,請問怎樣噴才能讓光油和漆不互溶
油漆干透之后再噴光油,多次薄噴。
軟件體系結(jié)構(gòu)是具有一定形式的結(jié)構(gòu)化元素,即構(gòu)件的集合,包括處理構(gòu)件、數(shù)據(jù)構(gòu)件和連接構(gòu)件。處理構(gòu)件負(fù)責(zé)對數(shù)據(jù)進行加工,數(shù)據(jù)構(gòu)件是被加工的信息,連接構(gòu)件把體系結(jié)構(gòu)的不同部分組組合連接起來。這一定義注重區(qū)分...
在這類系統(tǒng)中,三對液體之前按照部分互溶的情況,存在以下三種情況:
1.有一對液體部分互溶。如乙酸-三氯甲烷-水組成的系統(tǒng)中,乙酸可以和三氯甲烷或者水完全互溶,但三氯甲烷和水只能部分互溶。再如乙醇-苯-水組成的系統(tǒng)中,乙醇可以和苯或者水完全互溶,但苯和水之間只能部分互溶。
2.有兩對液體部分互溶。如乙烯腈-水-乙醇組成的系統(tǒng)中,水可以和乙醇完全互溶,但乙烯腈和水或者乙醇只能部分互溶。
3.有三對液體部分互溶。如乙烯腈-水-乙醚組成的系統(tǒng)中,任意一對液體均部分互溶。?
格式:pdf
大?。?span id="uq20uyu" class="single-tag-height">10KB
頁數(shù): 未知
評分: 4.6
橡膠瀝青作為目前研究應(yīng)用較為廣泛的環(huán)保型改性瀝青之一,具有提高瀝青混合料高溫穩(wěn)定性、低溫抗裂性、抗疲勞等多項路用性能。目前橡膠瀝青存在多種改性和生產(chǎn)工藝,不同改性工藝的橡膠改性瀝青性能差異較大。為此,文章通過電鏡分析、光譜分析等手段,對橡膠瀝青混溶體系的構(gòu)成與改性機理進行了系統(tǒng)研究,為提出合理改性工藝措施提供理論依據(jù)。
來源:MRRiddler ,
blog.mrriddler.com/2017/02/10/計算機體系-編譯體系漫游/
要想讓代碼乖乖運行,自然代碼要先經(jīng)過編譯,這篇文章就來聊聊編譯體系。
代碼的編譯過程分為四個階段,預(yù)處理、編譯、匯編、鏈接。而編譯階段是整個過程中最復(fù)雜的階段,編譯階段還可以分為詞法分析、語法分析、語義分析。
在一頭扎進這四個階段之間,先聊一下語法、語義。人類之所以能在進化的歷史長河中,成為動物中的佼佼者,進化出的復(fù)雜的溝通機制—語言功不可沒。假如,我說出這句話:你個產(chǎn)品狗還在改需求!那么語法是啥呢?簡單說就是構(gòu)成這句話的順序,假如順序錯亂意思就不同了。那么語義是啥呢?就是語境,根據(jù)我說這句話的情景,才能解釋出你指的是誰。語法在編程語言中,表現(xiàn)出來的就是語法結(jié)構(gòu)和結(jié)合律。語義表現(xiàn)出來的就是上下文(context)。
預(yù)處理(Preprocess):處理預(yù)處理符(#),包括宏展開、頭文件引入。 詞法分析(Lexical Analysis、Tokenizer):寫出的代碼實際上就是字符串,此階段需要對字符串進行掃描(Scanner),將字符串掃描出分析的最基本單位(token),并在掃描過程中將它們分類,此階段是沒有任何語義的。也可以理解成將代碼掃描出基本表達(dá)式。 語法分析(Syntactic analysis、Parser):生成AST抽象語法樹,檢查語法結(jié)構(gòu),此階段是上下文無關(guān)的。也可以理解成將基本表達(dá)式按語法結(jié)構(gòu)組合成復(fù)合表達(dá)式。 語義分析(Semantic Analysis):語義檢查(比如檢查浮點數(shù)乘以指針,雖然語法結(jié)構(gòu)正確但是語義檢查不合格),將程序與上下文結(jié)合,進行靜態(tài)類型分析,確定AST每個節(jié)點的類型。也可以理解將復(fù)合表達(dá)式結(jié)合環(huán)境(Environment),并且確定基本表達(dá)式、復(fù)合表達(dá)式的類型。 中間碼(Intermediate Representation):與語言無關(guān)、平臺無關(guān)的中間碼。如果編譯器面向多語言,對于任意語言編譯階段后可以生成通用的中間碼,這樣編譯器就有多語言的高拓展性了。生成中間碼后再交給匯編階段,再生成與平臺相關(guān)的匯編,這樣使編譯器將平臺相關(guān)性盡量往后推移。中間碼除了做為“橋接“,對中間碼的優(yōu)化也是整個編譯過程中的關(guān)鍵優(yōu)化。 匯編(Assemble):對中間碼生成平臺具體的匯編,在這個階段添加對多個平臺的支持,編譯器就可以跨平臺了。最后生成機器碼。 鏈接(Link):將每個機器碼編譯單位中引用的其他編譯單位中的變量、函數(shù)符號修正(fix)成真實地址。編譯歷史
編譯的歷史基本就是計算機的進化史,是很有趣的一段故事。Long time ago… 程序員寫程序都是用紙帶,那時候還在寫0、1機器碼。紙帶上打孔就是0,不打孔就是1。然后計算機讀取紙帶就是讀取指令。但是就像互聯(lián)網(wǎng)本質(zhì)就是提高效率一樣,這樣寫程序的效率怎能接受?并且,寫程序如果犯了錯誤怎么辦?重新從頭到尾再用新紙帶搞一遍?程序員們機智的開始想辦法了,先是這樣搞:
將指帶有誤的地方,用黑黑的小貼紙?zhí)钌先?,這樣將0改成1了。這也是Patch名字的由來。但是這樣寫指令效率還是太低,程序員們再機智的想辦法。后來將指令進行符號化(Symbol),抽象出指令集,這時就出現(xiàn)了匯編,程序員的效率上了一個檔次。但是新的問題又出現(xiàn)了。在寫過程調(diào)用的時候,要寫jmp 具體的函數(shù)地址。如果后來要在被調(diào)用的函數(shù)前面添加指令,那么函數(shù)地址也要跟著改。這樣牽一發(fā)動全身的感覺可不好,為了讓影響(impact)縮減到最小,不如將函數(shù)地址也符號化。凡是寫過程調(diào)用先寫成jmp func,等到程序生成機器碼的時候,再將func換成真正的函數(shù)地址,這一步也就是將程序員手動修正交由匯編器修正。
隨著生產(chǎn)力的提升,程序的規(guī)模越來越大,新的問題出現(xiàn)了,程序膨脹到難以維護和閱讀了。程序員們就將程序模塊化、層次化。這樣也使編譯的單位更小粒度化。編譯的時候,不同編譯單位之間的細(xì)節(jié)是互相隔離的。比如,對于C語言系,一個.h和一個.m就構(gòu)成了一個編譯單位。.m匯編時,是不知道其他.m的全局變量、函數(shù)地址的,而調(diào)用的時候就只能用符號進行調(diào)用,等到最后所有.m都生成機器碼后再進行統(tǒng)一的修正。而負(fù)責(zé)這一步的就是鏈接器(Linker),這一步也叫重定位(Relocation)。
目標(biāo)文件
經(jīng)過匯編這一階段后,就會生成目標(biāo)文件。目標(biāo)文件和可執(zhí)行文件已經(jīng)非常相近了,只是有些符號還未修正,結(jié)構(gòu)上會進行調(diào)整。Windows平臺下為PE(Portable Executable),Linux平臺下為ELF(Executable Linkable Format),Mac平臺下為Mach-O。雖然不同平臺都有自己的格式,但是它們實際上都大同小異。下面大體聊一下文件的實際字段,這些知識會為后面我們搞一些符號重綁定做鋪墊。
section
首先,文件分段(section)。不同的Section放置不同的信息,文件還有一個section header table放置控制信息。實際上,就類似圖片格式和mutipart的HTTP報文。以下是一個ELF目標(biāo)文件的常見section:
—— —— —— —— —— —— ——
|header | -----> 文件頭
|—— —— —— —— —— —— ——|
|.text | -----> 代碼段
|—— —— —— —— —— —— ——|
|.data | -----> 已初始化全局變量、靜態(tài)變量
|—— —— —— —— —— —— ——|
|.bss | -----> 未初始化全局變量、靜態(tài)變量
|—— —— —— —— —— —— ——|
|other sections... |
|—— —— —— —— —— —— ——|
|section header table| -----> section控制信息表
|—— —— —— —— —— —— ——|
|.strtab | -----> 字符串表
|—— —— —— —— —— —— ——|
|.symtab | -----> 符號表
|—— —— —— —— —— —— ——|
|..... |
—— —— —— —— —— —— —— —
.text放置代碼,.data放置已初始化的全局變量和靜態(tài)變量,.bss放置未初始化的全局變量和靜態(tài)變量。為什么代碼和全局變量、靜態(tài)變量要分開放?實際上,這就是個等同性問題。代碼段就是可讀的數(shù)據(jù),而全局變量、靜態(tài)變量是可讀可寫的數(shù)據(jù)。如果有多個進程進行同一份代碼,這些代碼都是等同的,不需要各自復(fù)制一份。而全局變量、靜態(tài)變量是不等同的,需要各自復(fù)制一份。而分什么又要分已初始化、未初始化呢?目標(biāo)文件未初始化的全局、靜態(tài)變量只需要放置一個占位符,代表其在.bss。而.bss在鏈接階段,變量不占空間,在裝載時由操作系統(tǒng)再分配空間??梢钥吹剑热皇俏募袷?,不管怎么設(shè)計,主要的目的就是占更少的空間。
header有很多文件控制信息,就不一一表述了,其中最重要的就是記錄了section header table的起始地址。而section header table記錄了所有section的名字、類型、長度、在文件中的偏移量(offset)等。如果想要尋址到任意section都要通過這個header table。section header table實際上是由struct構(gòu)成的數(shù)組。
.strtab放置section名、變量名,包括符號名的字符串。由于在整個結(jié)構(gòu)中,字符串的長度是不定的,一般將這些字符串統(tǒng)一放置在一個table中,然后存儲table中的offset,最后尋址到字符串。比如,在下表中,我想找到girlfriend一詞,我只要拿到.strtab的base地址,加上girlfriend的offset 9就可以找到這個字符串。
0 1 2 3 4 5 6 7 8
i 0 w a n t 0 a 0
g i r l f r i e n
d
.symtab就是大名鼎鼎的符號表。每個目標(biāo)文件都有自己的符號表,符號表記錄符號的映射,符號可以這樣分:文件外符號和文件內(nèi)符號,文件外符號就是使用在其他文件定義的符號,文件內(nèi)符號除了在文件內(nèi)定義給其他文件使用的符號,還包括每個section符號,在文件內(nèi)定義光是文件內(nèi)使用的符號。光文件內(nèi)使用的符號,對鏈接沒有幫助,主要為了崩潰后分析而存在。符號表也是一個由struct構(gòu)成的數(shù)組。ELF的32位符號sturct:
typedef struct {
int32_t st_name;
uint32_t st_value;
int32_t st_size;
unsigned char st_info;
unsigned char st_other;
uint16_t st_shndx;
} ELF32_Sym;
st_name字段就是符號的名字,表示為在.strtab中的字符串offset。st_info表示是局部符號、全局符號還是弱符號。符號也可以分為強符號(Strong Symbol)、弱符號(Weak Symbol),顧名思義,強符號有唯一性,弱符號沒有唯一性,一個強符號可以和多個弱符號共存,多個重復(fù)的強符號不可以共存,鏈接器會報出duplicate dymbol,可以用attribute((weak))指明弱符號。相對的,符號也有強引用(Strong Reference)、弱引用(Weak Reference),在鏈接進行符號修正的時候,強引用必須修正,而弱引用可以不修正,可以用attribute((weakref))指明符號弱引用。
st_shndx字段指明了符號是文件外符號,還是文件內(nèi)符號。如果是文件外符號就為SHN_UNDEF。如果是文件內(nèi)符號包括給其他文件使用的、光自己使用的、section符號,就為所在section的索引號,而st_value表示所在section的offset。等到鏈接過后,不管是文件外符號還是文件內(nèi)符號,st_value指明實際地址。
符號修飾(Symbol-Decoration)與函數(shù)簽名(Function-Signature)
機智的同學(xué)已經(jīng)發(fā)現(xiàn)了,如果光按上面聊的方式進行符號鏈接是有問題的,假如目標(biāo)文件有個func符號又引用了其他文件同名的func符號,那符號不就出現(xiàn)沖突了?這里就需要引入函數(shù)簽名,函數(shù)簽名是一個函數(shù)的名字、參數(shù)類型、所在類名組成的字符串,不同語言、不同編譯器對同一個函數(shù)生成的函數(shù)簽名是不一樣的,比如OC中函數(shù)簽名還要加上返回變量類型,C++中還要加上NameSpace。在鏈接的時候,過程調(diào)用符號不光是函數(shù)名,是對函數(shù)簽名處理后的結(jié)果,全局變量符號也是經(jīng)過類似用函數(shù)簽名處理后的結(jié)果。這一處理過程就是符號修飾。
fishhook
fishhook是facebook開源的重綁定Mach-O符號的庫,最常用來hook C語言函數(shù),而且實際上只能重新綁定C符號,因為符號修飾這一步只去掉了”_”,相當(dāng)于只針對C語言做了符號修飾。在了解了目標(biāo)文件后,重綁定就不是那么困難了。最基本的思路就是先拿到header,然后通過header拿到section header table,再找到.hash,.hash是一個用于加快訪問.symtab的哈希結(jié)構(gòu),再索引到.symtab,詳見這里,通過name去.strtab比對符號名,如果匹配就置換value。
https://docs.oracle.com/cd/E2382401/html/819-0690/chapter6-48031.html
fishhook大體實現(xiàn)原理就是這樣,只不過對Mach-O平臺特性改進一下方案就行。在Mach-O中類似于section header table的段叫做load commands。并且Mach-O中使用二級命名空間,先分segment,就相當(dāng)于上文中的section,然后再在同一segment中區(qū)分section。
先拿到header,通過header中的ncmds(segment的個數(shù))和cmdsize(segment的大小)字段就可以找到所有的segment。然后找到.strtab、.symtab、indirect symbol table。這個indirect symbol table是一個uint32_t的數(shù)組。它就是nl_symbol_ptr(non-lazy)和la_symbol_ptr(lazy )對應(yīng)的.symtab struct數(shù)組的索引。nl_symbol_ptr和la_symbol_ptr section section中的reserved1字段指明對應(yīng)的indirect symbol table起始o(jì)ffset。只要從這兩個section對應(yīng)的indirect symbol table起始表項再跳到.symtab去匹配、置換就可以了。
下面是32位下.symtab的struct,可以看到和上段文章講的幾乎一致:
struct nlist {
union {
char *n_name; /* for use when in-core */
uint32_t n_strx; /* index into the string table */
} n_un;
uint8_t n_type; /* type flag, see below */
uint8_t n_sect; /* section number or NO_SECT */
int16_t n_desc; /* see <mach-o/stab.h> */
uint32_t n_value; /* value of this symbol (or stab offset) */
};
上文提到的Mach-O格式如下:
—— —— —— —— —— —— ——
|header |
|—— —— —— —— —— —— ——|
|load commands |
|—— —— —— —— —— —— ——|
|__Text |
|—— —— —— —— —— —— ——| —— __nl_symbol_ptr
|__Data | -----> |
|—— —— —— —— —— —— ——| —— __la_symbol_ptr
|other sections... |
|—— —— —— —— —— —— ——|
|.strtab |
|—— —— —— —— —— —— ——|
|.dynsym | -----> indirect symbol table
|—— —— —— —— —— —— ——|
|..... |
—— —— —— —— —— —— —— —
更加詳細(xì)的格式,推薦這篇文章。
http://turingh.github.io/2016/03/07/mach-o文件格式分析/
鏈接
上面聊了這么多 ,那靜態(tài)鏈接到底是如何將多個目標(biāo)文件鏈接成一個可執(zhí)行文件的呢?
靜態(tài)鏈接分為兩階段(Two-pass Linking),第一階段先掃描所有目標(biāo)文件,調(diào)整結(jié)構(gòu)。將所有目標(biāo)文件相同section合并,包括.symtab合并成全局.symtab,然后為每個section分配虛擬地址,再將全局.symtab中的符號進行置換成虛擬地址。
這里如何將全局.symtab中的符號置換成虛擬地址呢?實際上,在分配section虛擬地址后,符號的虛擬地址按所在section虛擬地址加offset就可以計算出了。
第二階段將所有符號進行修正。通過重定位表找到所有section中需要被修正的符號位置,然后從全局.symtab查詢出虛擬地址置換。
每個section都會對應(yīng)一個重定位段,這些重定位段組成一個重定位表。每個重定位表項叫做重定位入口(Relocation Entry),它記錄了所需重定向符號所在段的offset。
靜態(tài)鏈接庫
靜態(tài)鏈接庫就是一組目標(biāo)文件,經(jīng)過壓縮、索引而成的一個文件形式。當(dāng)我們平時在使用靜態(tài)鏈接庫的時候,實際上鏈接器會根據(jù)所需的符號,在庫中搜索到相應(yīng)的目標(biāo)文件,并將其鏈接入最終可執(zhí)行文件。
動態(tài)鏈接
隨著靜態(tài)鏈接慢慢發(fā)展起來,靜態(tài)鏈接也暴露出了問題。靜態(tài)鏈接將鏈接與被鏈接的目標(biāo)文件結(jié)合的太緊密了,導(dǎo)致如果多個目標(biāo)文件要鏈接同一個目標(biāo)文件,那這個被鏈接的目標(biāo)文件相當(dāng)于要被復(fù)制多份,每個可執(zhí)行文件都要包含這個被鏈接的目標(biāo)文件的內(nèi)容,這樣會占太多冗余空間。那怎么辦?將鏈接與被鏈接的目標(biāo)文件先隔離開,將鏈接的時機往后推移,等到裝載的時候再進行鏈接。這樣,讓被鏈接的目標(biāo)文件只占一份空間就好。
既然動態(tài)鏈接隔離開了鏈接、被鏈接目標(biāo)文件,鏈接目標(biāo)文件需動態(tài)鏈接的符號,就需要先做個動態(tài)鏈接占位符。這也就是說,在目標(biāo)文件鏈接成可執(zhí)行文件時,即使是用作動態(tài)鏈接的目標(biāo)文件也要作為動態(tài)鏈接庫輸入到鏈接階段,以供目標(biāo)文件識別哪些符號是動態(tài)符號。
動態(tài)鏈接重定位
上面已經(jīng)聊完了在鏈接階段對靜態(tài)鏈接進行重定位,根據(jù)符號所在section的虛擬地址和所在section的offset。而動態(tài)鏈接可以這樣重定位嗎?不行,這時動態(tài)鏈接庫的地址還沒有確定,必須等到裝載以后操作系統(tǒng)分配。那可以等到裝載以后,確定地址后再直接進行重定位嗎?不行,假如動態(tài)鏈接庫被多個進程引用,裝載時動態(tài)鏈接庫進行重定位,動態(tài)鏈接庫映射到每個進程中的虛擬地址都不一樣,動態(tài)鏈接庫只能對一個進程重定位,那么動態(tài)鏈接庫就不是共享的了。那怎么搞?
通過.got(global offset table),.got就是一個指針數(shù)組,.got存儲引用符號的實際地址。而代碼段引用符號直接更改為引用.got項的位移,這在鏈接階段以后就不會再改變了。然后將.got分配在.data section,裝載時每個進程復(fù)制一份并修正。實際上,動態(tài)鏈接重定位指的就是在裝載的時候,根據(jù)全局符號表修正.got表項。動態(tài)鏈接庫使用全局變量、靜態(tài)變量、引用文件外過程調(diào)用都要經(jīng)過.got。.got就像indirection table一樣,解決多進程共享動態(tài)鏈接庫。
這樣,動態(tài)鏈接庫雖然在不同進程中有不同的映射虛擬空間,但物理空間上共享。.got在不同進程中,虛擬空間和物理空間都不共享。如下圖所示:
virtual address -> physical address
—— —— —— —— —— —— ——
|processA |
|—— —— —— —— —— —— ——|
|..... |
|—— —— —— —— —— —— ——|
|dynamic libiraries |----------
|—— —— —— —— —— —— ——| |
|..... | | |..... |
|—— —— —— —— —— —— ——| | |—— —— —— —— —— —— ——|
|.got |---------|---------->|.got |
|—— —— —— —— —— —— ——| | |—— —— —— —— —— —— ——|
|..... | | |..... |
|—— —— —— —— —— —— ——| | |—— —— —— —— —— —— ——|
----------->|dynamic libiraries |
—— —— —— —— —— —— —— | |—— —— —— —— —— —— ——|
|processB | | |..... |
|—— —— —— —— —— —— ——| | |—— —— —— —— —— —— ——|
|..... | | ------>|.got |
|—— —— —— —— —— —— ——| | | |—— —— —— —— —— —— ——|
|dynamic libiraries |---------- | |..... |
|—— —— —— —— —— —— ——| |
|..... | |
|—— —— —— —— —— —— ——| |
|.got |---------------
|—— —— —— —— —— —— ——|
|..... |
|—— —— —— —— —— —— ——|
動態(tài)鏈接庫文件外符號重定位用.got就搞定了,那動態(tài)鏈接庫文件內(nèi)符號呢?靜態(tài)鏈接同樣是在鏈接階段重定位就搞定了。動態(tài)鏈接將絕對尋址指令更換成相對尋址指令,只要指令的offset不變,相對尋址指令就可根據(jù)當(dāng)前地址和offset得到正確的地址,這樣文件內(nèi)符號根本不需要重定位了?;谝陨蟽牲c的處理,代碼段在鏈接后就不需要更改了,這樣的代碼段也叫做地址無關(guān)碼(PIC),也就是說代碼段和裝載后的地址無關(guān)。
延遲綁定(PLT)
由于要跳過.got引用動態(tài)鏈接庫的符號,動態(tài)鏈接庫比靜態(tài)鏈接庫慢5%左右,但相比于節(jié)省的大量空間還是很劃算的。除此之外,動態(tài)鏈接還會有其他的問題,裝載時需要進行重定位,會導(dǎo)致性能下降。不如,直接延遲綁定,等到過程調(diào)用符號運行時被用到再進行重定位。
整個過程強烈推薦這篇文章,要想理解動態(tài)鏈接重定位,沒有比追匯編更好的方法了。動態(tài)鏈接和延遲綁定整個過程都是由動態(tài)鏈接器幫我們完成的。當(dāng)引用符號(callq)時,先jmpq去plt結(jié)構(gòu),使用了PLT,引用符號就要先jmpq去plt結(jié)構(gòu)。如果沒找到相應(yīng)的地址,然后再jmpq去.got.plt或.got中。再把符號相應(yīng).rela.plt表中的索引和.got.plt相應(yīng)的表項,pushq入棧,rela.plt中有符號的類型和名字。再jmp到動態(tài)鏈接庫中(_dl_fixup),去全局符號表中找到符號相應(yīng)的地址。再將地址reloc到.got.plt或.got相應(yīng)表項。然后就完成了延遲綁定,下次引用同樣的符號就可以jmpq去plt結(jié)構(gòu)找到地址。
http://sysfork.com/post/linux-dynamic-lib-lazy-load/
引用
程序員的自我修養(yǎng)—鏈接、裝載與庫關(guān)注「ImportNew」,看技術(shù)干貨
沖積扇沉積體系沖積扇是暫時性洪流或間歇性洪流流出山口時,由于地形急劇變緩,水流向四方散開,流速驟減,碎屑物質(zhì)大量堆積而成的,形狀近扇狀的沉積體。從山地峽谷向開闊平原轉(zhuǎn)變地帶上的一種河流沉積體系,呈扇形或半圓錐狀、以粗粒碎屑占優(yōu)勢的堆積物。
沖積扇是陸地上最靠近物源區(qū)的沉積體系,粒度粗,分選差,沉積速率高。扇根分布在臨近沖積扇頂部地帶的古溝口附近,主要發(fā)育有古溝道、主水道和主水道間三種沉積微相。扇中位于沖積扇中部,為沖積扇的主要組成部分。它與扇根并不具有明顯的界限,以具有中到較低的沉積坡角和發(fā)育的辮狀河道為特征。與扇根沉積相比較,砂與礫比率增加,沉積物偏細(xì),成分成熟度和結(jié)構(gòu)成熟度增高,礫石碎屑多呈疊瓦狀排列。扇中沉積由于未經(jīng)過充分分選,加上泥石流的存在,扇中沉積層內(nèi)、層間和微觀非均質(zhì)性極強。扇緣是整個沖積扇沉積物最細(xì),流體能量最低的部分,呈環(huán)帶狀圍繞在沖積扇周圍。沉積物為細(xì)礫、含礫砂、砂及泥,細(xì)礫較為少見。其微相可分為水道徑流及片流兩種。
濕地沉積扇:沉積特征,濕地沉積扇主要發(fā)育與潮濕氣候帶,最明顯的終年泄水,這些常年河對扇的沉積作用影響小,而由季節(jié)性氣候條件產(chǎn)生的巨大洪水起著控制作用。整個扇的面積大,有時為干旱扇的幾百倍;扇面坡度一般較低,因此河流作用常常控制著濕地扇的整個扇面。自扇頂向扇尾濕地扇的最大碎屑粒徑逐漸變小。
沉積亞相分為:扇頂近源相、扇中中段相、扇尾遠(yuǎn)端相。Ⅱ扇三角洲:沖積扇直接進入水體在濱湖或濱海地帶形成的粗碎屑扇狀體。沉積特征:沖積扇直接進入水體在濱湖或濱海地帶形成的粗碎屑扇狀體。它是一種進積到穩(wěn)定水體中的沖積扇沉積體系,它屬于在活動扇與穩(wěn)定水體交界帶上的沉積。這種沉積一部分在陸上,但大部分在水下,有的幾乎完全在水下。扇三角洲出現(xiàn)于不同氣候和能量條件的各種濱海帶中,也常常沿冰緣地帶的山間湖濱分布。
扇三角洲的遠(yuǎn)端相形成于濱岸帶、海洋或湖泊的水下環(huán)境,當(dāng)有高速的粗粒沉積物注入水體時才能顯現(xiàn)出河流的影響。海岸帶的扇形體由于受到河流、波浪、潮汐及水面升降變化等的多種作用,因而形態(tài)和面貌呈多種多樣。沖積扇沉積體系與能源資源形成、賦存的關(guān)系在含煤沖積扇沉積體系中,煤的聚集往往集中于特定的部位,這主要決定于控制泥巖沼澤形成和發(fā)育的自然地理條件。在沖積扇體系分布的范圍內(nèi),有利于成煤的部位主要有扇間洼地、中扇朵葉體間洼地、扇尾地帶和扇前緣外側(cè)與河、湖、海環(huán)境的過渡地帶。對于油氣的生成,沖積扇體系是不利的沉積環(huán)境,但由于它所產(chǎn)生的沉積物大多巖性粗,可以構(gòu)成很好的儲集層。
實踐證明,沖積扇沉積與儲層有著密切的關(guān)系,特別是砂礫巖沖積扇體儲層的油氣地質(zhì)意義已被國內(nèi)外很多油田證實。只要鄰接該砂體有生油層存在,往往可形成次生的油氣藏。由沖積扇體系充填的沉積盆地,如果周邊的物源區(qū)具有含鈾礦物的巖體出露,在適宜的氣候和沉積環(huán)境條件下,常為鈾礦的聚集提供了良好的形成條件。
審計體系的分析
1.審計工作體系
審計工作是審計機構(gòu)和審計人員為實現(xiàn)審計任務(wù),依法行使審計職權(quán),履行審計職責(zé)所進行的各項審計行為。審計工作體系是指由若干要素相互聯(lián)系而構(gòu)成的一個有機整體。審計工作按不同標(biāo)志劃分要素而形成不同的體系。
審計工作體系按審計工作任務(wù)不同,可分為審計業(yè)務(wù)工作體系和審計管理工作體系。
(一)審計業(yè)務(wù)工作體系是指由若干審計業(yè)務(wù)工作要素相互聯(lián)系而構(gòu)成的一個有機整體。審計業(yè)務(wù)工作要素有不同的劃分,從而使審計業(yè)務(wù)工作體系的構(gòu)成要素有所不同。審計業(yè)務(wù)工作體系按審計主體的性質(zhì)劃分,是由國家審計、社會審計(注冊會計師審計)和內(nèi)部審計等要素構(gòu)成的有機整體。審計業(yè)務(wù)工作體系按審計的內(nèi)容劃分,是由財政財務(wù)審計(包括稅務(wù)審計)、管理審計和經(jīng)濟效益審計等要素構(gòu)成的有機整體。審計業(yè)務(wù)工作體系按被審計單位的性質(zhì)劃分,是由政府審計和企業(yè)審計等要素構(gòu)成的有機整體。此外,審計業(yè)務(wù)工作體系的要素還有:按執(zhí)行審計機構(gòu)可將審計劃分為外部審計和內(nèi)部審計;按被審計資料涉及的范圍可將審計劃分為全部審計和局部審計;按被審計項目涉及的范圍可將審計劃分為綜合審計和專題審計;按被審計單位經(jīng)濟業(yè)務(wù)發(fā)生的時間可將審計劃分為事前審計、事中審計和事后審計;按被審計單位的審計報告期可將審計劃分為期中審計和期末審計;按審計是否在規(guī)定的時間進行可將審計劃分為定期審計和不定期審計;按審計是否為初次實施可將審計劃分為初次審計、繼續(xù)審計和后續(xù)審計;按執(zhí)行審計的地點可將審計分為就地審計和報送審計;按是否事先通知被審計單位可將審計分為預(yù)告審計和突擊審計;按審計的組織方式可將審計劃分為授權(quán)審計、委托審計和聯(lián)合審計;按審計的法律義務(wù)可將審計劃分為法定審計和自愿審計等。在審計業(yè)務(wù)工作體系中,各種構(gòu)成要素可以相應(yīng)建立相對獨立的體系。如審計業(yè)務(wù)工作體系中的國家審計、社會審計(注冊會計師審計)和內(nèi)部審計等構(gòu)成要素,可以相應(yīng)地建立國家審計體系、社會審計(注冊會計師審計)體系和內(nèi)部審計體系等。
2.審計科學(xué)體系
審計科學(xué)體系是指由若干體現(xiàn)審計科學(xué)的要素相互聯(lián)系而形成的一個有機整體。審計科學(xué)是研究審計工作規(guī)律和審計歷史發(fā)展規(guī)律的知識體系。審計科學(xué)按其內(nèi)容的表現(xiàn)形式,分為審計理論體系和審計學(xué)科體系。
(一)審計理論體系是由各種理論要素相互聯(lián)系而構(gòu)成的有機整體。審計理論體系包括哪些理論構(gòu)成部分,理論界尚沒有一致的認(rèn)識。R.K.莫茨、H.A.夏拉夫在所著《審計理論結(jié)構(gòu)》中,提出審計理論結(jié)構(gòu),由一個核心五個層次構(gòu)成,一個核心是以數(shù)學(xué)、邏輯學(xué)、形而上學(xué)為核心,五個層次是基本哲學(xué)、審計假設(shè)、審計概念體系、審計標(biāo)準(zhǔn)和審計實務(wù)等。尚德爾教授在《審計理論》中,提出審計“理論結(jié)構(gòu)以審計假設(shè)為核心,由審計目的、審計標(biāo)準(zhǔn)、審計判斷、審計要素四個基本要素所構(gòu)成?!薄睹筛珩R利審計學(xué)》提出審計理論基本框架以審計目標(biāo)為核心,以審計準(zhǔn)則、審計假設(shè)、審計概念和審計技術(shù)為主要內(nèi)容。加拿大審計學(xué)家安德森提出,審計理論結(jié)構(gòu)應(yīng)由一系列的審計概念及其相互關(guān)系所構(gòu)成。在以上各種觀點中可以看出,“基本哲學(xué)”是審計的理論基礎(chǔ):“審計概念”或“審計概念體系”在理論要素中不能同其他審計理論并列為單獨的理論要素,因為其他理論要素也是審計概念:“審計要素”在審計學(xué)中一般所指的內(nèi)容,已表現(xiàn)為相關(guān)的理論要素,且各種理論都是審計理論體系中的要素;因而,“基本哲學(xué)”、“審計概念”和“審計要素”等不是審計理論體系中的理論要素。
審計理論是審計實踐(審計工作)的全面、系統(tǒng)、綜合的理性認(rèn)識,審計理論體系(審計理論結(jié)構(gòu))的理論要素應(yīng)能全面、系統(tǒng)、綜合地反映審計實踐(審計工作)。因此,參考以上觀點,審計理論體系的理論要素可以包括:(1)審計基礎(chǔ)理論:審計對象、審計范圍、審計目標(biāo)(審計目的)、審計性質(zhì)、審計任務(wù)、審計職能、審計地位、審計作用、審計分類(審計種類)(2)審計行為理論:審計程序、審計決策、審計計劃、審計方法、審計證據(jù)、審計判斷、審計報告、審計技術(shù)、審計風(fēng)險、財務(wù)審計、管理審計、經(jīng)濟效益審計、經(jīng)濟責(zé)任審計、計算機審計、網(wǎng)絡(luò)審計、資本驗證;(3)審計體制理論:審計環(huán)境、審計機構(gòu)、審計人員、國家審計、內(nèi)部審計、社會審計、審計標(biāo)準(zhǔn)(審計依據(jù))、審計假設(shè)、審計原則、審計準(zhǔn)則、審計法規(guī)、審計職業(yè)道德、審計管理等。
審計理論體系研究的起點是審計理論中的一個重要課題。確定審計理論體系的起點應(yīng)考慮以下因素:(1)能與其他科學(xué)相區(qū)別,有區(qū)別才有審計理論的發(fā)展;(2)審計理論形成的基礎(chǔ),審計理論是對審計實踐的系統(tǒng)、綜合的理性認(rèn)識,審計實踐是審計理論的源泉;(3)認(rèn)識的出發(fā)點,從實際出發(fā)是認(rèn)識審計和發(fā)展審計理論的出發(fā)點;(4)外部審計環(huán)境同內(nèi)部審計條件相聯(lián)系的聯(lián)結(jié)點,審計環(huán)境通過聯(lián)結(jié)點與內(nèi)部審計條件相聯(lián)系而發(fā)生作用。按照這些要求,筆者認(rèn)為,審計對象應(yīng)是審計理論體系或?qū)徲嬂碚摻Y(jié)構(gòu)的起點理論。因為:(1)審計對象是學(xué)科的區(qū)別點,以審計對象為審計理論體系的起點理論,才能與其他科學(xué)相區(qū)別。(2)審計對象是形成審計理論的基礎(chǔ),審計對象的實際內(nèi)容是審計實踐,審計實踐是審計理論的源泉,在審計實踐的基礎(chǔ)上形成和發(fā)展各種審計理論要素,如審計本質(zhì)、審計目標(biāo)和審計假設(shè)是與審計對象相聯(lián)系而發(fā)展的;(3)審計對象是認(rèn)識的出發(fā)點,審計對象的內(nèi)容是具體的現(xiàn)實情況,從實際出發(fā)是認(rèn)識審計和發(fā)展審計理論的出發(fā)點;(4)審計對象是與外部審計環(huán)境同內(nèi)部審計條件相聯(lián)系的聯(lián)結(jié)點,外部審計環(huán)境通過審計對象與內(nèi)部審計條件相聯(lián)系而發(fā)生作用。
(二)審計學(xué)科體系是由各種學(xué)科要素相互聯(lián)系而構(gòu)成的有機整體。審計學(xué)是一門獨立的學(xué)科,它包括哪些分支學(xué)科,有其發(fā)展和認(rèn)識的過程。在20世紀(jì)90年代初以前,一般認(rèn)為審計學(xué)科體系,包括審計學(xué)原理、財務(wù)審計學(xué)、經(jīng)濟效益審計學(xué)、財政審計學(xué)(政府審計學(xué))、金融審計學(xué)、工業(yè)審計學(xué)、農(nóng)業(yè)審計學(xué)、基本建設(shè)審計學(xué)、商業(yè)審計學(xué)、糧食審計學(xué)、物資審計學(xué)、外貿(mào)審計學(xué)、審計案例學(xué)、計算機審計學(xué)和審計史學(xué)等。會計改革對審計學(xué)的建設(shè)產(chǎn)生直接的影響,如財政部于1993年7 月1日實施的基本行業(yè)會計制度,2001年開始實施的《企業(yè)會計制度》都對審計學(xué)科建設(shè)產(chǎn)生了影響。
考慮審計環(huán)境的變化,筆者認(rèn)為審計學(xué)科體系可以包括以下基本學(xué)科:審計學(xué)原理、政府審計學(xué)、財務(wù)審計學(xué)、管理審計學(xué)、經(jīng)濟效益審計學(xué)、經(jīng)濟責(zé)任審計學(xué)、計算機審計學(xué)、內(nèi)部審計學(xué)、國際審計學(xué)、比較審計學(xué)、環(huán)境審計、風(fēng)險審計、審計技術(shù)學(xué)、審計哲學(xué)和審計史學(xué)等。應(yīng)該指出,審計學(xué)科體系所包括的基本學(xué)科,與學(xué)校的審計課程體系是相近的,但不是相同的;不能把審計學(xué)科體系等同為審計課程體系,審計學(xué)科體系應(yīng)包括全部審計學(xué)科(審計分支學(xué)科),除審計基本學(xué)科之外,還包括其他分支學(xué)科如環(huán)境審計、風(fēng)險審計和審計哲學(xué)等,而審計課程體系只設(shè)置審計學(xué)科體系中的基本學(xué)科。
3.審計組織體系
審計組織體系是指由審計機構(gòu)、審計人員和審計規(guī)范等相互聯(lián)系而構(gòu)成的一個有機整體。顯然,這里的審計組織是指廣義審計組織體制。審計體制是指審計機構(gòu)及其權(quán)限、關(guān)系的形式、制度和體系。審計組織體系按不同的標(biāo)志可以劃分不同的構(gòu)成要素,由這些不同的要素構(gòu)成不同的體系。
(一)審計組織體系按審計運行條件劃分要素,是由審計機構(gòu)、審計人員和審計規(guī)范等要素相互聯(lián)系而構(gòu)成的有機整體;審計體系具有層次性,由上述要素相應(yīng)形成審計機構(gòu)體系、審計人員體系和審計規(guī)范體系。
審計機構(gòu)體系即一般所稱的狹義的審計組織體系。審計組織(審計機構(gòu))體系按審計機構(gòu)設(shè)置劃分要素,是由國家審計機關(guān)、內(nèi)部審計機構(gòu)和社會審計組織等要素相互聯(lián)系而構(gòu)成的一個有機整體。也就是說,審計機構(gòu)(審計組織)包括國家審計機關(guān)、內(nèi)部審計機構(gòu)和社會審計組織。根據(jù)審計體系具有層次性的要求,相應(yīng)形成國家審計機關(guān)組織體系、內(nèi)部審計機構(gòu)組織體系和社會審計組織體系。
審計人員體系是指由各種審計人員相互聯(lián)系而構(gòu)成的一個有機整體。各類、各層次的審計人員是做好審計工作的關(guān)鍵。
審計規(guī)范體系是指由各種審計規(guī)范相互聯(lián)系而構(gòu)成的一個有機整體。審計規(guī)范體系按規(guī)范實施范圍劃分要素,是由國際審計規(guī)范、中國審計規(guī)范、主要發(fā)達(dá)國家審計規(guī)范和其他主要國家審計規(guī)范等要素構(gòu)成的有機整體。中國審計規(guī)范體系按規(guī)范實施范圍劃分要素,是由國家審計規(guī)范、社會審計規(guī)范和內(nèi)部審計規(guī)范等要素構(gòu)成的有機整體。中國審計規(guī)范體系按規(guī)范內(nèi)容的性質(zhì)劃分要素,是由審計法律規(guī)范、企業(yè)事業(yè)單位審計制度和審計職業(yè)道德規(guī)范等要素構(gòu)成的有機整體。審計法律規(guī)范體系按法律規(guī)范內(nèi)容的性質(zhì)劃分要素,是由國家憲法、審計法律、審計行政法規(guī)、審計地方性法規(guī)、自治條例、單行條例和審計規(guī)章等要素構(gòu)成的有機整體。在審計法規(guī)體系中還包括其他法律法規(guī)中有關(guān)審計的法規(guī)。在審計實際工作中,還有審計執(zhí)業(yè)規(guī)范體系,它是由各種執(zhí)業(yè)規(guī)范相互聯(lián)系而構(gòu)成的有機整體。審計執(zhí)業(yè)規(guī)范體系主要由四部分構(gòu)成:獨立審計準(zhǔn)則(獨立審計基本準(zhǔn)則、獨立審計具體準(zhǔn)則與獨立審計實務(wù)公告、執(zhí)業(yè)規(guī)范指南)、注冊審計師質(zhì)量控制準(zhǔn)則、注冊審計師職業(yè)道德規(guī)范及注冊審計師后續(xù)教育準(zhǔn)則。
(二)審計組織體系按審計組織性質(zhì)劃分要素,是由國家審計組織、內(nèi)部審計組織和社會審計組織等要素相互聯(lián)系而構(gòu)成的有機整體;根據(jù)審計體系具有層次性的要求,相應(yīng)形成國家審計組織體系、內(nèi)部審計組織體系和社會審計組織體系。國家審計組織體系按審計運行條件劃分要素,是由審計機構(gòu)(最高審計機關(guān)、地方審計機關(guān)、派出機關(guān))、審計人員和審計規(guī)范等要素相互聯(lián)系而構(gòu)成的有機整體。內(nèi)部審計組織體系按審計運行條件劃分要素,是由內(nèi)部審計組織、內(nèi)部審計人員和審計規(guī)范等要素相互聯(lián)系而構(gòu)成的有機整體。社會審計組織體系按審計運行條件劃分要素,是由社會審計機構(gòu)(會計師事務(wù)所)、注冊會計師和審計規(guī)范等要素相互聯(lián)系而構(gòu)成的有機整體。
對審計組織體系的研究,有利于探討國際大環(huán)境和中國實際,建立中國的審計體制,特別是建立一套與國際協(xié)調(diào)的審計規(guī)范體系。
4.審計教育體系
審計教育體系是各種審計教育相互聯(lián)系而構(gòu)成的有機整體。審計教育體系與會計教育體系密切相關(guān)。有的學(xué)校專設(shè)審計系和審計專業(yè),有的學(xué)校不專設(shè)審計系或?qū)徲媽I(yè)而將培養(yǎng)審計人才的要求溶于培養(yǎng)會計人才要求之中,因此,培養(yǎng)會計人才就是在培養(yǎng)審計人才。在這種情況下,審計教育體系與會計教育體系是一致的。
審計教育體系的構(gòu)成,包括中等審計教育、高等審計教育和其他審計教育。審計教育的重點是高等審計教育。高等審計教育是以審計本科為基點,建立審計專科、本科、研究生(碩士生、博士生)培養(yǎng)目標(biāo)明確、相互銜接的審計教育體系。高等審計教育包括普通高等審計教育和成人高等審計教育。普通高等審計教育,是以未就業(yè)的學(xué)齡階段的青年為主要教育對象,在一般大學(xué)和學(xué)院設(shè)有本科和專科審計專業(yè)(會計專業(yè))、碩士和博士研究生審計專業(yè)(會計專業(yè));成人高等審計教育是以已經(jīng)就業(yè)的勞動者為教育對象,在廣播電視大學(xué)、函授大學(xué)、業(yè)余大學(xué)、職工大學(xué)、管理干部學(xué)院、成人教育學(xué)院(或培訓(xùn)中心)等院校設(shè)有審計專業(yè)(或會計專業(yè))。
對審計教育體系的研究,需要探討如何培養(yǎng)適應(yīng)審計國際化要求的人才;同時,要研究在一定范圍內(nèi)需要建立相對獨立的審計教育體系,并在會計教育體系中重視培養(yǎng)審計人才的要求。
5.審計方法體系
審計方法體系是各種審計方法相互聯(lián)系而構(gòu)成的有機整體。審計方法體系包括哪些審計方法,在認(rèn)識上還不一致。一般講審計方法是指審計工作方法。從審計的全部內(nèi)容來說,審計方法不僅指審計工作方法,還應(yīng)包括其他審計方法。審計方法按其內(nèi)容和性質(zhì),分為審計工作方法、審計研究方法、審計組織方法和審計教育方法,相應(yīng)地,審計方法體系按其內(nèi)容和性質(zhì),分為審計工作方法體系、審計研究方法體系、審計組織方法體系和審計教育方法體系。本文主要探討審計工作方法體系和審計研究方法體系。
(一)審計工作方法體系一般稱審計方法體系。審計工作方法體系是各種審計工作方法相互聯(lián)系而構(gòu)成的有機整體。方法體系包括哪些方法有各種認(rèn)識。一般認(rèn)為審計方法分為兩類,審計一般方法和審計技術(shù)方法,或?qū)徲嫽痉椒ê蛯徲嫾夹g(shù)方法,或?qū)徲嬎枷敕椒ê蛯徲嫾夹g(shù)方法。審計一般方法,是在審計工作中運用唯物辯證法,進行分析、調(diào)查、判斷和評價的方法;審計技術(shù)方法,是審計人員在審計過程中,所采取的技術(shù)性措施和手段。至于審計技術(shù)方法包括哪些內(nèi)容,有各種見解,但從審計工作的全面性來分析,按審計工作的內(nèi)容劃分,一般包括審計計劃方法、審計證據(jù)方法、審計報告方法、資本驗證方法、咨詢服務(wù)方法、審計文件處理方法和審計管理方法等;其具體方法,有計劃法、檢查法、盤點法、觀察法、查詢法、審閱法、核對法、調(diào)節(jié)法、計算法、分析法、驗資法、報告法和管理法等。
(二)審計研究方法體系是各種審計研究方法相互聯(lián)系而構(gòu)成的有機整體。審計研究方法有各種分類:(1)審計研究方法按認(rèn)識過程,分為經(jīng)驗知識方法、理論知識方法、理論發(fā)展方法和理論驗證方法;或分為感性認(rèn)識方法、理性認(rèn)識方法和綜合方法;或分為選題方法、搜集資料方法、資料加工整理方法和成果表達(dá)方法。(2)審計研究方法按研究目的,分為實證方法和規(guī)范方法;或分為描述性方法、規(guī)范性方法和社會經(jīng)濟方法;或分為經(jīng)驗方法、理論方法、思維方法、數(shù)學(xué)方法和屬性方法;或分為實證方法、實驗方法、分析方法、表述方法和歷史方法。(3)審計研究方法按歷史發(fā)展,分為傳統(tǒng)審計研究方法和現(xiàn)代審計研究方法。(4)審計研究方法按研究的范圍,分為一般研究方法和專門研究方法。(5)審計研究方法按研究的性質(zhì),分為定性方法和定量方法。(6)審計研究方法按研究的時間關(guān)系,分為靜態(tài)方法和動態(tài)方法等。在實際審計研究工作中,根據(jù)審計研究項目的內(nèi)容、性質(zhì)和要求,需要綜合運用各種研究方法。2100433B