标签: virtualization

虚拟化对加密强随机数生成器的影响是什么?

/ dev/random和/ dev/urandom使用环境噪声来产生随机性.

使用虚拟化服务器,在一个硬件配置上可以有多个操作系统实例.这些操作系统都将从相同的环境噪声中获取随机性.

这是否意味着随机数生成器强度降低,因为所有操作系统实例都基于相同输入的计算?或者,是否将环境噪声划分为不共享?

如果后者是真的,我可以看到这降低了/ dev/urandom的有效性,因为它重用了它的内部池并减少了环境输入,降低了熵.

/ dev/random应该没问题,因为它会阻塞,直到获得足够的噪声......除非OS实例都共享输入.

那么,问题是:虚拟化对加密强随机数生成器的影响是什么,特别是那些使用环境噪声的生成器?

random virtualization cryptography

9
推荐指数
1
解决办法
456
查看次数

WPF ListBox虚拟化会搞砸所显示的项目

问题

我们需要在WPF ListBox控件中有效地显示大量(> 1000)个对象.我们依靠WPF ListBox的虚拟化(通过VirtualizingStackPanel)来有效地显示这些项目.

错误:使用虚拟化时,WPF ListBox控件无法正确显示项目.

如何再现

我们已将问题提炼到下面显示的独立xaml中.

将xaml复制并粘贴到XAMLPad中.

最初,ListBox中没有选定的项目,因此按预期,所有项目大小相同,并且它们完全填充可用空间.

现在,单击第一个项目.正如预期的那样,由于我们的DataTemplate,所选项目将展开以显示其他信息.

正如预期的那样,这会导致水平滚动条出现,因为所选项目现在比可用空间更宽.

现在使用鼠标单击并将水平滚动条拖动到右侧.

错误:未选择的可见项目不再拉伸以填充可用空间.所有可见项目的宽度应相同.

这是一个已知的错误?有没有办法通过XAML或以编程方式解决这个问题?


<Page 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:sys="clr-namespace:System;assembly=mscorlib" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" >
    <Page.Resources>

        <DataTemplate x:Key="MyGroupItemTemplate">
            <Border Background="White"
                    TextElement.Foreground="Black"
                    BorderThickness="1"
                    BorderBrush="Black"
                    CornerRadius="10,10,10,10"
                    Cursor="Hand"
                    Padding="5,5,5,5"
                    Margin="2"
                    >
                <StackPanel>
                    <TextBlock Text="{Binding Path=Text, FallbackValue=[Content]}" />
                    <TextBlock x:Name="_details" Visibility="Collapsed" Margin="0,10,0,10" Text="[xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx]" />
                </StackPanel>
            </Border>
            <DataTemplate.Triggers>
                <DataTrigger Binding="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type ListBoxItem}},Path=IsSelected}"
                             Value="True">
                    <Setter Property="TextElement.FontWeight"
                            TargetName="_details"
                            Value="Bold"/>
                    <Setter Property="Visibility"
                            TargetName="_details"
                            Value="Visible"/>
                </DataTrigger>
            </DataTemplate.Triggers>
        </DataTemplate>

    </Page.Resources>

    <DockPanel x:Name="LayoutRoot">

        <Slider x:Name="_slider"
                DockPanel.Dock="Bottom" 
                Value="{Binding FontSize, ElementName=_list, Mode=TwoWay}" 
                Maximum="100" …
Run Code Online (Sandbox Code Playgroud)

wpf virtualization listbox

9
推荐指数
1
解决办法
5151
查看次数

应用程序虚拟化如何实施?

