text: IRC () — протокол прикладного уровня для обмена сообщениями в режиме реального времени. Разработан в основном для группового общения, также позволяет общаться через личные сообщения и обмениваться данными, в том числе файлами. IRC использует транспортный протокол TCP и криптографический TLS (опционально). IRC начал завоёвывать особенную популярность после операции «Буря в пустыне» (1991), когда сообщения со всего мира собирались в одном месте и в режиме «on-line» транслировались в IRC. Ввиду технической простоты реализации протокол IRC в свое время стал использоваться при организации ботнетов в качестве средства передачи управляющих команд компьютерам — участникам ботнета, — от владельца. История и спецификации IRC был разработан в 1988 в качестве замены программы MultiUser Talk. Основная спецификация — RFC 1459 (1993). Её дополняют несколько спецификаций 2000 года: RFC 2810 — Internet Relay Chat: Architecture RFC 2811 — Internet Relay Chat: Channel Management RFC 2812 — Internet Relay Chat: Client Protocol RFC 2813 — Internet Relay Chat: Server Protocol IRC-сеть Согласно спецификациям протокола, IRC-сеть — это группа серверов, соединённых между собой. Простейшей сетью является одиночный сервер. Сеть должна иметь вид связного дерева, в котором каждый сервер является центральным узлом для остальной части сети. Клиентом называется всё, что подключено к серверу, кроме других серверов. Различают два типа клиентов: пользовательские; сервисные. Пересылка сообщений в IRC-сети IRC предоставляет возможность как группового, так и приватного общения. Для группового общения существует несколько возможностей. Пользователь может отправить сообщение списку пользователей, при этом серверу отправляется список, сервер выделяет из него отдельных пользователей и отправляет копию сообщения каждому из них. Более эффективным является использование каналов. В этом случае сообщение отправляется непосредственно серверу, а сервер отправляет его всем пользователям в канале. Как при групповом, так и при приватном общении сообщения отправляются клиентам по кратчайшему пути и видимы только отправителю, получателю и входящим в кратчайший путь серверам. Кроме того, возможна отправка широковещательного сообщения. Сообщения клиентов, касающиеся изменения состояния сети (например, режима канала или статуса пользователя), должны отправляться всем серверам, входящим в сеть. Все сообщения, исходящие от сервера, также должны быть отправлены всем остальным серверам. Роли пользователей По отношению к серверу IRC-пользователи могут быть IRC-операторами сервера (), канала () и обычными пользователями. Клиентские приложения для IRC-сетей Наиболее популярные приложения для различных ОС: Web: IRCCloud, Mibbit Windows: mIRC, Miranda IM, Trillian, Pidgin, KVIrc, XChat Unix и Linux Quassel, Kopete, Irssi, BitchX, XChat, Konversation, KVIrc, Pidgin, ircII, WeeChat, Polari macOS: Textual, Snak, Ircle, Adium, Colloquy, KVIrc, LimeChat, IRCCloud AmigaOS: AmIRC, AIRcOS, WookieChat, BenderIRC, BitchX, BlackIRC Android: AndroIrc, IRC for Android, Andchat, DaraIRC, fIRC chat, IRC radio, Yaaic, AiCiA, Droid-Life IRC, IRCCloud MIDP: JmIrc Специфика русскоязычного IRC Использование русского языка в IRC не опирается ни на какой стандарт. Однако имеется ряд обычаев и соглашений, возникших в процессе эволюции различных русскоязычных IRC-сообществ. История вопроса Первые русскоговорящие каналы возникли ещё в 1990-х годах в международных сетях, таких как и . Первоначально, под влиянием UNIX-культуры, было принято кодировать буквы русского алфавита в KOI-8. Примерно с 1995 года начался приток пользователей Windows, которые зачастую вообще не имели понятия, что такое кодовая страница и не знали различия между кириллицей и Windows-1251. Данное противоречие вызвало много конфликтов. Стихийно возникшее в те времена соглашение помещало вопрос о кодировках в ве́дение конкретных каналов. Это было очень неудобно для пользователей, однако на тот момент иного выхода не было. Отчасти именно эта проблема стимулировала примерно с 2000 года усиленное формирование отдельных русскоязычных сетей, где вопросы кодировки могли бы решаться централизованно. Обычаи современных русскоязычных сетей Традиционно, в международных IRC-сетях клиенты посылают и принимают сообщения, состоящие из байтов; при этом вопрос об интерпретации не ASCII-байтов оставляется на усмотрение клиентов. Все сколь-нибудь развитые русскоязычные сети, при всех их различиях, придерживаются иного принципа: клиенты посылают и принимают сообщения, состоящие из символов. То есть, если правильно настроенный клиент отправляет на канал букву «Ы», то все подключённые к каналу правильно настроенные клиенты будут принимать тоже букву «Ы», независимо от того, как каждый из них предпочитает её кодировать. На практике это обычно реализуется наличием на сервере нескольких TCP-портов, на каждом из которых используется определённая кодировка. Список этих портов принято помещать в MOTD (приветствие сервера). Таким образом, вопрос о «правильной настройке» клиента сохраняется, однако для пользователя выбрать порт подключения несравненно проще, нежели заниматься установкой таблиц перекодировок символов, возможность которой поддерживается не во всяком клиенте. В некоторых случаях серверное ПО позволяет переключить кодировку без отсоединения от сервера, хотя по ряду причин такое изменение кодировки работает некорректно. Как правило, каждая сеть использует свою внутреннюю кодировку (чаще всего это Windows-1251 и почти никогда UTF-8; почему — см. ниже), при этом данные, передаваемые или принимаемые клиентами, с кодировками, отличными от внутренней, подвергаются перекодировке (немедленной при приёме, проводимой в момент формирования входящего сообщения — при передаче). Ники Исторически использование букв кириллицы в никах было невозможно. Однако самая большая русскоязычная IRC-сеть RusNet позволяет пользоваться кириллическими никами и регистрировать их. UTF-8 — за и против Сторонники интернационализации обычно считают UTF-8 перспективной кодировкой для всех языков, включая русский. Следует, однако, отметить, что одна буква кириллицы в UTF-8 занимает два байта, что создаёт некоторую дополнительную нагрузку на сети и ограничивает максимальную длину одного сообщения. По стандарту, сообщение IRC не может иметь длину больше 510 байтов, из которых, собственно, на текст приходится никак не больше 499 (по нереалистично завышенной оценке). Следовательно, отправить в одном сообщении больше 249 русских букв оказывается невозможно. Ограничение размера сообщений вызывает ещё одну неприятность: при попытке превысить установленный предел сервер обрезает сообщения. Если срез пройдёт посередине русской буквы (то есть будет передан первый её байт, но отброшен второй), то получившаяся последовательность байтов перестанет, с точки зрения UTF-8, быть правильной строкой. Ряд клиентов (например, Xchat или mIRC) отобразит такое сообщение как 8-битное (например, в Latin-1 или Windows-1251), что сделает его полностью нечитаемым и занимающим к тому же много места на экране. Несомненным преимуществом использования UTF-8 для кодировки русского языка является возможность свободно цитировать тексты на других языках, а также использовать экзотические символы наподобие «→» и «☺». К тому же, являясь клиентом IRC-сети, в которой UTF-8 принят повсеместно, можно общаться сразу на многих языках, не заботясь о техническом представлении букв. Пока, однако, не известны многоязычные сети, явно оговаривающие необходимость использования только UTF-8, использующие UTF-8 в качестве внутренней кодировки или каким-либо иным образом упорядочивающие кодировку символов клиентами (за исключением IRC-сервера внутри сети I2P). См. также IRC-сервисы Список IRC-клиентов Баунсер Веб-чат Instant Messenger Примечания Ссылки irchelp.org — документация по IRC ircnet.ru — помощь и статьи об IRC rus-net.org — всё о русском IRC Статистическая информация по различным IRC-сетям Статистическая информация по различным IRC-сетям — Путеводитель по IRC-клиентам


source: wikipedia

