Когда я могу изменить страницу, которая была передана vmsplice?

Если вы добавите команду запуска для своей виртуальной машины в / home / /.profile, то эта команда будет выполняется (один раз), когда пользователь с именем <имя пользователя> входит в систему.

Для VirtualBox:

VBoxManage startvm "<machinename>"

Вы можете добавить параметры для его запуска в полноэкранном режиме (например, VBoxSDL -vm "Windows XP "- полноэкранный режим ).

Если у пользователя есть виртуальная машина, он все же окажется в Linux.

Если вы также хотите выйти из системы после завершения работы VirtualBox, выполните следующие действия в Gnome (или Unity):

Создайте файл с именем runvm и сделайте его исполняемым:

$ touch runvm
$ chmod u+x runvm

Откройте редактор и добавьте следующие строки:

VBoxManage startvm "<machinename>"
sleep 1
while pgrep VirtualBox > /dev/null; do sleep 1; done
kill -9 -1

Сохраните файл.

Примечание. Вы можете получить "", запустив виртуальную машину и запустив:

$ VBoxManage list vms

Вы можете проверить это, вызвав runvm & , а затем выключив виртуальную машину после ее запуска. Пользователь принудительно выходит из системы, и система возвращается к приглашению входа в систему.

Когда это сработает, добавьте следующую строку в свой файл .profile :

nohup $HOME/runvm &

Быстрое редактирование файла .profile :

$ echo "nohup $HOME/runvm &" >> .profile
3
17.02.2017, 20:22
2 ответа

Так как я могу узнать, что ядро ​​готово к моей странице? Как я могу просто не освободить страницу, верно?

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

vmsplice -> pipe -> splice -> tcpsocket

Я бы дождался ответа, после чего ядро ​​очистит свой буфер SEND, и моя страница снова станет моей?

no

Подождите, пока ответ , который в используемом вами протоколе подтверждает, что все подаренные страницы были получены . Тогда вы узнаете, что ядро ​​ очистило буфер отправки всех переданных страниц.

(Между прочим, я бы не стал предполагать, что содержимое страниц сохранится. Я полагаю, что его можно зашифровать на месте для IPSec).

Очевидно, также возможно получить «количество неотправленных данных в очереди отправки сокета», так что это еще один способ сделать это. https://stackoverflow.com/questions/6421771/vmsplice-and-tcp (конечно, вам не нужно ждать, пока он упадет до 0 согласно этой ссылке, вы можете повторно использовать каждый страницу, как станет безопасно). Это требует опроса в случае, если вы не заполняете очередь отправки ядра. (Когда вы это делаете, вы просто перепроверяете, в то же время select () epoll () сообщает вам, что есть больше места для записи данных).

0
27.01.2020, 21:36

Предполагаемое использование — vmsplice дарит mmaped страницы, вы не можете изменить их после vmsplice, но вы можете их munmap.

0
11.11.2020, 03:53

Теги

Похожие вопросы