Задать вопрос
Ответы пользователя по тегу Операционные системы
  • Можно ли использовать ОС, созданную в hyper-v, как основную?

    Задался недавно вопросом: можно ли создать виртуальную машину в hyper-v, пробросить в неё свою видеокарту и использовать данную гостевую ОС как основную (то есть работать/играть на данной системе)?

    Да, можно, эта фича Hyper-V называется Discrete Device Assignment.
    И какая Windows понадобится для этого (имеется ввиду, можно ли использовать Win 10 или нужна Win server)?

    На хосте - серверная Винда, в качестве гостя вполне сгодится клиентская Винда.
    И если пробрасывать видеокарту в виртуальную машину, то понадобится второй видеоадаптер для хост машины?

    В данный момент - да, понадобится второй адаптер, т.к. устройство пробрасывается целиком. В Windows Server 2025 появится GPU partitioning, но пока хз с какими видяхами и материнками это будет работать.

    Да, кстати, насчёт оборудования. Всё это замечательно, но вам на вашей материнке скорее всего понадобится поддержка SR-IOV, ну и соответственно IOMMU на матери и процессоре.

    Во-вторых, далеко не все видяхи официально поддерживаются технологией DDA, обычно для этого тестируются только pro-шные линейки карт. Может оно будет работать и с вашей картой. Драйвера карт потребительского сегмента могут блокировать запуск карты, проброшенной в виртуальную машину, или просто работать некорректно (блокируют запуск, т.к. не поддерживают сценарий проброса). Например, сейчас для работы ряда AMD-шных карт с пробросом в ВМ нужен костыль vendor-reset (это линуксовый модуль ядра, для Hyper-V не годится). И NVidia относительно недавно начала поддерживать проброс линейки GeForce в виртуалку (и то непонятно, как там с Hyper-V DDA).

    Я сам использую подобный сетап и пишу прямо сейчас с него, но у меня в качестве гипервизора KVM (использую дистр Proxmox), и материнка ASRock Rack ROMED8-2T, где есть вышеуказанные плюшки (кстати, в качестве адаптера для хоста прокатывает встроенный в мать ASPEED AST2500, поэтому полноценная карточка у меня только одна). В гостевую виртуалку с Windows 11 проброшена карточка Radeon RX 5500 XT, с учётом вышеупомянутого костыля в целом работает. Есть некоторая нестабильность, плюс иногда приходится вместе с виртуалкой перезагружать весь хост. Но это следствие того, что AMD не поддерживает для этих карт работу в пробросе (хотя и не блокирует искусственно), с нвидией возможно было бы получше.

    Ищите информацию по ключевым словам VFIO и PCI passthrough, на Реддите есть неплохое коммюнити. И да, готовьтесь копать много информации и перепроверять её (например мой ответ тоже стоит перепроверить, всё довольно быстро меняется) и покупать оборудование сильно дороже потребительского (если у вас его ещё нет). По Hyper-V DDA информации тоже не так много, советую рассмотреть дистры с KVM, если вам не так принципиально.
    Ответ написан
    1 комментарий
  • В чем разница между ядром ОС и драйвером?

    Операционная система, в том числе её ядро, предоставляет виртуальные ресурсы (файлы на файловой системе, адресное пространство, TCP/IP-подключения и т.д.), выставляет их в виде API/ABI, а для реализации функций этих ресурсов пользуется в том числе драйверами устройств, помимо логики в самом ядре. Упрощённо говоря, драйвера работают как бы между ядром ОС и аппаратными интерфейсами. Драйвера реализуют различные программные интерфейсы, которые требует от них ядро.

    Если говорить о драйвере в широком смысле, например о современных графических драйверах, то они как правило содержат много логики, исполняющейся в user space, а не только в ядре (см. например UMDF). Например, драйвера видеокарт на Windows реализуют интерфейсы OpenGL и Vulkan в user-space, а в ядре работает лишь небольшой фрагмент кода драйвера.
    Ответ написан
    1 комментарий
  • Операционые системы на дисках?

    Ответ написан
    Комментировать
  • Какую тему выбрать для курсового по ОС?

    А почему вы считаете что эти темы не годятся на курсач? Курсовая - это хорошо сделанная лаба. Не знаю как в вашем вузе, но обычно отчёты стуендтов по лабам не настолько хороши, чтобы их прям некуда было улучшать.

    Качественная реализация, подробное документирование алгоритмов, подробное тестирование и сбор статистики по производительности - вот что отличает лабу от курсача.

    Возьмите любую тему из предложенных, и добавьте к ней тесты на xUnit и какую-нибудь удобную визуализацию или логирование операций - и вот вам курсач, а уж пописать тесты будет очень полезно для вас как для программиста.

    У вас кстати требования не то чтобы невыполнимые, но несколько сковывающие в выборе, я про C# + WinAPI. Я бы предложил вам взять FUSE и сделать на нём какую-нибудь ФС (например, читалку из облачного хранилища или простейшую реализацию UnionFS) но тут бы лучше C/C++ и линух.

    Ну или можете пописать алгоритмы организации ThreadPool-а.
    Ответ написан
    2 комментария
  • Как операционная система понимает, сколько нужно очистить память?

    Nipheris
    @Nipheris Куратор тега C++
    Факт 1. malloc и free реализуется не ОС, а рантайм-библиотекой языка C/C++. Да, безусловно, время от времени рантайм библиотека делает системные вызовы для того чтобы получить от ОС адресное пространство, но делается это далеко не на каждый malloc/free.

    Факт 2. Вам нужно чётко понимать, что работаете вы со средствами языка и стандартной библиотеки языка, а не ОС. Если на каком-то устройстве скомпилированная программа на C должна работать без ОС, то и способы реализации функционала malloc/free будут иные.

    Факт 3. Алгоритмы, реализующие работу malloc и free, хранят довольно много служебной информации для себя, в частности размер и положение выделенных блоков. Вы не имеете непосредственного доступа к этой информации, но это не значит что её нет. Её достаточно как минимум для того, чтобы выделять вам новые блоки и корректно освобождать старые. Такие алгоритмы называются менеджерами памяти. Кстати в этой незамысловатой статье на вики написано о так называемой иерархии менеджеров памяти. Если вы ознакомитесь с этим понятием, узнаете наверняка больше, чем из всех ответов вместе взятых.
    Ответ написан
    Комментировать