text: Intel 8086 (в 1980-85 годах известный как iAPX 86/10) — первый 16-битный микропроцессор компании Intel. Разрабатывался с весны 1976 года и выпущен 8 июня 1978 года. Реализованная в процессоре архитектура набора команд стала основой широко известной архитектуры x86. Процессоры этой архитектуры стали наиболее успешной линией процессоров Intel. Современные процессоры этой архитектуры сохраняют возможность выполнять все команды этого набора. Незначительно изменённая версия процессора с 8-битной шиной данных, выпущенная в 1979 году под названием Intel 8088, применялась в персональных компьютерах IBM PC и IBM PC/XT. История Предшественники В 1972 году Intel выпустила 8008, первый 8-битный микропроцессор. Он использовал набор инструкций, разработанный корпорацией Datapoint для программируемых компьютерных терминалов, пригодный и для универсальных процессоров. Этот процессор требовал нескольких дополнительных микросхем для использования в полноценном компьютере, отчасти потому, что использовал маленький корпус всего лишь с 18 выводами, который использовался для микросхем DRAM, производимых Intel, и соответственно не мог иметь отдельную шину адресов. Двумя годами позже, в 1974 году, был запущен 8080, в новом, 40-выводном DIP-корпусе, первоначально разработанном для микросхем калькуляторов. Он имел отдельную шину адресов и расширенный набор инструкций, кодово- (не бинарно-) совместимый с 8008, дополненный для удобства программирования несколькими 16-битными инструкциями. Процессор Intel 8080 часто называют первым по-настоящему удобным и полезным микропроцессором. В 1977 году он был заменён на Intel 8085, с одним питающим напряжением (+5 В) вместо трёх различных на предшественнике и несколькими другими усовершенствованиями. Наиболее известными соперниками были 8-битные Motorola 6800 (1974), Microchip PIC16X (1975) (здесь наверное имеется в виду процессор General Instrument CP1600), MOS Technology 6502 (1975), Zilog Z80 (1976) и Motorola 6809 (1978). Разработка Рынок 8-разрядных микропроцессоров в конце 1970-х годов был переполнен, и Intel, оставляя попытки закрепиться на нём, выпускает свой первый 16-битный процессор. Проект 8086 был начат в мае 1976 года и первоначально задумывался как временная замена для амбициозного и задерживающегося проекта iAPX 432 (также известного как 8800). Это была попытка, с одной стороны, противостоять менее запаздывавшим 16- и 32-битным процессорам других производителей (таких как Motorola, Zilog и National Semiconductor), а с другой — борьбы с угрозой от Zilog Z80 (разработанного командой под руководством ушедшего из Интел Федерико Фаджина), который стал очень успешным. Первая версия архитектуры 8086 (система команд, прерывания, работа с памятью и вводом-выводом) была разработана с середины мая до середины августа Стивеном Морзе. Потом команда разработчиков была увеличена до четырёх человек, которые представили два основных проектных документа — «8086 Architectural Specifications» и «8086 Device Specifications». При разработке не использовалось специализированных CAD-программ, а диаграммы были исполнены из текстовых символов. Использовались уже опробованные элементы микроархитектуры и физической реализации, в основном от Intel 8085. Описание Процессор Intel 8086 представляет собой модернизированный процессор Intel 8080, и хотя разработчики не ставили перед собой цели достичь полной совместимости на программном уровне, большинство программ, написанных для Intel 8080, способно выполняться и на Intel 8086 после перекомпиляции. Новый процессор несёт в себе множество изменений, которые позволили значительно (в 10 раз) увеличить производительность по сравнению с предыдущим поколением процессоров компании. Регистры Всего в процессоре Intel 8086 имеется 14 16-разрядных регистров: 8 регистров общего назначения (AX, BX, CX, DX), 2 индексных регистра (SI, DI), 2 указательных (BP, SP), 4 сегментных регистра (CS, SS, DS, ES), программный счётчик или указатель команды (IP) и регистр флагов (FLAGS, включает в себя 9 флагов). При этом регистры данных (AX, BX, CX, DX) допускают адресацию не только целых регистров, но и их младшей половины (регистры AL, BL, CL, DL) и старшей половины (регистры AH, BH, CH, DH), что не только позволило использовать новое на тот момент 16-разрядное ПО, но и сохранило обратную совместимость с 8-битными программами (правда, их необходимо было, по крайней мере, перекомпилировать). Шины Размер шины адреса был увеличен с 16 бит до 20 бит, что позволило адресовать 1 Мбайт (220 байт) памяти. Шина данных была 16-разрядной. Однако в микропроцессоре шина данных и шина адреса использовали одни и те же контакты на корпусе. Это привело к тому, что нельзя одновременно подавать на системную шину адреса и данные. Мультиплексирование адресов и данных во времени позволяет использовать всего 20 контактов корпуса, но уменьшает скорость передачи данных. Из-за того, что выполнение отдельных команд меньше цикла ввода-вывода, в процессор был введён (впервые) буфер команд на 6 байт, это позволяло выполнять, например, команды сложения параллельно командам ввода-вывода. Работа с памятью Поскольку регистры и АЛУ процессора 8086 — 16-битные, это накладывает ограничение на операции вычисления адреса и его максимальный размер. Для вычисления адресов, превышающих 16 бит, понадобились бы расширение регистров и АЛУ и переработка системы команд, что, в свою очередь, привело бы к увеличению числа транзисторов, усложнению и удорожанию процессора. Тем не менее, снижающиеся цены на память делали процессор выгодным для тех применений, где требовалась обработка больших объёмов данных. Расширение адресного пространства было одним из требований к новому процессору. В результате была выбрана компромиссная схема: исполнительный блок (EU) процессора оставлен 16-разрядным, а расширение адресного пространства сделано в блоке интерфейса шины (BIU) процессора путём реализации сегментной адресации памяти, увеличивающей разрядность шины адреса до 20 бит. Сегментная адресация памяти использует тот факт, что обращения к памяти со стороны процессора легко можно разделить на обращения к коду программы, обрабатываемым данным и стеку. Обращения к разным типам содержимого памяти отображаются на независимые области памяти в расширенном адресном пространстве — сегменты. В процессоре 8086 для такого отображения адресов используются четыре 16-битных сегментных регистра: CS (Code Segment) — сегмент кода DS (Data Segment) — сегмент данных ES (Extra Segment) — дополнительный сегмент SS (Stack Segment) — сегмент стека Каждый сегментный регистр определяет адрес начала сегмента в памяти, при этом сегменты могут совпадать или пересекаться. По умолчанию регистр CS используется при выборке инструкций, регистр SS — при выполнении операций со стеком, регистры DS и ES — при обращении к данным. В случае обращения к данным сегментный регистр по умолчанию может быть изменён путём добавления перед кодом инструкции специального префикса замены сегмента. При этом, в пределах сегмента используются 16-битные исполнительные адреса, хранящиеся в счётчике команд, указателе стека либо вычисляемые в соответствии с видом адресации, заданном в коде инструкции. Фактически, процессору всегда доступны 4 области памяти размером 64 Кбайт каждая. Если такой объём оказывается недостаточен, в программу приходится включать логику управления сегментными регистрами. Эта логика может существенно замедлять обращение к памяти, поэтому компиляторы с языков высокого уровня для платформы x86 позволяют указывать модель памяти в соответствии с требуемыми объёмами кода и данных. Физический 20-битный адрес, позволяющий адресовать до 1 Мбайт памяти, получается путём сложения исполнительного адреса и значения сегментного регистра, умноженного на 16. Из-за наличия умножения на 16 сегмент всегда начинается на границе блока в 16 байт, называемого параграфом. Это может приводить к потере некоторого количества памяти, если размер используемых данных сегмента не кратен параграфу. В частности, это стало одной из причин, по которой разработчики отказались от реализации 24-битного адреса в 8086, так как размер параграфа при этом возрастал до 256 байт. Возможное переполнение при вычислении физического адреса в процессоре 8086 игнорируется. Например, инструкция безусловного перехода по адресу 001016 при значении сегмента кода FFFF16 выполнит переход по физическому адресу 0. Этого не происходит в старших моделях процессоров x86, например 80286, имевшем 24 адресных линии, поэтому в компьютерах IBM PC/AT для обеспечения совместимости был введён специальный вентиль Gate A20, принудительно обнуляющий бит А20 системной шины адреса. Поскольку в старших моделях процессоров x86 были введены новые способы расширения адресного пространства, способ, используемый процессором 8086, был назван «режимом реальной адресации». Система команд Система команд процессора Intel 8086 состоит из 98 команд (и более 3800 их вариаций): 19 команд передачи данных, 38 команд их обработки, 24 команды перехода и 17 команд управления процессором. Возможны 7 режимов адресации. Микропроцессор не содержит команд для работы с числами с плавающей запятой. Данная возможность реализована отдельной микросхемой, называемой математический сопроцессор, который устанавливается на материнской плате. Сопроцессор вовсе не обязательно должен был быть произведён Intel (модель Intel 8087), к примеру, некоторые производители микросхем, такие как , выпускали более производительные сопроцессоры, чем Intel. Система команд процессора Intel 8086 включает в себя несколько очень мощных строковых инструкций. Если инструкция имеет префикс REP (от англ. repeat, повтор), то процессор будет выполнять операции с блоками — перемещение блока данных, сравнение блоков данных, присвоение определённого значения блоку данных определённой величины, и т. д., то есть, одна инструкция 8086 с префиксом REP может выполнять 4—5 инструкций, выполняемых на некоторых других процессорах. Подобные приёмы были реализованы и в других процессорах — Zilog Z80 имел инструкции перемещения и поиска блоков, а Motorola 68000 может выполнять операции с блоками, используя всего две команды. В микропроцессоре Intel 8086 используется примитивная форма конвейерной обработки. Блок интерфейса с шиной подаёт поток команд к исполнительному устройству через 6-байтовую очередь команд. Таким образом, выборка и выполнение новых команд может происходить одновременно. Это значительно увеличивает пропускную способность процессора и лишает необходимости ожидать считывания команды из памяти при занятом другими операциями интерфейсе микросхемы. Варианты микропроцессора, аналоги и конкуренты Процессор выпускался в керамических и пластмассовых корпусах с 40 выводами. Были доступны версии с частотами 5, 8 и 10 МГц, обозначавшиеся как 8086, 8086-2 и 8086-1. Основными конкурентами микропроцессора Intel 8086 были Motorola 68000, Zilog Z8000, чипсеты F-11 и J-11 семейства PDP-11, MOS Technology 65C816. В некоторой степени, в области военных разработок, конкурентами являлись процессоры-реализации MIL-STD-1750A. Аналогами микропроцессора Intel 8086 являлись такие разработки, как NEC V30, который был на 5 % производительнее Intel 8086, но при этом был полностью с ним совместим. Советским аналогом являлся микропроцессор К1810ВМ86, входивший в серию микросхем К1810. Аппаратные режимы Процессоры 8086 и 8088 могут работать в двух режимах: максимальном и минимальном. Максимальный режим используется в сложных многопроцессорных системах, он также необходим для работы с математическим сопроцессором 8087. В максимальном режиме для выработки сигналов управления системной шиной необходим системный контроллер 8288. В компьютерах IBM PC и PC/XT процессор Intel 8088 используется в максимальном режиме, что позволяет ему работать с математическим сопроцессором 8087, который может быть установлен в сокет на материнской плате компьютера. Минимальный режим используется в однопроцессорных системах. В этом режиме сигналы управления системной шиной процессор формирует сам. Аппаратный режим определяется схемой включения процессора и не может быть изменён программно. Для задания режима используется вывод 33 (MN/), который соединяется либо с источником питания, либо с общим проводом. Изменение состояния вывода 33 меняет функции восьми других выводов процессора, отвечающих за управление системной шиной и связь с другими процессорами. Микросхемы поддержки Для создания микропроцессорной системы на основе процессоров 8086 и 8088 компанией Intel выпускались следующие микросхемы поддержки: Intel 8237 — контроллер прямого доступа к памяти Intel 8259A — программируемый контроллер прерываний Intel 8284 — тактовый генератор Intel 8288 — системный контроллер Intel 8289 — арбитр системной шины Multibus Также с процессорами могли использоваться микросхемы, ранее разработанные для процессоров 8080 и 8085: Intel 8251 — универсальный синхронно/асинхронный последовательный приёмопередатчик Intel 8253 — трёхканальный программируемый интервальный таймер Intel 8255 — трёхканальный параллельный интерфейс Intel 8257 — контроллер прямого доступа к памяти Intel 8271 — контроллер гибких магнитных дисков Intel 8273 — контроллер протокола HDLC/SDLC Intel 8275 — контроллер ЭЛТ-дисплея Intel 8279 — контроллер клавиатуры и светодиодного дисплея Intel 8282 — 8-битный регистр-защёлка без инверсии Intel 8283 — 8-битный регистр-защёлка с инверсией Intel 8286 — 8-битный двунаправленный шинный формирователь без инверсии Intel 8287 — 8-битный двунаправленный шинный формирователь с инверсией Микрокомпьютеры на основе Intel 8086 Первоначально процессор Intel 8086 использовался в промышленных системах. Его массовому применению препятствовала довольно высокая цена — 360 долларов на момент анонса. Кроме того, для 16-разрядной подсистемы памяти, используемой процессором, обычно требовалось вдвое больше микросхем по сравнению с 8-разрядной, что увеличивало размеры, сложность и стоимость печатных плат. В связи с этим руководством Intel ещё в конце разработки Intel 8086 было принято решение о выпуске бюджетной версии. Процессор Intel 8088 на момент анонса стоил 124,8 доллара и использовал 8-разрядную подсистему памяти, что делало его экономически более привлекательным. Он стал основой одного из самых известных персональных компьютеров — IBM PC. Процессор Intel 8086 применялся: в одноплатном компьютере ISBC 86/12 с шиной Multibus, анонсированном корпорацией Intel в 1978 году в прототипе одного из первых портативных компьютеров Xerox NoteTaker, представленном в 1978 году. Компьютер содержал три микросхемы Intel 8086 в качестве основного и графического процессоров, а также процессора ввода/вывода. Компьютер остался на стадии прототипа и не выпускался массово в одноплатном компьютере SCP200B с шиной S-100, выпускавшемся компанией Seattle Computer Products с ноября 1979 года в персональном компьютере Mycron 2000 норвежской компании Mycron, представленном в 1980 году в IBM PC совместимом компьютере Olivetti M24, представленном в 1983 году (позже выпускался под маркой AT&T 6300). Процессор работал на частоте 8 МГц. В компьютер могли устанавливаться как 8-разрядные платы с шиной ISA, так и 16-разрядные платы с разъёмом собственной конструкции, несовместимым с разъёмами IBM PC AT в компьютере фирмы Apricot Computers, выпущенном в 1983 году в IBM PC совместимом компьютере Compaq Deskpro Model 1 фирмы Compaq, представленном 28 июня 1984 года. Процессор работал на частоте 7,14 МГц, в компьютер могли устанавливаться 8-разрядные платы с шиной ISA в моделях 25 и 30 компьютеров IBM PS/2, представленных в 1987 году. Процессор работал на частоте 8 МГц в компьютерах PC1512, PC1640, PC2086, PC3086 и PC5086 фирмы Amstrad в компьютерах NEC PC-9801 фирмы NEC в компьютерах Tandy 1000 серий SL и RL в текстовом процессоре IBM Displaywriter System в компьютере Wang Professional Computer компании Wang Laboratories в оборудовании для наземного обслуживания кораблей «Спейс шаттл». NASA использовало оригинальные процессоры Intel 8086 вплоть до закрытия программы «Космическая транспортная система» в 2011 году. Такое решение было принято для предотвращения возможной программной регрессии, связанной с переходом на более новые версии процессоров или использования их несовершенных клонов в автоматической межпланетной станции Lunar Prospector. Использовалась КМОП версия 8086 советский компьютер марки «Искра-1030», программно и аппаратно (но не конструктивно) совместимый с международным стандартом «IBM PC/XT» компьютер болгарского происхождения: Изот-1036С. Технические характеристики Дата анонса: 8 июня 1978 года Тактовая частота: от 4 до 16 МГц производительность: 5 МГц (модель 8086), при частоте 4,77 МГц (IBM PC) — 0,33 MIPS 8 МГц (модель 8086-2 — 0,66 MIPS) 10 МГц (модель 8086-1 — 0,75 MIPS) Приблизительные затраты времени на операции, процессорных циклов (EA — время, необходимое для расчёта эффективного адреса памяти, которое варьируется от 5 до 12 циклов): Суммирование: 3—4 (регистровое), (9—25) +EA — при операциях с памятью Умножение без знака: 70—118 (регистровое), (76—139) +EA — при операциях с памятью Умножение знаковое: 80—154 (регистровое), (86—160) +EA — при операциях с памятью Деление без знака: 80—162 (регистровое), (86—168) +EA — при операциях с памятью Деление знаковое: 101—184 (регистровое), (107—190) +EA — при операциях с памятью Перемещение данных: 2 (между регистрами), (8—14) +EA — при операциях с памятью Разрядность регистров: 16 бит Разрядность шины данных: 16 бит Разрядность шины адреса: 20 бит Объём адресуемой памяти: 1 Мбайт Адресное пространство I/O: 64 Кбайт Количество транзисторов: 29 000 Техпроцесс: 3000 нм (3 мкм) HMOS, 1500 нм (1.5 мкм) HMOS-III Площадь кристалла: ~30 мм2 (поздние версии — 16 мм2 на техпроцессе HMOS-III) Максимальное тепловыделение корпуса: 1,75 Вт (фактическое потребление — 0,65 Вт); 2.5 Вт для 10-МГц версии Напряжение питания: +5 В Разъём: DIP-40 Корпус: 40-контактный керамический или пластиковый DIP, позже — 56-контактный QFP и 44-контактный PLCC Поддерживаемые технологии: 98 инструкций Объём очереди команд: 6 байт (кэш-буфер команд) Эмулятор Проект эмулятора процессора Intel 8086 на МК STM32: Примечания Литература См. также Intel 8087 Режим виртуального 8086 Ссылки Описание и фотографии процессора Intel 8086 Краткое описание микропроцессора Intel 8086 Как разрабатывались первые микросхемы Intel Эмулятор x86, написанный на JavaScript X86 Микропроцессоры фирмы Intel 1978 08


