Страницы

2014-02-27

Выпуск языка программирования Dart 1.2, развиваемого Google для замены JavaScript

Компания Google представила новый выпуск языка программирования Dart 1.2, который позиционируется как язык структурированного программирования для Web, который в долгосрочной перспективе может стать прогрессивной заменой JavaScript.
В новом выпуске значительно расширены и упрощены средства для отладки приложений, добавлена возможности привязки точек останова к локальным переменным, решены проблемы с пошаговой отладкой рекурсивных функций, минимизировано влияние процесса отладки на работу отлаживаемого приложения. Проведена оптимизация производительности базовых библиотек, например, пропускная способность библиотеки WebSocket увеличилась в 15 раз, а скорость асинхронных примитивов (Async в dart:io ), библиотек Future и Stream возросла на 10-20%. Незначительно увеличена производительность кода, скомпилированного в JavaScript и выполняемого в виртуальной машине.
В IDE Dart Editor добавлена поддержка web-фреймворка Angular, в частности, для элементов Angular теперь можно использовать рефакторинг при переименовании, навигацию и поиск, добавлен вывод специфичных для Angular предупреждений. Добавлено контекстное меню "Run in Browser" для запуска файлов в сборочной директории. Улучшены средства автодополнения и автоформатирования кода. Добавлено меню для предпросмотра операций форматирования кода при помощи утилиты dartfmt. Заметно увеличена производительность.
Внесены исправления в различные компоненты SDK, в том числе в статический анализатор кода dart_analyzer, dart2js (компилятор в JavaScript), виртуальную машину Dart VM, пакетный менеджер pub, набор библиотек и плагины с поддержкой Dart для IntelliJ IDEA, WebStorm, Eclipse, Emacs, Sublime Text 2 и Vim. Dartium, сборка браузера Chromium с интегрированной виртуальной машиной Dart VM, обновлена до кодовой базы Chrome 33. В репозиторий pub добавлено около 70 новых пакетов, общее число доступных пакетов составляет 730.
Напомним, что язык Dart обладает похожим на Java синтаксисом, не требует явного определения типов и может использоваться для создания серверных и клиентских приложений. Для запуска внутри браузера код на языке Dart может быть преобразован в JavaScript-представление или запущен напрямую под управлением специального JavaScript-интерпретатора Dartboard. Поддерживается встраивание кода на языке Dart в HTML-страницы, используя mime-тип "application/dart". На стороне сервера приложение на языке Dart может быть выполнено внутри специальной виртуальной машины, которая обеспечивает производительность выполнения близкую к компилируемым в машинный код языкам. Виртуальную машину Dart планируется интегрировать в будущие версии браузера Chrome, что позволит выполнять приложения на языке Dart без компиляции в JavaScript.
Особенности языка Dart:
  • Привычный и простой для изучения синтаксис, естественный для программистов на JavaScript, Си и Java.
  • Обеспечение быстрого запуска и высокой производительности для всех современных web-браузеров и различных типов окружений, от портативных устройств до мощных серверов;
  • Возможность определения классов и интерфейсов, позволяющих использовать инкапсуляцию и повторно использовать существующие методы и данные;
  • Необязательное указание типов, использовать или нет статические типы решает разработчик. Указание типов позволяет упростить отладку и выявление ошибок, делает код более ясным и читаемым, упрощает его доработку и анализ сторонними разработчиками.
  • Среди поддерживаемых типов: различные виды хэшей, массивов и списков, очереди, числовые и строковые типы, типы для определения даты и времени, регулярные выражения (RegExp). Возможно создание своих типов;
  • Для организации параллельного выполнения предлагается использовать классы с атрибутом isolate, код которых выполняется полностью в изолированном пространстве в отдельной области памяти, взаимодействуя с основным процессом через отправку сообщений;
  • Поддержка использования библиотек, упрощающих поддержку и отладку больших web-проектов. Сторонние реализации функций могут подключаться в виде разделяемых библиотек. Приложения можно разбить на части и поручить разработку каждой из частей отдельной команде программистов;
  • Набор готовых инструментов для поддержки разработки на языке Dart, включая реализацию средств динамической разработки и отладки с исправлением кода на лету ("edit-and-continue");
  • Возможность создавать однородные системы, охватывающие как клиентскую, так и серверную часть. Использование одного языка и инструментария для клиентских и серверных компонентов упрощает процесс кодирования и избавляет от постоянной смены контекста. 

source1
source2

Сергей Данилов. Дума об обезьяне

Может ли человек дойти до уровня обезьяны?
Эволюция или Инволюция?
Кто толкает нас к краю и кто противостоит этому?
Ответы на эти вопросы находятся в древнерусском языке и Сергей Данилов снова откроет нам послания предков через забытый язык. Об этом и многом другом в канун перехода 2012.

Украина. Харьков - Кернеса на три буквы, Российский флаг, УПА в топку 26...

26.02.14 Кернес пытался снять флаг России, но в ответ ему кричали - Предатель!
Поднятия Российского флага на здание Харьковской городской рады. 26.02.2014.

2014-02-26

Военное поражение Украины. Украина сдалась немецко-американским захватчикам. Несмотря на своенравие Януковича, Украина следует прописанному для неё плану - стать непосредственной колонией Запада. Беседа 22 февраля 2014.
скачать или читать: http://poznavatelnoe.tv/fedorov_2014-...
депутат Евгений Фёдоров: http://eafedorov.ru
народное освободительное движение: http://засвободу.рф
Познавательное ТВ: http://poznavatelnoe.tv

2014-02-25

2014-02-24

Опубликован "Манифест FreeBSD XXI" с некоторыми идеями на будущее

Разработчик FreeBSD Wojciech Adam Koszek опубликовал манифест с тезисами для развития системы. В числе идей подготовка не привязанного в версии системы универсального установщика, не требующего перезаписи носителя при появлении новой версии, графический режим установки, поддержка управления установкой из браузера с внешнего устройства (например, со смартфона), облачный сервис FreeBSD ID с единой точкой входа для привязки настроек, файлов и резервных копий к аккаунту пользователя (например, после установки новой системы можно синхронизировать её конфигурацию с другой системой), BSDCloud для выноса операций в облако (например, сборка ядра в облаке), поддержка профилей установки (в том числе и для мобильных устройств, ноутбуков, ПК, виртуальных машин), система регрессивного тестирования каждого коммита.

source1
source2

2014-02-22

Для Enlightenment подготовлен новый модуль Tiling2

