我想尝试写我自己最小的NT子系统在Windows 7上的纯粹的教育目的 - 有点像一个最基本的等效posix.exe在微软的子系统基于UNIX的应用.
但我似乎无法找到有关此主题的任何公开文档.子系统需要实现什么API?它是如何在Windows注册的?如何构建子系统映像(需要在PE头中设置哪些标志等)?
我最希望找到一本书或网站,其中包含整个主题的概述,甚至是其他人编写的"hello world"NT子系统的源代码.但是,如果你能指出我正确的方向,那么任何事情都会受到赞赏......
在终端中运行此命令:
scp -p -P 29418 michealvern.genzola@192.168.0.122:hooks/commit-msg "jyei-erp/.git/hooks/"
Run Code Online (Sandbox Code Playgroud)
返回以下错误:
通道 0 上的子系统请求失败
scp:连接已关闭
如何解决这个问题?
刚刚更新到最新的Windows 10版本(build 14316),我立即开始使用WSL,Windows子系统Linux,它应该在Windows上运行Ubuntu安装.
也许我正在尝试在其上安装Apache,但是有人请解释我为什么这是不可能的.
无论如何,在安装过程中(sudo apt-get install apache2),我在下载并正确安装依赖项后收到以下错误消息:
initctl: Unable to connect to Upstart: Failed to connect to socket /com/ubuntu/upstart: No such file or directory
runlevel:/var/run/utmp: No such file or directory
* Starting web server apache2 *
* The apache2 configtest failed.
Output of config test was:
mktemp: failed to create directory via template '/var/lock/apache2.XXXXXXXXXX': No such file or directory
chmod: missing operand after '755'
Try 'chmod --help' for more information.
invoke-rc.d: initscript apache2, action "start" failed.
Setting up ssl-cert …Run Code Online (Sandbox Code Playgroud) 我正在创建一个基于组件的游戏对象系统.一些技巧:
GameObject只是一个清单Components.GameSubsystems.例如,渲染,物理等.每个都GameSubsystem包含一些指针Components.GameSubsystem是一个非常强大和灵活的抽象:它代表了游戏世界的任何片段(或方面).有在登记的机构的需要Components在GameSubsystems(当GameObject被创建和组成).有4种方法:
Component都提供给每一个人GameSubsystem.GameSubsystem做出Components注册(以及如何组织它们)的决定.例如,GameSubsystemRender可以注册可渲染组件.亲.Components对它们的使用方式一无所知.低耦合.答:我们可以添加新的GameSubsystem.例如,让我们添加注册所有ComponentTitle的GameSubsystemTitles,并保证每个标题都是唯一的,并提供按标题查询对象的接口.当然,在这种情况下,ComponentTitle不应该被重写或继承.B.我们可以重组现有的GameSubsystems.例如,GameSubsystemAudio,GameSubsystemRender,GameSubsystemParticleEmmiter可以合并到GameSubsystemSpatial中(将所有音频,发声器,渲染Components放在同一层次结构中并使用父相对变换).
CON.每一次检查.效率很低.
CON.Subsystems知道Components.
Subsystem搜索Components特定类型.亲.比以往更好的表现Approach 1.
CON.Subsystems还是知道的Components.
Component注册自己GameSubsystem(s).我们在编译时知道有一个GameSubsystemRenderer,所以让我们的ComponentImageRender会调用类似GameSubsystemRenderer :: register(ComponentRenderBase*)的东西.Component订阅"更新"事件(发送者 …我正在读一本书,书中说有这些子系统:
win32,os/2,posix,etc..
Run Code Online (Sandbox Code Playgroud)
但我对这些符号没有任何感性认识,你能用简短的话解释一下吗?
你怎么能管理这样的事情?我尽力将子系统设计为可重用的,但是只有某些必须自定义的站点特有的东西(例如,Account实体中的字段,或orm注释中的cfc ="").
我想到了使用SVN并扩展了自定义,但是我们发现它非常麻烦,因为提交者每次都必须决定属于卡车或分支的增强/错误修复,一旦错过了某些内容,就不容易撤消.
那么...处理这种情况的最佳方法是什么?只需将代码集克隆到新的源代码控制中,并修复两个/所有源代码控件上的错误?
在恢复模式下运行标准Windows 7安装磁盘时,如果打开命令行并运行自定义构建的应用程序,则会收到错误"子系统不受支持".我尝试使用/ SUBSYSTEM:CONSOLE,WINDOWS和NATIVE进行链接,这些都不起作用.
我对分区表有点困难(并且可能发现了一个错误,或者至少是来自Windows中包含的分区管理器的"愚蠢"行为),因此编写了一个实用程序来修复它.我的程序使用'Windows.h'进行导入CreateFile,但是如果需要,我只能使用标准C++(甚至是标准C),没有特定于Windows的标题.
要使应用程序运行,我需要做什么?
我们在Equinox OSGi运行时运行我们的应用程序.有一个扩展机制,与OSGi本身一起用于从第二方/第三方加载插件.问题是这些插件可能会引入干扰"核心"应用程序或其他插件的软件包.
这就是为什么我正在尝试使用Aries Subsystem 2.0.10来引入一些捆绑范围,并避免干扰"核心"应用程序和其他插件,也允许插件开发人员使用常见库的版本(例如Spring) )他们想要的.
目前,我从插件包集合中生成ESA,并在OSGi框架中安装Application类型的子系统.问题在启动子系统时开始,我们的扩展机制(在内核区域内)依赖于为子系统内的启动包集合触发的BundleEvents,但是子系统部署在它自己的Region中,因此bundle事件被过滤,并且永远不会到达内核区域的监听器.
有没有办法从内核区域的子系统区域接收BundleEvents,而不使用子系统内部的"人工"捆绑包在某些全局事件总线上重新传输所述事件?
我从块子系统中检索第一个设备信息.例如,将USB记忆棒分配给/ dev/sdb.这是我可以通过块子系统检索的所有信息:
[(u'DEVLINKS', u'/dev/disk/by-id/usb-Generic_Flash_Disk_63F2B6EC-0:0 /dev/disk/by-label/Fedora-Live-Desktop-x86_64-20-1 /dev/disk/by-path/pci-0000:00:1d.0-usb-0:1.2:1.0-scsi-0:0:0:0 /dev/disk/by-uu
id/2013-12-12-00-56-55-00'),
(u'DEVNAME', u'/dev/sdb'),
(u'DEVPATH', u'/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0/host74/target74:0:0/74:0:0:0/block/sdb'),
(u'DEVTYPE', u'disk'), (u'ID_BUS', u'usb'),
(u'ID_FS_APPLICATION_ID', u'GENISOIMAGE\\x20ISO\\x209660\\x2fHFS\\x20FILESYSTEM\\x20CREATOR\\x20\\x28C\\x29\\x201993\\x20E.YOUNGDALE\\x20\\x28C\\x29\\x201997-2006\\x20J.PEARSON\\x2fJ.SCHILLING\\x20\\x28C\\x29\\x202006-2007\\x20CDRKIT\\x20TEAM'),
(u'ID_FS_BOOT_SYSTEM_ID', u'EL\\x20TORITO\\x20SPECIFICATION'),
(u'ID_FS_LABEL', u'Fedora-Live-Desktop-x86_64-20-1'),
(u'ID_FS_LABEL_ENC', u'Fedora-Live-Desktop-x86_64-20-1'),
(u'ID_FS_SYSTEM_ID', u'LINUX'),
(u'ID_FS_TYPE', u'iso9660'),
(u'ID_FS_USAGE', u'filesystem'),
(u'ID_FS_UUID', u'2013-12-12-00-56-55-00'),
(u'ID_FS_UUID_ENC', u'2013-12-12-00-56-55-00'),
(u'ID_FS_VERSION', u'Joliet Extension'),
(u'ID_INSTANCE', u'0:0'),
(u'ID_MODEL', u'Flash_Disk'),
(u'ID_MODEL_ENC', u'Flash\\x20Disk\\x20\\x20\\x20\\x20\\x20\\x20'),
(u'ID_MODEL_ID', u'6387'),
(u'ID_PART_TABLE_TYPE', u'dos'),
(u'ID_PART_TABLE_UUID', u'5513338d'),
(u'ID_PATH', u'pci-0000:00:1d.0-usb-0:1.2:1.0-scsi-0:0:0:0'),
(u'ID_PATH_TAG', u'pci-0000_00_1d_0-usb-0_1_2_1_0-scsi-0_0_0_0'),
(u'ID_REVISION', u'8.07'),
(u'ID_SERIAL', u'Generic_Flash_Disk_63F2B6EC-0:0'),
(u'ID_SERIAL_SHORT', u'63F2B6EC'),
(u'ID_TYPE', u'disk'),
(u'ID_USB_DRIVER', u'usb-storage'),
(u'ID_USB_INTERFACES', u':080650:'),
(u'ID_USB_INTERFACE_NUM', u'00'),
(u'ID_VENDOR', u'Generic'),
(u'ID_VENDOR_ENC', u'Generic\\x20'),
(u'ID_VENDOR_ID', u'058f'),
(u'MAJOR', u'8'),
(u'MINOR', u'16'),
(u'MPATH_SBIN_PATH', u'/sbin'),
(u'SUBSYSTEM', …Run Code Online (Sandbox Code Playgroud) 在我的 Web 应用程序中,我需要使用我的日志记录框架。该框架由每个 web 应用程序加载,就像一个 jar 依赖项。
为了禁用 jboss 日志子系统,我尝试创建一个
jboss-deployment-structure.xml
Run Code Online (Sandbox Code Playgroud)
文件复制到:
(firt try)- webapplication.war\WEB-INF\
(second try) - webapplication.war\WEB-INF\lib\my_framework.jar\META-INF\
Run Code Online (Sandbox Code Playgroud)
该文件的内容是:
<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
<deployment>
<exclusions>
<module name="org.jboss.as.logging (or org.jboss.logging)" />
</exclusions>
</deployment>
Run Code Online (Sandbox Code Playgroud)
但日志过程中似乎没有任何变化。我检查了框架 MANIFEST.MF 并且没有导入其他依赖项。
我还意识到,通过从 standalone.xml 取消日志子系统,自定义日志框架可以正常工作。
我在 Ubuntu WSL 中使用 vscode,几个小时前它工作正常,但当我开始编写 js 时突然停止工作。
我尝试删除并重新安装 vscode 但这不起作用并出现错误:无法找到包代码 当我尝试清除时出现
vscode远程连接wsl时出现如下错误:
2020-09-30 09:20:11.585] Resolving wsl+Ubuntu, resolveAttempt: 1
[2020-09-30 09:20:11.625] Starting VS Code Server inside WSL (Ubuntu)
[2020-09-30 09:20:11.625] Extension version: 0.44.5, Windows build: 19041. Multi distro support: available. WSL path support: enabled
[2020-09-30 09:20:11.756] Probing if server is already installed: C:\WINDOWS\System32\wsl.exe -d Ubuntu -e sh -c "[ -d ~/.vscode-server/bin/e5e9e69aed6e1984f7499b7af85b3d05f9a6883a ] && printf found || ([ -f /etc/alpine-release ] && printf alpine-; uname -m)"
[2020-09-30 09:20:11.886] Probing result: found …Run Code Online (Sandbox Code Playgroud) 是否有Perl命令可以让我获得任何给定二进制文件的最低支持操作系统?
您可以通过运行"link/dump/headers [binaryFile]"并查找"子系统版本"链接来手动获取该信息.我不想使用它,因为它真的很糟糕.
谢谢
subsystem ×12
windows ×4
c++ ×2
java ×2
linux ×2
apache2 ×1
architecture ×1
aries ×1
cfc ×1
coldfusion ×1
components ×1
equinox ×1
gerrit ×1
javascript ×1
logging ×1
osgi ×1
perl ×1
python ×1
pyudev ×1
scp ×1
ssh ×1
svn ×1
terminology ×1
ubuntu ×1
usb ×1
version ×1
wildfly-9 ×1
windows-nt ×1