text: Международная организация по стандартизации, ИСО (; ) — международная организация, занимающаяся выпуском стандартов. Международная организация по стандартизации создана в 1946 году двадцатью пятью национальными организациями по стандартизации, на основе двух организаций: ISA (International Federation of National Standardizing Associations), учреждённой в Нью-Йорке в 1926 году (расформирована в 1942) и UNSCC (United Nations Standards Coordinating Committee), учреждённой в 1944 году. Фактически её работа началась с 1947 года. СССР был одним из основателей организации, постоянным членом руководящих органов, дважды представитель Госстандарта избирался председателем организации. Россия стала членом ИСО как правопреемник СССР. 23 сентября 2005 года Россия вошла в Совет ИСО. При создании организации и выборе её названия учитывалась необходимость того, чтобы аббревиатура наименования звучала одинаково на всех языках. Для этого было решено использовать греческое слово (исос) — равный, вот почему на всех языках мира Международная организация по стандартизации имеет краткое название «ИСО». Сфера деятельности ИСО касается стандартизации во всех областях, кроме электротехники и электроники, относящихся к компетенции Международной электротехнической комиссии (МЭК, IEC). Некоторые виды работ выполняются совместными усилиями этих организаций. Кроме стандартизации, ИСО занимается проблемами сертификации. ИСО определяет свои задачи следующим образом: содействие развитию стандартизации и смежных видов деятельности в мире с целью обеспечения международного обмена товарами и услугами, а также развития сотрудничества в интеллектуальной, научно-технической и экономической областях. Официальными языками являются: английский, французский и русский. Члены ИСО Членами организации являются национальные органы по стандартизации, которые представляют интересы своей страны в ИСО, а также представляют ИСО в своей стране. В настоящее время в ИСО входят представители 167 стран Существует три категории членства. Они различаются уровнем доступа к электронным ресурсам ИСО и степенью влияния на содержание разрабатываемых документов. Это помогает учитывать различные потребности и возможности каждого национального органа по стандартизации. Таким образом, страны с ограниченными ресурсами или без достаточно развитой национальной системы стандартизации имеют возможность получать актуальную информацию в области международной стандартизации. Полноправные члены влияют на содержание разрабатываемых стандартов ИСО и стратегию, посредством участия в голосовании и международных заседаниях. Полноправные члены имеют право продажи и принятия международных стандартов на национальном уровне. Члены-корреспонденты наблюдают за разработкой стандартов ИСО и стратегией путём просмотра результатов голосования, так как не имеют права голосования, и посредством участия в международных заседаниях в качестве наблюдателя. Члены-корреспонденты имеют право продажи и принятия международных стандартов на национальном уровне. Члены-подписчики получают актуальную информацию о работах проводимых в ИСО, но не могут принимать участие в работе. Члены-подписчики не имеют права продажи и принятия международных стандартов на национальном уровне. Россию в ИСО представляет Федеральное агентство по техническому регулированию и метрологии в качестве полноправного члена ИСО. Организационная структура Организационно в ИСО входят руководящие и рабочие органы. Руководящие органы: Генеральная ассамблея (высший орган), Совет ИСО, Техническое руководящее бюро. Рабочие органы — технические Комитеты (ТК), подкомитеты (ПК), технические консультативные группы (ТКГ). Генеральная ассамблея Генеральная ассамблея — это собрание должностных лиц и делегатов, назначенных комитетами-членами. Каждый комитет-член имеет право представить не более трёх делегатов, но их могут сопровождать наблюдатели. Члены-корреспонденты и члены-подписчики участвуют как наблюдатели. Генеральная ассамблея 2013 года прошла в Санкт-Петербурге. Совет ИСО Совет руководит работой ИСО в перерывах между сессиями Генеральной ассамблеи. Совет имеет право не созывая Генеральной ассамблеи направить в комитеты-члены вопросы для консультации или поручить комитетам-членам их решение. На заседаниях Совета решения принимаются большинством голосов присутствующих на заседании комитетов-членов Совета. В период между заседаниями и при необходимости Совет может принимать решения путём переписки. Совет ИСО берёт на себя решение большинства вопросов, связанных с управлением. Заседания Совета проводятся дважды в год. В состав Совета входят 20 представителей из стран комитетов — членов ИСО председателей таких комитетов как CASCO, COPOLCO и DEVCO. При Совете существует ряд органов, обеспечивающих руководство и управление по конкретным вопросам. Президентский комитет консультирует Совет ИСО и контролирует исполнение принятых им и Генеральной ассамблеей решений; КАСКО (CASCO — Committee on conformity assessment) Комитет по оценке соответствия — занимается вопросами подтверждения соответствия продукции, услуг процессов и систем качества требованиям стандартов, изучая практику этой деятельности и анализируя информацию. Комитет разрабатывает руководства по испытаниям и оценке соответствия (сертификации) продукции, услуг, систем качества, подтверждению компетентности испытательных лабораторий и органов по сертификации. Важная область работы КАСКО — содействие взаимному признанию и принятию национальных и региональных систем сертификации, а также использованию международных стандартов в области испытаний и подтверждения соответствия. КАСКО совместно с МЭК подготовлен целый ряд руководств по различным аспектам сертификации, которые широко используются в странах-членах ИСО и МЭК: принципы, изложенные в этих документах, учтены в национальных системах сертификации, а также служат основой для соглашений по оценке соответствия взаимопоставляемой продукции в торгово-экономических связях стран разных регионов. КАСКО также занимается вопросами создания общих требований к аудиторам по аккредитации испытательных лабораторий и оценке качества работы аккредитующих органов; взаимного признания сертификатов соответствия продукции и систем. КОПОЛКО — Комитет ИСО по потребительской политике (COPOLCO — Committee on consumer policy) изучает вопросы обеспечения интересов потребителей и возможности содействия этому через стандартизацию; обобщает опыт участия потребителей в создании стандартов и составляет программы по обучению потребителей в области стандартизации и доведению до них необходимой информации о международных стандартах. Этому способствует периодическое издание Перечня международных и национальных стандартов, а также полезных для потребителей руководств: «Сравнительные испытания потребительских товаров», «Информация о товарах для потребителей», «Разработка стандартных методов измерения эксплуатационных характеристик потребительских товаров» и др. КОПОЛКО участвовал в разработке руководства ИСО/МЭК по подготовке стандартов безопасности. ДЕВКО — Комитет ИСО по вопросам развивающихся стран (DEVCO — Committee on developing country matters) изучает запросы развивающихся стран в области стандартизации и разрабатывает рекомендации по содействию этим странам в данной области. Главные функции ДЕВКО: организация обсуждения в широких масштабах всех аспектов стандартизации в развивающихся странах, создание условий для обмена опытом с развитыми странами; подготовка специалистов по стандартизации на базе различных обучающих центров в развитых странах; содействие ознакомительным поездкам специалистов организаций, занимающихся стандартизацией в развивающихся странах; подготовка учебных пособий по стандартизации для развивающихся стран; стимулирование развития двустороннего сотрудничества промышленно развитых и развивающихся государств в области стандартизации и метрологии. В этих направлениях ДЕВКО сотрудничает с ООН. Одним из результатов совместных усилий стало создание и функционирование международных центров обучения. Council Standing Committees — Постоянные комитеты по финансовым вопросам и стратегической политике Ad hoc Advisory Committees — Специальные консультативные группы Членство в Совете открыто для всех комитетов-членов ИСО и в нем происходит ротация для того, чтобы представительство стран — членов сообщества было полным. Совету ИСО подчиняется семь комитетов: ПЛАКО (техническое бюро), ПРОФКО (методическая и информационная помощь); КАСКО (комитет по оценке соответствия); ИНФКО (комитет по научно-технической информации); ДЕВКО (комитет по оказанию помощи развивающимся странам); КОПОЛКО (комитет по защите интересов потребителей); РЕМКО (комитет по стандартным образцам). Техническое руководящее бюро (ТРБ) Техническое руководящее бюро (ТРБ) отвечает за общее руководство структурой технических комитетов, которые занимаются разработкой стандартов, и любые стратегические консультативные органы, созданные по техническим вопросам. Одним из технических комитетов под руководством ТРБ является РЕМКО (REMCO — Committee on reference materials), который оказывает методическую помощь ИСО путём разработки соответствующих руководств по вопросам, касающимся стандартных образцов (эталонов). Так, подготовлен справочник по стандартным образцам и несколько руководств: «Ссылка на стандартные образцы в международных стандартах», «Аттестация стандартных образцов. Общие и статистическое принципы» и др. Кроме того, РЕМКО — координатор деятельности ИСО по стандартным образцам с международными метрологическими организациями, в частности, с МОЗМ — Международной организацией законодательной метрологии. Порядок разработки стандартов Международный стандарт является результатом консенсуса между участниками организации ИСО. Он может использоваться непосредственно или путём внедрения в национальные стандарты разных стран. Международные стандарты разрабатываются техническими комитетами ИСО (ТК) и подкомитетами (ПК) в ходе шести-стадийного процесса: Стадия 1: Стадия предложения — Первый шаг в разработке международного стандарта — подтверждение того, что конкретный международный стандарт необходим. Новое предложение (НП) направляется на голосование членам соответствующего ТК или ПК, чтобы определить необходимость включения соответствующего пункта в программу работы. Предложение принимается, если большинство У-членов ТК/ПК («участники») голосуют «за», и если, по крайней мере, пять У-членов заявляют о том, что примут активное участие в проекте. На этой стадии обычно назначается лидер проекта, ответственный за данный пункт программы. Стадия 2: Подготовительная стадия — Обычно для подготовки рабочего черновика ТК/ПК создаёт рабочую группу экспертов, председателем (созывающим членом) которой является лидер проекта. Могут приниматься различные редакции рабочих черновиков, до тех пор, пока рабочая группа не решит, что ею разработано наилучшее техническое решение рассматриваемой проблемы. На этой стадии черновик передаётся вышестоящему комитету рабочей группы для прохождения фазы выработки консенсуса. Стадия 3: Стадия комитета — Как только первый черновик комитета готов, он регистрируется Главным Секретариатом ИСО. Он рассылается для замечаний и, если необходимо, голосования У-членов ТК/ПК. Могут готовиться разные редакции черновика комитета до тех пор, пока не будет достигнут консенсус по техническому содержанию текста. Как только консенсус достигнут, текст окончательно редактируется для представления в качестве черновика международного стандарта (ЧМС). Стадия 4: Стадия вопросов — Черновик международного стандарта (ЧМС) распространяется среди всех членов ИСО Главным Секретариатом ИСО для голосования и замечаний в течение пяти месяцев. Он одобряется для представления в качестве окончательной редакции черновика международного стандарта (ОЧМС), если две трети У-членов ТК/ПК высказываются «за», и не более одной четверти от общего количества голосов поданы «против». Если критерии одобрения не выполнены, текст возвращается в исходный ТК/ПК для дальнейшего изучения, и исправленный документ снова публикуется для голосования и замечаний в качестве черновика международного стандарта. Стадия 5: Стадия одобрения — Окончательная редакция черновика международного стандарта (ОЧМС) распространяется среди всех членов ИСО Главным Секретариатом ИСО для итогового голосования за/против в течение двух месяцев. Если в этот период поступают технические замечания, на этой стадии они уже не рассматриваются, но регистрируются для анализа в ходе будущего пересмотра данного международного стандарта. Текст одобряется для представления в качестве окончательной редакции черновика международного стандарта (ОЧМС), если две трети У-членов ТК/ПК высказываются «за», и не более одной четверти от общего количества голосов поданы «против». Если эти критерии одобрения не выполнены, стандарт возвращается в исходный ТК/ПК для пересмотра с учётом технических причин, представленных в поддержку голосов «против». Стадия 6: Стадия публикации — Когда окончательная редакция черновика международного стандарта одобрена, в итоговый текст разрешается, при возникновении такой необходимости, вносить только небольшую редакторскую правку. Итоговый текст отсылается в Главный Секретариат ИСО, который публикует данный международный стандарт. Все международные стандарты рецензируются всеми членами ИСО, по крайней мере, через три года после публикации и каждые пять лет после первого рецензирования. Решение о подтверждении, пересмотре или отзыве международного стандарта принимается большинством голосов У-членов ТК/ПК. Таблица условных обозначений стадий даёт наглядное представление о стадиях разработки: Если в начале работы над проектом стандарта уже имеется более или менее завершённый документ, например, стандарт, разработанный другой организацией, некоторые стадии можно опустить. При так называемой «ускоренной процедуре» документ направляется непосредственно на одобрение членам ИСО в качестве черновика международного стандарта (ЧМС) (стадия 4) или, если документ был разработан международным органом стандартизации, признанным Советом ИСО, в качестве окончательной редакции черновика Международного стандарта (ОЧМС, стадия 5), без прохождения предыдущих стадий. Ниже приводится обзор всех шести стадий. Более подробное описание процесса разработки международных стандартов см. в публикации «Директивы ИСО/МЭК, Часть 1, Процедурные правила». Сертификация на соответствие стандартам ИСО ИСО является организацией, которая разрабатывает международные стандарты, однако она не осуществляет оценку соответствия и/или сертификацию на соответствие стандартам. В связи с этим, ИСО никогда не выпускает сертификаты и никакая компания не может быть сертифицирована ИСО. Также ИСО не предусматривает права использовать собственный логотип ISO для декларации соответствия либо подтверждения того, что компании и/или ее продукты сертифицированы на соответствие стандартам ИСО. Нанесение логотипа ISO на продукцию, этикетки, упаковку и т.д. запрещено. Сертификация осуществляется независимыми органами по сертификации, наиболее крупными и узнаваемыми (история каждого из них превышает 100 лет) являются органы т.н. большой семерки, включая: TÜV (Австрия и Германия), BSI (Великобритания), BVC (Франция), DNVGL (Норвегия), SGS (Швейцария), ABS (США), LRQA (Великобритания). Критика ИСО 5 сентября 2007 года принятие варианта OOXML как стандарта ISO/IEC 29500 было временно отклонено по результатам голосования. В марте 2008 года изменённая спецификация была принята как будущий стандарт ISO/IEC 29500. В частности, в Норвегии при этом были отмечены нарушения процесса стандартизации. Позже оказалось, что файлы, сохраняемые Microsoft Office 2007, не проходят тестов на соответствие стандарту, что нарушает правила принятия стандарта через процедуру , требующие, чтобы существовали реализации стандарта. В мае 2008 были поданы апелляции от ЮАР, Бразилии и Индии, Венесуэлы. Также подана жалоба о нескольких нарушениях от Open Source Leverandørforeningen в Дании. Публикация ISO/IEC DIS 29500 была отложена на период рассмотрения апелляций (30 дней). В июле руководители ISO и IEC порекомендовали отклонить апелляции, указав в качестве причины то, что проект стандарта был принят голосованием в соответствии с директивами ISO/IEC JTC 1. В августе ISO отклонила апелляции стран, выступающих против принятия OOXML как стандарта, так как они не смогли получить поддержку необходимого числа участников ISO для приостановления принятия стандарта. В конце августа государственные IT‐организации Бразилии, ЮАР, Венесуэлы, Эквадора, Кубы и Парагвая опубликовали заявление о сомнениях в нейтральности ISO. В Норвегии, где из 21 голоса «против» и двух голосов «за» получилось «за», 29 сентября 2008 года 13 членов технической комиссии в знак протеста вышли из состава . По данным собрания ISO/IEC JTC1/SC34, подкомиссии ISO/IEC JTC1, в начале октября SC34 отправила OASIS неопубликованный запрос на передачу ей контроля над стандартом ISO/IEC 26300 (ODF), обосновывая это стремлением к лучшей совместимости между стандартами. В Groklaw также обратили внимание на то, что 9 из 20 присутствовавших на собрании в июле являлись сотрудниками или консультантами Microsoft, либо членами ECMA TC45. В результате появились подозрения в попытке захвата Microsoft контроля над ODF. См. также Перечень стандартов ISO ГОСТ Международная стандартизация Всемирный день стандартов Международная электротехническая комиссия (IEC) Примечания Ссылки Официальный сайт ИСО Новости ИСО Международные организации по стандартизации НГО с консультативным статусом при ЭСС ООН Организации, основанные в 1947 году