В основную ветку десктоп-окружения Enlightenment включен новый модуль Tiling2 с реализацией мозаичного режима размещения окон. По сравнению с Tiling1 новый модуль отличается более стабильной работой. Поддерживается тайлинг по дереву (приоритеты окон), что позволяет пользоваться тайлингом для всех элементов рабочего стола. Обеспечена хорошая поддержка плавающих окон.
Из недостатков отмечается отсутствие быстрой смены положения окон (сочетаниями клавиш), отсутствие лёгкого способа повысить/понизить приоритет окна в дереве, при запуске нельзя использовать предустановленные раскладки клавиатуры.
Для включения следует установить модуль и нажать Settings->Windows->Tiling. Для полноценной работы необходимо настроить сочетания клавиш через выбор settings->input->key bindings. Доступные сочетания клавиш:
  • Режим тайлинга (горизонтальный, вертикальный или плавающий)
  • Переместить активное окно (вниз, вверх, влево или вправо)
  • Сочетание клавиш для включения плавающего режима
  • Поменять местами окна мышью
Доступные настройки:
  • Показывать заголовки окон
  • Включить тайлинг для диалоговых окон
  • Включить плавающий тайлинг (если галочка снята, то среди режимов будут доступны только горизонтальный и вертикальный)
  • Выбор виртуальных рабочих столов, для которых включен тайлинг
  • Размер расстояния (пустого места) между окнами


source1
source2

Релиз LXC 1.0, системы изолированных контейнеров Linux

Представлен первый стабильный выпуск инструментария LXC 1.0, официально объявленный пригодным для промышленного применения. В рамках проекта развивает набор выполняющихся в пространстве пользователя инструментов для организации работы изолированных контейнеров, позволяющих изолировать процессы и ресурсы при помощи штатных механизмов ядра Linux, таких как пространства имён (namespaces) и группы управления (cgroups). Поддержка выпуска исправлений для ветки LXC 1.0 будет осуществляться в течение пяти лет. Готовые пакеты с LXC 1.0 подготовлены для Ubuntu Linux.
В отличие от технологий виртуализации на основе гипервизоров, контейнеры выполняются под управление единого ядра Linux, без необходимости запуска отдельного ядра и набора драйверов в каждом окружении. По своим возможностям контейнеры занимают нишу между изоляцией при помощи chroot и полноценными средствами виртуализации. В состав инструментария LXC входит библиотека liblxc, набор утилит (lxc-create, lxc-start, lxc-stop, lxc-ls и т.п.), шаблоны для построения контейнеров и набор биндингов для различных языков программирования.
Для изоляции процессов, сетевого стека ipc, uts и точек монтирования используется механизм пространств имён (namespaces). Для ограничения ресурсовприменяются cgroups. Кроме того, для понижения привилегий и ограничения доступа задействованы такие возможности ядра, как профили Apparmor и SELinux, политики Seccomp, Chroots (pivot_root) и capabilities.
Ключевые улучшения в LXC 1.0:
  • Поддержка полностью непривилегированных контейнеров, работающих без возможности получения прав суперпользователя внутри;
  • Стабилизация API (liblxc1) для создания и управления контейнерами;
  • Поставка официальных биндингов для использования API в программах на языках python3, lua, ruby и Go;
  • Гибкая система размещения контейнеров в различных типах хранилищ. Поддерживается размещение контейнеров в обычном дереве директорий, в ФС btrfs и zfs, в lvm, loop-устройствах, aufs и overlayfs;
  • Поддержка клонирования работающих контейнеров и возможность заморозки их состояния через создание снапшотов;
  • Сокращенный, но более целостный, набор утилит;
  • Обновлённая и полноценная документация;
  • Поддержка нескольких методов создания контейнеров на основе недавно сгенерированных образов;
  • Поставка шаблонов для создания контейнеров на основе популярных дистрибутивов Linux. Шаблоны подготовлены для Alpine Linux, Alt Linux, Arch Linux, busybox, CentOS, Cirros, Debian, Fedora, OpenMandriva, OpenSUSE, Oracle, Plamo, sshd, Ubuntu Cloud и Ubuntu. В контейнера также можно запустить окружение Android;
  • Возможность запуска графического окружения внутри контейнера. Пример запуска Google Chrome, Steam и Skype в отдельных контейнерах.
Пример использования контейнеров:

   # Создадим контейнер с именем "p1", используя шаблон "ubuntu"
   sudo lxc-create -t ubuntu -n p1

   # Запустим контейнер в фоне
   sudo lxc-start -n p1 -d

   # Войдём в контейнер через консоль (для выхода нужно набрать ctrl-a + q)
   sudo lxc-console -n p1

   # Войдём в контейнер через запуск bash, минуя логин
   sudo lxc-attach -n p1

   # Войдём в контейнер через SSH:
   sudo lxc-info -n p1
   ssh ubuntu@полученный_ip

   # Заморозим состояние контейнера
   sudo lxc-freeze -n p1

   # Разморозим состояние контейнера
   sudo lxc-unfreeze -n p1

   # Пробросим устройства в контейнер
   sudo lxc-device add -n p1 /dev/ttyUSB0 /dev/ttyS0

   # Создадим снапшот (при размещении контейнера в LVM или Btrfs)
   sudo lxc-snapshot -n p1 -c snap-comment
   sudo lxc-snapshot -n p1 -L -C

   # Откатим состояние на созданный снапшот
   sudo lxc-snapshot -n p1 -r snap0
   
   # Создадим новый контейнер на основе снапшота
   sudo lxc-snapshot -n p1 -r snap0 p1-snap0

   # Завершим работу контейнера
   sudo lxc-stop -n p1

   # Принудительно закроем контейнер
   sudo lxc-stop -n p1 -k


   # Для настройки сети создадим файл конфигурации 
   cat /var/lib/lxc/p1/config
   # Проброс физического сетевого интерфейса
   lxc.network.type = phys
   lxc.network.link = eth2
   lxc.network.name = eth1
   
   # Создание виртульного сетевого интерфейса
   lxc.network.type = veth
   lxc.network.hwaddr = 00:16:3e:3a:f1:c1
   lxc.network.flags = up
   lxc.network.link = lxcbr0
   lxc.network.name = eth0


source1
source2

2014-02-19

