• 全部
  • 问答

关于Window OS的问题

littleme741 2001-06-02 03:06:00
问题:
1。如果在网上邻居中看到一台机器下的一个应用程序,双击鼠标就可以执行该程序,现在想知道的是这个程序的具体执行过程是怎么样的?

我是这样理解的:
首先要把该程序的可执行代码载入本地内存中,但该代码可能需要一些动态链库中的内容,然后只能在本地寻找? 如果找不到,就出错。
那就是说,如果有两台机器,A机器除了Windows操作系统,什么也没装,而B机器装了VC,VB等反正什么都装了,而B上有一个应用程序(不妨设为App_B_1)需要这些装了的系统中的某些DLL文件,这样如果在A上启动App_B_1肯定要出错,是不是?
另外,比如App_B_1需要访问注册表或者是文件系统中的一些东西,它是到A机器上寻找还是到B机器上找呢?
我试着做如下解释,因为在Windows系统中,几乎所有的东西都是以对象的形式出现的,文件是对象,进程是对象,事件(比如Event)也是对象,然后由操作系统的对象管理器对对象进行管理,核心态可以通过指针来直接访问这些对象,而用户态就必须通过句柄(handle)才能访问这些对象。对象管理器中有操作对象方法,其中有一个方法为Parse,它用来查找具体的对象,而如果程序是在其他机器上的,这个Parse方法就能去那台机器上找对象?不知道这样理解对不对?而如果这样理解正确的话,就是说如果在A机器上执行B机器上的EXE文件的时候,实际上会在网络上发生多次的包交换?
以上是我的理解,还望高手指正。


2。我们知道通过网上邻居,A机器可以直接执行B机器上的某一个目录(B_DIR_1)一个EXE(B_DIR_1_APP1)文件,也可以把B_DIR_1映射成本地的一个磁盘(比如K),在这两种方式下,执行B_DIR_1_APP1会有什么不同呢?也就是说它们实现的机理是怎么样的?


...全文
31 点赞 收藏 1
写回复
1 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
mycode 2001-06-02
首先,这样的问题不应该在软件工程上来问;
其次:
如果应用程序是不需要访问注册表、系统目录下的某些DLL之类的东西,都常都可以执行;因为程序设计时,都存在一些假设,最大的假设在本机运行,假设本机有一些东西,如何这些东西本机都有,应用程序不管在什么地方,都是可以执行的;
回复
相关推荐
发帖
研发管理
创建于2007-08-27

1203

社区成员

软件工程/管理 管理版
申请成为版主
帖子事件
创建了帖子
2001-06-02 03:06
社区公告
暂无公告