text: XMPP ( «расширяемый протокол обмена сообщениями и информацией о присутствии»), ранее известный как джа́ббер ( «болтовня, трёп, тарабарщина») — открытый, основанный на XML, свободный для использования протокол для мгновенного обмена сообщениями и информацией о присутствии (см. список контактов) в режиме, близком к режиму реального времени. Изначально спроектированный легко расширяемым, протокол, помимо передачи текстовых сообщений, поддерживает передачу голоса, видео и файлов по сети. Расширяемость протокола предназначена для добавления в единую коммуникационную сеть мессенджеров, социальных сетей, сайтов, использующих разные, несовместимые стандарты. Предполагалось, что крупные компании будут открывать межсерверное общение с другими IM и описывать свои методы шифрования, передачи мультимедиа и других данных через публикацию расширений XMPP. Расширения будут приниматься или отклоняться глобальным сообществом путём наибольшего распространения, но при этом всегда будет доступна базовая функциональность для передачи сообщений для пользователей разных мессенджеров. В реальности данная идея не получила должного распространения, и большинство крупных компаний не стало открывать возможность коммуникации для своих пользователей с другими сервисами. В отличие от коммерческих систем мгновенного обмена сообщениями, таких как AIM, ICQ, WLM и Yahoo, XMPP является федеративной, расширяемой и открытой системой. Любой желающий может запустить свой сервер мгновенного обмена сообщениями, регистрировать на нём пользователей и взаимодействовать с другими серверами XMPP. На основе протокола XMPP уже открыто множество частных и корпоративных серверов XMPP. Среди них есть или были крупные проекты, такие как Google Talk, Одноклассники.ru, LiveJournal, Juick, Facebook, ВКонтакте, Яндекс. История Проект Jabber был основан Джереми Миллером в начале 1999 года с разработки сервера jabberd. Первое сообщение о проекте появилось 4 января 1999 года на сайте Slashdot. Эту дату принято считать днём рождения технологии. Вскоре после этого к проекту присоединилось несколько основных разработчиков, которые стали работать над сервером jabberd, клиентами для Windows и GNU/Linux, а также шлюзами в основные системы IM (AIM, ICQ, MSN и Yahoo). Позже, в 1999 году, Webb Interactive Services начало спонсировать основных разработчиков, что ускорило процесс создания проекта. В то время появилась основа протокола Jabber, а также сервер jabberd и ранние клиенты, такие, как WinJab (устарел и получил своё развитие в Exodus) и Gabber. Этот ранний период постоянных изменений закончился в мае 2000 года с выпуском jabberd 1.0. Ранний протокол Jabber сформировал основы для стандарта XMPP, опубликованного как RFC 3920. Часто этот момент рассматривается как начало соперничества с SIMPLE, основанным на протоколе SIP, как стандартного протокола для мгновенного обмена сообщениями и информацией о присутствии. С августа 2001 года протокол Jabber переходит под контроль Jabber Software Foundation (16 января 2007 года Jabber Software Foundation была переименована в XMPP Standards Foundation), для более точного описания своей работы развития расширений собственно протокола, в отличие от линии развития программы с одноимённым названием. Jabber, Inc. занимается развитием двух проектов — Jabber Extensible Communications Platform (Jabber XCP) и JabberNow. Первый является фреймворком, а второй — программно-аппаратное решение (специально собранный и настроенный компьютер). Сайт jabber.org всё ещё функционирует. Инвесторами проекта Jabber являются Jona, Inc., France Telecom, Intel Capital, и Webb Interactive Services, Inc. В августе 2005 года Google представил сервис Google Talk — комбинацию VoIP и клиента для обмена сообщениями, использующий XMPP для функций переписки, а также как основу для передачи голоса и файлов. Первоначальный запуск сервиса Google не поддерживал межсерверного общения, но к 17 января 2006 года такая возможность была добавлена. Однако, в мае 2013 Google объявил о сокращении поддержки межсерверных коммуникаций в связи с продвижением своего сервиса Google Hangouts. Тем не менее, несмотря на официальные заявления, Google Talk всё ещё поддерживает XMPP. Протокол Семейство протоколов XMPP принято как стандарт RFC. Стандартный порт для XMPP — 5222. Также возможно использовать порт 80 и/или 443, если возникают проблемы с файрволом. Протокол описывает клиент-серверные (c2s) и интерсерверные коммуникации (s2s). Мессенджер с поддержкой XMPP не обязательно должен соблюдать c2s-стандарт, чтобы поддерживать федеративную связь по s2s с другими XMPP-мессенджерами. Ряд XMPP-мессенджеров с регистрацией по номеру телефона не позволяет использовать другие XMPP-клиенты или подключаться к другим серверам, но их серверы поддерживают федеративное общение (взаимодействуют с другими серверами XMPP). Преимущества Децентрализация: Архитектура сети XMPP схожа с электронной почтой; кто угодно может запустить свой собственный XMPP-сервер и нет какого-либо центрального сервера. Открытый стандарт: Internet Engineering Task Force формализовал XMPP как стандарт мгновенного обмена сообщениями и технологии присутствия под названием XMPP, и спецификации XMPP были опубликованы как RFC 3920 и RFC 3921. Никаких привилегий не требуется для добавления поддержки этих спецификаций, и их разработка не привязана к какому-либо разработчику. Существует множество реализаций серверов и клиентов, а также библиотек с открытым исходным кодом. Бесконечная расширяемость. Любой может написать своё расширение XEP и добавить его в протокол. Изначально предполагалось, что крупные компании будут создавать свои расширения протокола для интеграции собственных мессенджеров. Это бы позволило создать универсальный протокол общения между разными менеджерами. На практике этого не произошло. Крупные Интернет-компании стали предпочитать собственные, закрытые протоколы. История: Технологии XMPP используются с 1998 года. При поддержке таких крупных компаний, как Sun Microsystems и Google, создано множество дополнений к стандартам XMPP для клиентов, серверов, компонент и библиотек кодов. В настоящее время XMPP существует практически без инвестиций, однако это не мешает дальнейшему развитию протокола сообществом, и постоянно появляются новые расширения. Безопасность: XMPP-серверы могут быть изолированы от публичных сетей XMPP (например, во внутренней сети компании) и хорошо защищены (благодаря использованию SASL и TLS) встроенными в ядро XMPP спецификациями. Для поддержки использования шифрования канала XMPP Standards Foundation также использовал вспомогательный Центр сертификации xmpp.net, обеспечивая цифровые сертификаты для администраторов XMPP-серверов при содействии StartCom Certification Authority (который является основным хранителем сертификатов для всех вспомогательных). Многие реализации серверов используют SSL при обмене между клиентом и сервером, и немало клиентов поддерживает шифрование с помощью PGP/GPG внутри протокола. Гибкость: Настраиваемая функциональность может быть надстроена поверх XMPP; для поддержки возможности взаимодействия различных сетей стандартные расширения поддерживаются XMPP Software Foundation. Приложения XMPP в дополнение к функциональности клиента сетевого общения включают в себя администрирование сети, распределение ресурсов, утилиты для совместной работы, обмен файлами, игры и мониторинг удалённых систем. Слабые стороны Экономическая невыгодность для крупных мессенджеров. Открытый протокол приводит к оттоку пользователей у крупных мессенджеров, на множество мелких частных серверов и других поставщиков услуг. Избыточность передаваемой информации: Более 70 % межсерверного трафика XMPP составляют сообщения о присутствии, около 60 % которых являются излишними. XMPP создаёт избыточный трафик при доставке сообщений о присутствии (то есть «статус сообщений») нескольким пользователям. Для решения существует несколько расширений. XEP-0352 передаёт только сообщения вместо статуса присутствия. Также решением является расширение XEP-0138 — компрессия передаваемых данных протокола алгоритмами lzw и zlib, а также использование компрессии в рамках шифрования соединения TLS RFC 3749, глава 3. На 2006 год XMPP страдает от фактически той же проблемы избыточности, но применительно к чат-комнатам и возможностям публикации информации. Решение этих проблем также ожидается в виде XEP-расширений. Пока они не введены, большие чат-комнаты образуют избыточный трафик. Неэффективность передачи бинарных данных: Так как XMPP является, по сути, одним длинным XML-документом, невозможно передать немодифицированную двоичную информацию. В результате для передачи файлов стараются использовать дополнительные расширения, например HTTP (http upload). Для передачи же файлов и другой бинарной информации непосредственно в XMPP-потоке используется кодирование base64. С другой стороны, некоторые клиентские программы для передачи используют технологии p2p, не задействуя при этом сервер. Расширения XMPP Протокол XMPP включает лишь базовую основу для передачи сообщений. Для реализации дополнительных возможностей используются расширения XEP (XMPP Extension Protocols). Модульная система позволяет собирать системы на основе XMPP, как для передачи сообщений, так и для передачи данных IoT-устройств и других задач. Для полноценной работы Jabber-клиентов требуется поддержка соответствующих расширений. Одними из наиболее важных для работы XMPP-клиентов являются расширения: XEP-0163 Personal Eventing Protocol. Размещение аватарок, передача ключей OMEMO XEP-0191 Блокирование контактов. Чёрный список собеседников XEP-0198 Менеджер потоков. Необходим для доставки сообщений при нестабильном интернет-канале и выключенном архиве сообщений. Если сервер не получает уведомления о доставке, он повторно отправляет сообщение XEP-0237 Версии ростера. Вместо полной загрузки данных собеседников передаются лишь обновлённые данные XEP-0280 Дублирование сообщений. Отправка сообщения на все включённые устройства. Используется, если не включён архив сообщений XEP-0352 Состояние клиента. Если XMPP-клиент свёрнут, сервер передаёт лишь сообщения. Это экономит расход батареи и интернет-трафик XEP-0363 HTTP File Upload. Универсальная передача файлов между разными клиентами (через HTTP) Боты Большой популярностью в Jabber’е пользуются боты для конференций. Они широко используются для защиты конференций от спама, в качестве цензора, ведения различной статистики, парсинга веб-сайтов (анекдоты, новости и т. п.), создания «мостов» между чатами, ведения логов, управления конференциями и так далее. Функциональность xmpp-ботов и область их применения ограничены только фантазией их разработчиков. Известные боты Neutron — англоязычный бот на Python (библиотека «xmpppy»), один из первых xmpp-ботов; FreQ — многофункциональный xmpp-бот, написан на Python (библиотека Twisted); Sulci — бот-говорун, какое-то время был крайне популярен в качестве развлечения; Gluxi — многофункциональный бот, написанный на C++; Talisman — русскоязычная модификация бота Neutron, примечателен наличием множества модификаций и является наиболее популярным ботом в русскоязычных Jabber-конференциях; EndLess — модификация Talisman. Примечателен тем, что он стал первым ботом, использующим более одного JID’а. По заявлениям разработчика, бот является обладателем своеобразного рекорда: одна копия длительное время обслуживала ~500 конференций. Исходного кода бота нет в свободном доступе; Fatal [Neutrino] — модификация бота Talisman/Neutron со слегка изменённой библиотекой «xmpppy». В последних версиях полностью переписан и практически не имеет ничего общего со своими предками. Написан на Python. Имеет широкий набор плагинов. Примечателен высокой надёжностью и отказоустойчивостью. Локализации EN и RU. Snapi — изначально являлся модификацией бота Talisman, но позже его «перерос». Можно охарактеризовать как «Talisman с корректным кодом». Примечателен тем, что базируется на полностью переписанной библиотеке «xmpppy»; BlackSmith mark.1 — активно развивающийся бот, написанный на Python. Примечателен широкой функциональностью, высокой стабильностью и устойчивостью к различным проявлениям флуда. Имеет свою систему плагинов, а также частично совместим с ботом Talisman посредством специального модуля. Является open-source проектом и распространяется по лицензии Apache 2; BlackSmith mark.2 — имеет мало общего с предыдущим ботом, не считая названия. Написан на Python и использует слегка модифицированную библиотеку «xmpppy». Примечателен поддержкой нескольких JID’ов, высокой стабильностью и наличием трёх языковых пакетов (EN, RU, FI). Большая часть архитектурно независимых функций портировано на mark.1; Taho — бот для конференций, написанный на Tcl. Pako — бот, распространённый в англоязычной части Jabber-сети. Написан на C#; Isida — многофункциональный и многоязычный бот, написан на Python (библиотека «xmpppy»). Примечателен тем, что это единственный бот, который в полной мере использует muc-filter, а также тем, что его код противоречит большинству пунктов Python Style Guide; Erl — бот, написанный на Erlang, примечателен функциями защиты конференций от спама. Адресация Каждый пользователь в сети Jabber имеет уникальный идентификатор — Jabber ID (сокращённо JID). Адрес JID, подобно адресу электронной почты, содержит имя пользователя и доменное имя сервера, на котором зарегистрирован пользователь, разделённые знаком @. Например, пользователь user, зарегистрированный на сервере example.com, будет иметь адрес: user@example.com. Пользователь может иметь одновременно несколько подключений, для различения которых используется дополнительный атрибут JID, называемый ресурсом и добавляемый через слэш в конец адреса. К примеру, пусть полный адрес пользователя будет user@example.com/work, тогда сообщения, посланные на адрес user@example.com, дойдут на указанный адрес вне зависимости от имени ресурса, но сообщения для user@example.com/work дойдут на указанный адрес только при соответствующем подключённом ресурсе. Адреса JID могут также использоваться без явного указания имени пользователя (с указанием имени ресурса или без такового) для системных сообщений и для управления специальными возможностями на сервере. Соединение с другими протоколами Полезной особенностью XMPP систем являются транспорты, или шлюзы, позволяющие пользователям получать доступ к сетям, использующим другие протоколы. Это могут быть другие протоколы мгновенного обмена сообщениями, IRC или такие протоколы, как SMS и электронная почта. В отличие от мультипротокольных клиентов, XMPP предоставляет доступ на уровне сервера, посредством коммуникации через специальные сервисы-шлюзы, выполняющиеся на удалённом компьютере. Любой пользователь может «зарегистрироваться» на одном из этих шлюзов, предоставив информацию, необходимую для входа в сеть, и может общаться с пользователями сети так, как если бы они были пользователями сети джаббер. Это значит, что любой клиент, полностью поддерживающий XMPP, может быть использован для доступа к любой сети, для которой существуют шлюзы, без какого-либо дополнительного кода в клиенте и без необходимости клиенту иметь прямой доступ в Интернет. Реализация шлюзов зависит от конкретного XMPP-сервера и подвержена нестабильности из-за закрытости коммерческих IM-сервисов. Примеры глобальных интеграций XMPP Высокая отказоустойчивость и низкие издержки XMPP-серверов способствуют тому, что ряд крупных компаний использует XMPP как базовую платформу для создания закрытых мессенджеров и чатов, а также для доставки push-уведомлений Firebase Cloud Messaging — миллиарды пользователей, кроссплатформенный сервис уведомлений и сообщений (ранее Google Cloud Messaging) Google ~ 1,5 миллиарда пользователей, push-уведомления WhatsApp ~ 800 млн пользователей, использует модифицированный протокол XMPP для чатов Apple ~ 500 миллионов пользователей, push-уведомления Kik Messenger ~ 300 миллионов пользователей, использует разновидность XMPP для своего популярного чат-сервиса Fortnite ~ 250 пользователей, совместная игра на выживание, использующая XMPP для сообщений присутствия, всплывающих уведомлений, личных сообщений и группового чата Logitech Harmony Hub — миллионы пользователей, система домашней автоматизации и дистанционного управления мультимедиа Jitsi — бесплатный проект с открытым исходным кодом, который позволяет проводить видеоконференции, использует XMPP для функции чата Movim — основанная на XMPP распределённая платформа социальных сетей Talky — видеочат и общий доступ к экрану для групп до 6 человек Примеры программного обеспечения XMPP-клиенты По статистике публичного XMPP-сервера 404.city(на лето 2017 года), самые популярные клиенты для десктопов и ноутбуков — Pidgin и Psi+ . На Android лидируют Xabber и Conversations Веб-клиенты Converse.js Pàdé Для Android blabber.im Cheogram Android -- XMPP-клиент c набором сервисов, которые соединяют все открытые коммуникационные сети воедино, позволяя связаться со всеми контактами из одного приложения Conversations — XMPP-клиент с поддержкой OTR (с версии 2.0.0 данная функция не поддерживается), PGP, OMEMO. Есть возможность отправки картинок, файлов различных типов, геокоординат, записи и отправки голосовых сообщений monocles chat Stork IM Для iOS Monal IM -- XMPP-клиент для iOS и macOSС Siskin IM Для Linux/macOS/Windows Dino - клиент для семейств Linux и BSD с поддержкой OMEMO. Написан на языке Vala с использованием тулкита GTK Gajim — кроссплатформенный клиент, поддерживающий OTR, PGP, OMEMO Monal IM -- XMPP-клиент для iOS и macOS XMPP-библиотеки QXmpp — кроссплатформенная клиентская и серверная библиотека C++ / Qt XMPP XMPP-серверы ejabberd — XMPP-сервер с брокером MQTT и SIP-сервисом Metronome IM — форк Prosody IM Openfire Tigase XMPP Server Некоторые публичные XMPP-серверы https://jabber.eigenlab.org/ https://jid.pl/ https://magicbroccoli.de/ http://nixnet54icmeh25qsmcsereuoareofzevjqjnw3kki6oxxey3jonwwyd.onion/ Примечания Ссылки XMPP Standards Foundation Каталог публичных XMPP-серверов Частичный перевод RFC 3920 XMPP Core на русский Национальный российский jabber-сервер Вики-система по теме Jabber Вики-система по миграции с ICQ на Jabber Поиск по конференциям XMPP Movim — социальная сеть на основе XMPP Открытые стандарты Протоколы прикладного уровня Сетевые стандарты Стандарты на основе XML Появились в 1999 году Протоколы обмена мгновенными сообщениями