Принципы жизни философа-даосиста Хань Сян-цзы

  1. Единственное, что человек делает всегда искренне, так это — заблуждается. Если одно заблуждение свойственно всему обществу и при этом помогает ему жить, то оно становится верой. А если вера теряет искренность, то это уже не заблуждение и соответственно не вера, а лицемерие и обман, которые могут только разлагать общество.
  2. Если ты задаёшь вопрос, значит, ты уже знаешь половину ответа.
  3. Не обращай внимания на то, как к тебе относятся люди — обращай внимание на то, как ты относишься к ним.
  4. Помогая ленивым людям, ты помогаешь им сесть на свою шею.
  5. Не прощая ошибку, ты совершаешь ошибку сам.
  6. Прощая подлость, ты помогаешь совершить другую. А глупость вообще не требует прощения. Она, как ветер, не зависит ни от чего. Её надо принимать такую, как есть, и, защищаясь от её вреда, искать в ней пользу.
  7. Хочешь навести порядок во всём мире, сначала приберись у себя дома.
  8. Доброта беззащитна, и поэтому существует.
  9. Хочешь быть как все — будешь никем.
  10. Если ты думаешь, как все, ты уже ошибаешься. Все думают по-разному. Если ты думаешь за всех, ты опять ошибаешься. У каждого свои заботы. Думай по-своему и за себя, но помни — не думая о других, ты прежде всего не думаешь о себе.
  11. Все люди больше всего хотят узнать, а чего они на самом деле хотят.
  12. Большинство дурных поступков человек совершает не потому, что они ему нравятся, или приносят выгоду, а потому что ему кажется, что от него их ждут.
  13. Добросовестность вознаграждается, но деньги здесь не причём.
  14. Цветок красив, пока не тронут.
  15. Человек может думать обо всём, но делать должен то, в чём он уверен.
  16. Как отличить сильного человека от слабого? Если недоволен жизнью сильный человек, то он предъявляет претензии к себе, а если слабый, то к людям.
  17. Легко служить идеям и богам, они намного проще, чем живые люди.
  18. Всё острое со временем теряет остроту, и только тупость становится ещё тупее.
  19. Мудрость правителя следует оценивать не по тем великим свершениям, которыми ему довелось руководить, а по тем губительным ошибкам, которых ему удалось не допустить.
  20. Мудрый не тот, кто много размышляет о великом, а тот, кто мало думает о мелочах.
  21. И большой человек, и маленький человек могут одновременно идти к одной цели, но маленький человек — чтобы на ней остановиться, а большой — чтобы от неё идти дальше.
  22. Пока ты говоришь совсем не то, что думаешь, слушаешь совсем не то, во что веришь, и делаешь совсем не то, к чему расположен — то всё это время и живёшь совсем не ты.

source

Позиция GNOME в отношении работы на платформах, отличных от Linux

В свете появления спекуляций в отношении привязки GNOME к специфичным возможностям Linux и принуждения к использованию systemd, Маттиас Класен (Matthias Clasen), лидер Fedore Desktop Team и участник GNOME Release Team, пояснил позицию проекта в области портирования на различные системы. Маттиас решительно отвергает, что GNOME не принимает во внимание вопрос переносимости.

Маттиас признаёт, что GNOME в основном ориентируется при разработке на обеспечение работы на современных Linux-системах и стремится использовать технологии, которые лучше всего подходят для решения возникающих задач, что, в частности, и приводит к расширению поддержки сервисов systemd, многие из которых являются прямыми потомками ранее используемых механизмов, поставляемых с gnome-settings-daemon. Но, при этом, GNOME приветствует и любые инициативы по адаптации работы GNOME на других платформах. Таким образом, поддержка в GNOME альтернативных систем целиком зависит от наличия энтузиастов и компаний, заинтересованных в портировании.

Разработчики GNOME заинтересованы в поддержке качественной работы GNOME на системах, отличных от Linux, и готовы способствовать продвижению в основную кодовую базу связанных с портированием улучшений. GNOME готов принимать патчи разного типа, от урезания функциональности для обеспечения сборки на определённых платформах, до создания альтернативных бэкендов и подготовки прослоек для замены сервисов systemd на платформах, не использующих systemd. В качестве примеров сотрудничества отмечаются инициативы по портированию GNOME для работы во FreeBSD и OpenBSD.

source1
source2

Обновление Xen 4.3.2 и 4.2.4 с устранением уязвимостей

Доступны корректирующие обновления свободного гипервизора Xen - 4.3.2 и 4.2.4, в которых отмечено устранение 14 и 23 уязвимостей, а также исправление порции ошибок, влияющих на стабильность работы. Большинство уязвимостей позволяют инициировать крах или зависание хост-системы из гостевого окружения. Тем не менее, среди уязвимостей имеются 4 проблемы, для которых не исключено повышение привилегий пользователя внутри гостевой системы, а также 3 проблемы, которые потенциально позволяют администратору гостевой системы получить доступ к окружению хост-системы.

source1
source2

Domino Chain Reaction

Обычная костяшка домино, падая, может сбить следующий объект, в 1,5 раза больше себя. Таким образом, 32-ой на очереди объект окажется достаточно велик, чтобы свалить Эмпайр-стейт-билдинг (высота которого 443,2 м).
 source

2014-02-18

Доступна для загрузки Ubuntu CyberPack новый дистрибутив для криминалистического анализа


Доступна для загрузки специализированная Live-система Ubuntu CyberPack (ALF) 1.0 (Analysis, Logging operations and Forensics tools) предназначенная для получения цифровых доказательств.
Система включает специализированный инструментарий для получения и фиксации цифровых доказательств применяемый при расследовании компьютерных преступлений для первичного криминалистического анализа.
Она включает инструментарий для первичного криминалистического анализа при таких действиях как например:
✔поиск, фиксация скрытых и удаленных данных на носителях;
✔сбор доказательств по использованию ПК для совершения правонарушений;
✔анализ и фиксирование правонарушений (протоколирование произведенных всех действий в рамках осмотра с верификацией полученных данных анализа или исследования);
а также снятия цифровых копий объектов исследования для дальнейшего детального их анализа с помощью инструментария Ubuntu CyberPack (WCP).
Объектами этих действий могут быть: носители данных (и их содержимое, как например файлы или разделы), веб-ресурсы, сетевой трафик и др.
Детально о системе:
✔Система работает только в Live-режиме без возможности инсталляции;
✔Поддерживает большинство файловых систем: ext2/3/4, NTFS, FAT/32, VFAT, exFAT, XFS, BtrFS, UFS, ReiserFS/4, HFS/+, ZFS и д.р.
✔Распознает и позволяет работать с разделами: RAID, LVM и д.р.
✔Исследуемые устройства по умолчанию монтируются в режиме "только для чтения", возможность переключения в режим "записи" - оставлена;
✔Построена на легкой графической среде LXDE. Включены языки: Русский, Украинский, Английский;
✔Позволяет просмотреть и прослушать содержимое (документы, мультимедиа файлы);
✔Включает инструмент для анализа диска на предмет уничтоженных файлов.
Скачать iso образ

Источник

2014-02-14

Ubuntu Linux переходит на systemd, следом за Debian

Марк Шаттлворт объявил о намерении перевести Ubuntu Linux на системный менеджер systemd. По словам Шаттлворта, как член семейства Debian проект Ubuntu поддержит решение технического комитета Debian по переходу на новую систему инициализации, даже если оно оказалось не в пользу детища компании Canonical. Марк призвал сообщество Ubuntu помочь в эффективной реализации принятого решения и содействовать интеграции systemd в Debian и Ubuntu.

