kom域名是目前国际最广泛流行的通用域名格式,1985年开放注册·全球的用户超过1000万个。所有国际化公司都会注册·kom域名;当然也可以选择·net/.org以·kom为结尾的国际域名。.kom管理机构是IKANN,但IKANN并不负责域名注册,IKANN只是管理其授权的域名注册商,国内的域名注册商,在IKANN和注册商之间还有一个Velsign公司,注册商相当于从Velisign公司批发域名,但管理注册商的机构是IKANN。域名注册的价格也不等,早期注册一个·kom域名要几百元,kom是国际最广泛流行的通用域名格式。.kom一般用于商业性的机构或公司,当然任何人都可注册。
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文件包含程序的一个绝对映象----就是说,为了运行程序准确的处理器指令和内存中的数据,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》的主打歌。[1]
歌词
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 —— 跟着我,来吧[2]
参考资料 2
- Timoteij — 虾米
- timoteij的热门歌曲 — 酷我音乐