text: Ядро Linux () — ядро операционной системы, соответствующее стандартам POSIX, составляющее основу операционных систем семейства Linux, а также ряда операционных систем для мобильных устройств, в том числе Android, Tizen, KaiOS. Разработка кода ядра была начата финским студентом Линусом Торвальдсом в 1991 году, на его имя зарегистрирована торговая марка «Linux». Код написан в основном на Си с некоторыми расширениями gcc и на ассемблере (с использованием AT&T-синтаксиса GNU Assembler). Распространяется как свободное программное обеспечение на условиях GNU General Public License, кроме несвободных элементов, особенно драйверов, которые используют прошивки, распространяемые под различными лицензиями. Операционные системы на базе ядра Linux являются лидерами на рынках суперкомпьютеров, микрокомпьютеров, серверов и смартфонов. История Начало проекту было положено в 1991 году с публикации сообщения в новостной группе Usenet. К тому времени GNU уже создал множество составляющих для свободной операционной системы, но её ядро GNU Hurd ещё не было готово. Поэтому пустующее место ядра для свободной операционной системы занял Linux и, несмотря на ограниченную функциональность ранних версий, привлёк к себе множество разработчиков и пользователей. «Linux» как ядро операционной системы, разработка которого была начата Торвальдсом — лишь небольшая часть многих из использующих его систем, которые обычно тоже называют «Linux». Это иногда приводит к путанице, в связи с чем существует спор об именовании GNU/Linux — некоторые сторонники движения GNU считают, что именно такое наименование является корректным для операционной системы на базе ядра Linux и использующей наработки проекта GNU (такие, как glibc, gcc, bash, coreutils и другие). По состоянию на май 2020 года семейство операционных систем на базе ядра Linux — третье по популярности в мире на рынке настольных компьютеров — 4,9 %. На рынке веб-серверов доля Linux порядка 31 %, остальное — Unix-системы (FreeBSD и др.). По данным Top500 (май 2020 года), Linux используется в качестве операционной системы на 100 % самых мощных суперкомпьютеров планеты. Большинство мобильных устройств, таких, как смартфоны и планшетные компьютеры на базе операционных систем Android, MeeGo, Tizen, а также телевизоры и многие служебные устройства, такие, как внешние сетевые жёсткие диски, маршрутизаторы и модемы, также использует операционные системы на базе ядра Linux. Хронология Апрель 1991: 21-летний Линус Торвальдс начал работу над некоторыми механизмами операционной системы. Он начал с эмулятора терминала и планировщика задач. 25 августа 1991: Торвальдс поместил сообщение в новостную группу по Minix. 17 сентября 1991: Linux версии 0.01 (10 239 строк кода). 5 октября 1991: Linux версии 0.02. Декабрь 1991: Linux версии 0.11. Это была первая версия Linux, на которой можно было собрать Linux из исходных кодов. 19 января 1992: Первое сообщение в группе новостей alt.os.linux. 31 марта 1992: Создана специализированная группа новостей comp.os.linux. Апрель 1992: Linux версии 0.96, на котором стало возможно запустить графический сервер X Window System. Весь 1993 и начало 1994: 15 тестовых выпусков версии 0.99.* (в июле 1993 введено понятие BogoMips). 14 марта 1994: Linux версии 1.0.0 (176 250 строк кода). Март 1995: Linux версии 1.2.0 (310 950 строк кода). 9 мая 1996: Выбран символ Linux — пингвин Tux. 9 июня 1996: Linux версии 2.0.0 (777 956 строк кода). 25 января 1999: Linux версии 2.2.0, изначально довольно недоработанный (1 800 847 строк кода). 4 января 2001: Linux версии 2.4.0 (3 377 902 строки кода). 18 декабря 2003: Linux версии 2.6.0 (5 929 913 строк кода). 23 марта 2009: Linux версии 2.6.29, временный символ Linux — тасманский дьявол Tuz (11 010 647 строк кода). 22 июля 2011: релиз Linux 3.0 (14,6 млн строк кода). 24 октября 2011: релиз Linux 3.1. 15 января 2012: релиз Linux 3.3 преодолел отметку в 15 млн строк кода. 23 февраля 2015: первый релиз-кандидат Linux 4.0 (более 19 млн строк кода). 7 января 2019: первый релиз-кандидат Linux 5.0 (более 26 млн строк кода). Версии Торвальдс продолжает выпускать новые версии ядра, объединяя изменения, вносимые другими программистами, и внося свои. Оно обычно называется «ванильным» (vanilla), то есть официальное ядро без каких-либо сторонних изменений. В дополнение к официальным версиям ядра существуют альтернативные ветки, которые могут быть взяты из различных источников. Как правило, разработчики дистрибутивов Linux поддерживают свои собственные версии ядра, например, включая в них драйверы устройств, которые ещё не включены в официальную версию. С 30 мая 2011 изменена политика нумерации версий ядра. Нумерация версий до 30 мая 2011 Номер версии ядра Linux до 30 мая 2011 содержал четыре числа, согласно недавнему изменению в политике именования версий, схема которой долгое время была основана на трёх числах. Для иллюстрации допустим, что номер версии составлен таким образом: A.B.C[.D] (например, 2.2.1, 2.4.13 или 2.6.12.3). Число A обозначает версию ядра. Изначально задумывалось, что оно будет изменяться редко и только тогда, когда вносятся значительные изменения в код и концепцию ядра, первые такие изменения произошли в 1994 году (версия 1.0) и в 1996 году (версия 2.0). Число B обозначает старшую версию ревизии ядра. В ядрах до версии 3.0 чётные числа обозначали стабильные ревизии, то есть те, которые предназначены для продуктивного использования, такие, как 1.2, 2.4 или 2.6, а нечётные — ревизии для разработчиков, предназначенные для того, чтобы тестировать новые улучшения и драйверы до тех пор, пока они не станут достаточно стабильными для того, чтобы включить их в стабильный выпуск. Число C обозначает младшую версию ревизии ядра. В старой трёхчисловой схеме нумерации оно изменялось тогда, когда в ядро включались заплатки, связанные с безопасностью, исправления ошибок, новые улучшения или драйверы. С новой политикой нумерации, однако, оно изменяется только тогда, когда вносятся новые драйверы или улучшения; небольшие исправления поддерживаются числом D. Число D впервые появилось после случая, когда в коде ядра версии 2.6.8 была обнаружена грубая, требующая незамедлительного исправления ошибка, связанная с NFS. Однако других изменений было недостаточно для того, чтобы это послужило причиной для выпуска новой младшей ревизии (которой должна была стать 2.6.9). Поэтому была выпущена версия 2.6.8.1 с единственным изменением в виде исправления этой ошибки. С ядра 2.6.11 эта нумерация была адаптирована в качестве новой официальной политики версий. Исправления ошибок и заплатки безопасности теперь обозначаются с помощью четвёртого числа, тогда как большие изменения отражаются в увеличении младшей версии ревизии ядра (число C). Нумерация версий с 30 мая 2011 30 мая 2011 Линус Торвальдс выпустил ядро версии 3.0-rc1. Вместе с ним изменена политика нумерации версий ядра. Отменено использование чётных и нечётных номеров для обозначения стабильности ядра, а третье число означает стабильность ядра. Версия 3.0 практически не несёт никаких изменений, кроме изменения политики нумерации ядра. Таким образом, стабильные версии ядра 3.0 будут именоваться 3.0.X, а следующий после этого релиз будет иметь номер 3.1. Поддержка В то время как Торвальдс продолжает выпускать новые экспериментальные версии, руководство LTS-версиями передаётся другим лицам: Другими программистами ядра Linux являются и . Стабильные версии Версия 1.0 в марте 1994 — поддерживала только однопроцессорные i386-машины. Версия 1.2 в марте 1995 — добавлена поддержка процессоров Alpha, SPARC и MIPS. Версия 2.0 в июне 1996 — добавлена поддержка других процессоров, а также многопроцессорных систем. Версия 2.2 в январе 1999. Версия 2.4 в январе 2001 — добавлена поддержка ISA Plug and Play, процессоров PA-RISC, шин USB и PC-Card (PCMCIA). Поддержка для процессоров Axis Communications ETRAX CRIS и файловой системы InterMezzo были добавлены чуть позже. Версия 2.6 от 17 декабря 2003: создано ответвление μClinux (для микроконтроллеров); добавлена поддержка для процессоров Hitachi серии H8/300, NEC v850, процессоры для встроенных систем Motorola m68k, новая архитектура доступа к памяти NUMA, поддержка NCR Voyager, технологии Intel hyperthreading и PAE; добавлено: поддержка файловой системы XFS (разработчик — фирма SGI); улучшена поддержка APIC; увеличено максимальное количество пользователей и групп с 65 000 до более 4 млрд; увеличено максимальное количество процессов с 32 000 до 1 млрд; увеличено максимальное количество типов устройств (major device) — с 255 до 4095, и максимальное количество устройств каждого типа (minor device) — с 255 до более миллиона, из-за проблем с распределением номеров под типы устройства введён системный сервис udev; улучшена поддержка 64-битных систем и файловых систем размером более 16 Тбайт; уменьшено время реакции для процессов реального времени; переписана реализация потоков с использованием Native POSIX Thread Library (NPTL); улучшен загрузчик модулей; добавлена новая служебная файловая система sysfs; интеграция User-mode Linux; и др. Версия 3.0 — используется в Ubuntu 11.10. Версия 3.1. Версия 3.2 — используется в Ubuntu 12.04 LTS и Debian 7 Wheezy. Помимо исправлений ошибок, предполагается впервые вносить некоторые оптимизации кода, влияющие на производительность, в ядро с длительным циклом поддержки. Версия 3.3. Версия 3.4. Версия 3.5 — используется в Ubuntu 12.10. Версия 3.6. Версия 3.7. Версия 3.8 — прекращена поддержка процессоров i386. Используется в Ubuntu 13.04. Версия 3.9. Версия 3.10. Нововведения: Можно запретить выполнять скрипты как программы — функциональность запуска скриптов, содержащих путь к интерпретатору в заголовке «#!», теперь может быть собрана в виде модуля ядра. Интегрирована разработанная и используемая в Google система . Bcache позволяет организовать кэширование доступа к медленным жёстким дискам на быстрых SSD-накопителях; кэширование при этом ведётся на уровне блочного устройства — и это позволяет ускорить доступ к накопителю, причём независимо от используемых файловых систем на устройстве. Ядро можно собирать компилятором Clang благодаря подготовленным проектом LLVMLinux патчам. Появилась динамическая система управления генерацией прерываний таймером. Теперь можно в зависимости от текущего состояния изменять прерывания в диапазоне от тысяч тиков в секунду до одного прерывания в секунду — это позволяет сводить к минимуму нагрузку на CPU при обработке прерываний в случае неактивности системы. Сейчас эта функция используется для систем реального времени и HPC (высокопроизводительных вычислений), но в следующих выпусках ядра будет задействована и для десктоп-систем тоже. Появилась возможность генерации события с уведомлением приложения о приближении к исчерпанию доступной процессу/системе памяти (в cgroups). Для команды perf стало доступно профилирование доступа к памяти. Появился новый драйвер «sync» (экспериментальный). Он был разработан в рамках платформы Android и используется для синхронизации между другими драйверами. Появился драйвер для виртуальных видеоадаптеров Microsoft Hyper-V (по работе Hyper-V в целом тоже есть улучшения). Теперь поддерживаются новые средства управления питанием, которые появились в процессорах AMD семейства 16h («Jaguar»). Поддержка ускорения декодирования видео с использованием аппаратного декодера UVD, встроенного в современные GPU AMD, была добавлена в DRM-модуль Radeon. Добавлена поддержка протокола RDMA (iSER) в подсистему iSCSI. Выполнение криптографических функций (sha256, sha512, blowfish, twofish, serpent и camellia) оптимизировано с использованием инструкций AVX/AVX2 и SSE. Был интегрирован драйвер виртуальной графической карты QXL (применяется в системах виртуализации для ускоренного вывода графики при помощи протокола SPICE). Версия 3.11 — используется в Ubuntu 13.10. Версия 3.12. Версия 3.13 — используется в Ubuntu 14.04. Версия 3.14. Версия 3.15. Версия 3.16 — используется в Ubuntu 14.10. Версия 3.17. Версия 3.18. Версия 3.19 — используется в Ubuntu 15.04. Версия 4.0 — изменения касаются, в основном, исправлений драйверов (media, sound, pci, scsi target, drm, thermal), обновлений для архитектур nios2, x86. Некоторые нововведения: установка обновлений ядра без необходимости перезагрузки; улучшения для платформы Intel ‘Skylake’; поддержка Intel Quark SoC; различные улучшения для работы Linux на Playstation 3; поддержка драйвером TOpen-source AMD Radeon функции DisplayPort Audio; различные улучшения в драйверах HID, включая Lenovo compact keyboards, Wacom Cintiq 27QHD; в драйверы управления питания Toshiba добавлены настройки USB sleep/charge functionality, rapid charge, sleep w/ music и др.; улучшения работы с файловой системой, включая F2FS, BtrFS и др. Версия 4.1. Версия 4.2 — используется в Ubuntu 15.10. Версия 4.3. Версия 4.4 — используется в Ubuntu 16.04. Версия 4.5. Версия 4.6. Версия 4.7. Версия 4.8. Основные улучшения: поддержка AMDGPU OverDrive начальная поддержка NVIDIA Pascal поддержка стандарта HDMI CEC полная поддержка BCM2837 — SoC, на котором основана Raspberry Pi 3 серьёзная доработка Btrfs ENOSPC множество улучшений безопасности Версия 4.9. Основные улучшения: Множество улучшений Direct Rendering Manager Поддержка Greybus — подсистемы взаимодействия модулей Project Ara Поддержка Intel Integrated Sensor Hub (ISH) Значительные изменения подсистем виртуализации Xen и KVM Исправлены ошибки в btrfs и ext4 Поддержка процессоров Loongson 1C Версия 4.10. Основные улучшения: Множество новых функций в файловых системах f2fs, ubifs, ext4, xfs, cifs, удалена logfs Добавлена поддержка virtio-crypto для виртуализированных гостевых систем Значительные улучшения графических драйверов nouveau, amdgpu, intel и adreno Добавлена поддержка звуковых чипов CS35L34, CS42L42, WM8581, MSM8916 WCD, RT5665 Реализована технология Intel GVT-g, которая позволяет предоставить для каждого виртуального окружения отдельный виртуальный GPU Для IPv6 реализована поддержка Segment Routing (SR-IPv6) Версия 4.11. Основные улучшения: Алгоритм использования swap переработан для SSD Поддержка OPAL для шифрования данных на NVM Express Новый системный вызов statx() — обновлённый stat() Подключение I/O планировщиков к подсистеме многоуровневых очередей для блочных устройств В RAID 4/5/6 подсистемы MD добавлена поддержка журналирования на отдельный NVRAM или SSD Множественные изменения в cgroups, RCU, inotify, пространствах имён, таймерах и прочих подсистемах Версия 4.12. Основные улучшения: Поддержка устройств с USB Type-C для USB 3.1 Аппаратное ускорение для NVIDIA GTX 1050, 1060, 1070 и 1080 Удалён hd — драйвер жёстких дисков, написанный Линусом и поставлявшийся начиная с версии ядра 0.01 Добавлена утилита AnalyzeBoot, формирующая HTML-отчёт о загрузке ядра Прекращена поддержка архитектуры AVR32 Поддержка компьютеров Orange Pi PC2, NVIDIA Tegra 186, i/MX28 Duckbill, Motorola DROID4, Rockchip RK3399/RK3288 и температурных датчиков Broadcom BCM2835 (Raspberry Pi) Версия 4.13. Основные улучшения: Добавлена подсистема для работы с UUID/GUID Добавлена ядерная реализация протокола TLS Поддержка огромного количества нового оборудования, в том числе начальная поддержка графики Intel Cannonlake/Coffeelake, однако драйвера термодатчика Zen/Ryzen до сих пор нет Многочисленные улучшения дисковой подсистемы и файловых систем ext4, Btrfs, F2FS, UBIFS, XFS В ext4 появилась опция, увеличивающая максимальное количество файлов в каталоге с 10 млн до 2 млрд Теперь по умолчанию используется версия протокола SMB 3.0, представленная с Windows 8 Версия 4.14. Основные улучшения: Улучшения для Vega в AMDGPU, поддержка modesetting GP108 / GT 1030 в Nouveau, добавление кода для работы с чипами Cannonlake «Gen 10» в видеодрайвер Intel Поддержка HDMI CEC для Raspberry Pi и Allwinner Sunxi Многочисленные улучшения архитектуры Aarch64 для Raspberry Pi Zero W, Banana Pi и множества других плат, обновления архитектуры MIPS и прекращение поддержки процессоров серии R6000 Увеличение лимитов размера оперативной памяти для новых процессоров Intel: адресное пространство до 128 ПБ, физическая оперативная память до 4 ПБ Поддержка сжатия Zstd для Btrfs и SquashFS Поддержка распараллеливания в Cgroup2 Версия 4.15 — используется в Ubuntu 18.04. Основные улучшения: Новая архитектура — RISC-V, драйверы для RISC-V устройств ожидаются в следующем релизе Информация об уязвимостях используемого процессора теперь доступна в /sys/devices/system/cpu/vulnerabilities, определить подверженность Meltdown или Spectre стало проще Наконец-то обеспечена поддержка температурного датчика AMD Zen (Ryzen/Threadripper/EPYC), также добавлена поддержка температурного мониторинга Intel Coffee Lake и Cannonlake, а также GeForce GTX 1000 Добавлен драйвер Radeon RX Vega Обеспечена поддержка новых SoC и одноплатных компьютеров: Allwinner R40, Broadcom Hurricane 2, CubieBoard 6, Banana Pi M2 Ultra, Fairphone 2 Продолжена работа по исправлению «Unix Millennium Bug» — проблемы 2038 года Версия 4.16. Основные улучшения: Драйвер vboxguest наконец-то приняли в ядро. Хотя почти все остальные драйверы VirtualBox до сих пор не приняты, такие функции, как бесшовный режим и общий буфер обмена уже доступны Поддержка новых одноплатников: Orange Pi R1, Hummingboard2, D-Link DNS_313 и поддержка дисплея для NVIDIA Jetson TX2 Множество улучшений драйверов блочных устройств и файловых систем XFS, Btrfs и ext4 AMDGPU теперь поддерживает синхронизацию нескольких дисплеев в мультимониторной конфигурации, эта функция включена по умолчанию для всех поддерживаемых GPU Различные исправления и улучшения безопасности и работа над предотвращением использования уязвимостей Spectre и Meltdown на всех поддерживаемых архитектурах Версия 4.17. Основные улучшения: Улучшение энергосбережения вплоть до 10 % нa определённом оборудовании F2FS теперь поддержвает lost+found, а ext4 защищена от атак специально сформированными контейнерами Произведена чистка кода, удалён код поддержки девяти устаревших архитектур, добавлена поддержка новой архитектуры NDS32 По умолчанию теперь включён AMDGPU DC с поддержкой Vega12 и AMDKFD, позволяющий запускать ROCm/OpenCL на Polaris и Fiji Добавлен драйвер для гигабитных сетевых карт Microchip LAN743x Поддержка новых SoC: Allwinner H6, NVIDIA Tegra Xavier, ST STM32MPU, NVIDIA P2972 Версия 4.18 — используется в Ubuntu 18.10. Основные улучшения: Предотвращение использования уязвимости Spectre V4 на ARM64, и уязвимости Spectre V2 на ARM32 Начальная поддержка графики Vega 20, Vega M и Intel Icelake Gen11 Новая подсистема BPFILTER, предоставляющая возможности фильтрации пакетов и файрвола и сохраняющая совместимость с iptables Многочисленные улучшения в реализации USB 3.2, USB Type-C и SoundWire Для AMD Stoney Ridge и Bristol Ridge наконец-то добавлен драйвер датчика температуры Файловая система Lustre удалена из кода основного ядра, дальнейшее её развитие будет производиться в форке Версия 4.19. Основные улучшения: Альтернативный режим DisplayPort для разъёмов USB Type-C Драйвер виртуального KMS (VKMS) позволяет использовать возможности GPU на headless-системах Множество исправлений и улучшений, призванных решить проблему 2038 года, например, драйвер ext4 теперь поддерживает даты в 64-битном формате Новые механизмы защиты от Spectre для x86, PowerPC и S390 Новая файловая система — EROFS, очень простое внутреннее устройство, очень высокая производительность, но возможно монтирование исключительно в режиме read-only Множество улучшений в подсистеме KMS на платформах x86 и PowerPC Версия 4.20. Основные улучшения: Вызов kexec, позволяющий загрузить ядро в память без перезагрузки реализован для архитектуры MIPS Поддержка китайских процессоров Hygon Dhyana и C-SKY Значительная чистка от GCC-специфичного кода и устранение использования VLA для обеспечения возможности сборки ядра при помощи Clang Улучшение работы функции гибернации для 32-битных x86 Множество исправлений, связанных с проблемой 2038 года Поддержка вибрации в драйвере контроллера Xbox One S Архитектура Ядро Linux поддерживает многозадачность, виртуальную память, динамические библиотеки, отложенную загрузку, производительную систему управления памятью и многие сетевые протоколы. На сегодняшний день Linux — монолитное ядро с поддержкой загружаемых модулей. Драйверы устройств и расширения ядра обычно запускаются в нулевом кольце защиты, с полным доступом к оборудованию. В отличие от обычных монолитных ядер, драйверы устройств легко собираются в виде модулей и загружаются или выгружаются во время работы системы. То, что архитектура Linux не является микроядерной, вызвало обширнейшие прения между Торвальдсом и Эндрю Таненбаумом в конференции по Minix в 1992 году. Совместимость Задуманное изначально не как многоплатформенное, ядро Linux на данное время перенесено на очень широкий круг архитектур, запускается на широком спектре оборудования от iPAQ (карманный компьютер) до IBM S/390 (высокопроизводительный мейнфрейм). Системы на основе Linux используются в качестве основных почти на всех суперкомпьютерах (более 99 % списка TOP500), в том числе и на самом мощном — Summit. Изначально Linux разрабатывался для 32-битных x86-совместимых ПК; на сегодняшний день различные версии ядра Linux запускаются на следующих процессорных архитектурах: ARM: Acorn: Archimedes, A5000, RiscPC; StrongARM, Intel XScale и тому подобных; Axis Communications CRIS; DEC Alpha; HP PA-RISC; Hitachi: SuperH (SEGA Dreamcast), H8/300; IBM System/390; IBM zSeries-мэйнфреймы; Intel 80386 и выше: IBM PC и совместимые с процессорами: 80386, 80486, а также AMD, Cyrix, TI и IBM-варианты; серия Pentium; Core, Core2 Duo в 32- и 64-битных версиях; AMD Am5x86, K5, K6, Athlon (все 32-битные версии), Duron; AMD64: 64-битная технология AMD (также известная как x86-64); Cyrix 5x86, 6x86 (M1), 6x86MX и MediaGX (National/AMD Geode) серия; VIA C3 и последующие процессоры; поддержка Intel 8086, 8088, 80186, 80188 и 80286 процессоров находится в разработке (проект ELKS); Microsoft Xbox (Pentium III); Intel IA-64 (Itanium); MIPS; Silicon Graphics, Inc.; Cobalt Qube, Cobalt RaQ; Sony/Toshiba/IBM — Emotion Engine и Cell, используемые в PlayStation 2 и PlayStation 3 соответственно; DECstation и некоторые другие; Motorola 68020 и выше: более новые Amiga: A1200, A2500, A3000, A4000; Apple Macintosh II, , Quadra, Centris и ранняя серия Performa; рабочие станции Sun Microsystems серии 3 (экспериментальная, с использованием Sun-3 MMU); NEC v850e; Renesas M32R; PowerPC и IBM POWER: все новые компьютеры Apple (все оснащённые PCI Power Macintoshes, ограниченная поддержка NuBus Power Macs), клоны PCI Power Mac, разработанные Power Computing, UMAX и Motorola; IBM RS/6000, iSeries- и pSeries-системы; Pegasos I и II системы; некоторые встроенные системы PowerPC; Qualcomm Hexagon SPARC и UltraSPARC: Sun 4-series, SPARCstation/SPARCserver, Ultra-, Blade- и Fire-серии рабочих станций и серверов. Лицензия Ядро Linux распространяется на условиях лицензии GNU General Public License, то есть свободно. Эту лицензию выбрал Линус Торвальдс практически сразу после того, как стало понятно, что его хобби начало получать распространение по всему миру. Владельцем торговой марки Linux является Линус, а помогает следить за соблюдением его прав и условий GPL Фонд свободного программного обеспечения. Символ Официальным символом Linux является пингвин по имени Tux, отличающийся от «обычных» пингвинов жёлтым цветом клюва и лап. В качестве символа версии ядра 2.6.29 принят тасманийский дьявол Tuz, изображение которого ранее служило талисманом конференции linux.conf.au 2009. На этой конференции Линус Торвальдс провёл успешную акцию по благотворительной продаже игрушек Linux Tasmanian devil за сохранение популяции Тасманского дьявола. В версии 2.6.30 используется прежний логотип. Оценка стоимости разработки с нуля Стоимость переразработки ядра Linux версии 2.6.0 способами, принятыми для разработки проприетарного ПО, была оценена в 612 млн долл. США (467 млн евро) в ценах 2004 года с использованием модели оценки человеко-месяцев COCOMO. В 2006 году исследование, профинансированное Евросоюзом, подняло стоимость разработки ядра Linux до уровня 882 млн € (1,09 $). Эта тема была снова поднята в октябре 2008 г. Амандой МакФерсон, Брайаном Проффиттом и Роном Хейл-Эвансом. Используя методологию Дэвида Э. Вилера, они оценили разработку ядра 2.6.25 в 1,3 млрд долл. США (часть от 10,8 млрд долл. США переразработки Fedora 9). Также Гарсиа-Гарсиа и Алонсо де Магдалено из университета Овьедо (Испания) оценили ежегодный прирост стоимости ядра приблизительно в 100 млн евро с 2005 по 2007 гг. и 225 млн евро в 2008 г. Совокупная стоимость разработки в Евросоюзе в 2009 году оценена в более чем 1 млрд евро (около 1,23 млрд долл. США). См. также Процесс загрузки Linux DKMS Kernel panic 9885 Linux — астероид, названный в честь Linux. Сравнение Microsoft Windows и Linux Компоненты ядра Linux Linux framebuffer USB core — подсистема для поддержки USB-устройств и контроллеров шины USB. evdev () — компонент для работы с устройствами ввода (клавиатурой, джойстиком, мышью). kvm (). DRM (). cgroups (). dm (). Video4Linux. SELinux (). Netfilter () — межсетевой экран (брандмауэр). Примечания Литература Ссылки Анализ тенденций и участников разработки ядра Linux — статья об отчёте The Linux Foundation за 2012 год Linux Свободное программное обеспечение, написанное на Си Программное обеспечение с лицензией GNU GPL Ядро Linux Свободное программное обеспечение, написанное на языке ассемблера