Проекты Debian и Ubuntu имеют общие корни и тесно взаимосвязаны между собой, многие разработчики Ubuntu и сотрудники Canonical активно участвуют в разработке Debian. Systemd и upstart имеют свои плюсы и минусы, и, в общем виде, оба проекта можно рассматривать как равнозначные, что отчасти подтверждено долгими спорами и результатами голосования. Но выбор сделан и теперь время забыть о разногласиях и перейти к совместной работе по воплощению решения в жизнь.

Сроки перевода Ubuntu на systemd пока не оглашены, скорее всего миграция будет завершена и стабилизирована к LTS-выпуску 16.04 или 18.04, в зависимости от готовности версии Debian с systemd. Начальная поддержка использования systemd в качестве опции в Ubuntu ожидается вскоре после появления стабильной поддержки systemd в Debian. По умолчанию systemd будет задействован в Ubuntu после достижения должного уровня качества, сравнимого с качеством текущей системы инициализации на базе upstart. Стабильность и готовность upstart к промышленной эксплуатации подтверждена использованием данной системы инициализации в RHEL 6. Несмотря на то, что systemd будет использован в RHEL 7, пока не ясно, как скоро будет полностью стабилизирован данный системный менеджер.

Разработка плана перехода и окончательное рецензирование вопроса перехода на systemd будут делегированы техническому комитету Ubuntu. В работе будет учтён опыт по адаптации работы logind без привязки к systemd. Для пользователей миграций пройдёт предельно прозрачно. С точки зрения стратегии, миграция Debian и Ubuntu позволит рассматривать systemd как новый единый стандарт для Linux-систем.

source1
source2

2014-02-13

Компания Oracle выпустила обновление ядра Unbreakable Enterprise Kernel R3U1

Компания Oracle представила первое функциональное обновление для ядра Unbreakable Enterprise Kernel 3. Исходные тексты ядра, включая разбивку на отдельные патчи, доступны в публичном Git-репозитории Oracle. Ядро позиционируется в качестве альтернативы штатному пакету с ядром, поставляемому в Red Hat Enterprise Linux.

Новая версия примечательна проведением работы по исправлению ошибок и обновлению драйверов устройств. Обновлены версии драйверов для устройств хранения и сетевых адаптеров компаний Broadcom, Cisco, Emulex, HP, Intel, LSI, Mellanox и Qlogic. Внесены улучшения в блочные и сетевые фронтэнды и бэкенды Xen. Добавлена поддержка параметра загрузки ядра crashkernel=auto, упрощающего настройку Kdump. Реализована новая возможность для включения статических контрольных вызовов DTrace в модулях ядра. Обновлён Xtables-драйвер xt_LOG для ведения лога пакетов IPv4/IPv6.

source1
source2

Red Hat выпустил сервер приложений WildFly, пришедший на смену JBoss AS


