KSM это технология комплементарная COW (Copy-On-Write)
Т.е. она находит одинаковые страницы, объединяет их и помечает как COW. Дальше действуют стандартные механизмы виртуальной памяти.
Если процесс пишет в COW страницу хотя бы один байт, то страница физически копируется в другое место и вносится изменение в карту виртуальной памяти изменяющего процесса. После этого уже происходит запись изменений.
Если посмотреть на эту инициативу прагматично, то:
1) Подобная инфраструктура не усложняет взлом DRM защиты относительно существующих поприетарных решений.
2) Открытые спецификации упростят создание дампилок шифрованного содержимого.
3) Технология может пригодиться не только для DRM, но и просто для защиты от перехвата контента в сети. Например корпоративная видеотрансляция в отдалённые офисы (естественно приватная). Заворачивать каждого клиента через https или vpn — можно и пупок надорвать. Подобный концепт будет ощутимо проще масштабироваться.
Насколько я понял статья является примером написания кода, а принципиальные просчёты в примерах потом обходятся очень дорого. Когда в реальном коде напарываешься на грабли и долго и мучительно ищешь где не прав.
В догонку:
>QMap SClients; Данная карта хранит объекты созданных сокетов. Ее использую
> например если принудительно останавливаю сервер и мне необходимо закрыть открытые сокеты.
> Если их не закрыть, то клиент будет еще долго ждать ответ от нашего сервера и не закрывать соединение.
The socket is created as a child of the server, which means that it is automatically deleted when the QTcpServer object is destroyed. It is still a good idea to delete the object explicitly when you are done with it, to avoid wasting memory.
«Сокеты создаются как дочерние элементы сервера, это означает что они автоматически удаляются при уничтожении родительского объекта — QTcpServer. Это по прежнему хорошая идея, удалять объекты когда вы закончили их использовать, для предотвращения расточительного расхода памяти.»
Так что карта или список соединений нам может понадобиться только если нам от сервера необходимо посылать данные клиенту не в ответ на запрос а по произвольному событию.
«С другой стороны, сейчас смена технологий происходит очень быстро, и в некоторых странах то же аналоговое ТВ, которое было стандартом в течение нескольких лет, было заменено на цифровое ТВ. То же может произойти на пару лет и со стандартом 802.11 a/b/g/n.»
NTSC — 18 декабря 1953 года впервые в мире было начато цветное телевизионное вещание с применением именно этой системы.
PAL — представлена как стандарт телевизионного вещания в 1967 году.
Всем бы протоколам оставаться стандартами с течении такого количества «нескольких лет»
t 11n — sudo rm -rf /
t 11q — бесконечный цикл (вызывает сама себя).
Вы бы хоть сделали контрольный символ, а то случайно ошибёшься в символах кода — и много положительных эмоций вам обеспечено. Особенно если на соседнем номере шутники разместили rm -rf /
Меня просто удивило то как по частному случаю вы сделали однозначный общий вывод.
Холиварить и сравнивать обратную совместимость различных платформ на протяжении всего их жизненного цикла нету никакого желания.
Это сложная и не однозначная область, которую надо обсуждать детально а не в общем. + Целесообразность обратной совместимости будет сильно различаться в зависимости от задачи.
Т.е. она находит одинаковые страницы, объединяет их и помечает как COW. Дальше действуют стандартные механизмы виртуальной памяти.
Если процесс пишет в COW страницу хотя бы один байт, то страница физически копируется в другое место и вносится изменение в карту виртуальной памяти изменяющего процесса. После этого уже происходит запись изменений.
1) Подобная инфраструктура не усложняет взлом DRM защиты относительно существующих поприетарных решений.
2) Открытые спецификации упростят создание дампилок шифрованного содержимого.
3) Технология может пригодиться не только для DRM, но и просто для защиты от перехвата контента в сети. Например корпоративная видеотрансляция в отдалённые офисы (естественно приватная). Заворачивать каждого клиента через https или vpn — можно и пупок надорвать. Подобный концепт будет ощутимо проще масштабироваться.
По сему проблем не вижу.
PS. это лучше, чем ключи вшитые в процессор (привет Intel Insider habrahabr.ru/tag/Intel%20Insider/)
Дифы высчитываются как разница этих состояний.
Поэтому ваши опасения напрасны.
По этому мне видится такая картина — держать рабочую копию с последними 10ю тысячами коммитов, и периодически синхронизировать с полным репозиторием.
При слонировании репозитория гиту можно указать глубину, которую необходимо забирать.
А вообще да, интересно было бы посмотреть другие системы контроля версий в сравнении.
Кстати я ошибся страной, не в Казахстане, а в Монголии.
Пруф: ru.wikipedia.org/wiki/%D0%A2%D0%BE%D0%B2%D0%B0%D1%80%D0%BD%D1%8B%D0%B5_%D0%B7%D0%BD%D0%B0%D0%BA%D0%B8,_%D1%81%D1%82%D0%B0%D0%B2%D1%88%D0%B8%D0%B5_%D0%BD%D0%B0%D1%80%D0%B8%D1%86%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D1%8B%D0%BC%D0%B8#.D0.9A
В Казахстане кстати кенон стал именем нарицательным для копира.
>QMap SClients; Данная карта хранит объекты созданных сокетов. Ее использую
> например если принудительно останавливаю сервер и мне необходимо закрыть открытые сокеты.
> Если их не закрыть, то клиент будет еще долго ждать ответ от нашего сервера и не закрывать соединение.
The socket is created as a child of the server, which means that it is automatically deleted when the QTcpServer object is destroyed. It is still a good idea to delete the object explicitly when you are done with it, to avoid wasting memory.
«Сокеты создаются как дочерние элементы сервера, это означает что они автоматически удаляются при уничтожении родительского объекта — QTcpServer. Это по прежнему хорошая идея, удалять объекты когда вы закончили их использовать, для предотвращения расточительного расхода памяти.»
Так что карта или список соединений нам может понадобиться только если нам от сервера необходимо посылать данные клиенту не в ответ на запрос а по произвольному событию.
while (tcpServer->nasPendingConnection()) {
…
}
Иначе вполне можете пропустить клиента при большой интенсивности запросов.
git clone --depth 1 [url]
NTSC — 18 декабря 1953 года впервые в мире было начато цветное телевизионное вещание с применением именно этой системы.
PAL — представлена как стандарт телевизионного вещания в 1967 году.
Всем бы протоколам оставаться стандартами с течении такого количества «нескольких лет»
Температра правления самого расспространённого без свинцового (SnAgCu) — 217 градусов.
t 11q — бесконечный цикл (вызывает сама себя).
Вы бы хоть сделали контрольный символ, а то случайно ошибёшься в символах кода — и много положительных эмоций вам обеспечено. Особенно если на соседнем номере шутники разместили rm -rf /
Холиварить и сравнивать обратную совместимость различных платформ на протяжении всего их жизненного цикла нету никакого желания.
Это сложная и не однозначная область, которую надо обсуждать детально а не в общем. + Целесообразность обратной совместимости будет сильно различаться в зависимости от задачи.
Вот список совместимого и не совместимого ПО для Висты:
wiki.oszone.net/index.php/%D0%A1%D0%BE%D0%B2%D0%BC%D0%B5%D1%81%D1%82%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D1%8C_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC_%D1%81_Windows_Vista
Так же хочется отметить существование Wine for Windows, который зачастую помогает запускать старый экзотический софт на свежих версиях продукта от MS.
Причем Virtuozo Windows Containers и OpenVZ являются продуктами компании Parallels.
Правда признаюсь, что наличие решения под MS Windows я упустил из виду.