首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >子系统到底是什么?

子系统到底是什么?
EN

Stack Overflow用户
提问于 2011-04-26 15:17:18
回答 3查看 2.3K关注 0票数 3

我正在读一本书,书中说有这些子系统:

代码语言:javascript
运行
AI代码解释
复制
win32,os/2,posix,etc..

但是我对这些符号没有任何感性认识,你能用简短的语言解释一下吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-04-26 15:27:14

如果我们知道你指的是哪本书,可能会有所帮助!

更广泛地说,Win32 (32位视窗,即视窗NT3.5或更高版本)、OS/2和POSIX族都是操作系统。(POSIX是类UNIX操作系统中的标准API系列-有关更多信息,请参阅here。)

听起来,您所描述的程序可以在许多不同的操作系统上运行,并且具有特定于操作系统的组件--这些组件就是“子系统”。

然而,以这种方式创建应用程序听起来确实像是15年或20年前所做的事情。这也是人们过去经常提到这三个操作系统家族的时候……

票数 0
EN

Stack Overflow用户

发布于 2013-11-21 14:20:10

我感觉“子系统”的概念有些模糊,或者至少在不同的上下文中有不同的含义。

根据MSDN documentation的说法

环境子系统是模拟不同操作系统环境的Windows NT进程。Windows NT执行程序提供所有环境子系统都可以调用的通用服务,以执行基本的操作系统功能。

Windows Internals book介绍了以下两个子系统:

(它拥有键盘、鼠标和显示器,即使在没有交互用户登录的服务器系统上,它也需要存在。实际上,其他两个子系统(哪两个?)被配置为按需启动,而对于基于

  • Windows的应用程序,Windows子系统必须始终是running."
  • Subsystem,也称为SUAPOSIX

现在,可以发送到微软VS C++链接器的documentation中的/SUBSYSTEM选项说,我引用

您可以指定以下任何一个子系统:

BOOT_APPLICATION在Windows引导环境中运行的应用程序。有关启动应用程序的详细信息,请参阅关于BCD WMI提供程序。

控制台Windows字符模式应用程序。操作系统为控制台应用程序提供了一个控制台。

可扩展固件接口( EFI )映像EFI子系统选项描述在可扩展固件接口环境中运行的可执行映像。此环境通常随硬件一起提供,并在加载操作系统之前执行。EFI图像类型之间的主要区别在于图像加载到的内存位置以及图像调用返回时所采取的操作。当控制返回时,将卸载EFI_APPLICATION图像。仅当control返回错误代码时,才卸载EFI_BOOT_SERVICE_DRIVER或EFI_RUNTIME_DRIVER。从只读存储器中执行EFI_ROM映像。有关详细信息,请参阅Unified EFI论坛网站上的规范。

在没有子系统环境的情况下运行的本机代码-例如,内核模式设备驱动程序和本机系统进程。此选项通常保留用于Windows系统功能。

POSIX在Windows的POSIX子系统中运行的应用程序。

WINDOWS在Windows图形环境中运行的应用程序。这包括桌面应用程序和Windows应用商店应用程序。

WINDOWSCE WINDOWSCE子系统指示应用程序打算在具有Windows CE内核版本的设备上运行。内核的版本包括PocketPC、Windows Mobile、Windows phone7、Windows CEV1.0-6.0R3和Windows Embedded 7。

这就对了。最后,人们有时会谈论"Win32“子系统,我不知道我应该把它理解为"windows”子系统还是链接器选项意义上的“控制台”子系统。

回到Windows Internals这本书中,它进一步指出“每个可执行镜像(.exe)都绑定到一个且只有一个子系统”,这将解释在链接时指定应用程序的子系统的必要性。

票数 4
EN

Stack Overflow用户

发布于 2016-12-31 15:08:50

从NT (NT 3.1)开始的Windows能够支持当时(1993)存在的不同操作系统(或OS系列)的语义。微软称它们为子系统(今天他们可能会称它们为仿真层)。

当链接到一个子系统时,它决定了你的语义是如何的。例如,对于Win32子系统,文件名不区分大小写(foo.txtfOo.Txt指的是同一个文件),设备文件(如connul)存在于每个目录中。对于POSIX子系统,文件名区分大小写,并且设备文件只存在于一个位置。通过将现有(遗留)应用程序链接到不同于Win32的子系统,这些应用程序“感觉”更像是各自的OSes和移植工作减少了。

如果你想知道EXE/DLL的子系统,你可以在DependencyWalker中打开它-如果它(直接或间接)依赖于KERNEL32.DLL,它就是Win32子系统,如果它(直接)依赖于NTDLL.DLL,它就是本机子系统(请注意,KERNEL32.DLL本身将依赖于NTDLL.DLL,为Win32子系统提供兼容层)。

这在今天基本上已经过时了。我说的主要是因为微软在Windows10周年纪念更新中包含了一个新的"Linux子系统“(这是一个像Native,Win32或POSIX的子系统),它的行为与Linux的二进制等效,使得编译Linux应用程序在Windows (或者更准确地说,它的Linux子系统)上运行变得很容易。

Windows开关一开始做的是完全相同的事情,但后来增加了更多的选项(/SUBSYSTEM:CONSOLE也为Win32子系统编译,但如果应用程序没有从其父进程继承,它将分配一个控制台窗口,/SUBSYSTEM:EFI_APPLICATION将编译一个根本不能在Windows上运行的可执行文件,但将在可扩展固件接口(EFI/UEFI)引导环境中运行,等等)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5792498

复制
相关文章
this到底是什么?
this是JavaScript中的一个重要的概念,它的值并不是由声明的位置来决定的,而是由调用的位置来决定。正是因为这个原因在不同的语境下它的值是不一样的,所以它成了面试官最喜欢考察的内容。
kai666666
2020/10/17
5840
eMTC到底是什么?
作为通信行业的救命稻草之一,物联网技术一直都是大家关注的重点。 这其中,我们介绍最多的,就是NB-IoT技术。
鲜枣课堂
2019/07/22
1.7K0
时间到底是什么
与时间有关的东西永远都是那么神秘,哲学家思考时间的本质是什么;物理学家探究时间是否是单向线性的,时间旅行是不是可行的,时间到底是一个点,还是一个维度;神经学家不断去探索大脑是怎么理解时间的,时间的流逝到底意味着什么。
信安本原
2020/05/18
4040
socket到底是什么?
这篇文章我打算从一个初学者的角度开始聊起,让大家了解下我眼里的socket是什么以及socket的原理和内核实现。
小白debug
2023/02/17
8910
socket到底是什么?
newSQL 到底是什么?
互联网在本世纪初开始迅速发展,互联网应用的用户规模、数据量都越来越大,并且要求7X24小时在线。
dys
2019/12/15
1.3K0
*aaS到底是什么?
感谢支持ayqy个人订阅号,每周义务推送1篇(only unique one)原创精品博文,话题包括但不限于前端、Node、Android、数学(WebGL)、语文(课外书读后感)、英语(文档翻译) 如果觉得弱水三千,一瓢太少,可以去 http://blog.ayqy.net 看个痛快
ayqy贾杰
2019/07/23
2.3K0
*aaS到底是什么?
ADC到底是什么?
在芯片世界中的ADC,其全称是Analog-to-Digital Converter, 模拟数字转换器!它是连接模拟世界与数字世界的桥梁。
单片机技术宅
2021/11/12
2.9K0
ADC到底是什么?
inode到底是什么?
我看到这个inode信息,还有使用率,直接看傻了,这啥玩意儿啊? 于是去百度了一下
meowrain
2021/04/22
4.3K0
inode到底是什么?
Salesforce到底是什么?
欢迎了解Salesforce!Salesforce改变了技术的游戏规则,有很多提高生产力的功能,这将会帮助你更快速和聪明的销售。下面我们将会介绍这些功能并会回答这个问题,“Salesforce是什么”?
臭豆腐
2019/04/16
2.4K0
Salesforce到底是什么?
架构到底是什么?
提到架构,大家常常会将架构(Architecture)和框架(Framework)混为一谈。
架构精进之路
2020/08/17
1.7K0
架构到底是什么?
WebService到底是什么?
一、序言 大家或多或少都听过WebService(Web服务),有一段时间很多计算机期刊、书籍和网站都大肆的提及和宣传 WebService技术,其中不乏很多吹嘘和做广告的成分。但是不得不承认的是WebService真的是一门新兴和有前途的技术,那么 WebService到底是什么?何时应该用? 当前的应用程序开发逐步的呈现了两种迥然不同的倾向:一种是基于浏览器的瘦客户端应用程序,一种是基于浏览器的富客户端应用程序(RIA),当然后一种技术相对来说更加的时髦一些(如现在很流行的Html5技术),这里主要讲前
Java学习123
2018/05/16
2.3K0
SSLPod 到底是什么?
SSLPod 是 DNSPod 提供的一款证书监控服务,集合 HTTPS 站点安全检测、证书管理及异常告警等功能于一体的系统。 SSLPod 致力于帮助企业更高效、安全的管理 SSL 证书,一站式解决所有可能因证书导致网站无法访问的问题,包括证书有效期、安全漏洞、合规监控等,从此让运维管理者高枕无忧。 SSLPod 提供了以下服务: 可视化监控面板 证书集中化管理 证书监测报告 监控及实时告警 HTTPS 安全评级 证书品牌、有效期、SSL 漏洞、PCI DSS & ATS合规监控 全局查看证书的安全信息,
腾讯云DNSPod团队
2023/05/04
4000
SSLPod 到底是什么?
WSGI到底是什么?
在用Python Web开发时经常会遇到WSGI,所以WSGI到底是什么呢?本文我们一起来揭开WSGI神秘的面纱!
oYabea
2020/09/07
1.1K0
UI到底是什么?
●近年来随着互联网的发展,提升人机交互的UI设计师成为近年来互联网的热门行业,UI设计师也成为了有前途+“钱”途的职业之一。很多小伙伴都不理解什么是UI,今天我带大家来浅识一下吧!
全栈开发日记
2022/05/13
1.3K0
UI到底是什么?
PMF到底是什么?
关注的数据指标在不同行业、不同业务模式的产品中对应的数值应该是不同的,核心思想在于需要找到一些关键的数据指标,然后通过数据指标来判断产品是否达到了PMF的标准。
葆宁
2022/01/06
8610
PMF到底是什么?
进程到底是什么?
进程是大多数系统的工作单元,可以将进程看作执行的程序。虽然在传统操作系统中进程包括线程,但其实在一些RTOS中,线程、任务和进程的概念都很模糊,可以说进程≈线程=任务。但无论是在常规操作系统还是实时操作系统中,进程或者说线程和任务都是最重要的概念之一。
跋扈洋
2022/12/03
7830
进程到底是什么?
ArrayList到底是什么?
ArrayList是日常开发中使用最频繁的集合类。首先这边简单介绍一下ArrayList:
我就是马云飞
2018/12/19
9510
RESTful 架构到底是什么?
REST这个词,是Roy Thomas Fielding在他2000年的博士论文中提出的。
JavaEdge
2021/10/18
6300
MES系统到底是什么?
1992年,美国成立以宣传MES思想和产品为宗旨的贸易联合会——MES国际联合会(MESA International;
yansunxer
2021/08/11
2.8K0
MES系统到底是什么?
功能点到底是什么?
功能点(Function Points)是度量软件规模的一个标准度量单元。简单的说, 一个软件的大小可以通过交付给用户的功能点数来度量,就如一间房子的大小通过提供给用户的建筑面积或使用面积来度量一样。功能点方法是是从用户视角出发,通过量化系统功能来度量软件的规模,这种度量主要基于系统的逻辑设计。功能点规模度量方法在国际上的应用已经比较广泛,并且已经取代代码行成为主流的软件规模度量方法。功能点方法进入国内也有近15年的时间。在2013年由工业和信息化部发布的行业标准《软件研发成本度量规范》中也推荐使用功能点方法进行软件规模度量,进而对软件项目工作量、工期、成本进行估算。
嘉量云 政企软件造价专家
2021/07/22
2.3K0

相似问题

到底是什么?

14

"-<“到底是什么?

12

“内存子系统”的定义是什么?

22

补丁到底是什么?

29

getGlobalVisibleRect()到底是什么?

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文