Компания Red Hat представила свободный сервер приложений WildFly 8, пришедший на смену продукту JBoss Application Server 7. Кроме смены бренда WildFly 8 отличаться поддержкой Java EE 7, модульной структурой, ориентацией на высокую производительность и реализацией современных методов разработки. Код WildFly доступен под лицензией LGPL.
В качестве причины смени имени с JBoss AS на WildFly называется желание избежать путаницы, возникшей в связи с использованием бренда JBoss не только для свободного сервера приложений, но и для коммерческого продукта JBoss Enterprise Application Platform и сообщества JBoss Community, которое не ограничивается разработкой сервера приложений и развивает около 100 различных проектов. Таким образом на смену свободному продукту JBoss Application Server пришёл WildFly, а JBoss Enterprise и JBoss Community по-прежнему останутся под своими именами.
Кроме смены имени, корректировке подверглись цели и задачи проекта: WildFly сфокусирован на быстром внедрении инноваций и продвижении новых технологий, в то время как коммерческий продукт JBoss Enterprise Application Platform позиционируется как интегрированная, полностью протестированная и сертифицированная платформа Java EE. В качестве основной области использования WildFly рассматривается разработка и быстрое внедрение прототипов. Принципы разработки и распространения сервера приложений остались неизменны, продукт как и раньше является полностью свободным, бесплатным и общедоступным, а также выступает в роли upstream-проекта для коммерческого продукта JBoss Enterprise.
Основные особенности WildFly 8:
  • Обеспечение поддержки Java EE 7. Реализация сертифицирована на соответствие Full- и Web-профилям Java EE7. В том числе добавлена поддержка Java API for WebSocket и Java API for JSON Processing (JSON-P), улучшена поддежка CDI (Contexts and Dependency Injection), в JavaServer Faces встроена поддержка HTML5, представлены новые возможности Java API for RESTful Web Services 2.0, Concurrency Utilities for Java EE 1.0 и Servlet 3.1 для создания эффективных серверных приложения для параллельной обработки запросов, значительно улучшены средства доступа к ресурсам контейнеров, добавлены возможности для организации работы приложений в пакетном режиме;
  • Интегрирован новый высокопроизводительный http-сервер Undertow.io, работающий в неблокирующем режиме и нацеленный на обеспечение максимальной пропускной способности и масштабируемости. Undertow.io пригоден для использования в окружениях, обрабатывающих миллионы сетевых соединений. Undertow.io поддерживает выполнение традиционных и асинхронных сервлетов, позволяет создавать обработчики JSR-356 web socket, предоставляет гибкие средства для создания собственных обработчиков любых стадий запроса, в том числе с возможностью реализации поддержи собственных протоколов;
  • Сокращение числа используемых сетевых портов: почти все поддерживаемые протоколы теперь мультиплексированы за двумя портами: порт 9990 для управления (HTTP/JSON, HTTP Upgraded Remoting (Native Management & JMX) и Web Administration Console) и порт 8080 для приложений (Servlet, JAX-RS, JAX-WS, Web Sockets, HTTP Upgraded Remoting (EJB Invocation, Remote JNDI)). Указанное изменение позволяет значительно упростить использование WildFly в облачных системах, в которых на одном сервере выполняются сотни и тысячи экземпляров;
  • Поддержка управления доступом на основе ролей (RBAC), позволяющая установить разный набор прав для отдельных действий, таких как выполнение операций и изменений различных областей конфигурации. Также реализованы возможности для аудита вносимых изменений и настройки прав пользователей. Улучшены средства для интеграции с LDAP, в частности, добавлена поддержка привязки групп к ролям и определение стратегии кэширования. Реализован режим безопасного ведения лога аудита на внешнем syslog-сервере;
  • Добавлен специализированный менеджер безопасности Java (Security Manager), позволяющий определить права доступа в привязке к отдельным экземплярам (deployment) и отличающийся от штатного менеджера безопасности Java более высокой производительностью и поддержкой более гибкой конфигурации jboss-permissions.xml в дополнение к permissions.xml из Java EE;
  • Расширение средств для работы с логами через управляющий API. Добавлена поддержка вывода списка и просмотра файлов с логами на сервере. Реализована возможность определения собственной системы форматирования лога;
  • Поддержка реализации DistributedWorkManager на основе наработок проекта JGroups, улучшение менеджера соединений JCA. Подсистемы источников данных и адаптеров ресурсов теперь поддерживают определение правил размещения и стратегий сброса (flush);
  • Проведён рефакторинг поддержки кластеризации, реализованы новые API для выполнения команд на разных узлах, просмотра топологии кластера, создания одиночных сервисов;
  • Улучшение CLI-интерфейса: поддержка определения алиасов для быстрого доступа к часто используемым серверам, режим explore для изучения любого узла в дереве.
  • Подготовлена инфраструктура для применения патчей к существующим установкам, например, позволяющая удалённым клиентам установить (или отменить установку) модули и бинарные файлы c использованием управляющего протокола WildFly;
  • Улучшение совместимости с JDK8;
  • Новая модульная система, решающая проблемы с иерархической загрузкой классов из JAR. Модульная система позволяет абстрагировать серверную реализацию классов от приложений и загружать только необходимые для работы приложения классы, обеспечивая при этом полноценную изоляцию. Модуль оформляется как коллекция классов, которая может связывать зависимости с другими модулями и загружаться по мере необходимости;
  • Подготовка для загрузки минималистичного базового (core) дистрибутива, оптимального для использования авторами фреймворков, которые желают сформировать собственный набор runtime-компонентов на базе архитектуры WildFly 8. В состав входят: инструментарий, средства управления, контейнер для параллельного запуска сервисов, модульная система загрузки классов, прослойка для развёртывания приложений, встроенный http-сервер;
  • Включение в поставку RESTEasy 3, поддерживающего как стандартые Java EE REST API (JAX-RS 2.0), так и такие расширения, как JSON Web Encryption, Jackson, Yaml, JSON-P и Jettison;
  • Проведена адаптация для мобильных и облачных сценариев использования, в том числе для работы на портативных и мобильных устройствах, а также в гибридных облачных окружениях;
  • Проведена работа по увеличению скорости запуска, сокращению потребления памяти, задействованию новых механизмов кэширования. По скорости запуска WildFly в 10 раз выигрывает у JBoss Application Server, и также опережает Jetty и Tomcat;
  • Подготовлены средства для миграции Java EE приложений из GlassFish в WildFly;
  • Обновлены версии компонентов:
    • Mojarras 2.2.5-jbossorg-3
    • Groovy 2.2.1
    • Netty 4.0.15.Final
    • Undertow 1.0.0.Final
    • Jastow 1.0.0.Final
    • Santuario 1.5.6
    • Jackson 1.9.13
    • Eclipse JDT Core Compiler 4.3.1
    • Hibernate 4.3.1.Final
    • Hibernate Validator 5.0.3.Final
    • Hibernate Search 4.5.0.Final
    • Hornetq 2.4.1.Final
    • JBeret 1.0.0.Final
    • Arquillian 1.1.2.Final-wildfly-1
    • Hal 2.1.1.Final
    • Byteman 2.1.4
    • EJB Client 2.0.0.Final
    • Invocation 1.2.1.Final
    • Ironjacamar 1.1.3.Final
    • Narayana 5.0.0.Final
    • JBoss Logging 3.1.4.GA
    • JBoss Logmanager 1.5.2.Final
    • Log4j JBoss LogManager 1.1.0.Final
    • JBoss Marshalling 1.4.3.Final
    • Metadata 8.0.0.Final
    • Mod_cluster 1.3.0.Final
    • Msc 1.2.0.Final
    • Netty-xnio-transport 0.1.1.Final
    • Remote naming 2.0.0.Final
    • Remoting 4.0.0.Final
    • Remoting JMX 2.0.0.Final
    • SASL 1.0.4.Final
    • Weld 2.1.2.Final
    • XNIO 3.2.0.Final
    • JGroups 3.4.2.Final
    • Jipijapa 1.0.1.Final
    • PicketBox 4.0.20.Final
    • PicketLink 2.5.2.Final
    • Wildfly Security Manager 1.0.0.Final


source1
source2

2014-02-11

Увидел свет Apache SpamAssassin 3.4.0

После двух лет разработки и четырёх лет с момента прошлого значительного выпуска представлен релиз платформы для организации фильтрации спама -SpamAssassin 3.4.0. Отмечается, что релиз можно считать стабильным и готовым к промышленной эксплуатации, так как он в течение года проходил тестирования на многих крупных почтовых системах. Код SpamAssassin написан на языке Perl и распространяется в рамках лицензии Apache.
SpamAssassin является одним из самых эффективных и широкоиспользуемых платформ для фильтрации спама. По данным январской статистики загрузки обновлений правил фильтрации спама пакет используется на более чем миллионе почтовых серверов. Наряду с http-сервером Apache, SpamAssassin включен изданием eWeek в список 11 технологий Apache, которые изменили компьютерные системы за последние 10 лет.
В SpamAssassin реализован комплексный подход в принятии решения о блокировании: Сообщение подвергается ряду проверок (контекстный анализ, черные и белые списки DNSBL, обучаемые байесовские классификаторы, проверка по сигнатурам, аутентификация отправителя по SPF и DKIM и т.п.). После оценки сообщения разными методами, накапливается определенный весовой коэффициент. Если вычисленный коэффициент превышает определенный порог - сообщение блокируется или помечается как спам. Поддерживаются средства автоматического обновления правил фильтрации. Пакет может использоваться как на клиентских, так и на серверных системах.
Особенности нового выпуска:
  • Реализация поддержки IPv6, в том числе утилита sa-update и инфраструктура проекта теперь поддерживает загрузку обновлений правил по IPv6. SpamAssassin также теперь может запускаться на системах, имеющих только IPv6-соединение;
  • Улучшение эффективности технологии блокирования с использованием проверки по черным спискам через DNS (DNSBL):
    • Добавлен новый плагин AskDNS, позволяющий создавать плавила askdns, задающие шаблон запроса к DNS. Шаблон включает в себя теги с различными параметрами SpamAssassin. Соответствующий шаблону DNS-запрос выполняется после доступности значений всех параметров, определённых в шаблоне. Полученный ответ может использоваться для принятия решения в дополнительно заданных правилах фильтрации;
    • В код DNS-клиента добавлена поддержка кэширования запросов и ответов в процессе обработки одного почтового сообщения, что позволяет ускорить работу при наличии в правилах дублирующихся DNS-обращений;
    • В формируемых DNS-запросах включена по умолчанию опция EDNS0, а размер буфера увеличен до 4096 байт, что позволило обеспечить поддержку приёма превышающих 512 байт ответов, переданных в рамках одного UDP-пакета. В случае использования внешних резолверов, находящихся за межсетевым экраном, блокирующим DNS UDP-пакеты больше 512 байт, следует использовать опцию "dns_options noedns0";
    • Добавлены директивы конфигурации dns_query_restriction (allow|deny) и clear_dns_query_restriction. Для явного указания IP рекурсивного DNS-сервера добавлена опция 'dns_server. Для управления диапазоном портов в процессе отправки DNS-запросов добавлены директоривы dns_local_ports_permit, dns_local_ports_avoid и dns_local_ports_none;
    • Значение по умолчанию для опции 'dns_available' изменено с 'test' на 'yes', что подразумевает запуск SpamAssassin на хосте с работающим резолвером DNS;
  • Добавлен бэкенд Mail::SpamAssassin::BayesStore::Redis с реализацией высокомасштабируемых вероятностных байесовских фильтров, для хранения накопленных статистических данных для которых применяется БД Redis. При этом одна баесовская база в Redis может использоваться одновременно на нескольких серверах SpamAssassin;
  • В spamd добавлена опция "--listen", позволяющая организовать приём сетевых запросов на выборочных сетевых интерфейсах. В spamassassin, spamd, spamc и sa-update добавлены опции "-4" и "-6" для управления использованием только IPv4 или IPv6. В утилиту sa-learn добавлена опция "--max-size";
  • Из зависимостей убраны Perl-модули Net::Ident, IP::Country::Fast и IP::Country. Зависимость от модуля LWP::UserAgent теперь является опциональной, при наличии в системе утилит curl, wget или fetch. Добавлены новые опциональные зависимости: Geo::IP (используется в плагине RelayCountry), IO::Socket::IP, Net::Patricia (для эффективного хранения больших списков IP, заданных в блоках internal_networks, trusted_networks или msa_networks). Требования к версии NetAddr::IP повышены до 4.010.

