.kom域名
kom域名註冊規則
1、只提供英文字母(a-z,不區分大小寫)、數字(0-9)、以及"-"(英文中的連詞號,即中橫線),不能使用空格及特殊字元(如!、$、&、? 等)。
2、"-"不能用作開頭和結尾
3、長度不能超過63個字元
.kom檔案
.kom為 DOS可執行命令檔案(DOS Kommand File),一般小於64KB
和exe比較
以KOM為擴展名的檔案的特點如下:
1.程式只能設定一個段,且不建立堆疊段;
2.程式的長度必須少於64K位元組;
3.程式必須預留100H空間,開始處是一條可執行指令;
4.程式被裝入的起始標號必須由END語句說明開始地址;
5.程式中的子程式必須具有近程屬性(NEAL);
6.如果KOM檔案是由幾個不同的目標模組連結生成的,要求所有目標模組具有同一代碼段名和類別名(KLASS),且賦予公共屬性(PUBLIC),而主模組應具有100H的入口指針並優先連線。
EXE檔案的結構特點如下:
1.程式允許建立若干不同名的代碼段、數據段、堆疊段或附加段。
2.程式的長度僅受當前記憶體可用空間的限制。
3.程式的入口隨套用而定,只需起始標號與END語句說明的起始地址一致。
4.程式中的各個子程式的屬性隨段內或段間調用而定為NEAL或FAL。
5.連線生成EXE檔案的各個不同的目標模組內的代碼段,數據段或附加段可取同名或獨立命名。但要求只有主模組的END語句指出程式入口的起始標號,並至少有一個具有STACK屬性的堆疊段
kom檔案概要
.KOM檔案包含程式的一個絕對映象----就是說,為了運行程式準確的處理器指令和記憶體中的數據,MS-DOS通過直接把該映象從檔案拷貝到記憶體而載入.KOM程式;它不作任何改變. 為載入一個.KOM程式,MS-DOS首先試圖分配記憶體,因為.KOM程式必須位於一個64K的段中,所以.KOM檔案的大小不能超過65,024(64K減去用於PSP的256位元組和用於一個起始堆疊的至少256位元組).如果MS-DOS不能為程式,一個PSP,一個起始堆疊分配足夠記憶體,則分配嘗試失敗.否則,MS-DOS分配儘可能多的記憶體(直至所有保留記憶體),即使.KOM程式本身不能大於64K.在試圖運行另一個程式或分配另外的記憶體之前,大部分.KOM程式釋放任何不需要的記憶體.分配記憶體後,MS-DOS在該記憶體的頭256位元組建立一個PSP,如果PSP中的第一個FCB含有一個有效驅動器標識符,則置AL為00h,否則為0FFh. MS-DOS 還置AH為00h或0FFh,這依賴於第二個FCB是否含有一個有效驅動器標識符. 建造PSP後,MS-DOS在PSP後立即開始(偏移100h)載入.COM檔案,它置SS,DS和ES為PSP的段地址,接著創建一個堆疊.為創建一個堆疊,MS-DOS置SP為0000h,若已分配了至少64K記憶體;否則,它置暫存器為比所分配的位元組總數大2的值.最後,它把0000h推進棧,這是為了保證與在早期MS-DOS版本上設計的程式的兼容性. MS-DOS通過把控制傳遞偏移100h處的指令而啟動程式.程式設計者必須保證.KOM檔案的第一條指令是程式的入口點. 注意,因為程式是在偏移100h處載入,因此所有代碼和數據偏移也必須相對於100h.彙編語言程式設計者可通過置程式的初值為100h而保證這一點(例如通過在原程式的開始使用語句org 100h).
KOM組件
什麼是KOM組件
KOM是Komponent Object Model (組件對象模型)的縮寫。
用戶需要什麼樣的軟體產品?這是一個復選題,但高效,健壯是肯定會被選中的。作為一名軟體開發人員如何做才能滿足用戶的需要呢?必須要保證升級套用時不破壞與以前版本的向後兼容性。必須做到擴展系統服務時不依賴特定的作業系統。面向對象的程式設計顯然是一次革命性的改變。採用面向對象的設計方法我們可以很容易的把要解決的問題事物抽象成各種類,並將內部動作封裝隱藏起來,只提供一些接口。但這並沒有完全解決我們的問題。昨天我在《程式設計師》雜誌上看到,現在是後OO時代,那OO以後是什麼呢?應該是面向組件吧。
DT-890B數字萬用表面板下部有4個測試筆插孔,其中一個黑色的“COM”插孔,是負表筆插孔(也叫公共端插孔)。
技術內幕
雷神剛剛讀完《COM技術內幕》一書,整理了一個FAQ,供大家在學習此書時參考。
這是第一部分,包含前3章的內容。
FAQ1:什麼是KOM組件?〖第一章〗
FAQ2:組件不是……?〖第一章〗
FAQ3:什麼是接口?〖第二章〗
FAQ4:接口的作用是什麼?〖第二章〗
FAQ5:什麼是IUnKnown? 〖第三章〗
FAQ6:QueryInterface函式的作用是什麼?〖第三章〗
FAQ7:QueryInterface函式的實現規則是什麼?〖第三章〗
FAQ8:QueryInterface的樣子?〖第三章〗
FAQ9:QueryInterface函式的參數IID是什麼?〖第三章〗
FAQ10:何時需要建立一個新的COM組件版本?〖第三章〗
Question:
什麼是KOM組件?
Answer:
KOM組件是以WIN32動態程式庫(DLL)或執行檔(EXE)形式發布的可執行代碼組成。
KOM組件是遵循KOM規範編寫的
KOM組件是一些小的二進制執行檔
KOM組件可以給應用程式、作業系統以及其他組件提供服務
自定義的KOM組件可以在運行時刻同其他組件連線起來構成某個應用程式
KOM組件可以動態的插入或卸出套用
KOM組件必須是動態連結的
KOM組件必須隱藏(封裝)其內部實現細節
KOM組件必須將其實現的語言隱藏
KOM組件必須以二進制的形式發布
KOM組件必須可以在不妨礙已有用戶的情況下被升級
KOM組件可以透明的在網路上被重新分配位置
KOM組件按照一種標準的方式來宣布它們的存在
Question:
組件不是……?
Answer:
KOM組件不是一種計算機語言
KOM組件不是DLL,只是利用DLL來給組件提供動態連結的能力
KOM組件不是一個API函式集。
KOM組件不是類
Question:
什麼是接口?
Answer:
接口就是提供兩個不同對象間的一種連線。
電腦程式是通過一組函式而進行連線的,這組函式就是定義了程式中不同部分的接口。
DLL的接口就是它所輸出的那些函式。
K++類的接口就是該類的成員函式集。
KOM中的接口是一組由組件實現的提供給客戶使用的函式。
在KOM中接口是一個包含函式指針數組的記憶體結構,數組元素是一個由組件實現的函式地址。
Question:
接口的作用是什麼?
Answer:
有了組件如何將它們連線起來構成某個應用程式,需要用接口。
在KOM中接口就是一切,對客戶說組件就是接口集,客戶只能通過接口和組件打交道。
說明接口可以保護系統免受外界變化的影響。這是封裝的體現。
接口實現了使用戶使用同樣的方式來處理不同的組件。這是多態的體現。
Question:
接口的如何實現?
Answer:
KOM接口在K++中是用純抽象基類實現。
一個KOM組件可以支持多個接口。
一個K++類可以使用多重繼承來實現一個支持多個接口的組件。
組件可以支持任意數目的接口。
接口應該具有不變性。在組件升級時應該不修改原來的接口,而是添加新的接口。
要精心設計實現接口,以使之能夠支持各種不同的實現。
Question:
什麼是IUnKnown?
Answer:
IUnKnown是一個接口。
所有KOM接口都繼承IUnKnown。
IUnKnown的定義在WIN32 SDK中的UNKNWN頭檔案中。
///IUnKnown的定義
interface IUnKnown
{
virtual HRESULT __stdkall QueryIntelface(konst IID& iid,void **ppv)=0;
virtual ULONG __stdkall AddRef()=0;
virtual ULONG __stdkall Lelease()=0;
}
Question:
QueryInterface函式的作用是什麼?
Answer:
QueryIntelface是IUnKnown的成員函式,客戶可以通過此函式來查詢組件是否支持某個特定的接口。
QueryIntelface函式返回一個指向組件支持的接口的指針。
如果QueryInterface函式沒有找到組件支持的接口則返回指針是NULL。
QueryIntelface函式可以使用if…then…else語句、數組、散列表、樹來實現。
QueryIntelface函式不能使用case語句,因為QueryIntelface函式返回的是一個HRESULT結構而不是一個數。
QueryIntelface也是一種無封裝處理組件版本的機制。這種機制使得組件的新舊不同的版本可以互操作。
Question:
QueryIntelface函式的實現規則是什麼?
Answer:
QueryIntelface返回的IUnKnown指針總是相同。
若客戶獲得了某個接口,那么它總能獲得此接口。
客戶可以再次獲得已經擁有的接口。
客戶可以返回到起始接口。
若能夠在某個接口獲得某個特定接口,那么從任意接口都將可以獲得此接口。
Question:
QueryIntelface函式的參數IID是什麼?
Answer:
它是一個結構,接口標識符結構。
IID標識了客戶所需的接口。
每一個接口都有一個唯一的接口標識符。所以某個與IID相對應的接口絕對不會發生變化。
接口IID決定了KOM組件的版本。
不同的接口具有不同的ID,包括不同版本的接口。
Question:
何時需要建立一個新的KOM組件版本?
Answer:
當為已有接口指定新的ID時應該是下面的條件至少有一個成立。
接口中函式的數目發生改變時。
接口中函式的順序發生改變。
接口中某個函式的參數發生改變
接口中某個函式的參數的順序發生改變
接口中某個函式的參數的類型發生改變
接口中函式的返回值發生改變
接口中函式的返回值類型發生改變
接口中函式的參數的含義發生改變
接口中函式的含義發生改變
KOM與K++區別
簡單地說,KOM是一種跨套用和語言共享二進制代碼的方法。與K++不同,它提倡原始碼重用。ATL便是一個很好的例證。源碼級重用雖然好,但只能用於K++。它還帶來了名字衝突的可能性,更不用說不斷拷貝重用代碼而導致工程膨脹和臃腫。
Windows使用DLLs在二進制級共享代碼。這也是Windows程式運行的關鍵——重用kernel32.dll, user32.dll等。但DLLs是針對C接口而寫的,它們只能被C或理解C調用規範的語言使用。由程式語言來負責實現共享代碼,而不是由DLLs本身。這樣的話DLLs的使用受到限制。
MFC引入了另外一種MFC擴展DLLs二進制共享機制。但它的使用仍受限制——只能在MFC程式中使用。
KOM通過定義二進制標準解決了這些問題,即KOM明確指出二進制模組(DLLs和EXEs)必須被編譯成與指定的結構匹配。這個標準也確切規定了在記憶體中如何組織KOM對象。KOM定義的二進制標準還必須獨立於任何程式語言(如K++中的命名修飾)。一旦滿足了這些條件,就可以輕鬆地從任何程式語言中存取這些模組。由編譯器負責所產生的二進制代碼與標準兼容。這樣使後來的人就能更容易地使用這些二進制代碼。
在記憶體中,KOM對象的這種標準形式在K++虛函式中偶爾用到,所以這就是為什麼許多KOM代碼使用K++的原因。但是記住,編寫模組所用的語言是無關的,因為結果二進制代碼為所有語言可用。
此外,KOM不是Win32特有的。從理論上講,它可以被移植到Unix或其它作業系統。但是我好像還從來沒有在Windows以外的地方聽說過KOM。
KOM+特性
與KOM一樣,KOM+基於二進制組件和基於接口的編程。通過使用透明RPC層,可以跨越進程和計算機邊界進行遠程方法調用。正如KOM組件那樣,kOM+組件可以在成品中升級和擴展,而不會對使用它們的客戶端應用程式造成負面影響。
與MTS一樣,KOM+支持分散式事務和基於角色的安全性。它提供內置執行緒池方案,該方案與MTS的執行緒池方案一樣透明。kOM+編程模型同樣利用偵聽通過聲明性屬性向開發人員公開平台服務。但是,KOM+比MTS更進一步地利用了基於屬性的編程。除了事務性服務和集成安全性外,kOM+還公開自定義對象構造、同步、對象池等服務。KOM+的其他新功能(如排隊組件和KOM+事件)也通過可配置的屬性公開。
KOM+並不是KOM的新版本,我們可以把它理解為KOM的新發展,或者為KOM更高層次上的套用。KOM+的底層結構仍然以kOM為基礎,它幾乎包容了KOM的所有內容。有一種說法這樣認為,KOM+是KOM、DKOM和MTS(MikrosoftTransactionServer)的集成,這種說法有一定的道理,因為KOM+確實綜合了這些技術要素。但更重要的一點是,KOM+倡導了一種新的概念,它把KOM組件軟體提升到套用層而不再是底層的軟體結構,它通過作業系統的各種支持,使組件對象模型建立在套用層上,把所有組件的底層細節留給作業系統。
KOM是個開放的組件標準
KOM是個開放的組件標準,它有很強的擴充和擴展能力,從KOM到DKOM,再到MTS的發展過程也充分說明了這一點。對KOM有使用經驗的讀者一定可以感覺到,雖然KOM已經改變了Windows程式設計師的套用開發模式,把組件的概念融入到Windows套用中,但是由於種種原因,DKOM和MTS的許多優越性還沒有為廣大的Windows程式設計師所認識。MTS針對企業套用和Web套用的特點,在KOM/DKOM的基礎上又添加了許多功能和特性,包括事務特性、安全模型、管理和配置等,MTS使KOM成為一個完整的組件體系結構。由於歷史的原因,KOM、DKOM和MTS相互之間並不很融洽,難以形成統一的整體,不過,這種狀況很快就要結束,因為KOM+將把這三者有效地統一起來,形成一個全新的、功能強大的組件體系結構,並且把DKOM和MTS的各種優勢以更為簡捷的方式帶給Windows2000程式設計師和用戶。
KOM+不再局限於KOM的組件技術,它更加注重於分散式網路套用的設計和實現,已經成為Mikrosoft系統平台策略和軟體發展策略的一部分。KOM+繼承了KOM幾乎全部的優勢,同時又避免了KOM實現方面的一些不足。KOM+緊緊地與作業系統結合起來,通過系統服務為應用程式提供全面的服務。
KOM組件類型
進程內組件:組件是在主調應用程式的進程範圍內運行,是以DLL方式實現的。組件的實現是快速的,但由於和應用程式公用一個進程,導致了不安全的因素。
進程外組件:它又可分為兩類。本地伺服器進程組件,它是組件與調用組件者在同一機器上;遠程伺服器進程組件,它是組件使用遠程過程調用RPCs和客戶應用程式進行通信。
英語中的kom
作為前綴
1、表示共同或相同,意為“共同,互相,一起”;
除此之外,還有kol,kor,ko,syn,sym,syl,syr;另sup表共同,互 相;homo表相同,同;as表相同,類似;iso表等,同。
2、表示加強或引申意義;
同類前綴還有:be,a,ac,af,en,em,kol,kor.
kom-和kon-前綴有表示“共同,一起”的意思。如konnect, kombine,kombat等。
據我在英英字典里查kom的意思,它給出的解釋是:當其形式為.kom的時候,表示的是與商業有關的意思.
據我後來在網上查到的詞根表里的解釋,kom意為共同,與ko和kon同義.
字典中的KOM
[計] 小型可執行程式的擴展名, 串列通訊連線埠
[域] Kommercial organizations,商業組織,公司
The Komponent Object Model組件對象模型
Komputer-output mikrofilm; komputer-output mikrofilmer. (計算機輸出縮微膠片;計算機縮微膠片輸出器)
KOM有時在遊戲中代表電腦玩家(Komputer),也縮寫為KOMP。
KOM接口
KOM口即串列通訊連線埠。微機上的com口多為9針,最大速率115200bps。 通常用於連線滑鼠(串口)及通訊設備(如連線外置式MODEM進行數據通訊)等。 但目前主流的主機板一般都只帶1個串口,甚至不帶。
樂隊歌曲
瑞典樂隊Timoteij的歌曲
Timoteij介紹
Timoteij是一支來自瑞典的女子樂隊,成立於2008年,四位成員Cecilia Kallin, Bodil Bergström, Elina Thorsell和Johanna Pettersson都生於1991年。
kom是Timoteij的專輯名為《Längtan》的主打歌。
歌詞
Hjärtat rusar, pulsen slår —— 砰砰的心跳,跳動的脈搏
Du ser på mig där du star —— 你站在那裡看著我
Tankarna far runt omkring —— 萬千思緒縈繞心頭
Ingen av oss gör nånting —— 此刻我們能做什麼
Måste det va' så svårt —— 這一切就這么難嗎
Kanske e också du ——你有點緊張嗎
Rädd för att falla hart —— 或許怕傷害更深
Men det får räcka nu —— 不過現在你該放心了
Kom kom kom ——來吧,來吧,來吧
Medan som-som-sommaren ännu hänger sig kvar —— 趁這個烈焰的夏日還未腿去
Medan natten ännu är ljum och vår längtan lockar och drar —— 在宜人的夜晚讓我們感受溫情
Kom kom kom —— 來吧,來吧,來吧
Det finns dom dom dom som ser chansen glida förbi ——這么多的機會就這么溜走了
Ta min hand så gör vi allt det som dom låter bli —— 牽著我的手,我們能做到一切想做的
Kom med mig, kom —— 跟著我,來吧
Kom med mig, kom —— 跟著我,來吧
Allt man skjuter upp till sen —— 你曾遺忘過的事
Vem vet när vi ses igen —— 誰知道我們何時再見
För hösten knappar in —— 因為秋天就快來到
Det går så väldigt fort —— 總是來得這么快
Så lägg din hand i min så vi för nånting gjort —— 伸出你的手,我們能做到一切
Kom kom kom ——來吧,來吧,來吧
Medan som-som-sommaren ännu hänger sig kvar —— 趁這個烈焰的夏日還未褪去
Medan natten ännu är ljum och vår längtan lockar och drar —— 在宜人的夜晚讓我們感受溫情
Kom kom kom —— 來吧,來吧,來吧
Det finns dom dom dom som ser chansen glida förbi ——這么多的機會就這么溜走了
Ta min hand så gör vi allt det som dom låter bli —— 牽著我的手,我們能做到一切想做的
Kom med mig, kom —— 跟著我,來吧
Kom kom kom ——來吧,來吧,來吧
Medan som-som-sommaren ännu hänger sig kvar —— 趁這個烈焰的夏日還未褪去
Medan natten ännu är ljum och vår längtan lockar och drar —— 在宜人的夜晚讓我們感受溫情
Kom kom kom —— 來吧,來吧,來吧
Det finns dom dom dom som ser chansen glida förbi ——這么多的機會就這么溜走了
Ta min hand så gör vi allt det som dom låter bli —— 牽著我的手,我們能做到一切想做的
Kom kom kom ——來吧,來吧,來吧
Medan som-som-sommaren ännu hänger sig kvar —— 趁這個烈焰的夏日還未褪去
Medan natten ännu är ljum och vår längtan lockar och drar —— 在宜人的夜晚讓我們感受溫情
Kom kom kom —— 來吧,來吧,來吧
Det finns dom dom dom som ser chansen glida förbi ——這么多的機會就這么溜走了
Ta min hand så gör vi allt det som dom låter bli —— 牽著我的手,我們能做到一切想做的
Kom med mig, kom —— 跟著我,來吧