• Как читать книгу Вирт, Алгоритмы и Структуры данных школьнику?

    @vvmtutby
    1) Книги от Н. Вирта рекомендую прочитать и проработать все переведённые на русский. Особенно, если переводили до 1991 года.

    Если собираетесь компилировать примеры, то лучше брать редакции книг на Modula-2 .

    И ( или) смотреть анимацию алгоритмов в ПО Mentor из экосистемы компилятора cm3 языка программирования Modula-3

    1б) А так же книгу "Простое и сложное в программировании". Есть смысл начать с неё.

    P.S.

    Про 32 ключевых слова C language - это неприкрытое НЛП. В книге из пункта 1б есть кое-что по этому поводу.
    Ответ написан
    Комментировать
  • Как отключить Hyper-V?

    @vvmtutby
    (

    Мой ответ -- скорее "для общего случая"

    Для "Windows Server 2019, при установке служб RDS автоматически установился Hyper-V" склоняюсь к варианту:
    ==
    Hyper-V - это следствие Virtual Desktop, которые являются неотделимой частью RDS (ибо это не RDP).
    ==

    )

    } Выключить Hyper-V - в управлении сервером отключить роль Hyper-V


    Увы, примерно с Win 1703 этого недостаточно . . .

    Например : WSL2

    Вернее, это не требуется для ПО использущего API WHPX ( Windows Hypervisor Platform ):
    -- VirtualBox 6.0.X ( 6.1.X пока на стадии Beta1)
    -- эмуляторы Android
    -- QEMU

    (

    Или требуется, но для ускорения работы

    )

    C VMWare workstation -- действительно надо отключать

    C полгода назад в попытках, хотя бы в виде "матрёшки" VM-in-VM, запустить VMWare workstation
    "внутри Hyper-V" перебрал чуть ли не все версии VMWare

    И всё впустую Ж-(

    (

    Т.е. Hyper-V "внутри VMWare workstation" -- можно, видел материалы.
    А вот наоборот …

    )

    P.S.

    "как отключить Hyper-V", Device Guard / Creditional Guard


    VMware Workstation and Device/Credential Guard are not compatible
    VMware Workstation and Device/Credential Guard are...

    Device Guard and Credential Guard hardware Readiness Tool v3.6
    Device Guard and Credential Guard hardware Readine...
    Ответ написан
    Комментировать
  • Как определить что использует VT-x?

    @vvmtutby
    Используйте совместимое с Hyper-V ПО ( с API WHPX ( Windows Hypervisor Platform ):
    -- WSL2
    -- VirtualBox 6.0.X ( 6.1.X пока на стадии Beta1)
    -- эмуляторы Android
    -- QEMU
    Ответ написан
    Комментировать
  • Hyper-V запуск виртуальной машины, внутри другой виртуальной машины?

    @vvmtutby
    Установил debian в hyper-v (windows 10), есть ли теперь возможность дополнительно запустить qemu внутри этой виртуалки.


    Начиная с Windows 10 1607 / Windows server 2016 -- да, можно
    Ответ написан
    Комментировать
  • Почему в структурном программировании нет мертвого кода?

    @vvmtutby
    Одним из достоинств структурного программирования является отсутствие мертвого кода.
    Никак не могу понять: почему его не может там возникнуть?


    Верно для "твёрдого" с.п. без скрытых форм GOTO : BREAK , EXIT, RETURN из "середины" функций

    С другой стороны: могут "иметь место" ни разу не вызываемые функции и т.п.

    Я бы слово "отсутствие" заменил бы на "помогает избежать"

    P.S.

    @Rsa97 say:
    Да ладно...
    if (false) {
    ... сюда никогда не попадём
    }
    
    for (i = 0; i < 0; i++) {
    ... и сюда тоже
    }



    1) См. выше
    могут "иметь место" / "помогает избежать"

    2) Не затруднит ли "for (i = 0; i < 0; i++)" переписать на ADA / Modula-3 ?
    ( мысленный эксперимент )

    3) На тему "if (false)"

    "Твёрдое структурное программирование" подразумевает доказательное программирование ( ADA SPARK)

    См. образец:

    https://ironsides.martincarlisle.com/

    process_dns_request.adb

    Counter := 1;
             Additional_Count := 0;
             while Counter <= NumFound and Additional_Count < DNS_Types.Unsigned_Short'Last-DNS_Types.Unsigned_Short(
                   2*Rr_Type.MaxNumRecords) loop
                --# assert Counter >= 1 and Counter<=NumFound and
                --#    (for all Z in RR_Type.ReturnedRecordsIndexType =>
                --#       (Qname_Locations(Z) >= 0 and Qname_Locations(Z) < 16384)) and
                --#    Qname_Location >=0 and Qname_Location <= 16383 and
                --#    Answer_Count >=0 and Answer_Count <= 65535 and
                --#    Additional_Count >= 0 and
                --#    Additional_Count < DNS_Types.Unsigned_Short'Last-DNS_Types.Unsigned_Short(
                --#    2*Rr_Type.MaxNumRecords) and
                --#    NumFound >= 0 and NumFound <= rr_type.MaxNumRecords and
                --#    Integer(Output_Bytes) >= DNS_Types.Header_Bits/8+1 and
                --#    Integer(Output_Bytes) <= DNS_Types.Packet_Size;
                Start_Byte := DNS_Types.Packet_Bytes_Range(Integer(Output_Bytes) -
                   DNS_Types.Header_Bits/8);
                Create_Response_A(
                   Start_Byte     => Start_Byte,
                   Domainname     => NS_Replies(Counter).nameserver,
                   Qname_Location => Qname_Locations(Counter),
                   Output_Packet  => Output_Packet,
                   Answer_Count   => Additional_Count,
                   Output_Bytes   => Output_Bytes);
                Start_Byte := DNS_Types.Packet_Bytes_Range(Integer(Output_Bytes) -
                   DNS_Types.Header_Bits/8);
                Create_Response_AAAA(
                   Start_Byte     => Start_Byte,
                   Domainname     => NS_Replies(Counter).nameserver,
                   Qname_Location => Qname_Locations(Counter),
                   Output_Packet  => Output_Packet,
                   Answer_Count   => Additional_Count,
                   Output_Bytes   => Output_Bytes);
                Counter := Counter + 1;
             end loop;
          else
             Protected_SPARK_IO_05.SPARK_IO_PO.Put_Line(Protected_SPARK_IO_05.SPARK_IO_PO.Standard_Output,"bad query type", 0);
    --            ada.text_io.put_line("qc: " & dns_types.Query_Type'image(Query_Type));
             Create_Response_Error(
                Input_Bytes   => Input_Bytes,
                Output_Packet => Output_Packet,
                Output_Bytes  => Output_Bytes);
          end if;
    
          -- this assert helps with the VCG Heap overflow
          --# assert
          --#    Answer_Count >=0 and Answer_Count <= 65535 and
          --#    Qname_Location >=0 and Qname_Location < 16384 and
          --#    Additional_Count >= 0 and
          --#    NumFound >= 0 and NumFound <= rr_type.MaxNumRecords and
          --#    Integer(Output_Bytes) >= DNS_Types.Header_Bits/8+1 and
          --#    Integer(Output_Bytes) <= DNS_Types.Packet_Size;
    
          DNSSEC := False;
          Max_Transmit := DNS_Types.UDP_Max_Size;
          -- Handle EDNS additional OPT record here!
          if Input_Packet.Header.QDCount = 1 and
             Input_Packet.Header.ARCount = 1 and
             Additional_Count < DNS_Types.Unsigned_Short'Last then
             Start_Byte := DNS_Types.Packet_Bytes_Range(Integer(Output_Bytes) -
                DNS_Types.Header_Bits/8);
             Create_Response_EDNS(
                Input_Packet     => Input_Packet,
                Input_Bytes      => Input_Bytes,
                Query_End_Byte   => Query_End_Byte,
                Start_Byte       => Start_Byte,
                Output_Packet    => Output_Packet,
                Output_Bytes     => Output_Bytes,
                Additional_Count => Additional_Count,
                DNSSEC           => DNSSEC,
                Max_Transmit     => Max_Transmit);
          elsif Input_Packet.Header.QDCount /= 1 then
             Protected_SPARK_IO_05.SPARK_IO_PO.Put_Line(Protected_SPARK_IO_05.SPARK_IO_PO.Standard_Output,"query count > 1", 0);
          elsif Input_Packet.Header.ARCount > 1 then
             Protected_SPARK_IO_05.SPARK_IO_PO.Put_Line(Protected_SPARK_IO_05.SPARK_IO_PO.Standard_Output,"ar count > 1", 0);
          end if;
    Ответ написан
  • Как установить VMWare workstation в Windows?

    @vvmtutby
    } VMWare workstation 15.5 в Windows 10

    Предполагаю, что следующим вопросом будет "как отключить Hyper-V",
    Device Guard / Creditional Guard

    М.б. удастся "уйти" на "связку" Hyper-V и совместимое ПО ( используется API WHPX ( Windows Hypervisor Platform )
    -- WSL2
    -- VirtualBox 6.0.X ( 6.1.X пока на стадии Beta1)
    -- эмуляторы Android
    -- QEMU
    ?

    P.S. На всякий случай, привожу "чем всё завершилось" :

    Автор вопроса say: }} vvmtutby, всё оказалось в том, что OpenSSL не может быть запущен из-за отсутствия необходимых системных библиотек, одна из которых libeay32.dll .
    Ответ написан
  • Как настроить экранирование виртуальной машины для Hyper-V в Windows 10 pro?

    @vvmtutby
    На всякий случай, продублирую ответ из вопроса 657708 :

    Для защиты конкретной группы VM ( от 1 шт. до N шт.) в отдельной VM с 2-3 VLAN развёртываем ПО а-ля MS TMG Server.

    == == ==
    2019-11-11 ещё немного дублирования ( вопросы, как выяснилось, пересекаются) :

    } А на счёт продукта мне бы ... средство экранирования вм с ос.


    Т.е. технология Shielded VM устраивает?

    ответ написал Сергей Галактионов:
    Для реализации функционала Shielded VM в режиме Remote Attestation
    Вам понадобиться инфраструктура Host Guardian Service,
    но в режиме Local Attestation Вы вполне можете "зашилдовать" машину.
    Но также если хотите использовать Volume Signature Catalog и Signed Template диски,


    Забавно, всего 2 физических комп-а и уже есть в наличии "пользователь, имеющий доступ к физической" инфраструктуре, от которого надо защищаться ...

    2019-11-16: "Новые вводные" ( из др. вопроса) -- возможно необходимость есть

    } от чего конкретно вы хотите защищаться?

    "Вот в чём вопрос..."
    Ответ написан
    Комментировать
  • Как пробросить компьютер для гостевой ос в hyper-v?

    @vvmtutby
    "брендмауер на каком пк работает?"

    Если кратко, то: встроенный firewall работает на "виртуальной машине номер 0"
    Это "из той же оперы", что и загрузка CPU в Task Manager

    Для защиты же конкретной группы VM ( от 1 шт. до N шт.) в отдельной VM с 2-3 VLAN развёртываем ПО а-ля MS TMG Server.

    (
    Не затруднит отредактировать заголовок?
    "Как пробросить компьютер для гостевой ос в hyper-v?"
    )

    ==

    Есть предложение начать редактировать текст вопроса:


    Я прочитал, что весь линукс экранированной вм можно запустить на отдельной машине.
    Т. Е. Windows на главной ос (хостовой) на первом пк, а гостевая ос - на другом.
    Но это только заголовок) так наверно тоже можно.
    И hyper-v гибридного типа, что утверждает это высказывание.
    Не адекватно: брендмауер на каком пк работает? Это windows server


    Выкидываем декоративные элементы:



    Используется Hyper-V , OS Windows Server 2019 ( VVM: или 2016? 2012 R2? Это принципиально )
    ( на 2019-11-11: OS Windows Server 2019 или Windows 10 -- точно)

    Linux ( VVM: какой? RHEL? SUSE? Или? ) необходимо запустить внутри экранированной VM ( shielded VM) , запустить на отдельной "физической" машине ( host-е "номер 2" ) .

    Т. Е. Windows на главной ос (хостовой) на первом пк, а гостевая ос - на другом.


    Такая схема?

    (           )
    (    Inet     )
     (           )
          !
          !           +=== Hardware PC N1 , OS Windows Server 2019 , Hyper-V ===============
          !           |
          !           |
          +-----------@ LANcard N2
                      |
                      |
          +-----------@ LANcard N1
          !           |
          !           +==================
          !           
          !           
          !           +=== Hardware SWITH ===============
          !           |
          +-----------@
                      |
                      |
          +-----------@
          !           |
          !           +==================
          !           
          !           
          !           
          !           
          !           +=== Hardware PC N2 , OS Windows Server 2019 , Hyper-V ===============
          !           |
          !           |  +=== VM, OS Linux ==
          !           |  |
          !           |  +===================
          !           |
          !           |
          !           |
          !-----------@ LANcard
                      |
                      |
                      |
                      |
                      +==================


    Вносите уточнения, пожалуйста

    P.S. GNS3 ( м.б. EVE-NG, но с ним я знаком меньше ) , как средство моделирования Вам подходит?
    Ответ написан
  • Какой серверный гипервизор выбрать?

    @vvmtutby
    Hyper-V
    Ответ написан
    Комментировать
  • Почему VirtualBox не видит VT-x если запущен Hyper-V?

    @vvmtutby
    Вариант "доустановите фичу Windows Hypervisor Platform" + пункт 7:

    VirtualBox 6.0 and Hyper-V 30. Aug 2019
    For reference the core steps we are using are:

    Make sure build is 1809 higher of Windows10.
    Step 1: Enable all Virtualisation extensions in the bios. e.g. Intel Virtulization technology and VT-d
    Step 2: In Control Panel, Add and remove programs, turn on Windows Features enable Windows Hypervisor Platform and Hyper-V
    Step 3: Install VirtualBox at least .10
    Step 4: Create new machine e.g. "Testmachine"
    Step 5: Load cmd prompt, (cmd)
    Step 6: cd into your install folder for virtualbox, usually "cd C:\Program Files\Oracle\VirtualBox"
    Step 7: setextradata "" "VBoxInternal/NEM/UseRing0Runloop" 0 , e.g. setextradata "Testmachine "VBoxInternal/NEM/UseRing0Runloop" 0
    Please note Step 7 is case sensitive.
    Step 8: Use as per normal, in this case our Hyper-V and VirtualBox ran together, we also used USB devices. The speed was very reasonable.
    Ответ написан
    Комментировать
  • Бекап из под Hyper-v в LIVE режиме самих виртуалок?

    @vvmtutby
    NetBackup

    (

    Дорого

    )
    Ответ написан
    Комментировать
  • Простейший терминальный RDP сервер на Ubuntu/CentOS из под HyperV - как?

    @vvmtutby
    (
    "Live хак":
    Hyper-V -- лучше писать с минусом, иначе G. выдаёт ещё и по "hypervisor"
    )

    Решения с собственным клиентом не подходят.


    xRDP

    у кого-то есть пара закладок на эту тему - прошу поделиться.


    1)

    Microsoft will include “out-of-the box” the XRDP software in Linux Virtual machines on Hyper-V in order to enabled the enhanced mode.

    . . .

    You will be able to use
    •drive redirection (because of integration of the xRDP solution)
    •Clipboard (because of integration of xRDP package solution)
    •better mouse and keyboard integration
    •more user friendly experience
    •resize display
    •possibly remote access to your virtual machine using standard Microsoft Tools (i.e mstsc.exe)

    2)

    by Richard Moyse
    Network Access to Unity Desktop via RDP in Ubuntu ...

    P.S. Начнём с вышеперечисленного, а так многое требует уточнений
    Например:
    RemoteFX видео карта добавлена в Hyper-V VM?
    ( Возможно, не связано с xRDP)
    Ответ написан
    Комментировать
  • Возможно ли установить hackintosh на VM?

    @vvmtutby
    возможно ли как-то установить hackintosh на VM такую как azure
    Да, но есть сложности:

    Хакинтош же требуется более тщательно обмануть, чтобы он думал, что на настоящем железе.


    Для начала "потренируйтесь на" Hyper-V

    https://habr.com/ru/post/429856/#comment_19372330
    1) Создал виртуальную машину, запретил динамическую память — выделил фиксированный размер. Разрешил вложенную виртуализацию:
    Set-VMProcessor -VMName <Название виртуальной машины> -ExposeVirtualizationExtensions $true

    2) Поставил серверную убунту. При установке можно сразу отметить пакеты виртуализации, либо доустановить их потом (libvirt).
    3) Установить MacOS используя готовые конфиги с https://github.com/kholia/OSX-KVM


    В Azure подойдут не все серии VM:
    Azure VM series Dv3 and Ev3 which enable running VMs inside Azure VMs or just nested virtualization.


    P.S. Или VirtualBox вместо KVM:
    Running MacOS using Virtual Box in Azure
    Статья от июля 2017, на сегодня вышел VirtualBox 6.X
    Ответ написан
    2 комментария
  • Проблемы с виртуализацией?

    @vvmtutby
    Windows 10 v1809 ( опционально)
    включить компонент
    Windows Hypervisor Platform
    ( заодно и Android Emulator ( из состава Android Studio) заработает при включённом Hyper-V )
    использовать
    VirtualBox 6.X
    ( начиная с 6.0.0 поддерживает WHPX )

    ( Решение "удалите Hyper-V" -- устарело)

    P.S.

    При использовании Android Emulator и (или) VirtualBox с поддержкой 'Windows Hypervisor Platform'
    не потребуется отключать Hyper-V вместе с Device Guard and Credential Guard

    P.P.S.
    Hyper-V -- лучше писать с минусом, иначе G. выдаёт ещё и по "hypervisor"
    Ответ написан
    Комментировать
  • Не запускается Виртуализация на Windows 10?

    @vvmtutby
    Обновиться до
    Windows 10 v1809 ( опционально)
    включить компонент
    Windows Hypervisor Platform
    ( заодно и Android Emulator ( из состава Android Studio) заработает при включённом Hyper-V )
    использовать
    VirtualBox 6.X
    ( начиная с 6.0.0 поддерживает WHPX )

    ( Решение "удалите Hyper-V" -- устарело)

    P.S.

    При использовании Android Emulator и (или) VirtualBox с поддержкой 'Windows Hypervisor Platform'
    не потребуется отключать Hyper-V вместе с Device Guard and Credential Guard
    Ответ написан
  • Какие хостеры позволяют использовать Nested Virtualisation?

    @vvmtutby
    Azure, правда, не все серии VM:

    Azure VM series Dv3 and Ev3 which enable running VMs inside Azure VMs or just nested virtualization.
    Ответ написан
    Комментировать