Компания Red Hat работает над собственной технологией обновления ядра Linux на лету

Спустя несколько дней после анонса разработчиками SUSE системы kGraft, позволяющей вносить исправления в работающее ядро Linux без перезагрузки и остановки работы системы, о работе над похожим проектом на конференции devconf.cz сообщил один из сотрудников компании Red Hat. Судя по имеющимся сведениям, развиваемый Red Hat проект Kpatch использует похожие на kGraft методы и рассчитан на выполнение тех же задач. Код kpatch пока не доступен публично и развивается как внутренний проект компании. Официально представить проект планируется в конце марта на конференции Linux Foundation Collaboration Summit.
source1
source2

2014-02-10

Архитектурные проблемы systemd, негативно влияющие на стабильность и безопасность

Рич Фелкер (Rich Felker), автор системной библиотеки musl, участник проекта Openwall и член группы Austin Group, развивающей и поддерживающей стандарты POSIX, опубликовал заметку "Broken by design: systemd" с критикой systemd. По мнению Фелкера, архитектура systemd изначально является ущербной из-за интеграции в init-процесс сторонних функций, непосредственно не связанных с процессом загрузки. Подобное нагромождение негативно сказывается на надёжности и безопасности.
Фелкер выделяет три основные архитектурные проблемы systemd:
  • В Unix-системах PID 1 имеет специальное назначение, в частности, PID 1 становится родителем для осиротевших процессов и поддерживает специальную семантику сигналов. В случае краха обработчика PID 1, происходит крах всей системы (kernel panic). Традиционные системы инициализации минимизируют размер кода и число функций обработчика PID 1, в то время как systemd выносит на уровень PID 1 серию демонов, реализующих вторичные функции, что приводит к общему снижению надёжности. Если традиционный init-процесс занимается лишь обработкой сигнала SIGCHLD от осиротевших процессов и реагирует на смену администратором текущего уровня запуска (runlevel), то systemd дополнительно занимается такими вещами, как управление подключением и отключением устройств, изменением точек монтирования, слежение за состоянием элементов в ФС и даже обработка запросов через DBus API.
  • В защищённой системе без systemd, обычно присутствует только один привилегированный процесс, критичный для проведения атаки, - sshd. Все остальные компоненты управляются и получают входные данные только от пользователя root. В случае systemd присутствуют каналы взаимодействия с непривилегированным пользователем. Реализация расширенных функций в systemd приводит к необходимости выполнения на привилегированном уровне лишнего кода по выделению ресурсов, обработки файлов, разбору сообщений и обработке строковых данных, что увеличивает риск возникновения уязвимостей, которые могут быть эксплуатированы непривилегированным пользователем.
  • Вынос на уровень системы инициализации дополнительных функций приводит к необходимости перезагрузки системы при установке обновлений компонентов systemd, обеспечивающих работу PID 1. 

source1
source2

2014-02-09

Опыт Дидье Дезора - что то мне напоминает

В университете Нэнси во Франции производились опыты с крысами для изучения их группового поведения в условиях ограниченного доступа к пище.
В лабораторных условиях крысы мужского пола в возрасте 60 дней помещались в клетку по 6 особей с выходом на бассейн. В другом конце бассейна находилась кормушка, пищу из которой необходимо было принести в клетку, чтобы съесть. Дистанцию около 1 метра крысе нужно было проплыть под водой. В ознакомительный период (2 дня) в бассейне не было воды, в последующие 7 дней она постепенно прибывала. Сравнивались крысы пород Long-Evans (LE) и Wistar (WI).
Крысы разделились на тех особей, кто приносил пищу (28 из 58 или 48,3 % для породы WI, 27 из 53 или 50,9 % из породы LE) и тех, кто этого не делал, но отбирал пищу у приносящих ее особей.
При помещении в клетку по 6 особей одного поведения (только «эксплуататоров» или только «работников») распределение крыс по социальным группам восстанавливалось: среди «работников» появлялись «эксплуататоры» и наоборот.
Бернард Вербер в книге «Мы, боги» сообщает, что в более крупных популяциях (200 особей) крысы выстраивали иерархию из заместителей и жестоко расправлялись с «несогласными», но при этом исследования мозга показали, что «эксплуататоры» страдали от повышенного стресса.

Источник

2014-02-06

Новая версия системы управления контейнерной виртуализацией Docker 0.8


