CRIU (application Checkpoint/Restore In Userspace) — это амбициозный, быстро развивающийся проект, который позволяет сохранить состояние программы в виде контрольной точки, и впоследствии возобновить работу приложения с этой точки.
Возможности применения программного обеспечения для создания контрольных точек достаточно разнообразны. К примеру, OpenVZ использует похожий механизм для “живой” миграции. Parallels Virtuozzo использует подобный механизм для быстрого возобновления работы контейнеров после обновления ядра. CRIU уже используется в высокопроизводительных кластерах для для сохранения промежуточных результатов вычислительных процессов, используемых для возобновления работы приложения в случае сбоя.
В этой статье рассказывается, как CRIU сохраняет и восстанавливает состояние программы, и почему этот проект может быть успешнее своих предшественников.
Читать полностью »
Рубрика «системное программирование» - 74
CRIU — новый амбициозный проект для сохранения и восстановления состояния процессов
2012-07-24 в 18:59, admin, рубрики: linux, lxc, open source, openvz, Parallels, system programming, системное программирование, метки: linux, lxc, openvz, Parallels, system programmingПростейший WDM-драйвер
2012-07-01 в 19:20, admin, рубрики: windows, драйверы, системное программирование, метки: драйверы, системное программированиеПриветствую!
В данной статье описан процесс написания простейшего драйвера, который выводит скан-коды нажатых клавиш.
Также в данной статье описан процесс настройки рабочего места для написания драйверов.
Если Вам интересно, прошу под кат.
Читать полностью »
Первая опытно-промышленная партия отечественных мультиклеточных процессоров MCp
2012-07-01 в 6:23, admin, рубрики: MCP, multiclet, высокая производительность, Железо, отказоустойчивость, системное программирование, метки: MCP, multiclet, высокая производительность, отказоустойчивостьЯ понимаю, конечно, что Сколково, гос-корпорации, непонятное название, много псевдонаучного PR по поводу этих самых клеток и прочие негативные коннотации имеют место быть, но партия процессоров изготовлена. Их даже можно потрогать руками и посетовать на кривые ножки :) в новости на картинке не фотошоп — на сайте разработчиков и в прокремлёвской газете (не, ну мне самому стыдно, однако… против факта не попрёшь).
Драйвер, это просто
2012-06-29 в 9:48, admin, рубрики: ddk, driver, PureBasic, Драйвер, системное программирование, метки: ddk, driver, PureBasic, Драйвер Многие считают что самому создать драйвер для Windows это что-то на грани фантастики. Но на самом деле это не так. Конечно, разработка драйвера для какого-то навороченного девайса бывает не простой задачей. Но ведь тоже самое можно сказать про создание сложных программ или игр. В разработке простого драйвера нет ничего сложного и я попытаюсь на примерах это показать.
Читать полностью »
Драйвер — это просто
2012-06-29 в 9:48, admin, рубрики: ddk, driver, PureBasic, Драйвер, системное программирование, метки: ddk, driver, PureBasic, Драйвер Многие считают что самому создать драйвер для Windows это что-то на грани фантастики. Но на самом деле это не так. Конечно, разработка драйвера для какого-то навороченного девайса бывает не простой задачей. Но ведь тоже самое можно сказать про создание сложных программ или игр. В разработке простого драйвера нет ничего сложного и я попытаюсь на примерах это показать.
Читать полностью »
Идеи о механизме защиты в Windows на основе самоограничения
2012-06-04 в 18:06, admin, рубрики: Вирусы (и антивирусы), информационная безопасность, Песочница, системное программирование, уязвимости, метки: песочница, уязвимостиРодители лучше всего знают что можно делать их ребенку, а чего нельзя. Так и программист конкретной программы знает лучше других, какие действия должна выполнять программа, а какие нет. Но не всё так хорошо как хотелось бы. Вредоносные программы частенько вмешиваются в работу других программа. Последствия от эксплуатации уязвимостей в сетевых программах вообще не предсказуемы. Всё это так или иначе нарушает информационную безопасность не только на предприятиях, но и на компьютерах рядовых пользователей.
А как было бы хорошо, если бы программа сама знала какие действия ей не нужны и на всякий случай отключала их.
А как же всё-таки работает многопоточность? Часть I: синхронизация
2012-05-28 в 3:57, admin, рубрики: concurrency, java, kernel, multithreading, scheduler, switching, synchronization, Программирование, системное программирование, метки: concurrency, java, kernel, multithreading, scheduler, switching, synchronization, ОС (пост из серии «я склонировал себе исходники hotspot, давайте посмотрим на них вместе»)
Все, кто сталкивается с многопоточными проблемами (будь то производительность или непонятные гейзенбаги), неизбежно сталкиваются в процессе их решения с терминами вроде «inflation», «contention», «membar», «biased locking», «thread parking» и тому подобным. А вот все ли действительно знают, что за этими терминами скрывается? К сожалению, как показывает практика, не все.
В надежде исправить ситуацию, я решил написать цикл статей на эту тему. Каждая из них будет построена по принципу «сначала кратко опишем, что должно происходить в теории, а потом отправимся в исходники и посмотрим, как это происходит там». Таким образом, первая часть во многом применима не только к Java, а потому и разработчики под другие платформы могут найти для себя что-то полезное.
Перед прочтением глубокого описания полезно убедиться в том, что вы в достаточной мере разбираетесь в Java Memory Model. Изучить её можно, например, по слайдам Сергея Walrus Куксенко или по моему раннему топику. Также отличным материалом является вот эта презентация, начиная со слайда #38.
Читать полностью »
Реализация разделяемой памяти между драйвером и приложением
2012-05-25 в 0:06, admin, рубрики: ddk, driver, kernel-mode, системное программирование, метки: ddk, driver, kernel-mode
Приветствую всех!
В этой небольшой статье речь пойдет об одном способе создания разделяемой памяти, к которой можно будет обращаться как из режима ядра, так и из пользовательского режима. Приведу примеры функций выделения и освобождения памяти, а также будут ссылки на исходники, чтобы можно было попробовать любому желающему.
Летняя школа системного программирования ksys labs
2012-05-17 в 10:21, admin, рубрики: ksyslabs, микроядра, операционные системы, системное программирование, метки: ksyslabs, микроядра В период с 16 июля по 10 августа в Москве мы проводим Летнюю школу системного программирования. В рамках Летней школы все желающие смогут прослушать курсы лекций по архитектуре операционных систем, информационной безопасности и криптографии, а так же принять участие в реальных проектах по разработке операционных систем.
Читать полностью »
Программы в автоматном стиле – трудности перевода
2012-05-15 в 12:27, admin, рубрики: linux, UNIX, Айдеко, Блог компании Айдеко, обучение, Программирование, сетевое программирование, системное программирование, метки: c++, linux, unix, Айдеко, обучение, Программирование, сетевое программирование
Пятая лекция курса «Сетевое программирование в UNIX» от специалистов SkyDNS и компании «Айдеко» уже ждет своих слушателей.
Александр Патраков объясняет, как перевести обычную сетевую программу в программу, основанную на конечном автомате.
О том, что такое конечный автомат, вы узнаете под хабракатом.
Читать полностью »