我试图了解像App-V和sandboxie(http://www.sandboxie.com/)这样的软件是如何工作的.但对于我的生活,我想不出任何可能使这成为可能的事情.他们如何拦截API调用并欺骗目标软件?如果有人会说它只是魔法和小精灵,我会相信它们.但是说真的,有没有白皮书讨论这个问题的解决方案?

如果这在CLR级别上是可能的那么那将是好的但是如果必须的话我愿意去本地.

.net c# c++ virtualization native

9
推荐指数
1
解决办法
3239
查看次数

ScrollViewer的视口高度VS实际高度

两者都是相当笼统的术语,但我很想知道这些高度何时会与我们使用虚拟化的情况不同?

还有一个问题:我在MSDN上阅读:

如果CanContentScroll为true,则ExtentHeight,ScrollableHeight,ViewportHeight和VerticalOffset属性的值是项目数.如果CanContentScroll为false,则这些属性的值为"设备无关像素".

但是我遇到了ViewPort Height的问题:我在应用程序中有2个列表框:
1.启用了虚拟化并且CanContentScroll = True.
2.哪些没有虚拟化,CanContentScroll = True.

在ListBox 1中,拖放视口高度达到4/5(当前可见的元素数).但是在ListBox 2中,我得到的视口高度等于列表框的实际高度.

为何如此区别?

更多的发现:
1.可滚动高度是滚动查看器2中不可见的项目数
.视口高度是滚动查看器中可见的项目数.
因此,视口高度+ ScrollableHeight =范围高度

有人可以解释两个列表框之间有什么区别吗?在Listbox 1的情况下我需要ViewPort hieght

wpf virtualization listbox scrollviewer actualheight

9
推荐指数
2
解决办法
2万
查看次数

如何在ListView中为不可见(虚拟化)项绑定IsSelected

我需要处理WPF应用程序中的大量数据.

我已将大型集合绑定到ListView,并且我使用ItemContainerStyle将列表项的IsSelected属性绑定到我的对象的IsSelected属性,以便在选中该项时ListView,my objects的IsSelected属性也将设置为true.通过这样做,我可以轻松地仅对列表中已选择的对象执行命令.

我在ListView中使用UI虚拟化,因为应用程序会缓慢.但是因为我的整个集合中只有一部分在列表中可见,所以当我使用CTRL + A选择列表中的所有项目时,只有加载的项目的IsSelected属性设置为true.不可见的项目(虚拟化的项目)的IsSelected属性设置为false.这是一个问题,因为当我选择列表中的所有项目时,我希望该IsSelected属性对于集合中的所有项目都设置为true.

我已经创建了一些示例代码来说明问题:

MainWindow.xaml

<Window x:Class="VirtualizationHelp.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="350" Width="525" x:Name="wnd">
<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"/>
        <RowDefinition/>
    </Grid.RowDefinitions>
    <Button Grid.Row="0" Content="Click me" Click="Button_Click" />
    <ListView Grid.Row="1" ItemsSource="{Binding Path=Persons, ElementName=wnd}">
        <ListView.ItemContainerStyle>
            <Style TargetType="{x:Type ListViewItem}">
                <Setter Property="IsSelected" Value="{Binding Path=IsSelected, Mode=TwoWay}"/>
            </Style>
        </ListView.ItemContainerStyle>
    </ListView>
</Grid>
</Window>
Run Code Online (Sandbox Code Playgroud)

MainWindow.xaml.cs

using System.Collections.Generic;
using System.Linq;
using System.Windows;
using System.Windows.Controls;

namespace VirtualizationHelp
{
    public partial class MainWindow : Window
    { …
Run Code Online (Sandbox Code Playgroud)

wpf virtualization ui-virtualization

9
推荐指数
1
解决办法
1919
查看次数

WPF Datagrid:延迟加载/ Inifinite滚动

我用250行填充Datagrid.当用户使用滚动条向下滚动时(例如,低于75%),我想从数据库中获取接下来的250行,依此类推.我们的想法是,网格可能有数百万个结果,我们不希望将它们全部加载,直到用户请求它们为止.这有一个现有的机制吗?

编辑:因为似乎有很多困惑:我不是在寻找标准数据虚拟化解决方案,我已经使用过它们了.但是它们都要求你提前指定"虚拟行"的数量,而这个查询对我来说代价很高.他们之所以需要它,是因为当你知道网格中的总项数时,它会更容易计算当前页面/偏移量等.但是计算该数量是一个非常昂贵的SQL查询,所以我想迁移到另一个我可以跳过COUNT()查询的解决方案.

database wpf virtualization datagrid scroll

9
推荐指数
2
解决办法
1万
查看次数

虚拟并行端口仿真器

在我的计算机网络课程中,我们应该通过使用本机寄存器来学习并行端口编程(比如使用outportb之类的命令).我没有并行端口(因为我住在2011年)但想要练习程序(我使用dosbox安装了旧的turboc 3 IDE).是否有一个模拟并行端口的程序,如此程序模拟串口?

c virtualization emulation device

9
推荐指数
1
解决办法
6654
查看次数

虚拟机

我一直试图弄清楚VMware是如何工作的(特别是安装Linux时),我有几个问题:

  1. VMware遇到类似命令时会发生什么push cs?特别是cs,因为它的权限级别为0,VMware运行在1个权限级别,所以我假设它不得不将其转换为其他命令.

  2. 虚拟内存:它如何在虚拟机上运行?有2级翻译 - 进程虚拟内存 - >虚拟机物理内存 - >真机物理内存?当真实机器交换页面时,如何通知VMware?

virtualization vmware virtual-memory

9
推荐指数
1
解决办法
614
查看次数

docker attach vs lxc-attach

更新:Docker 0.9.0现在使用libcontainer,从LXC转移请参阅:将进程附加到Docker libcontainer容器

我正在运行弹性搜索:

docker run -d -p 9200:9200 -p 9300:9300 dockerfile/elasticsearch
Run Code Online (Sandbox Code Playgroud)

检查它显示的过程如下:

$ docker ps --no-trunc
CONTAINER ID                                                       IMAGE                             COMMAND                                           CREATED             STATUS              PORTS                                            NAMES
49fdccefe4c8c72750d8155bbddad3acd8f573bf13926dcaab53c38672a62f22   dockerfile/elasticsearch:latest   /usr/share/elasticsearch/bin/elasticsearch java   About an hour ago   Up 8 minutes        0.0.0.0:9200->9200/tcp, 0.0.0.0:9300->9300/tcp   pensive_morse   
Run Code Online (Sandbox Code Playgroud)

现在,当我尝试连接正在运行的容器时,我得到堆积:

$  sudo docker attach 49fdccefe4c8c72750d8155bbddad3acd8f573bf13926dcaab53c38672a62f22
[sudo] password for lsoave:
Run Code Online (Sandbox Code Playgroud)

tty没有连接,提示没有回来.使用lxc-attach做同样的工作正常:

$ sudo lxc-attach -n 49fdccefe4c8c72750d8155bbddad3acd8f573bf13926dcaab53c38672a62f22
root@49fdccefe4c8:/# ps -ef
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0 49 20:37 ?        00:00:20 /usr/bin/java -Xms256m -Xmx1g -Xss256k -Djava.awt.headless=true -XX:+UseParNewGC …
Run Code Online (Sandbox Code Playgroud)

linux virtualization lxc docker

9
推荐指数
1
解决办法
4894
查看次数

Docker容器IO性能

我正在尝试调查docker的IO性能开销,所以我在特定的机器上创建了一个mysql docker容器,并运行了sysbench mysql基准来测量IO性能.Sysbench基本上在一段时间内执行一些读/写事务,然后输出已完成事务的数量和事务/秒速率.

当我在本机上运行基准测试时,我每秒获得779.5次事务.当我在mysql容器中运行基准测试时,我得到336个事务/秒.几乎是每秒交易数量的一半.这是docker的正常性能开销吗?这对于在生产系统中的容器中运行数据库是一个巨大的缺点,特别是对于IO /数据库密集型应用程序

database virtualization docker

9
推荐指数
1
解决办法
2356
查看次数