Увидел свет выпуск инструментария для управления изолированными Linux-контейнерами Docker 0.8. Docker дополняет инструментарий LXC более высокоуровневым API, позволяющий манипулировать контейнерами на уровне изоляции отдельных процессов. В частности, Docker позволяет не заботясь о формировании начинки контейнера запускать произвольные процессы в режиме изоляции и затем переносить и клонировать сформированные для данных процессов контейнеры на другие серверы, беря на себя всю работу по созданию, обслуживанию и сопровождению контейнеров.
Код Docker написан на языке Go и распространяется под лицензией Apache 2.0. Инструментарий базируется на применении встроенных в ядро Linux штатных механизмов изоляции на основе пространств имён (namespaces) и групп управления (cgroups). Для создания контейнеров используются скрипты lxc. Для формирования контейнера достаточно загрузить базовый образ окружения (docker pull base), после чего можно запускать в изолированных окружениях произвольные приложения (например, для запуска bash можно выполнить "docker run -i -t base /bin/bash").
Сообщается, что Docker 0.8 является первым выпуском, при подготовке которого основное внимание уделялось не расширению функциональности, а повышению стабильности и увеличению качества. Также отмечается переход на новую модель формирования новых выпусков. Релизы Docker теперь будут формироваться каждый месяц, что позволит более плавно вводить новые новшества и более интенсивно их тестировать. Находящийся в разработке Master-репозиторий всегда будет находиться в рабочем состоянии, все принимаемые в него патчи будут соответствовать критериям готовности для выпуска. Т.е. любая сборка из Master-репозитория будет заведомо рабочей и соответствовать статусу кандидата в релизы. Выпуски Docker будут иметь привычную для большинства открытых проектов нумерацию: x.y.z: x - версии со значительными изменениями (например, выпуск 1.0 будет отражать готовность к промышленному применению), y - ежемесячные промежуточные выпуски, z - оперативные корректирующие выпуски.
Особенности выпуска Docker 0.8:
  • Официальная поддержка платформы OS X;
  • Включение в состав экспериментального драйвера для организации хранилища поверх файловой системы Btrfs в режиме copy-on-write. По умолчанию поддержка Btrfs отключена, для активации следует запустить демон docker с опциями "-d -s btrfs";
  • Проведены разноплановые оптимизации производительности: Существенно ускорена сборка образов из исходных текстов с использованием команды "build", а также процесс удаления контейнеров и образов. Сокращено время запуска и остановки демона. Для инструкции ADD реализована поддержка кэширования, что позволило предотвратить выполнение повторной загрузки исходного контента в ситуациях, кода он не менялся с момента прошлой загрузки;
  • Сокращено потребление памяти при выполнении большого числа типовых операций за счёт потоковой обработки файлов без их предварительного кэширования в памяти. Устранена серия утечек памяти;
  • Увеличена стабильность работы под нагрузкой. Устранено несколько проблем, вызванных условиями гонки (race conditions);
  • Многие компоненты выделены в субпакеты меньшего размера, каждый из которых снабжен собственным тестовым набором. В результате удалось улучшить тестирование кода, повысить надёжность и упростить внесение изменений;
  • Добавлена новая инструкция ONBUILD, позволяющая привязать к образу обработчик (trigger), вызываемый в момент использования образа в качестве образца для создания других образов;
  • Реализована возможность создания, удаления и изменения большего числа контейнеров и образов за счёт более агрессивного освобождения системных ресурсов;
  • Во всех операциях с пакетами теперь применяется встроенная реализация tar, написанная на языке Go, что позволяет увеличить переносимость и решает проблемы с несовместимостью разных видов утилиты tar;
  • Поддержка запуска управляющего демона через сервис активации по сокету в systemd.
Основные возможности Docker:
  • Возможность размещения в изолированном окружении разнородной начинки, включающей различие комбинации исполняемых файлов, библиотек, файлов конфигурации, скриптов, файлов jar, gem, tar и т.д.
  • Поддержка работы на любом компьютере на базе архитектуры x86_64 с системой на базе современного ядра Linux, начиная от ноутбуков, заканчивая серверами и виртуальными машинами. Возможность работы поверх немодифицированных современных ядер Linux (без наложения патчей) и в штатных окружениях всех крупных дистрибутивов Linux, включая Fedora, RHEL, Ubuntu, Debian, SUSE, Gentoo и Arch;
  • Использование легковесных контейнеров для изоляции процессов от других процессов и основной системы.
  • Так как контейнеры используют свою собственную самодостаточную файловую систему, не важно где, когда и в каком окружении они запускаются.
  • Изоляция на уровне файловой системы: каждый процесс выполняется в полностью отдельной корневой ФС;
  • Изоляция ресурсов: потребление системных ресурсов, таких как расход памяти и нагрузка на CPU, могут ограничиваться отдельно для каждого контейнера с использованием cgroups;
  • Изоляция на уровне сети: каждый изолированный процесс имеет доступ только к связанному с контейнером сетевому пространству имён, включая виртуальный сетевой интерфейс и привязанный к нему IP-адрес;
  • Корневая файловая система для контейнеров создаётся с использованием механизма copy-on-write (отдельно сохраняются только изменённые и новые данные), что позволяет ускорить развёртывание, снижает расход памяти и экономит дисковое пространство;
  • Все стандартные потоки (stdout/stderr) каждого выполняемого в контейнере процесса накапливаются и сохраняются в виде лога;
  • Изменённая файловая система одного контейнера, может использоваться в качестве основы для формирования новых базовых образов и создания других контейнеров, без необходимости оформления шаблонов или ручной настройки состава образов;
  • Возможность использования интерактивной командной оболочки: к стандартному вводу любого контейнера может быть привязан псевдо-tty для запуска shell.
  • Поддержка использования разных систем хранения, которые могут подключаться как плагины. Среди поддерживаемых драйверов хранения заявлены aufs, device mapper (используются снапшоты LVM), vfs (на основе копирования директорий) и Btrfs. Ожидается появление драйверов для ZFS, Gluster и Ceph;
  • Возможность создания контейнеров, содержащих сложные программные стеки, через связывание между собой уже существующих контейнеров, содержащих составные части формируемого стека. Связывание осуществляется не через слияние содержимого, а через обеспечения взаимодействия между контейнерами (создаётся сетевой туннель). 

source1
source2

2014-02-04

Релиз ISC DHCP 4.3.0

