среда, 11 февраля 2015 г.

Изготавливаем универсальную мультизагрузочную флешку

В сети полно статей по изготовлению загрузочных флешек с применением разного рода утилит, но такие утилиты не универсальны, а в статьях не описываются сами принципы загрузки.
Мне, системному администратору, по роду занятия часто требуется большое количество загрузочных инструментов: дистрибутивов операционных систем, утилит, Live систем, но содержать для этого большое количество флешек не эффективно, поэтому для этих целей я использую USB-HDD с двумя разделами (загрузочный раздел и раздел с данными) и собираю нужное мне самостоятельно.
Здесь я опишу как создать универсальное загрузочное устройство на USB-Flash, SD/MMC, USB-HDD, HDD, опишу на простом техническом языке принцип и инструменты для создания любых по составу загрузочных устройств, попробую понятно и без лишних технических подробностей описать этапы загрузки на примере создания мультизагрузочного устройства с использованием GRUB4DOS на разделе NTFS.
Этапы загрузки
В общем случае (достаточном для создания своей мультизагрузочной системы) в BIOS системах загрузка происходить в 3-5 этапов:
1. Инициализация BIOS.
2. Выполнение кода из MBR.
3. Выполнение кода из загрузочного сектора раздела.
4. Передача управления загрузчику ОС.
5. Загрузка ядра ОС, инициализация драйверов, инициализация пользовательского окружения.
Далее рассмотрим каждый этап отдельно в минимально необходимом контексте, для более полного понимания рекомендую ознакомиться с непонятными терминами в вики и на просторах интернета.
1. Инициализация BIOS
При включении ПК управление переходит коду BIOS, который загружает код расположенный в MBR.
2. Выполнение кода из MBR
MBR (Master Boot Record) - самый первый сектор на носителе информации, содержит в себе описание структуры разделов на носителе и загрузочный код, который выполняется на втором этапе. MBR присутствует на флешках, картах памяти, жёстком диске (На флешках и на картах памяти есть возможность создания более одного раздела, аналогично жёсткому диску, но из-за ограничений в винде не имеет смысла, т.к. она видит только первый раздел).
В таблице разделов MBR есть признак, который обозначает, что данный раздел является загрузочным (активным). Для того, что бы код из MBR смог определить с какого раздела необходимо загрузиться, нужно пометить раздел как загрузочный, сделать можно любой утилитой для редактирования разделов, например: fdisk, GParted, Acronis Disk Director, Parted Magic, MiniTool Partition Wizard Home Edition.
По умолчанию (если вы не устанавливали загрузчики GRUB, LILO и т.п. на носитель в загрузочные сектора) загрузочный код расположенный в MBR ищет активный раздел, считывает загрузочный сектор в оперативную память и передаёт ему управление.
3. Выполнение кода из загрузочного сектора раздела
В общем случае, в самом первом секторе раздела содержится информация о разделе (тип файловой системы, размер и т.п.) и загрузочный код, в задачи которого входит поиск следующего кода, который необходимо загрузить и передать ему управление.
Не будем рассматривать разные файловые системы, остановимся на NTFS (именно на ней будем делать наше устройство). При форматировании раздела диска в NTFS (при форматировании флешки) в загрузочный сектор раздела записывается код, который ищет специальный файл в корне диска (для отформатированных в Windows XP, ищется файл "ntldr", для отформатированных в Windows Vista и выше - "bootmgr").
Таким образом нам необходимо отформатировать раздел в NTFS, пометить его как активный и поместить в корень диска файл с необходимым именем.
3.1 Форматирование флешки
Отформатировать раздел можно разными способами, приведу универсальный, подходящий для всех версий выше Windows XP:
3.1.1 Запускаем консоль - Нажимаем Win+R (Пуск->Выполнить). Набираем комманду "cmd", нажимаем "OK" или Enter.
3.1.2 В консоли набираем "format <буква диска>: /q /fs:ntfs", нажимаем Enter. Читаем сообщения и выполняем всё что от нас требуют.
Если у вас Linux, то в консоли набираем "mkfs.ntfs -Q /dev/<имя устройства>", нажимаем Enter.
3.2 Ntldr, bootmgr
Далее необходимо найти то, что можно положить в специальный файл. В теории в качестве этого файла можно использовать много программ не использующих ресурсы операционной системы (она ведь ещё не загружена) и работающих в реальном режиме процессора. Не буду в даваться в подробности, приведу несколько вариантов:
3.2.1 На диске с дистрибутивом Windows 7 или на диске с WinPE 2+ (основанном на Windows Vista+) уже присутствует файл "bootmgr", поэтому, что бы сделать из такого CD диска загрузочную флешку, достаточно содежимое диска скопировать в корень нашего раздела и создать копию файла "bootmgr" с именем "ntldr" (для того, что бы не заморачиваться с тем в какой ОС был отформатирован наш раздел). После этого с нашего устройства можно будет загрузиться.
3.2.2 Но мы не будем ограничиваться одной системой, нам нужно сделать мультизагрузочную.
Для этого будем использовать GRUB4DOS, который умеет грузить практически любую ОС. Качаем архив например от сюда (http://code.google.com/p/grub4dos-chenall/downloads/list), в нём много файлов, но все они нам не нужны. Из архива берём "grldr" - это собственно сам загрузчик, который нам нужен, переименовываем его в "ntldr" и копируем на наш раздел (так же делаем копию с именем "bootmgr"). Так же из архива берём файл "menu.lst" (конфигурационный файл Grub), копируем его на флешку и используем как каркас для нашей дальнейшей мультизагрузочной системы.
4. Настраиваем Grub
Для настройки Grub необходимо подредактировать файл "menu.lst". Подробную информацию по формату файла и опциям можно нати наhttp://greenflash.su/Grub4Dos/Grub4dos.htm. Тут я только приведу некоторые используемые мной способы загрузки и краткое описание, чтоб вы в дальнейшем могли сделать своё по аналогии.
4.1 WinPE и то что сможет успешно грузиться из ISO образа.
WinPE начиная с версии 2+ (основанные на версии Windows Vista и выше) прекрасно грузятся через эмуляцию в grub.
---menu.lst---
title Windows Preinstall Enviroupment 3.0 - Заголовок, так будет выглядить пункт меню при загрузке
find --set-root /winpe.iso - Найдёт файл "winpe.iso" и установит раздел с этим файлом в качестве корневого (поиск будет проведён на всех доступных разделах, поэтому не обязательно файл располагать на нашем разделе, можно и на другой раздел положить)
map /winpe.iso (0xff) || map --mem /winpe.iso (0xff) - Загрузит наш образ в оперативную память
map --hook
chainloader (0xff) - Передаст дальнейшую загрузку нашему iso образу.
------
4.2 Инсталятор Windows 7, 2008, 8, 2012 (что нужно грузить напрямую)
С инсталяторами Windows немного по сложнее, т.к. из iso образа они загрузиться смогут, но установить систему не получится из-за особенностей эмуляции (есть способ заставить, но нужно проводить дефрагментацию и интегрировать специальный драйвер  в инсталятор), опишу способ который меня удовлетворил. С DVD диска Windows 7 необходимо в корень нашего раздела скопировать папки: "boot", "sources", а файл "bootmgr" с DVD диска необходимо переименовать например в "bootwin7".
---menu.lst---
title Windows 7 installer - Заголовок
find --set-root /bootwin7
chainloader /bootwin7 - Передаст дальнейшую загрузку нашему файлу.
------
4.3 Загрузка из образа дискеты (floppy)
Для загрузки утилит из образа дискеты, например: MSDOS, Memtest необходимо положить образ floppy диска на наш раздел и прописать
---menu.lst---
title Memory Test
find --set-root /Memtest.img
map --mem /Memtest.img (fd0) - Загрузит наш образ дискеты в оперативную память
map --hook
chainloader (fd0)+1
------
4.4 Загрузка LiveCD Linux
В общем случае загрузка разных LiveCD Linux сводится к поиску на CD ядра, образа initrd и указания необходимых опций, как правило на CD присутствует файл с необходимой информацией, его только нужно найти. Приведу на примере загрузки LiveCD Arch Linux
---menu.lst---
title Boot Arch Linux (x86_64)
kernel /arch/boot/x86_64/vmlinuz archisobasedir=arch archisolabel=Bootable - Указываем файл с ядром и опции загрузки
initrd /arch/boot/x86_64/archiso.img - Указываем файл с образом initrd
boot
------
Пример загрузки ntpasswd (утилита основанная на Linux для сброса пароля в Windows системах)
---menu.lst---
kernel /ntpasswd/vmlinuz
initrd /ntpasswd/scsi.cgz
initrd /ntpasswd/initrd.cgz
------
4.5 И на последок:
---menu.lst---
title Boot from CD
cdrom --init
map --hook
chainloader (cd0)

title Command Line
commandline

title Reboot PC
reboot

title ShutDown PC
halt

понедельник, 9 февраля 2015 г.

Релиз ядра Linux 3.19 (установка/обновление)

После двух месяцев разработки Линус Торвальдс анонсировал релиз ядра Linux 3.19. Среди наиболее заметных улучшений: средства защиты от переполнения буфера на основе расширений Intel MPX, проверка целостности и быстрая замена дисков в Btrfs RAID 5/6, сжатие LZ4 в squashfs, возможность привязки BPF-программ к сетевым сокетам, протокол TIPC, системный вызов execveat(), драйвер "ipvlan" для связи контейнеров, драйвер "AMD KFD" для GPGPU-вычислений, поддержка архитектуры Altera Nios II.

В новую версию принято примерно 11500 исправлений от 1200 разработчиков, размер патча - 38 Мб (изменения затронули 10742 файлов, добавлено 487475 строк кода, удалено 350946 строк). Около 46% всех представленных в 3.19 изменений связаны с драйверами устройств, примерно 19% изменений имеют отношение к обновлению кода специфичного для аппаратных архитектур, 12% связано с сетевым стеком, 4% - файловыми системами и 4% c внутренними подсистемами ядра.

Из наиболее интересных новшеств можно отметить:

    Дисковая подсистема, ввод/вывод и файловые системы
        В Btrfs появилась возможность быстрой замены дисков в RAID 5/6 без предварительного добавления нового диска, переноса данных и вывода из массива старого диска, т.е. теперь при помощи утилиты btrfs-replace можно просто поменять на лету один диск на другой, как это делалось для накопителей, не состоящих в RAID. Для RAID 5/6 также добавлена функция проверки целостности данных ("Scrubbing", сверка контрольных сумм, сохранённых и вычисленных на основе фактических данных), которая ранее не могла быть применена к RAID разделам Btrfs;
        Существенно увеличена производительность модуля Device Mapper, обеспечивающего динамическое выделение места в хранилище (thin provisioning) и позволяющего создать несколько виртуальных дисковых разделов, суммарный размер которых превышает физический размер доступных накопителей, а физическое дисковое пространство выделяется по мере необходимости. Производительность возросла в основном благодаря поддержке агрегирования операций с идентичными блоками на стадии перед обращением к основному устройству;
        В файловой системе Ceph добавлена поддержка inline-размещения данных, что привело к увеличению производительности при работе с мелкими файлами. Также добавлена поддержка верификации сообщений по цифровой подписи для аутентификации обмена данными между клиентами и серверами Ceph;
        В F2FS, развиваемую компанией Samsung высокопроизводительную файловую систему для Flash-накопителей, добавлена опция "fastboot", которую можно использовать для сокращения числа проверок во время загрузки;
        В файловую систему squashfs добавлена поддержка сжатия данных с использованием алгоритма LZ4; 
    Виртуализация и безопасность
        Поддержка расширений MPX (Memory Protection Extensions), которые появятся в следующих поколениях микроархитектур процессоров Intel (Skylake и Goldmont) и дадут возможность организовать проверку указателей на соблюдение границ, связанных с ними областей памяти. Для использования данной возможности для каждой ссылки на память процессору необходимо сообщить сведения о допустимых границах области памяти, что требует дополнительной адаптации программного обеспечения, т.е. использование для сборки компилятора и runtime-библиотек, поддерживающих MPX. С практической стороны, MPX позволит выявлять ошибки при работе с памятью и блокировать совершение атак, основанных на переполнении буфера.
        Добавлен драйвер "ipvlan", позволяющий создавать виртуальные сетевые устройства для связи между изолированными контейнерами. Драйвер напоминает macvlan, но рассчитан на эффективную работу с сетевыми пространствами имён (network namespaces) и производит мультиплексирование трафика на более высоком уровне сетевого стека;
        Для архитектуры ARM64 реализован механизм seccomp, используемый для ограничения доступа приложений к системным вызовам;
        В связи с устранением возможного вектора атаки (CVE-2014-8989) изменена обработка системного вызова setgroups(), при его использовании в пространствах имён для непривилегированных пользователей (user namespaces), что может потенциально привести к нарушению нормальной работы некоторых приложений, выполняющих маппинг произвольных идентификаторов групп пользователей.
        Прекращена поддержка использования системы виртуализации KVM на серверах с архитектурой Itanium (ia64), так как данная возможность не использовалась на практике и оставалась без сопровождения;
        Добавлен интерфейс для доступа из пространства пользователя к функциям блочного шифрования AEAD;
        Подсистема virtio значительно доработана в плане обеспечения поддержки стандарта virtio 1.0; 
    Сетевая подсистема
        В клиент и сервер NFS добавлена поддержка опций ALLOCATE и DEALLOCATE, определённых в стандарте NFS 4.2 и позволяющих заранее зарезервировать место в хранилище для файла, до его фактической записи;
        В сетевой стек добавлена новая подсистема для задействования аппаратных механизмов ускорения коммутации и маршрутизации на поддерживающем данные возможности оборудовании;
        Добавлен netlink API для сетевого протокола TIPC (Transparent Inter-process Communication), предназначенного для организации межпроцессного взаимодействия в кластере. Протокол предоставляет средства для быстрого и надёжного взаимодействия приложений, независимо от того, на каких узлах в кластере они выполняются.
        В подсистеме InfiniBand обеспечена поддержка подкачки по необходимости (on-demand paging), что позволяет создавать и размещать области RDMA через обработчик обращений к невыделенным страницам памяти (page faults), т.е. расходовать память тогда, когда она действительно используется; 
    Память и системные сервисы
        В системный вызов getsockopt() добавлена новая опция SO_INCOMING_CPU, при помощи которой можно определить CPU, используемый для обработки указанного сокета. Используя данную опцию приложение может распределить связанную с сокетами работу по нескольким процессорам, увеличив общую пропускную способность;
        Возможность привязки расширенных BPF-программ к сетевым сокетам. В настоящее время функциональность ограничена сбором статистики, но в будущем ожидается добавление возможностей по установке фильтров;
        Добавлен системный вызов execveat(), который позволяет запустить исполняемый файл из открытого файлового дескриптора или определить исполняемый файл при передаче файлового дескриптора директории;
        Из экспериментального staging-дерева в основной состав ядра перемещён механизм межпроцессного взаимодействия Binder, предложенный разработчиками платформы Android;
        Поддержка оверлеев Device Tree, призванных упростить получение информации о вспомогательном оборудовании на стадии загрузки системы;
        В подсистему ftrace добавлена возможность использования в фильтрах выражений с логической операцией НЕ ("!");
        Добавлен новый внутренний API, позволяющий унифицировать доступ драйверов к параметрам оборудования через ACPI или Вevice Tree, скрывая особенности работы через данные интерфейсы;
        Продолжена работа над устранением проблемы 2038 года, вызванной переполнением 32-разрядного типа time_t. Внутренние функции ядра do_settimeofday(), timekeeping_inject_sleeptime() и mktime() заменены на варианты, в которых используется 64-разрядный тип time64_t или timespec64. 
    Аппаратные архитектуры
        Поддержка микропроцессорной архитектуры с программным ядром Altera Nios II (soft-процессор), конкурирующей с архитектурой MicroBlaze; 
    Оборудование
        Добавлен драйвер "AMD KFD", предоставляющий новый интерфейс для использования вычислительных возможностей графических процессоров в приложениях, не связанных с графикой (GPGPU). Взаимодействие с драйвером на пользовательском уровне осуществляется через библиотеку HSA (Heterogenous System Architecture), которая позволяет использовать OpenCL для организации гибридных вычислений и наладить совместную работу CPU, GPU и иных процессоров, в которых подходящее вычислительное устройство выбирается в прозрачном режиме в зависимости от задачи. В HSA CPU и GPU имеют доступ к единым областям памяти, что упрощает организацию работы гибридных приложений;
        В компоненты прямого рендеринга (DRM) добавлена поддержка атомарного переключения видеорежимов, позволяющая разом, в рамках одной атомарной операции, изменить несколько параметров графического режима. Вызов ioctl() для обращения к данной функциональности из пространства пользователя ожидается в ветке ядра 3.20;
        В DRM-драйвер Nouveau добавлена частичная поддержка видеокарт NVIDIA GeForce 900 (GPU GM204), реализована возможность управления напряжением в Tegra K1;
        В DRM-драйвере Intel реализована начальная поддержка графической подсистемы процессоров нового поколения, построенных в соответствии с микроархитектурой Skylake. По умолчанию включен режим PPGTT (Per-Process Graphics Translation Tables), который может использоваться для изоляции доступа к GPU в гостевых системах;
        В DRM-драйвере Radeon улучшены средства управления скоростью вращения кулера для Radeon HD 7000 и более новых GPU;
        Поддержка GPU, используемых в SoC Freescale i.MX и Rockchip;
        Поддержка звуковых устройств на чипах Intel Baytrail;
        Поддержка контроллеров USB 3.0 от компании Broadcom;
        В Video4Linux добавлены драйверы для видеоустройств DVBSky S950 V3, тюнеров Montage M88RS6000, демодуляторов Panasonic MN88472 и MN88473, и ресиверов для пультов ДУ Amlogic Meson.
        Поддержка SoC Amlogic Meson8, Allwinner A80, Samsung Exynos4415, Freescale LS1021A, Alphascale ASM9260 и AMD Seattle;
        Поддержка SCSI-адаптеров Tekram DC390(T), Am53/79C974 и Western Digital WD7193/7197/7296. 

Установка ядра Linux Kernel 3.19

Установить ядро версии 3.19 командами ниже, можно ​​в следующих дистрибутивах Linux:

Ubuntu 15.04/14.10/14.04/12.04
Linux Mint 17/13
elementary OS 0.2/0.3

1. Откройте терминал, скопируйте и выполните одну из команд, согласно архитектуры вашей системы/компьютера, на свой страх и риск:

Для 32-bit (одной командой):

cd /tmp && wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.19-vivid/linux-headers-3.19.0-031900-generic_3.19.0-031900.201502091451_i386.deb http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.19-vivid/linux-headers-3.19.0-031900_3.19.0-031900.201502091451_all.deb http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.19-vivid/linux-image-3.19.0-031900-generic_3.19.0-031900.201502091451_i386.deb && sudo dpkg -i *.deb

Для 64-bit (одной командой):
  
cd /tmp && wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.19-vivid/linux-headers-3.19.0-031900-generic_3.19.0-031900.201502091451_amd64.deb http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.19-vivid/linux-headers-3.19.0-031900_3.19.0-031900.201502091451_all.deb http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.19-vivid/linux-image-3.19.0-031900-generic_3.19.0-031900.201502091451_amd64.deb  && sudo dpkg -i *.deb

 2. Обновите GRUB (GRUB надо обновлять в той системе Linux где он установлен, если у вас их более одной):

sudo update-grub

Примечание 1
. Если у вас установлен загрузчик BURG, то и его нужно обновить:

sudo update-burg

3. По окончании установки, закройте все приложения и перезагрузите компьютер следующей командой:

sudo reboot

После входа в систему, проверьте версию актуального ядра командой:

uname -r

Примечание 2
. Как вернуться к ранее установленному ядру, инструкция ЗДЕСЬ.

Если вы решили удалить ядро 3.19, выполните эту команду:

sudo apt-get purge linux-image-3.19-*

И вновь обновите GRUB командой:

sudo update-grub

Источники: https://www.kernel.org/ | http://www.opennet.ru/

пятница, 30 января 2015 г.

Релиз офисного пакета LibreOffice версии 4.4

Организация The Document Foundation после пяти месяцев разработки представила новый значительный выпуск офисного пакета LibreOffice - 4.4. Это девятый выпуск проекта после ответвления от кодовой базыOpenOffice.org.

Среди наиболее заметных изменений можно отметить возможность заверения PDF-документов цифровой подписью, реорганизация панелей инструментов, контекстных меню и диалогов, модернизация системы отслеживания изменений, шаблоны составных документов, улучшение поддержки импорта OOXML, Adobe Pagemaker, Visio и Abiword, возможность подсоединения к серверу SharePoint, задействование нового OpenGL-фреймворка в Impress, добавление новых шаблонов, включение в поставку свободных аналогов шрифтов Microsoft C-Fonts Calibri и Cambria, новый диалог выбора цвета, устранение ошибок, выявленных в результате проверки через систему Coverity Scan



О всех изменениях и улучшениях можно посмотреть в примечаниях к выпуску LibreOffice 4.4 на русском языке.

Установка LibreOffice 4.4 в Ubuntu 14.04/14.10

Примечание 1. В Ubuntu 15.04 LibreOffice версии 4.4 уже обновлён по умолчанию. 

Примечание 2. Перед установкой новой версии, старую удалять не нужно

Откройте терминал, скопируйте и выполните следующие команды:

sudo add-apt-repository ppa:libreoffice/ppa
sudo apt-get update
sudo apt-get install libreoffice


Подробности журнала изменений: LibreOffice 4.4 

среда, 28 января 2015 г.

Выделение текста внутри ссылок в браузерах

Недавнее появление браузера Vivaldi возродило к жизни дискуссию о возможностях старых версий Opera, которых очень не хватает в современных браузерах. Одной из таких фишек была возможность легко выделить мышкой текст внутри кликабельной ссылки.

Выглядит это примерно так:



Текст ссылки при горизонтальном перемещении мышки выделяется как простой текст, а при вертикальном — перетаскивается.
Чтобы добавить такую возможность в Google Chrome (Chromium)Firefox или Opera Blink, cуществует расширение под названием Select like a Boss, код которого, к слову, доступен под свободной лицензией.

Расширение для Chrome
Расширение для Opera Blink
Расширение для Firefox

Просто устанавливаем его наш в браузер и радуемся новому старому функционалу. 

Источник:  http://habrahabr.ru/post/249091/

YouTube перешёл по умолчанию на HTML5-проигрыватель видео

Компания Google сообщила о переходе видеохостинга YouTube на повсеместное отображение видео с использованием HTML5-проигрывателя, построенного с использованием тега "video". По умолчаниюHTML5-проигрыватель теперь задействован для браузеров Chrome, IE 11, Safari 8 и бета-выпусков Firefox. Одновременно объявлено о переводе в разряд устаревших методов встраивания YouTube-контента на страницы при помощи блоков object и Flash API. Для встраивания видео рекомендуется использовать только iframe API.

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

Из последних достижений в развитии спецификаций HTML5, которые помогли разработать полноценную замену для Flash-плеера, отмечаются:

  1.     API Media Source Extensions, предоставляющий средства для локальной генерации мультимедийных потоков из JavaScript-приложений. Media Source Extensions даёт возможность динамически формировать контент для тегов video и audio, определять свои модели буферизации и состыковки данных, что позволяет реализовывать такие системы, как подстановка рекламы, live-вещание со сдвигом во времени, адаптивное изменение битрейта и разрешения. Применение Media Source Extensions в HTML5-плеере позволило на 50% сократить буферизацию в обычных условиях и до 80% для сетей с непостоянным уровнем качества.
  2.     Видеокодек VP9, разработанный в качестве конкурента стандарта сжатия видео H.265/HEVC (High Efficiency Video Coding). В YouTube уже ведётся работа по перекодированию видео в формат VP9, использование которого позволяет на 35% сократить размер битового потока при сохранении идентичного качества, а также на 15-80% сократить время ожидания начала воспроизведения.
  3.     API Encrypted Media Extensions, реализующий элементы поддержки DRM (Digital Rights Management) для организации защиты от копирования видеоконтента, встраиваемого в web-страницы через HTML5-тег video.
  4.     API WebRTC, предоставляющий средства для аудио- и видео-коммуникаций в режиме реального времени. Технология используется для организации потокового вещания через YouTube.
  5.     API Fullscreen, используемый для организации просмотра видео в полноэкранном режиме. 
Источник:  http://www.opennet.ru/