草庐IT

权限虚拟化

全部标签

linux - 虚拟内存澄清 - 大连续内存的分配

我有一个应用程序,我必须在Windows上(使用operatornew)分配相当大的内存空间(数百MB)。该应用程序是32位的(我们现在不使用64位,即使在64位系统上也是如此)并且我启用了/LARGEADDRESSAWARE链接器选项以便能够使用4GB的用户空间内存。问题如果我需要分配,比如450MB的连续内存,进程的虚拟地址空间是否需要有足够大的连续空间和另外物理内存不必在系统上碎片化?我问这个是因为我可以这样做,以便我的应用程序保留足够大的连续空间,但不知道系统上的其他应用程序是否会以这种方式影响我。操作系统页表是否需要将应用程序看到的连续虚拟地址转换为连续物理地址?

c - 虚拟地址如何转换为其在后备存储上的物理地址?

我们有地址转换表来将进程的虚拟地址(VA)转换为其在RAM中的相应物理地址,但如果该表没有任何VA条目,则会导致页面错误,内核会转到后备存储(通常是硬盘驱动器)并获取相应的数据并更新RAM和地址转换表。所以我的问题是操作系统如何知道后备存储中VA对应的地址是什么?它有单独的翻译表吗? 最佳答案 进程从分配虚拟内存开始。当程序开始实际寻址虚拟内存地址时,最终将导致页面错误。操作系统知道内存访问是有效的。因为它是显式分配的。所以没有造成任何伤害,操作系统只是将VM地址映射到物理地址。如果页面错误是针对一个地址,而该地址之前不是被请求为有

windows - 如何编写一个以 SYSTEM 权限运行的 Windows 8 软件?

对于标题中的错误措辞,我深表歉意,但这里有更多的上下文。我最近买了一台Windows8笔记本电脑,发现诺顿已预装并以SYSTEM级别权限运行。因此,我想到必须有某种方式让第三方应用程序以SYSTEM权限运行。然而,经过多次谷歌搜索后,我无法弄清楚是API调用还是注册表设置或其他完全允许诺顿执行此操作的东西,所以我决定询问SO社区。如何编写以SYSTEM权限运行的应用程序? 最佳答案 服务可以配置为以多个不同的帐户运行,包括LOCALSERVICE、NETWORKSERVICE、SYSTEM或任何用户的帐户。不推荐使用SYSTEM,因

c++ - 是否可以强制Linux在释放后使虚拟内存失效

在Windows上,我注意到尝试取消引用指向最近释放的内存的指针会导致崩溃,并被VisualStudio困住,指出内存无效。这符合预期。但是,执行相同的应用程序和代码路径导致取消引用指向最近释放的内存的指针不会立即导致Linux崩溃。这向我表明Linux内核(或GNUC++运行时)不会很快使释放的内存失效,即使在调试版本上也是如此。该应用程序需要更长的时间才能崩溃。是这样吗?如果是这样,我可以强制更快地取消映射内存吗?如果不是,那是怎么回事? 最佳答案 你试过了吗http://valgrind.org/?它的目的是帮助追踪问题,例如

windows - 在 Windows 中,如何为没有安装权限的用户进行按用户安装?

我的用户通常在锁定的工作站上工作。他们缺乏管理员权限,无法为自己安装软件。过去,我将我的应用程序设计为按机器安装,而不是按用户安装。管理员将我的应用程序安装在工作站上,然后使用该工作站的每个人都可以使用该应用程序。现在我正在考虑切换到每用户安装,但我不知道这在我的用户环境中如何工作。管理员有没有办法说“使用我的权限安装此应用程序不是为我,而是为用户X?”管理员是否必须一次安装一个用户,或者是否有办法一次性完成一批安装?简而言之,我是让IT员工的工作变得更容易、更难还是不可能?这是否取决于我的安装程序?(我正在使用WindowsInstaller。) 最佳答案

c - OSX/iOS 上的虚拟内存与 Windows 提交/保留行为

将OSX/iOS中的虚拟内存系统行为与Windows中的虚拟内存系统行为进行比较时,我有点困惑。WindowsVirtualAlloc()相关函数及其在保留和实际内存提交和取消提交方面的行为相当简单。对于没有很好讨论的OSX,我一直在研究mach_vm_allocate()、mach_vm_map()等。例如,如果我想创建一组跨平台函数来公开Windows和OSX/iOS之间的公共(public)虚拟内存功能,我将如何管理与Windows相比,OSX上的提交/取消提交之间的区别?因为我不确定我是否理解您是否可以保留虚拟地址范围并将其作为像在Windows上一样的单独操作提交?根据我的理

Python - 获取windows文件夹ACL权限

我正在寻找使用Python27获取文件夹ACL权限的示例。我需要这样的结果:domain\username-FullControl,domain\usernameModify谢谢! 最佳答案 这是使用TimGolden的wmimodule的WMI示例.它选择Win32_LogicalFileSecuritySetting的一个实例对于给定的路径。它调用GetSecurityDescriptor方法来获取Win32_SecurityDescriptor.我用它来创建Ace和FileSecuritynamedtuple实例。我添加了一些

c++ - 以提升的权限运行时如何正确检测网络驱动器

我正在开发一个需要在Windows上正确检测所有已用驱动器盘符的应用程序。为此,我使用了GetLogicalDrives()函数。此功能工作正常,除非用户以提升的权限启动我的应用程序(即,使用属于“管理员”组的帐户登录的用户并通过选择“以管理员身份运行”选项启动我的应用程序)。在这种情况下,GetLogicalDrives()无法检测到机器上映射的网络驱动器。问题的根本原因似乎是在这种情况下Windows并行运行2个用户session。我的应用程序在“提升权限”session中运行,而驱动器映射在“非提升”session中:https://support.microsoft.com/e

windows - 来自 Windows 的 Unix 权限

我有一个D-LinkDNS-323NAS,运行某种Linux作为其操作系统。我在WindowsVista(UltimateSP2)中将卷映射为共享。该共享上有一些我无法更改/删除的目录和文件-无论我尝试什么。尝试所有Windows安全/权限对话框都不起作用,因为文件所有者是“Unix/root”并且所有其他Windows用户都具有只读权限。我设法通过ssh进入操作系统并验证这些文件属于“root”——我登录时使用的用户,而所有其他文件(我可以更改的文件)属于“nobody”。一切都很好,当我在ssh中时,我总是可以“chmod+w”文件,或者“chownnobody”。但我的问题是:如

windows - 如何让我的程序在 Windows 7 启动时以不同的权限运行?

我试图添加在Windows7启动时运行的程序,但它不起作用。我的程序有一个嵌入式UAClist。我目前的方法是在HKCU..\Run添加一个字符串值。我从http://social.technet.microsoft.com/Forums/en/w7itprosecurity/thread/81c3c1f2-0169-493a-8f87-d300ea708ecf找到了Vista的手动解决方案ClickStart,rightclickonComputerandchoose“Manage”.Click“TaskScheduler”ontheleftpanel.Click“CreateTas