После трёх с половиной лет разработки организация ISC (Internet Systems Consortium) опубликовала новый значительный выпуск пакета DHCP 4.3.0 с реализацией сервера, транзитного релея и клиента для динамической настройки параметров сетевого соединения хоста с использованием протокола DHCP. Код проекта распространяется под лицензией BSD.
Основным направлением развития DHCP 4.3.0 стало обеспечение полнофункциональной поддержки IPv6 - большинство возможностей DHCPv4 теперь доступны и при использовании DHCPv6. В частности, для DHCPv6 обеспечена поддержка классов (class "имя" {...}), что позволяет использовать привычный для пользователей DHCPv4 стиль оформления настроек. Для DHCPv6 также обеспечена поддержка обработчиков "on commit", "on expiry" и "on release", улучшены возможности по ведению журнала назначения адресов, добавлены выражения v6relay и v6relopt для доступа к опциям из DHCPv6-релея.
Из ограничений в поддержке IPv6 отмечается возможность использования только одного идентификатора в опции "host-identifier", невозможность одновременного использования клиентом и сервером DHCPv4 и DHCPv6 (для IPv4 и IPv6 нужно запускать раздельные экземпляры), поддержка указания в статусных сообщениях только текста на английском языке, ограниченное число поддерживаемых платформ (Solaris, Linux, FreeBSD, NetBSD и OpenBSD).
Другие улучшения:
  • Поддержка стандартной реализации динамического DNS-сервер (DDNS), соответствующего актуальным требованиям RFC 4701, 4702, 4703 и 4361 и предоставляющего возможность совместного использования записей DDNS между клиентами DHCPv4 и DHCPv6. Поддержка стандартного режима включается опцией "ddns-update-style standard". Возможность использования режима "ddns-update-style interim" сохранена, а реализация режима "ddns-update-style ad-hoc" удалена, так как он был объявлен устаревшим ещё в выпуске 4.2;
  • Возможность динамического добавления и удаления классов и субклассов при помощи OMAPI (Object Management Application Programming Interface) без необходимости изменения файла конфигурации и перезапуска сервера;
  • Возвращена поддержка использования DDNS без определения зоны. Указанная возможность присутствовала в ветке 4.1, но была убрана в 4.2 из-за добавления новой асинхронной реализации DDNS;
  • Добавлена опция "dont-use-fsync yes" для отключения вызова fsync(), что позволяет повысить производительность серверов с большим числом операций обновления БД, но ценой этому является повышение вероятности нарушения целостности хранилища в случае сбоя;
  • Добавлены опции "ddns-local-address4" и "ddns-local-address6" для определения адреса с которого следует отправлять DDNS-обновления;
  • Для сервера добавлена опция "ignore-client-uids" для несохранения идентификаторов пользователей, что может оказаться полезным в конфигурациях, в которых UID могут меняться после перезагрузки, но MAC-адрес остаётся неизменным.
source1
source2

Чему равна скорость тока в проводнике?

Банальный если не риторический вопрос, не правда ли? Все мы в школе учили физику и хорошо помним, что скорость электрического тока в проводнике равна скорости распространения фронта электромагнитной волны, то есть равна скорости света. Но ведь на тех же уроках физики, нам показывали и кучу интересных опытов, где мы могли сами во всем убедиться. Вспомним хотя бы замечательные опыты с электрофорной машиной, эбонитом, постоянными магнитами и т.д. А вот опыты по измерению скорости электрического тока не показывали даже в университете, ссылаясь на отсутствие необходимого оборудования и сложность данных экспериментов. За последние несколько десятков лет прикладная наука сделала огромный рывок вперед и сейчас у многих любителей есть дома та аппаратура, о которой несколько десятков лет назад не мечтали даже научные лаборатории. А потому пришла пора начинать показывать и опыт по измерению скорости электрического тока, что бы вопрос был закрыт раз и навсегда в лучших традициях физики. То есть не на уровне математики гипотез и постулатов, а на уровне простых и понятных каждому экспериментов и опытов.
Суть эксперимента по измерению скорости электрического тока проста до безобразия. Возьмем провод, определенной длинны, в нашем случае 40 метров, подключим к нему генератор сигналов высокой частоты и двухлучевой осциллограф один луч соответственно к началу провода, а другой к его концу. Вот и все. Время, за которое электрический ток пройдет по проводу длиной 40 метров составляет около 160 наносекунд. Сдвиг именно на это время мы и должны увидеть на осциллографе между двумя лучами. Посмотрим теперь, что же мы видим на практике То есть как мы увидели, никакой задержки в 160 наносекунд в нашем случае нет. И именно в нашем случае мы не смогли измерить скорость электрического тока, т.к. она оказалась на несколько порядков больше и не поддается измерению такими приборами. Может быть, у нас провода были сврхнанотехнологичные, или наш электрический ток просто не знал, что он обязан задержаться на 160 наносекунд в проводе? Но что есть, то есть.…

В силу того, что эксперимент был проведен всего один, какие либо выводы делать рано.
Мы надеемся, что и Вам захочется повторить данный опыт и поделиться с нами его результами. С нетерпением ждем Ваших видеоотчетов.

Источник:  zaryad.com

2014-02-03

Компания SUSE развивает свободную систему для обновления ядра без перезагрузки

Компания SUSE представила систему kGraft, в рамках которой развивается аналог поставляемой компанией Oracle технологии Ksplice, позволяющей выполнить обновление ядра Linux без остановки работы системы. Как и Ksplice возможности kGraft ограничены внесением на лету исправлений, не затрагивающих динамически изменяемые структуры данных ядра. Тем не менее, этого достаточно для устранения уязвимостей в ядре и исправления многих видов логических ошибок.
Обновление ядра Linux на лету является востребованной возможностью для промышленных дистрибутивов и систем, критичных ко времени простоя, но несмотря на доступность на рынке решений, предоставляющих подобную функциональность, свободная и общедоступная реализация до сих пор не предоставляется штатным ядром Linux. В отличие от Ksplice, который является проприетарной разработкой (один из ранних вариантов Ksplice был открыт, но очень давно не обновлялся), kGraft изначально позиционируется как свободный проект.
В настоящее время kGraft находится на стадии работающего прототипа, требующего доработки. В марте, после приведения кода в порядок, созданные в рамках проекта наработки планируется предложить для включения в состав основной ветки ядра Linux. Компоненты, работающие на уровне ядра, будут открыты под лицензией GPLv2, а выполняемые в пространстве пользователя утилиты, позволяющие создавать live-патчи к ядру, - под лицензией GPLv3.
Средства наложения патчей на базе kGraft ограничены заменой целиком функций и связанных с ними констант. Патч формируется при помощи специального инструментария, на основе анализа исправлений исходных текстов выявляющего подлежащие замене функции и формирующего исходных код модуля ядра с реализацией патча. Cгенерированный модуль загружается в ядро штатными средствами, как и любой другой модуль ядра, после чего выполняет все необходимые действия по внесению изменений в ядро без прерывания работы системы. В своей работе kGraft базируется на технологиях и идеях уже доступных в ядре: ftrace, зарезервированное через mcount место в заголовках функций, уже применяемая в jumplabels техника исправления INT3/IPI-NMI, RCU-подобное обновление кода, не требующее остановки ядра. 

source1
source2