Articles of 虚拟

模拟麦克风(虚拟麦克风)

我有一个问题,我需要“模拟”麦克风输出。 数据将通过networking传输,解码为PCM,基本上需要写入麦克风 – 然后其他程序可以读取/logging/不pipe。 我一直在读alsa,但是信息很稀less。 该文件插件貌似很有前途 – 我正在考虑将一个命名pipe道作为“infile”,然后我可以从我的应用程序传递数据。 我不能得到它的工作(VLC /大胆只是段错误)。 pcm.testing { type file slave { pcm { type hw card 0 device 0 } } infile "/dev/urandom" format "raw" } 有没有更好的方法来做到这一点? 对alsa插件(特别是文件插件)的任何build议?

在Linux上:我们看到以下内容:物理,真实,交换,虚拟内存 – 我们应该考虑哪些尺寸?

我们使用一个工具(Whats Up Gold)监视Linux Box上的内存使用情况。 我们看到内存使用(图表)有关: 物理,真实,交换,虚拟内存和所有内存( 这是所有这些的平均值 )。 'The ALL' Memory graphs show low memory usage of about: 10%. But Physical memory shows as 95% used. Swap memory shows as 2% used. 那么,我需要更多的内存在这个Linux的盒子? 换句话说,我应该走过去: 所有内存图(说内存情况良好)或 物理内存图(说内存情况不好)。

为什么我的c程序突然使用了30g的虚拟内存?

最重要的是,我注意到,我的c程序(使用CUDA 3.2)的虚拟尺寸为28g或更多(查看VIRT),每次运行都从头开始。 这对我来说没有任何意义。 居民的记忆是有道理的,在我最大的数据集上只有2g左右。 我知道在过去的某个时候虚拟大小并不是很大,但是我不确定什么时候发生了变化。 为什么我的程序会使用28g的虚拟内存(或为什么top的VIRT会这么大)呢? 我了解VIRT包含可执行二进制文件(仅437K),共享库和“数据区”。 什么是“数据区”? 如何找出共享库需要多less内存? 我的进程的总内存的其他元素呢? / proc / <pid> / smaps(1022行)的内容: http ://pastebin.com/fTJJneXr 从smaps的条目之一表明,其中之一是最大的,但没有标签…我怎么能找出这个“空白”是28GB的条目? 200000000-900000000 —p 00000000 00:00 0 Size: 29360128 kB Rss: 0 kB Pss: 0 kB Shared_Clean: 0 kB Shared_Dirty: 0 kB Private_Clean: 0 kB Private_Dirty: 0 kB Referenced: 0 kB Anonymous: 0 kB Swap: 0 kB KernelPageSize: […]

如何在Linux上创build虚拟CAN端口? (C ++)

我想创build一个能模拟CAN端口的程序,用于另一个大的应用程序的testing目的。 程序应该通过这个虚拟CAN发送先前logging的数据。 任何人都有这样的经验吗? 我正在考虑build立虚拟的COM,并通过它打包在CAN帧中的数据。 它可以工作吗? 而我怎么能在Linux上build立虚拟COM? 发现这个线程虚拟串行端口的Linux,但不幸的是,我不明白如何才能实现程序的源代码(初级Linux用户和Linux下的程序员)。 很想看看你的经验和build议。

如何创build虚拟Windows驱动器

我试图创build一个Windows虚拟驱动器(如c:\)映射远程存储。 主要目的是以一种清晰的方式向用户进行。 因此,用户不会知道他正在从另一个站点进行书写/阅读。 我正在寻找可用的产品,我发现FUSE不是在Windows和WebDAV直接映射驱动器的选项,我想在窗口和远程存储之间build立一个中间层来实现某种服务。 存在另一种替代scheme,比如Dokan,这非常昂贵,而System.IO.IsolatedStorage命名空间似乎并没有明确地创build一个新的Windows驱动器。 大概pismo( http://www.pismotechnic.com/ )是大部分符合我的要求的东西,但我会知道是否有另一种select,包括一些Windows(C ++或.NET)本机API来做到这一点。 谢谢阅读 :)

为什么Windows为其系统地址空间预留1Gb(或2 Gb)?

众所周知,Windows应用程序通常在32位系统上拥有2Gb的专用地址空间。 这个空间可以通过/ 3Gb开关扩展到3Gb。 操作系统保留其余的4Gb。 我的问题是为什么? 以内核模式(即设备驱动程序代码)运行的代码有自己的地址空间。 为什么在独占的4Gb地址空间之上,操作系统仍然要保留2Gb的每个用户模式进程? 我认为原因是用户模式和内核模式调用之间的转换。 例如,对NtWriteFile的调用将需要一个内核调度例程的地址(因此为什么系统在每个应用程序中预留2Gb)。 但是,使用SYSENTER ,是不是足够的内核模式代码知道哪个函数/服务被调用的系统服务号? 如果您可以向我澄清,为什么操作系统在每个用户模式进程中占用2Gb(或1Gb)是如此重要。

Windows内存映射文件

我试图调查Windows内核相对于内存映射文件/虚拟内存的行为。 具体而言,我有兴趣确定内存映射文件的内容被Windows刷新到磁盘的频率,以及Windows使用什么标准来决定是时候这样做了。 我在网上做了一些研究,除了MSDN更多地处理“怎么样”而不是详细说明内部工作之外,似乎没有太多的信息。 如果任何人可以指向我的任何文章或已经看过这个以前有一些洞察力,我会欢迎它。 谢谢。