...

суббота, 22 февраля 2020 г.

О работе ПК на примере Windows 10 и клавиатуры ч.2

В этой части мы рассмотрим какой путь проходит информация о нажатой клавише от клавиатуры до CPU, будет очень много картинок и это не последняя часть. Я буду рассказывать об этом с точки зрения программиста который пишет в режиме пользователя — пользовательские програмы, web, мобильные приложения — поэтому здесь могут быть неточности. Люди занимающиеся электроникой навряд ли найдут для себя что-то полезное. Первая часть находится здесь.

Проблема высшего программистского образования в том что студенты весьма подробно изучают отдельные аспекты вырванные из контекста не понимая как это всё увязывается вместе. Несколько семестров высшей математики, чтобы понимать физику, чтобы понимать электротехнику, электроприборы, ассемблер, ОС, алгоритмы, системное программирование и куча других предметов утрамбованных в стандартную пятилетнюю программу. Обилие деталей и никто не объясняет как это вписывается в общую картину, предполагается что через 5 лет студент сам увяжет это в голове, а потом пойдёт работать с .Net и никогда не притронется к электронике и режиму ядра. Я считаю, что не нужно так подробно знать о работе компьютера, достаточно общего понимания что происходит ниже по технологическому стеку. Если бы люди составляющие программы обучения для ВУЗов открывали автошколы, вы бы учили русский язык, каллиграфию и гидродинамику, потому как надо общаться с инспекторами, менять жидкости и писать объяснительные. В статье будут некоторые неточности, так что для сдачи экзамена по профильным предметам она не подойдёт, но после неё будет легче понять устройство ПК.

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


“Мозгами” клавиатуры которые могут определять нажатие клавиши является микроконтроллер, который по сути является мини-компьютером с программой проверяющей каждую клавишу подавая на неё напряжение и если оно проходит то клавиша нажата. Ножки микроконтроллера имеют свои названия и к ним можно обращаться в коде, они используются для общения с внешним миром. Ножки могут управлять работой микроконтроллера, сообщать состояние чипа или служить для чтения/передачи данных.
Программу (прошивку) можно писать на языке С или ассемблере, она заливается на микроконтроллер через программатор. Он представляет из себя устройство с разъёмом для установки микроконтроллера и может подключаться к компьютеру через USB, на котором запущен специальный софт. Вот как выглядит программатор в реальной жизни:
Через программу на каждую ножку можно установить либо замерить напряжение. Алгоритм нахождения нажатой клавиши заключается в том чтобы подавать напряжение на одну ножку и замерять его на другой и если клавиша была нажата, то на второй ножке будет примерно столько же вольт сколько на входной. Так в бесконечном цикле проверяются все клавиши. Как правило клавиатура имеет 80-110 кнопок, а у контроллера контактов (пинов) гораздо меньше. Поэтому используют такой подход как “клавиатурная матрица” — все клавиши распределяют по столбцам и строкам и алгоритм сводится к нахождению столбца который пересекается со строкой на которую программа подала напряжение. Здесь отмечено цветом соответствие столбцов/строк контактам.

В реальности матрица может выглядеть так. Слева промышленная и справа самодельная.

На псевдокоде часть программы прошивки определяющая нажатые клавиши может выглядеть следующим образом.
for (int i = 0; i < COLSC; i++) {
        SetPower(columns[i], 3.0 f);
        for (int j = 0; j < ROWSC; j++) {
                float power = GetPower(rows[j]);
                if (power >= 3.0f - THRESHOLD) {
                        BYTE key = keys[i, j];
                        SendKey(key);
                }
        }
}

Каждой клавише соответствует скан код, он стандартизирован и представляет из себя 8ми битное число, т.е. один байт. Поэтому когда нажата клавиша Y контроллер клавиатуры должен будет отправить число 21 (0x15), а когда отпущена — 149 (0x95). Каким образом происходит отправка? Наверняка вы работали с JSON, веб-сервисами или отправляли данные между процессами и знаете что для отправки данные надо сериализовать, т.е. превратить в массив байт или отформатированный текст, которые получатель может десериализовать, т.е. воссоздать объект в своём адресном пространстве. А во что можно сериализовать данные на таком низком уровне? Нам нужно передать всего лишь 1 байт (8 бит). Забегая вперёд скажу, что данные мы будем передавать побитно.

В математике есть формула которая может преобразовать любое привычное нам десятичное число в последовательность нулей и единиц и обратно. Этой формуле нашлось применение в вычислительной технике. В первой части я вскользь упомянул, что аналоговая техника эксплуатирует законы физики, в то время как цифровая работает на уровне нулей и единиц. Это означает, что аналоговый телефон кодирует весь спектр человеческого голоса в последовательность электромагнитных волн, а цифровой телефон использует микросхему которая преобразовывает человеческий голос в цифровые данные, к примеру в файлы в формате WAV, а потом передаёт их последовательностью нулей и единиц в виде электромагнитных волн. Только в данном случае вместо всего спектра голоса надо представлять только два значения — 0 и 1. Представлять их можно волнами разной длины, разным напряжением, световыми импульсами через оптоволокно, черными и белыми полосками на бумаге, дырками на перфокарте.

Скан код нажатой клавиши Y в двоичном виде выглядит как 0001 0101. Передавать мы их будем по ножке микроконтроллера которая отвечает за данные (DATA). Логическая единица — это напряжение 3.3В и выше, логический ноль — напряжение около 0В. Здесь возникает загвоздка — как передать три нуля подряд? Для этого нам нужна вторая ножка которую назовём CLOCK, когда на ней единичка это значит что сеанс передачи одного бита начался, а ноль — закончился. Такая перемена значений (напряжений) будет происходить с определённым интервалом времени, скажем 50 наносекунд, потому что на другом конце находится второй микроконтроллер который работает со своей скоростью и в бесконечном цикле слушает ножки к которым подключены CLOCK и DATA. В данном примере я буду исходить из того что клавиатура подключается через разъём PS2, который показан ниже. Через USB порт алгоритм передачи будет другим. Как видите у порта PS2 есть пины которые называются Data, Clock. Помимо них есть ещё контакт по которому контроллер порта PS2 раздаёт клавиатуре напряжение 5В необходимое для работы и контакт заземления, который просто выводится на корпус клавиатуры. Остальные контакты не используются.

Порт PS/2 называется серийным портом, потому как передаёт биты один за другим (серия битов). Паралельный порт передаёт данные сразу по нескольким контактам и может за один сеанс передачи данных передать к примеру сразу один байт (8 бит).

В чём разница между портом, шиной (bus) и протоколом? Шина как и порт это набор контактов (проводков) и соглашение как их использовать, только порт имеет соединение для подключения внешних устройств, а шина используется для общения компонентов на материнской плате. Порт это по сути шина с разъёмом по середине. Протокол — это порядок взаимодействия через контакты. В примере с PS/2 это был порядок передачи данных через контакты Clock и Data.

Раньше микроконтроллер Intel 8042 был очень распространённым и использовался как в клавиатуре, так и в качестве контроллера порта PS2, т.е. данными обменивались два одинаковых чипа. Драйвер порта PS2 в Windows называется 8042prt.sys.
На самом деле мы передаём не 8 бит, а 11, потому что данные передаются в виде пакета данных или же сообщения. Дополнительные 3 бита обозначают начало и конец данных — один нолик в начале и 0 1 в конце, такой протокол передачи данных от устройства хосту в PS2. Так может выглядеть функция SendKey в псевдокоде, если вам удобнее понимать код. Она отправляет данные о нажатой клавише через шину PS2.


void SendBit(BYTE bit) {
        float power = (bit != 0) ? 3.3f : 0.0f;
        SetPower(DATA, power);
        SetPower(CLOCK, 3.3f);
        Sleep(50);
        SetPower(CLOCK, 0.0f);
        Sleep(50);
}

void SendData(BYTE data) {
        SendBit(0);
        
        for (BYTE i = 0; i < sizeof(BYTE); i++) {
                BYTE bit = (data >> i) & 1;
                SendBit(bit);
        }

        SendBit(0);
        SendBit(1);
}

Не всегда для передачи данных нужно вручную устанавливать напряжение на каждой ножке индивидуально. В некоторых случаях значение сохранённое в регистре автоматически отображается на контакты.

На графике такая передача данных будет визуализирована следующим образом. По оси X время, по Y — напряжение.

В аналоговой технике сигнал может искажаться, т.е. лежит провод ни к чему не подключённый, но вольтметр показывает на нём 0.5В из-за того что рядом есть электромагнитное поле. Поэтому используется понятие порогового напряжения. Если напряжение меньше порогового, то считаем что получили логический ноль, иначе единичка. С учётом возможных искажений скан-код нажатой клавиши Y может прийти вот таким:

Прежде чем мы подробно рассмотрим как данные от клавиатуры добираются до CPU давайте поговорим о микросхемах, шинах и материнских платах.

Микроконтроллеры и микросхемы


Микроконтроллер это цифровое устройство, он может выполнять вшитую в него программу, имеет некоторый объём RAM памяти и место для хранения данных и кода программы. Микросхема — это аналоговое устройство, внешне похожее на микроконтроллер и её нельзя перепрограммировать, потому что программа задаётся ещё на этапе проектирования. Вручную создавать электрическую схему реализующую алгоритм очень трудоёмко и поэтому для проектирования микросхем используется специальный язык программирования который называется VHDL (Hardware Description Language). Это высокоуровневый язык программирования который транслируется в план электрической схемы, она прогоняется через программу находящую оптимальное расположение радиоэлементов на плате и в конечном счёте производится в физическом виде. Изображения носят иллюстративный характер.


Каким же образом данные и команды представлены в микросхемах и микроконтроллерах? Основой вычислительной техники является транзистор, который человечество научилось делать в микроскопических размерах. В классическом виде транзистор это такой радиоэлемент у которого есть три ножки: вход, выход и между ними управляющая, своего рода затвор. Выглядят транзисторы как на картинке ниже:

На электрических схемах транзистор представлен кружком с тремя линиями и стрелкой. Рисунок ниже иллюстрирует работу транзистора, вода иллюстрирует ток. Basis, Kollektor, Emitter — названия ножек.

На коллектор подаётся напряжение, если вентиль открыт (база имеет напряжение), то ток проходит на эмиттер, иначе там будет 0В. Имея 8 транзисторов у каждого из которых на выходной ножке (Эмитер) подключен светодиод который либо горит либо нет, мы можем представить 256 уникальных комбинаций (2 в степени 8). Лапочки интерпретируются справа налево, так же как и десятичные числа. Младшие разряды находятся справа.
Т.е. одна лампочка представляет один бит информации (0 или 1), а восемь таких лампочек соответствуют одному байту. На транзисторах можно строить и логические операторы И, ИЛИ, НЕ, XOR.

К примеру в схеме оператора AND (слева на картинке выше) на выходе будет напряжение только если оба входных напряжения ненулевые. Есть уже кем-то придуманные алгоритмы сложения, умножения, деления, вычитания основанные на побитовых логических операциях и битовых сдвигах. Производителям микросхем надо их просто реализовать. Ниже проиллюстрирована работа алгоритма побитового сложения, разбирать мы его не будем:

Нанотранзисторы микроскопические и их можно размещать на плате миллионами. Ниже изображён процессор Intel и как примерно может выглядеть одно из его ядер. Картинка носит иллюстративный характер.

Микросхемы могут содержать на той же плате и в том же корпусе и микроконтроллер.

Шины


Обычно в учебниках шины показывают в виде жирных стрелок, как на картинке ниже. Это делается чтобы не рисовать все соединения контактов, которых может быть много. Работа шины PS2 очень простая, там всего нужно три контакта. Но есть шины у которых к примеру 124 контакта для передачи данных.

Различают шины следующих типов:

  • Данных — биты на этих контактах интерпретируются как данные: число, символ, часть картинки или других бинарных данных. Ширина шины влияет на пропускную способность, количество переданных бит за секунду
  • Адреса — биты на этих пинах интерпретируются как физический адрес в памяти. Ширина этой шины определяет максимальный поддерживаемый объём RAM.
  • Управления — контакты которые используются для передачи управляющих сигналов на подключенные устройства. CPU использует их для отправки команд чтения записи памяти RAM и устройств I/O.
  • Питания. Хоть она обычно и не упоминается в списке шин, но привести в пример её стоит. Вот как выглядит ATX 24 Pin 12V PSU Connector, она подаёт разные напряжения для разных подсистем.

Шина может состоять из подшин, т.е. одни контакты используются для данных, другие для адресов, третьи для управления и контакты по которым передаётся питание. Подход когда одни и те же контакты используются попеременно для передачи и данных и адресов называется мультиплексированием. К примеру процессор Intel 8086 имеет шину данных и адресов 20 бит, на диаграмме пинов её контакты обозначены AD0-AD19 (ножки 16-2 и 39-35).

В более сложном случае у нас могут быть несколько микросхем подключенных к тем же контактам. Для нормального общения им нужен дополнительный чип, который будет определять кто в какой момент времени может их использовать, он называется контроллер шины. На рисунке ниже сферическая шина в вакууме: четыре одинаковых микроконтроллера передают данные микроконтроллеру-потребителю через контроллер шины. Красный провод — напряжение, которое контроллер шины раздаёт всем подключенным к нему чипам. По зелёным проводам передаются данные и производится “договаривание” с контроллером шины и синий провод это Clock, по которому контроллер шины синхронизирует общение контроллеров, потому как они могут работать с разной скоростью. Если на синем проводе логическая единица, то чип имеющий право на пользование шиной может выполнить один акт взаимодействия со внешним миром — прочитать бит например.

Контроллер шины можно рассматривать как цельный компонент, потому общение со внешним миром будет проходить через него и сколько реально на шине чипов или реальных внешних устройств не важно. Для передачи данных в материнской плате имеется разветвленная сеть шин. Несмотря на то что чип-сетов великое множество, в большинстве своём они следуют типовой компоновке, потому что все устройства подключённые к материнской плате делятся на:
  • Медленные — клавиатура, жёсткий диск, сетевая карта, аудио и пр.
  • Быстрые — CPU, RAM, GPU.
Исходя из этого деления в материнской плате есть два главных чипа — Южный мост, координирующий работу всех медленных устройств, и Северный мост для координации быстрых устройств. В современных компьютерах Северный мост находится в самом CPU, а Южный может называться Platform Controller Hub, но сути это не меняет. Оба эти моста соединены между собой шиной по которой и сообщают друг другу о значимых событиях. Особый интерес представляет собой генератор тактовой частоты по которому процессор, оперативная память и графическая карта синхронизируют свою работу, тот самый синий провод. Оверклокинг это по сути изменения настроек BIOS, чтобы синхронизация происходила чаще, при этом железо, в первую очередь CPU будет сильнее греться, потреблять больше энергии и быстрее вырабатывать свой ресурс. Противоположностью является андерклокинг, когда скорость работы понижается ради экономии заряда батареи или уменьшения шумности.

Чипсет — это набор микросхем, которые все были созданы для работы друг с другом. Они обеспечивают коммуникацию компонентов на материнской плате и предоставляют функциональность, например таймеры. Чип-сет работает только с одной маркой процессоров, AMD нельзя вставить в материнку с чипсетом Intel, у них даже контакты разные. Схема материнской платы представлена ниже:

Хотите пример хардверной инкапсуляции? В чипсетах фирмы Intel имеется чип под названием Super IO, он представлен на картинке ниже и через шину LPC подключен к Южному мосту. LPC — умное название проводков CLOCK, DATA, VCC (POWER). Этот чип содержит в себе эмуляцию всех старых чипов которые когда-либо использовались для периферийных устройств, в том числе и чип 8042 который использовался для PS2 порта. Там же находится и эмулятор контроллера порта для Floppy и прочие реликты которые мешают прогрессу. На общей схеме материнской платы выше указаны и Super IO и шина LPC.

Современный порт PS2 напрямую подключается к чипу Super I/O своими контактами. Зелёное — клавиатура, фиолетовый — мышка. Раньше он подключался к микроконтроллеру Intel 8042.

Материнская плата выполнена из диэлектрика, т.е. материала который не проводит ток. Ток может проходить только про пропечатанным на плате магистралям. Материнская плата имеет множество слоёв, на каждом из которых пропечатаны свои контакты и поэтому если просверлить материнку там где магистралей не видно её можно испортить повредив невидимые контакты внутри платы. Теперь можно детально рассмотреть процесс распространения данных от PS2 к CPU.

Дорога от PS2 к процессору


Как правило архитектуру компьютера рассматривают на процессоре 8086. С одной стороны это правильно, потому как он достаточно простой по сравнению с современными CPU, с другой стороны неправильно, потому что он старый и не отражает архитектуру современной машины. Intel 8086 не нужны были никакие мосты, потому что он был настолько медленный что мог работать с периферией на одной шине, т.е. на одной частоте. Я плохо знаю современные CPU и чип сеты, поэтому буду объяснять на выдуманных, которые напоминают реальные. В моём примере будет вымышленный CPU сильно похожий на Intel 8086. У Super IO чипа больше ста котактов и по ним есть документация в Интернете, но я не вижу смысла разбирать какие пины используются клавиатурой и LPC-шиной для общения с South Bridge на самом деле. Главное это принцип, который может быть реализован по-разному.

Давайте быстренько посмотрим на картинку чтобы вспомнить что мы уже прошли. Зелёные стрелки показывают путь который мы рассмотрим.


Итак данные от клавиатуры уже пришли в контроллер порта PS2, который когда-то был чипом Intel 8042, а теперь эмулируется чипом Super IO. А теперь давайте разбирать дальнейший ход действий на моей выдуманной материнке с выдуманным CPU. Контроллер PS2 получил скан код нажатой клавишы Y и теперь подаёт напряжение на контакт сигнал (фиолетовый, см картинку ниже) на котором должен уведомить программируемый контроллер прерываний о данных с клавиатуры. Этот сигнал передаётся от одного чипа к другому пока Северный мост не передаст его чипу управляющему прерываниями.

Programmable Interrupt Controller представляет из себя чип Intel 8259 у которого 8 ножек (их имена IRQ0-IRQ7) зарезервированы для получения уведомлений от определённых портов (Interrupt ReQuest). На пин IRQ1 подвязана клавиатура, IRQ7 — принтер, на какой-то пин Floppy диск, звуковая карта, параллельные порты и другие. Конечно устройств может гораздо больше восьми, поэтому применялся такой приём как каскадирование, когда к ножке с именем IRQ2 подключался другой такой же PIC, у которого отсчёт начинался не с 0, а 7. Мышка привязана к IRQ12, т.е. ножка IRQ5 на втором PIC.

Сейчас контроллер прерываний должен уведомить CPU о событии на клавиатуре. Это происходит следующим образом:

  1. Контроллер прерываний подаёт на свою ножку INT (Interrupt) напряжение, которое идёт на ножку INTR (Interrupt Request) процессора. CPU может быть в данный момент занят и потому будет игнорировать этот сигнал, потому что уведомление от клавиатуры считается маскируемым прерыванием, т.е. его можно игнорировать до поры до времени. Немаскируемое прерывание требует немедленного внимания, к примеру ошибки внутри логики работы чипсета. Ошибку следует понимать так же как и exception внутри приложения.
  2. Процессор наконец обращает внимание на сигнал и несколько раз снижает и повышает сигнал на ножке INTR, давая понять что к приёму номера прерывания готов.
  3. Контроллер прерывания выводит на свою шину данных (ножки D0-D7) номер прерывания, который называется вектором прерывания. Во время загружки ОС настраивает PIC возвращать определённый номер когда происходит уведомление от определённого устройства (сигнал на ножку IRQ).

    Почему вектор, а не номер? У меня есть два объяснения. Вектором называется одномерный массив и данные здесь передаются по сути как массив нулей и единиц. Второе объяснение — вектор в математике обозначает направление (x, y, z, w). В процессоре вектор прерывания меняет направление исполнения программы.

  4. CPU считывает со своих ножек AD0-AD7 этот номер, вектор прерывания. Операционная система сохранила в регистре IDT (Interrupt Descriptior Table) указатель на массив функций, которые называются таблица векторов прерываний, где вектор прерывания используется как индекс в этом массиве. По нему CPU вызывает обработчик прерывания.

    На самом деле таблица векторов прерываний содержит больше данных чем просто указатель на функцию. В этом массиве хранятся данные такого типа. Для простоты будем думать, что в IDT хранятся указатели на функцию или в терминах C# делегаты.

    struct IDT_entry{
            unsigned short int offset_lowerbits;
            unsigned short int selector;
            unsigned char zero;
            unsigned char type_attr;
            unsigned short int offset_higherbits;
    };
     
    struct IDT_entry IDT[256];
    
  5. Обработчик клавиатуры вызывает команду процессора которая завершает обработку прерывания, о чем сообщает контроллеру прерываний подав напряжение на ножку INTA (Interrupt Acknowledged).

Обработчик прерывания от клавиатуры в самом простом коде будет выглядеть так. Он вызывает команду которая сигнализирует о завершении обработки прерывания, т.е. подаёт сигнал на ножку INTA.
void irq1_handler(void) {
          outb(0x20, 0x20); //EOI
}

Более подробно ознакомится с тем как настраивается таблица векторов прерываний можно на osdev.

Теперь мы знаем о том как произошло прерывание, но не знаем как обработчик прерываний считывает информацию о нажатой клавише. С программной точки зрения порт PS2 представляет собой два регистра, только обращение к ним происходит не по именам или адресам в памяти о по номеру порта ввода/вывода. Эти два однобайтовых регистра закреплены за портами 0x60 и 0x64, в первом (0x60) будет лежать скан-код клавиши. Второй порт используется для передачи статуса и комманд порту PS2 (не клавиатуре!). В наборе инструкций архитектуры x86 есть команда IN storeTo, fromPortNum, которая считывает значение из указанного I/O port в указанный регистр. Например IN AL, 0x60 сохранит данные с клавиатуры в регистр AL. Она может работать примерно так:

  1. В процессоре который мы рассматриваем есть ножки AD0-AD20, они могут использоваться для указания адреса так и данных. Это и шина данных и шина адреса. Помимо них есть ряд управляющих ножек, к примеру пин №28 (S2) значение которого укажет северному мосту откуда будет происходить чтение — из памяти или устройства ввода вывода. Команда IN выставляет сюда значение говорящее об I/O устройстве.
  2. На шину адреса CPU (какие-то из ножек AD0-AD20) выставляется последовательность 0110 0000, что и есть 0x60. Совместно с другими управляющими ножками CPU отправляет сообщение Северному мосту, оно направляется на Южный мост. Между чипами сообщение может передаваться по разным протоколам, где-то это последовательная шина, где-то параллельная. Южный мост приняв сообщение видит порт 0x60 и понимает что его надо направить в SuperIO чип, у того будет какое-то количество времени его обработать.
  3. Как мы уже говорили Super IO чип нужен для того чтобы скрыть в себе архаичный функционал старых устройств. По номеру 0x60 он понимает что это сообщение предназначено контроллеру PS2, который уже выставляет скан код на свою шину данных.
  4. Теперь скан код идёт обратно. От эмулятора Intel 8042, через внутреннюю схему чипа SuperIO, по шине LPC состоящей из трёх контактов в Южный мост, оттуда в Северный в виде расширенного сообщения. Т.е. к скан коду было добавлено чуть больше информации, к примеру откуда она.
  5. Северный мост уведомляет комбинацией сигналов CPU о прибытии данных с запрошенного порта и выставляет скан код на шину данных (какие-то 8 пинов из AD0-AD20).
  6. Микроархитектура CPU считывает эту последовательность высоких и низких сигналов с шины данных и и помещает её на транзисторы представляющие регистр AL. С этого момента программа может обрабатывать данные от клавиатуры.

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

Как вы теперь понимаете чтение с внешних устройств, даже таких как память RAM с т.зр. CPU достаточно медленное. Эту медлительность можно заметить написав программу которая печатает 10 000 строчек в файл построчно, вместо того чтобы скопить их в буфере и сохранить сразу. Жёсткий диск подключен к Южному мосту и внутри него так же есть контроллер управляющим непосредственным размещением данных.

Оперативная память подключается к CPU через шину и чтение с неё занимает некоторое время. Для ускорения работы CPU у него имеется кэш, т.е. область в которой расположены транзисторы представляющие данные которые скоро понадобятся или часто используются, их чтение происходит гораздо быстрее чем из платы RAM, которая общается с CPU через Северный мост. Оперативная память называется Dynamic Random Access Memory, потому как для представления данных в ней используются конденсаторы. Конденсатор это радиоэлемент который как аккумулятор держит некоторое время заряд пока полностью не разрядится. Только здесь разрядка происходит очень быстро. Поэтому конденсаторы надо перезаряжать, это происходит моментально, достаточно подать напряжение. Заряженный конденсатор — логическая 1, иначе 0. Для памяти кэша используется Static RAM, т.е. её не надо перезаряжать и поэтому она работает быстрее, но стоит дороже. Кэш делится на 3 уровня, которые последовательно проверяются в процессе поиска запрошенных данных, прежде чем процессор обратиться к RAM. На старых процессорах кэш первого уровня (L1) был частью CPU и работал с ним на одной частоте, когда как L2 и L3 кэши были внешними чипами. Сейчас они все находятся на одной микросхеме с процессором. Кэш L1 самый быстрый и самый маленький по объёму памяти, L2 имеет больше памяти но медленнее. L3 самый большой кэш и самый медленный, часто его называют shared cache, потому что он хранит данные для всех ядер CPU, в то время как L1 и L2 созданы для каждого отдельного ядра.

В следующей части поговорим как Windows принимает и обрабатывает полученные данные.

Let's block ads! (Why?)

Boeing закупает комплектующие для Starliner на предприятии в Воронеже


Источник: Boeing

Американская корпорация Boeing сообщила о том, что использует для своего космического корабля Starliner комплектующие, произведённые в России. Как указано в твиттере Boeing, компания приобретает силовые преобразователи напряжения на ЗАО «Орбита» в Воронеже. Оборудование позволяет Starliner получать электропитание с МКС во время стыковки со станцией.

«Это проверенное в полётах оборудование, которое уже в течение 20 лет используется на NASA Space Station, — сообщают в Boeing. — Преобразователь был уменьшен по массе и размеру в соответствии с потребностями Starliner и выбран для обеспечения надёжности его миссии».

Накануне, 21 февраля, глава «Роскосмоса» Дмитрий Рогозин рассказал, что частное воронежское предприятие поставляет комплектующие для Starliner, однако название предприятия он не уточнил, отметив при этом, что удивился, узнав о сотрудничестве американской и российской компаний.

«Я вам даже могу сказать, что в Воронеже у нас есть предприятие частное, которое работает на одну из этих фирм американских и делает агрегаты для их пилотируемых кораблей», — рассказал он во время выступления на 11-й международной конференции Российской ассоциации авиационных и космических страховщиков «Авиационное и космическое страхование в России».

Boeing CST-100 Starliner — пилотируемый космический транспортный корабль многоразового использования. Boeing разработала его по контракту с NASA в рамках Commercial Crew Program (программа NASA по развитию частных пилотируемых космических кораблей для доставки астронавтов на Международную космическую станцию). Starliner рассчитан на перевозку до 7 членов экипажа. Время автономной работы системы жизнедеятельности корабля составляет 60 часов.

20 декабря Starliner был запущен в космос, однако не смог выйти на орбиту вовремя, из-за чего спустя двое суток кораблю пришлось приземлиться в пустыне Нью-Мексико. На пресс-конференции после запуска специалисты разъяснили, что произошла ошибка программного обеспечения, в результате чего Starliner некорректно рассчитал время работы своих двигателей, потратив в итоге больше топлива, чем планировалось. Также во время возникновения ошибки корабль находился в слепой зоне — у него не было связи с центром управления полетом, из-за чего команда корабля не могла вовремя скорректировать ошибки.

Газета The Washington Post сообщала, что эксперты NASA, которые занимались расследованием неудачного запуска Starliner, отмечали, что «проблемы с программным обеспечением «могли бы привести к катастрофическим последствиям». После неудачного запуска эксперты NASA порекомендовали Boeing изменить процедуру проверки программного обеспечения.

В январе 2020 года компания Boeing сообщила, что NASA рассматривает возможность повторного беспилотного полета Starliner, для подготовки к которому корабль отправили во Флориду. На повторный полёт предусматривается $410 млн.

Let's block ads! (Why?)

Что нового в Android 11 для пользователей и разработчиков

На этой неделе внезапно выкатили превью-версию Android 11 для разработчиков. Google говорит «разработчики, вы в прошлом году хорошо нам нафидбечили, поэтому в этот раз мы даём вам превью раньше, чем когда-либо» (релиз намечен на третий квартал, то есть до него примерно полгода).

Из-за этого версия особенно сырая, в неё почти наверняка попали не все готовящиеся фичи (что-то привлекательное небось припасли для Google I/O), и часть вещей до релиза ещё могут откатить. Но всё равно же интересно разобраться, что нового!

Как водится, сайты вроде 9to5Google и Android Police тут же использовали превью-версию в хвост и в гриву, а в итоге выпустили кучу текстов: про каждое нововведение по отдельности. А мы продрались через эту кучу текстов и сделали для Хабра сводную подборку на русском — такую, чтобы была понятна и обычному пользователю Android, но с приписками конкретно для мобильных разработчиков.

Видеозапись экрана


Эта фича была ещё в бета-версиях Android 10, но тогда с ней были сложности и в релиз она не попала, а теперь в новой превью-версии снова появилась в доработанном виде. Так что в релиз Android 11, хочется верить, попадёт.

В принципе, её название всё объясняет. На Android есть сторонние приложения для видеозаписи всего происходящего на экране, но нативное решение не помешало бы.

Что с этого разработчикам: вероятно, в ситуации «пользователь жалуется на трудновоспроизводимый баг» станет проще запросить у пользователя видеозапись.


Bubbles


Эта фича была ещё в бета-версиях Android 10, но тогда… Да, тут история как с видеозаписью экрана: к релизу «десятки» довести фичу до ума не успели, и она переехала в следующую версию.

Это аналог фейсбучных Chat Heads: диалоги могут сворачиваться в «кружочки», остающиеся на экране поверх других приложений. Бабушка, зачем тебе бабблзы? Это чтобы было удобнее читать Хабр и при этом переписываться с тобой, внучка моя.

Но они не заработают магическим образом идеально во всех мессенджерах сразу: тут для разработчиков Android-приложений есть Bubbles API, и вопрос в том, насколько активно разработчики будут его использовать. Вероятно, Google старательно поддержит во всём своём бесконечном наборе гугломессенджеров, а про остальных пока вопрос.

Что с этого разработчикам: если у вас в приложении есть функция личных сообщений, разберитесь, как вам тут лучше действовать, документация здесь.


Scoped storage


Эта фича была ещё… ну, вы поняли, да? В Android 10 она осталась опциональной (разработчики приложений могли отказаться от этого), а вот теперь была доработана и приходит окончательно.

Суть scoped storage в том, что приложениям по умолчанию даётся доступ только к своей папке, и шариться по другим файлам они не смогут. Конечно, приложениям вроде файловых менеджеров нужен полный доступ, и для таких сделают исключение «All Files Access», но в целом ощущается сближение с iOS: ограничивать в возможностях во имя безопасности.

Что с этого разработчикам: Если в targetSdk вы собираетесь включать Android 11, то Google строго говорит «обновите своё приложение, чтобы работало со scoped storage», и даёт ссылку на более подробный текст.


One-time permission


И ещё об усилении приватности. Ранее, когда приложение запрашивало разрешение, были варианты «разрешить», «отказать» и «разрешить только при использовании приложения». Теперь для таких значимых разрешений, как доступ к камере, микрофону и геолокации, создан новый вариант: «разрешить только на один раз».

Звучит очень здраво: если в каком-то приложении хочешь использовать камеру один-единственный раз, чтобы сделать там аватарку, то разрешать этому приложению постоянный доступ к камере ни к чему.

Но при этом смотрите вот что: на официальном скриншоте с новым вариантом отсутствует прежняя опция «разрешить», которая просто давала бы доступ навсегда, в том числе в фоне.

Насколько понимаем, это потому что одновременно Google ещё и меняет правила: теперь доступ к геолокации в фоне смогут запрашивать только те, кто обосновал Гуглу, почему это им правда нужно. Ну, как раньше с доступом к звонкам сделали.

Что с этого разработчикам: тут вам виднее, запрашиваете ли вы разрешение и сказываются ли на вас перемены. Есть ещё всякие нюансы вроде «если в приложении есть WebView, у него доступ может отличаться», поэтому изучите официальный текст.


Индикатор частоты обновления экрана


Тут совсем мелкая штука, но за ней ощущается целая история.

Экраны с высокой частотой обновления сейчас в тренде: например, у OnePlus 7T экран на 90 Гц, у Samsung S20 и вовсе на 120 Гц. Это даёт невиданную плавность при скроллинге — казалось бы, прекрасно. Но есть проблема: частое обновление экрана активнее расходует энергию.

Возникла идея «пусть экран не всегда работает на полную катушку, ведь если играет видео с 24 FPS, бессмысленно обновлять его чаще». Звучит здраво. Но в итоге, например, покупатели Pixel 4 заметили, что они купили телефон с 90 Гц, а он переключается на 60 Гц когда ему вздумается (в том числе когда этого не хотелось бы). И было сложно понять, когда экран вообще делает то, за что ты заплатил. А теперь в нативных настройках разработчика можно включить индикатор.

Что с этого разработчикам: если вы не могли понять «это Гугл режет частоту обновления экрана или это моё приложение тормозит», будет чуть проще.


API для работы с 5G


С 5G-покрытием всё по-прежнему печально даже в США, не говоря уже о мире в целом. И рыночная доля 5G-смартфонов тоже скромная. Но, наверное, где-то в 5G-зоне есть обладатели 5G-смартфонов, и Google о них заботится. Порадуемся за этих троих человек.

В общем, новые API «bandwith estimator» и «dynamic meteredness» призваны помочь мобильным приложениям лучше понимать, какая у пользователя пропускная способность и лимитирован ли его трафик, чтобы отправлять ему данные в оптимальном качестве.

Что с этого разработчикам: на данный момент и в российских реалиях — почти ничего, но если ваша прокрастинация шепчет «давай вместо пяти горящих задач займёмся чем-то совершенно необязательным», то обратите внимание.


Мелочи жизни


То, что нет смысла расписывать подробно:
  • Тёмную тему можно включать по расписанию
  • В меню Share можно закрепить конкретные приложения, в которые обычно шарите
  • «Scrolling screenshots»: нативные скриншоты, захватывающие не только текущий экран, а всю страницу до конца
  • Улучшение поддержки экранов, в которых камера сделана круглым вырезом, и тому подобного
  • В панели уведомлений всё мессенджинговое выводится наверху единым блоком «conversations»
  • Экран настроек «Do Not Disturb» переработан
  • Новый Bluetooth-стек «Gabeldorsche» (что бы это ни значило)
  • «Режим самолёта» больше не будет отключать Bluetooth (чтобы пользоваться в самолётах беспроводными наушниками)
  • Управление медиа в панели уведомлений переезжает в верхнюю строку к иконкам настроек
  • В управлении жестами Project Soli — новый жест «пауза»
  • Ну и ещё с некоторыми областями поработали (NNAPI, биометрия и т.д.), пересказывать все нет смысла, поэтому сошлёмся на официальный пост.

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

А если вас этот пост заинтересовал как мобильного разработчика, то напоследок обратим ваше внимание: 23-24 июня в Петербурге мы проведём конференцию Mobius, и там будет много актуального для вас.

Let's block ads! (Why?)

Магистерская программа JetBrains на базе Университете ИТМО: интервью со студентами

Совсем скоро выпускникам бакалавриата предстоит сделать выбор – остановиться на достигнутом или продолжить обучение. Для тех, кто выберет второй вариант, мы хотим напомнить о нашей магистерской программе «Разработка программного обеспечения / Software Engineering» на базе Университета ИТМО.

Ранее мы рассказывали о том, как у нас устроена учеба. А в этот раз мы задали несколько вопросов нашим студентам первого года обучения: попросили рассказать немного о себе, поделиться впечатлениями о поступлении и их первом семестре на программе. Знакомьтесь!
Елена, Павел, Александр и Сергей – студенты первого курса магистратуры. Ребята недавно справились с первой сессией, чуть-чуть отдохнули на каникулах и снова готовы взяться за учебу.

Из каких вы городов?
Елена Картышева: Родной город Сосновый Бор (80 км от Питера), год назад переехала в Санкт-Петербург.

Сергей Лучко, Александр Лучко: Мы из маленького города Луга в Ленинградской области.

Павел Громов: Я родом из Хабаровска (Дальний Восток).
Елена Картышева

Где вы учились до поступления в магистратуру?
Елена: Закончила кафедру статистического моделирования на математико-механическом факультете СПбГУ и Институт биоинформатики.

Сергей, Александр: Закончили СПбГУ, факультет прикладной математики и процессов управления по направлению «Прикладная математика», а также Computer Science Center по направлению Software Engineering.

Павел: Бакалавриат окончил в Дальневосточном государственном университете путей сообщения (ДВГУПС) по направлению «Информатика и вычислительная техника».

Почему вы выбрали именно эту программу?
Елена: Поскольку я училась в Институте биоинформатики, то знакома с ребятами, которые учились на этой магистерской программе, и часто про нее слышала. В будущем мне хочется заниматься машинным обучением и биоинформатикой, и в последний год учебы в бакалавриате я стала остро ощущать необходимость навыков программирования. Поэтому я решила поступить сюда.

Александр: После того как окончил университет, я пошел работать. Фирма, которая меня приняла в свои ряды, была довольно престижной. Развитие в плане индустриального программирования казалось не очень сложным, потому как это в основном сводится к хорошей команде и годам выдержки. Время шло, и казалось, что мне чего-то не хватает, что я вечно что-то упускаю.

Александр Лучко

Павел: Уже на третьем курсе учеба стала скучной, и я начал искать дополнительные курсы, участвовать в различных мероприятиях, хакатонах и искать работу в сфере программирования. Понял, что для карьерного роста необходимо поступать в престижную магистратуру, где действительно будут обучать, а не просто «пришел – получил зачет». Рассматривал различные программы, и никакие особо не воодушевляли. Узнал, что в ИТМО существует магистратура от JetBrains, посмотрел учебный план и понял, что это то, что я хочу.

Впечатления от вступительных испытаний: легко или сложно было поступить?
Елена: По своим ощущениям, на очном экзамене я ответила почти на всю математику и не очень хорошо справилась с вопросами на программирование. Задачу из билета так и не смогла решить на месте, но обсуждала с экзаменаторами способы ее решения. На мой взгляд, трех-четырех дней подготовки по вечерам вполне достаточно.

Сергей: Подготовка необходима: на собеседовании задают вопросы и по билетам, и по смежным темам. Смотрят на мотивацию и на опыт работы.

Павел: Вступительный экзамен был не слишком легким и не слишком сложным. Пришел, вытянул билет, час готовился, пошел отвечать. Спрашивали не только по билету, который вытянул, но и дополнительно по всем остальным, выдали задачи. После экзамена думал, что плохо сдал… но одним из важнейших критериев поступления была мотивация. А желание поступить именно на эту программу было огромное! У меня даже был план: либо поступаю сейчас, либо жду год и готовлюсь получше.

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


Сергей: Я ожидал, что будет интенсивно, но оказалось просто страшно интенсивно. Жизнь становится выполнением домашних заданий и периодическим сном по 5 часов, ни на что другое времени не остается. У меня не было времени даже заехать на СТО, чтобы поменять масло в машине! Это тяжело, но и прекрасно одновременно. Ты чувствуешь, что жизнь не проходит зря. Ты учишься.

Сергей Лучко

Павел: После поступления кураторы сразу предупредили, что нагрузка будет высокая, но я совершенно не ожидал, что настолько. В первом семестре я каждый день проводил в БЦ «Таймс», так как там и учился, и делал домашки. Свободного времени совершенно не оставалось, но это того стоило. Количество знаний, которые я получил за первые полгода было в разы больше, чем за 4 года бакалавриата.

Что вам нравится в программе и организации обучения?
Елена: Программа оказалась невероятно интересная. Честно, даже не представляла, что программирование может быть настолько увлекательным! Почти не было предметов, которые были бесполезными. Отдельно стоит отметить преподавателей, которые всегда готовы отвечать на вопросы и как-то дополнительно помогать. Радует, что почти любую проблему можно решить через кураторов, да и вообще приятно учиться в БЦ «Таймс» с печеньками и кофе.

Студенческий кофе-поинт

Сергей: Подается действительно нужный материал. Лекции читают профессионалы, многие преподаватели — лучшие специалисты в своей области. Практически все обучение проходит в офисе JetBrains. Ну и конечно, здорово проходить практику в классных компаниях.

Александр: Эта программа — отличный образовательный контент, который просто хочется изучить. Думаю, большинство студентов здесь именно из-за него, а не из-за диплома магистратуры.

Павел: В данной магистратуре дают все для того, чтобы студент мог просто учиться.
Начиная от кухни (где всегда можно выпить чай/кофе и взять печеньки), заканчивая увлекательными лекциями, на которых видно, что преподавателям действительно нравится процесс обучения. Раз в семестр необходимо выбрать НИР (научно-исследовательскую работу), благодаря чему есть возможность пройти практику в крупных компаниях (например, JetBrains, JetBrains Research, Яндекс, VK и другие). А ещё хочу отметить, что иногородним студентам оплачивают общежитие:) В общем, главное от студента – это желание учиться.

А есть негативные моменты?
Елена: Часто домашнее задание проверяется не вовремя, это вызывает панику на зачетной неделе. Иногда не хватает времени спокойно сесть и разобраться, что немного грустно.

Сергей: Здесь все вокруг тебя говорит, что это игра на выживание. Думаю, во всех топовых магистратурах дела обстоят примерно также.

Павел: Прямо негативного выделить не могу. Только то, что нагрузка высокая, но лично у меня это из-за недостаточного бэкграунда.

Павел Громов

Что ты можешь посоветовать абитуриентам программы?
Елена: Я бы посоветовала заранее пройти курс по Haskell от Computer Science Center на Stepik.org; почитать книгу «Алгоритмы» С. Дасгупта, Х. Пападимитриу, У. Вазирани; посмотреть лекции по C++ и поучить Bash (и поставить Linux) – это сильно облегчит жизнь.

Совет для поступивших: делайте домашние задания к мягкому дедлайну, чтобы была возможность их исправить (порог получения зачета высокий, так что надо делать все по максимуму). И не бойтесь задавать глупые вопросы преподавателям! Рассказывайте о своих проблемах – они адекватно реагируют и всегда стараются помочь.

И конечно, перед поступлением обязательно ответьте для себя на вопрос: готовы ли вы ближайшие два года постоянно и интенсивно учиться?.. Это правда очень тяжело и физически, и морально.

Сергей: Мне кажется, имеет смысл не сразу идти на эту программу, а поработать, получить практический опыт программирования. Хотя бы один год просто покодить где-нибудь. Без этого учиться тяжело, особенно если вы до этого учились по другой специальности. Поработав, вы также сможете смотреть со стороны практического опыта на все, что вам преподают: например, если вам будут рассказывать про CI/СD на лекции, это не будут просто голые термины.

Александр: Готовиться, что будет полный хардкор! Сон сильно сократится, однако будет много интересного и полезного.

Павел: Абитуриентам я бы посоветовал усерднее готовиться к экзаменам и подтягивать знания по предметам, которые будут в первом семестре.

Выпускной 2019 года

Чем вы планируете заниматься после окончания учебы?
Елена: Мне бы хотелось заниматься машинным обучением и статистикой в области биоинформатики.

Сергей: Как и все ребята, думаю для начала поработать, еще набраться опыта. Надеюсь попасть в хорошую компанию и заниматься интересными задачами. Если заглядывать еще дальше, то можно заняться и своим делом в индустрии или на периферии.

Александр: Снова пойду работать. Мне просто интересно узнавать новое. Думаю, попасть в какую-то неплохую фирму и хорошо зарабатывать можно и без этой магистратуры. Но на подобных программах у студентов, кроме самих знаний, очень сильно повышается уровень IT-культуры.

Павел: Еще не решил что буду делать, но знаю точно, что это будет связано с программированием.

Благодарим ребят за честные ответы на вопросы!

Студенты магистратуры на новогоднем празднике

Статистика набора 2019


Всего на нашу программу в 2019 году была подана 261 заявка, то есть конкурс был примерно 6,5 человек на место. 145 абитуриентов справились с первым этапом отбора (онлайн-тестом) и были приглашены на очную часть вступительного испытания. Средний балл дипломов у студентов программы равен 4,6.

География студентов впечатляет. К нам поступили ребята, окончившие бакалавриаты в Северном (Арктическом) федеральном университете имени М.В. Ломоносова (Архангельск), Южном федеральном университете (Ростов-на-Дону), Балтийском федеральном университете имени Иммануила Канта (Калининград) и даже в Дальневосточном федеральном университете (Владивосток).

Специализации у студентов тоже разные: нефтегазовое дело, экономика, физика, искусства и гуманитарные науки, менеджмент и, конечно, различные направления математики и программирования.

Присоединяйтесь!


Подробности о поступлении на магистерскую программу «Разработка программного обеспечения / Software Engineering» можно прочитать на сайте программы в разделе «Поступление»: mse.itmo.ru/enrollment Подать заявление можно уже сейчас –– чем раньше вы это сделаете, тем раньше мы узнаем о вас и свяжемся.

Рекомендуем вступить в телеграм-чат программы: tlgg.ru/mse_itmo. Там вы сможете задать вопрос о поступлении, обучении на программе, поговорить с организаторами и студентами.

Если вам удобнее общаться по почте, то связаться с нами можно, написав на mse@corp.itmo.ru.

Встретиться с кураторами программы вы сможете на дне открытых дверей, который пройдёт в середине апреля. Точную дату и начало регистрации мы объявим чуть позже — следите за новостями на сайте и телеграм-чате.

Наша команда желает всем абитуриентам сделать правильный выбор и удачно пройти вступительные испытания!

Let's block ads! (Why?)

В США появится лоукост-биржа Members Exchange

По сообщению The Wall Street Journal, летом 2020 года в США заработает новая биржа Members Exchange. Ее главная идея состоит в том, чтобы снизить комиссии за совершение сделок до минимума, привлечь таким образом инвесторов и составить конкуренцию NASDAQ и Нью-Йоркской фондовой бирже.

Разбираемся с тем, что такое Members Exchange, и кому нужен этот проект.

Что такое «биржа-лоукостер»?


Проект Members Exchange был запущен в 2019 году девятью влиятельными финансовыми компаниями, банками и брокерскими фирмами, среди которых Bank of America Merrill Lynch, UBS, Morgan Stanley, Citadel Securities и другие.

Главная цель проекта – создание биржи, с прозрачными для инвесторов процессами и низкими ценами. Своими основными конкурентами проект видит крупнейшие американские биржи NASDAQ и NYSE.

План по развитию биржи MEMX

Зачем нужна еще одна биржа


По данным WSJ, крупные финансовые компании были недовольны комиссиями биржевых площадок, а также стоимостью их услуг – например, доступа к рыночным данным.

MEMX планирует снизить комиссии до минимального уровня и серьезно уменьшить цены на услуги по доступу к данным. В теории, это должно привести к снижению цен и другими биржами.

В настоящий момент в США существует лишь одна биржа, которой не владеют три крупнейших игрока этого рынка – компании International Exchange, NASDAQ или Cboe Global Markets (Чикагская биржа) – это площадка IEX (мы писали о ней здесь).

Купить акции различных американских компаний из России можно без необходимости открывать отдельный брокерский счет у зарубежных брокеров. С помощью рынка иностранных ценных бумаг Санкт-Петербургской биржи инвесторы могут покупать 500 ликвидных акций ведущих компаний всех секторов мировой экономики, в том числе все акции индекса S&P 500.

Чтобы совершать операции с такими акциями вам понадобится брокерский счет – открыть его можно онлайн.

Читайте обзоры, аналитику рынков и инвестидеи в Telegram-канале ITI Capital

Let's block ads! (Why?)

Новый британский погодный суперкомпьютер: что он сможет и как это изменит нашу жизнь

Комментарий профессионального метеоролога на тему горячей новости

На днях стало известно, что в полку погодных суперкомпьютеров ожидается революционное пополнение: британская метеослужба планирует в 2022 году ввести в строй новый комплекс стоимостью в 1,56 млрд долларов (это аппаратная часть + расходы на обслуживание на 10 лет). Для тех, кто читает меня впервые, поясню: все современные прогнозы погоды, которые доступны как в вашем смартфоне, так и вообще для важных задач, рассчитываются с помощью колоссальных вычислительных мощностей, а некоторые новые процессоры в процессе разработки тестируются на метеорологических задачах, как на наиболее ресурсоёмких в принципе.
Это станет, во-первых, самым крупным вложением в службу MetOffice за всё время ее существования (в 1854 году её основал легендарный мореплаватель Роберт Фицрой, тот самый, что катал Чарльза Дарвина вокруг света на «Бигле»), а во-вторых сделает MetOffice обладателем мощнейшего погодного суперкомпьютера в мире.

В принципе, и сейчас дела на Британских островах идут неплохо. Вычислительная мощность нынешнего суперкомпьютера Met Office, сданного в эксплуатацию в декабре 2016 года, оценивается в — 7 петафлопс (это 27ое место в топ 500 мощнейших суперкомпьютеров мира). Для сравнения – главный суперкомпьютер российской гидрометслужбы в несколько раз медленнее современного британского — он выдает лишь 1.3 петафлопс.

Предполагаемый ко вводу в 2022 году в Великобритании новый вычислительный комплекс будет в шесть раз производительнее текущего. Вдобавок к концу 20х годов его мощность еще дополнительно возрастет втрое.

Так что сможет делать данный гигант? Схематично все плюсы изображены на оригинальной инфографике ниже, давайте же оценим наиболее заметные.

image

Во-первых, конечно же, улучшится временное разрешение прогнозов погоды. Если сейчас прогноз Metoffice делается на каждый час (ранее «шаг прогноза» был три часа), то с новым компьютером планируется еще чаще выпускать важные обновления (сейчас это делается вручную синоптиками). Это поможет улучшить качество прогноза опасных явлений погоды, которые несут с собой активные циклонические вихри- например циклон Деннис итд.

Но более важным будет, безусловно, улучшение пространственного разрешения прогноза (его часто называют «прогноз для каждой улицы») – речь идет о прогнозе скорости ветра, температуры и осадков. Этого, практически впервые в истории планируется достигнуть с помощью так называемой «бесшовной модели атмосферы» — нового слова в предсказательной метеорологии.

Сегодня по всему миру для разных потребностей метеорологи используют различные типы моделей. Для слежения за перемещением циклонов и антициклонов – «глобальные», которые моделируют весь земной шар. На них видны только крупные объекты. Для прогноза бризов, торнадо, осадков над озерами и различными районами мегаполисов (Лондон, Москва, Нью-Йорк) – «региональные» — они дают прогноз с точностью до километров. Для прогноза порывов ветра на улицах и у углов зданий – «микроклиматические и гиперлокальные» — они позволяют видеть «картинку» с точностью до метров (LES).

Взаимоотношения этих типов моделей между собой видны вот тут:

Так вот «бесшовные» модели будут объединять в себе все вышеприведенные типы моделей, что позволит ликвидировать ошибки, возникающие при «присоединении моделей друг к другу» — как делается сейчас. То есть одна бесшовная модель сможет и следить за циклонами и их фронтами, и за порывами ветра в городской среде.

И, похоже, новый британский суперкомпьютер как раз сможет осилить необходимую для нового типа моделей скорость вычислений. Пока еще в онлайн-режиме для большинства суперкомпьютеров это остается лишь мечтой.

Ссылки:

www.ecmwf.int/sites/default/files/elibrary/2015/13370-seamless-prediction-weather-and-climate-opportunity-and-challenge-physical-parameterizations.pdf.

www.metoffice.gov.uk/binaries/content/gallery/metofficegovuk/images/about-us/what-we-do/01202-supercomputer-benefits-tiles-v8-01_web.jpg

Let's block ads! (Why?)

Яндекс.Диск запретил использование open source утилиты rclone

Предыстория

Привет, Хабр!

К написанию этого поста привела довольно странная ошибка, которую вчера вечером на ноутбуке с Linux (да, я их тех странных людей, кто использует GNU/Linux на ноутбуке) я получил вместо содержимого своего Яндекс.Диска:

$ ls -l /mnt/yadisk
ls: reading directory '.': Input/output error
total 0

Первая мысль: сеть отвалилась, ничего страшного. Но при попытке перемонтировать директорию появилась новая ошибка:

$ sudo umount /mnt/yadisk && rclone mount --timeout 30m ya:/ /mnt/yadisk
2020/02/21 20:54:26 ERROR : /: Dir.Stat error: [401 - UnauthorizedError] Unauthorized (Не авторизован.)

Это было уже странно. Токен протух? Не беда, авторизую заново!

$ rclone config
... (опущу тут весь вывод терминала) ..

После перехода на веб и попытки авторизоваться там получаю уже более конкретное сообщение:


Это приложение заблокировано за вредоносные действия, поэтому доступ не разрешён (unauthorized_client).

Первая мысль: чтоооо?


О rclone

Немного справки:
rclone — достаточно известная открытая утилита для работы с облачными хранилищами (неоднократно раз, два, три упоминалась на Хабре). Автор называет её "rsync for cloud storage", что довольно ёмко. Но этим функциональность не ограничивается: помимо функций rsync она ещё может монтировать диски, выполнять функцию ncdu (что, кстати, мне позволило однажды обнаружить неправильный подсчёт свободного места на Яндекс.Диске и успешно решить эту проблему через техподдержку), а также кучу всего ещё. Утилита поддерживает как десятки облачных хранилищ, так и более традиционные протоколы — WebDAV, FTP, rsync и другие. Для доступа к Яндес.Диску утилита использует официальный публичный API Диска.

Утилита поистине уникальна и (по моему мнению) представляет из себя тот класс программ, которые ставишь один раз, а пользу они приносят постоянно.


Что произошло?

Обратившись к Google я сразу понял, что не одинок. Есть баг в официальном гитхабе, а также обсуждение на официальном форуме.
Краткое содержание: client id утилиты заблокирован Яндекс.Диском, из-за чего авторизоваться больше нельзя. Можно попробовать поменять client id, но не факт, что та же участь не постигнет и новый id.
Ответ поддержки опубликован на том же форуме:


Дело в том, что программа Rclone позволяет использовать Яндекс.Диск в качестве инфраструктурного компонента, а Яндекс.Диск — это персональный сервис, который не рассчитан на решение таких задач. Поэтому мы не поддерживаем работу связки Rclone — Яндекс.Диск.

"Инфраструктурный компонент"? Ну раз нельзя, то наверное это описано в правилах подумал я и ничего такого в правилах самого диска или его публичного API я не нашёл.

Ладно, напишем в поддержку.
Первый ответ прилетает 1 в 1 тот, что опубликован выше (про "инфраструктурный компонент"). Окей, мы не гордые.


Дальнейшая переписка с поддержкой

Я:


А подскажите пожалуйста, какое правило сервиса это нарушает?
Я изучил условия использования Яндекс диска и никаких запретов на использование "в качестве инфраструктурного компонента" там нет.

Более того, я не могу использовать утилиту с личного ноутбука для работы с диском. Это уже совсем никак под " инфраструктурный компонент" не подпадает. Штатный клиент диска ужасен, уж простите.

Поддержка:


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

Если вас по каким-то причинам не устраивает наша программа, пожалуйста, озвучьте их. Традиционно мы прислушиваемся к мнению пользователей при выпуске обновлений продукта.

Вы можете ознакомиться с документами, регулирующими использование сервиса, в частности «Пользовательским соглашением сервисов Яндекса», опубликованным по адресу: https://yandex.ru/legal/rules/, а также «Условиями использования сервиса "Яндекс.Диск"»: https://yandex.ru/legal/disk_termsofuse

Для решения задач, которые требуют больших мощностей, мы рекомендуем использовать Яндекс.Облако. Это другой облачный сервис Яндекса, который создан для решения задач бизнеса. Узнать больше о Яндекс.Облаке можно тут: https://cloud.yandex.ru

Я:


Вы не ответили на мой вопрос. Подскажите пожалуйста, какой пункт правил сервиса нарушает использование rclone? Я внимательно изучил правила по вашей ссылке (ещё до того, как вы из прислали).

Совсем недавно вы писали пост, что Яндекс всячески поддерживает OpenSource и без OpenSource Яндекса и современного интернета бы не было (https://habr.com/ru/post/480090/).

А теперь вы блокируете OpenSource утилиту по надуманной причине.

Кстати, программа не осуществляет "загрузку резервных копий в автоматическом режиме", программа предназначена для работы с облачными хранилищами, в том числе для синхронизации данных между компьютером и Яндекс.Диском. И этой мой основной use-case утилиты, который теперь недоступен.

Поддержка:


Согласно п. 3.1. «Пользовательского соглашения» Яндекс вправе устанавливать ограничения в использовании сервисов для всех Пользователей, либо для отдельных категорий Пользователей (в зависимости от места пребывания Пользователя, языка, на котором предоставляется сервис и т.д.), в том числе: наличие/отсутствие отдельных функций сервиса, срок хранения почтовых сообщений в сервисе Яндекс.Почта, любого другого контента, максимальное количество сообщений, которые могут быть отправлены или получены одним зарегистрированным пользователем, максимальный размер почтового сообщения или дискового пространства, максимальное количество обращений к сервису за указанный период времени, максимальный срок хранения контента, специальные параметры загружаемого контента и т.д. Яндекс может запретить автоматическое обращение к своим сервисам, а также прекратить прием любой информации, сгенерированной автоматически (например, почтового спама).

Пользователь также предупреждается об этом в п. 4.6. «Условий использования Яндекс.Диска».

Обратите внимание, что «Условия использования Яндекс.Диска» также устанавливают для Пользователя обязанность действовать добросовестно и воздержаться от злоупотребления функциями Сервиса. Пользователь в том числе обязуется воздержаться от организации массового файлообмена с использованием функций Сервиса.

Яндекс имеет право применять правила, лимиты и ограничения, направленные на предотвращение, ограничение и пресечение массового файлообмена по правилам п. 4.5. настоящих «Условий».

Последний ответ привнёс ясности. Особенно, первые два абзаца со ссылкой на п. 3.1. «Пользовательского соглашения» Яндекс и п. 4.6. «Условий использования Яндекс.Диска». Текст 4.6 тут не приведён, приведу:


4.6. Яндекс оставляет за собой право устанавливать любые правила, лимиты и ограничения (технические, юридические, организационные или иные) на использование Сервиса, и может менять их по собственному усмотрению, без предварительного уведомления Пользователя. В случаях, когда это не запрещено законодательством, указанные правила, лимиты и ограничения могут быть различными для различных категорий Пользователей.
Итого уже принёс понимание что произошло: заблокировать могут что угодно и какого угодно просто по желанию и без какой-либо причины.

Выводы?

Совсем недавно уважаемый bobuk в своём посте здесь на Хабре писал, что Яндекс считает, что:


Мы в Яндексе считаем, что современный интернет невозможен без культуры open source и людей, которые инвестируют свое время в разработку программ с открытым кодом.

А на практике получается совсем иначе. Отличную утилиту блокируют за что-то, что не запрещено правилами сервиса. За то, что утилита позволяет использовать открытый публичный API Диска по прямому назначению — загружать файлы. Блокируют не за нарушение правил сервиса, а потому что могут.
Вдвойне странно то, что заблокированы не конкретные нарушители правил (тоже непонятно каких, в правилах использование диска для резервных копий нигде не запрещено). Заблокирован инструмент, функция осуществления резервного копирования в котором лишь одна из многих.

Что такое инфраструктурный компонент и почему их нельзя использовать с диском тоже не понятно. Даже браузер может быть использован как "инфраструктурный компонент", не стоит ли запретить пользоваться диском в браузере?


Что делать?

Пока использовать свой client id и жить дальше. Но, судя по ответу техподдержки, можно ждать продолжения охоты на ведьм и блокировки также других client id, user-agent rclone или, даже, какие-то эвристические способы заблокировать утилиту.

P.S. Я искренне надеюсь, что имела места простая ошибка или недопонимание. В Яндексе работают отличные специалисты (много с кем я знаком лично) и среди них, уверен, есть пользователи rclone.

Let's block ads! (Why?)

Неотъемлемые помощники в деле разведки наиболее эффективной в мире спецслужбы (часть 3)

Позиции историков при оценке деятельности КГБ делятся на те что за и те что против. Собранные материалы и факты от анонимных источников или из воспоминаний ветеранов спецслужб можно поддать сомнениям, ведь человеческий фактор и субъективные суждения никто не отменял. Даже рассказ о погоде прошлым летом из уст двух людей будет отличаться, что уж говорить о суждениях в сторону прошлых событий под грифом секретно. Потому цель статьи не дать оценку спецслужбам, а рассмотреть технический потенциал КГБ в деле «фотонаправления». Фотоработы в разведке занимали и занимают особое место. В 14 отделе ПГУ шла активная подготовка офицеров направления специальной фотографии, они получили прозвище «фотики». Стажеры, выполняя простейшие поручения — от изучения правил портретной фотосъемки до осваивания сложных импортных моделей фотоаппаратов -, мечтали о карьерном росте и фразе: «а ваш сотрудник (называлась фамилия) — это фотограф от бога».
Офицеры фотонаправления были коллективом интеллектуалов, кастой специалистов, особо ценимой в ПГУ. Деятельность офицера ОТ (оперативно-технического управления) за границей была во многом связана с использованием самой разнообразной фототехники, от фотокопировальных установок и фотокамер для скрытой (незаметной) съемки людей до миниатюрных агентурных фотокамер в авторучках, зажигалках и даже в губной помаде. Все эти разные фотосистемы и камеры требовали особых приемов обработки фотопленки, специальных навыков печати фотоснимков часто в большом количестве, добиваясь читаемости каждого фотоклише. И все это надо были грамотно и без ошибок выполнять сотруднику ОТ резидентуры, не забывая о других важных направлениях своей работы.

В послевоенные годы все сотрудники советской разведки должны были владеть мастерством микрофотографии: уметь изготовить микроточку, и надежно ее спрятать в обычный предмет. Экзаменом на готовность было задание обнаружить спрятанную микроточку, извлечь, проявить, высушить и прочитать.

Немного о микроточке. Микроточки или микродоты позволяли ужать большой объем информации в миниатюрный микрофильм. Технологии микроточек уменьшали изображения в сотни раз. Это была часть стандартной пленки, на которой вместе с обычными кадрами размещалось изображение, которое невозможно было узреть невооруженным глазом без специальной увеличительной аппаратуры. Такая микроточка вырезалась и наклеивалась, например, в тексте книги вместо точки (в конце предложения), ее расположение заранее оговаривалось между агентами.

Миниатюрная скрытая камера наблюдения Заход


Заход — миниатюрная скрытая камера наблюдения, изготовленная на Красногорском механическом заводе (СССР). Как небольшой оптико-механический завод он начал свою работу еще в 1929 году, здесь занимались выпуском микроскопов и оптических стекол для медицинских учреждений. Позже был учрежден специальный цех по изготовлению фотоаппаратуры и оптических систем для потребностей спецслужб. Камера Заход была выпущена в 1989 году, ее можно считать преемницей камер Ф-21 Аякс и Ф-27 Неоцит, в основном использовалась советским разведывательным агентством КГБ и находилась в производстве по крайней мере до 1992 года.

Габариты автоматизированного фотоаппарата Заход составляли 96 x 65 x 29 мм (с объективом), вес — не более 230 грамм, камера была примерно такого же размера, как и Ф-27 Неоцит. Фотоаппарат предназначался для фотографирования с дистанции от 3 до 7 метров на неперфорированную фотопленку типа ЗП-80, шириной 16 мм и толщиной 0,08 -0,1 мм. Автоматическая установка экспозиции давала возможность получать качественные негативы в самых разных условиях фотографирования.

Заход был разработан специально для ведения фотонаблюдения, слежки. Его можно было незаметно спрятать в различных предметах, например, внутри сумки, в салоне автомобиля или в предмете мебели, за пуговицей пальто или приспособить на теле оперативника. По сути, для Захода применялись те же виды маскировки, что и для его предшественников — старой механической камеры Ф-21 Аякс и электронной Ф-27 Неоцит. Чтобы скрыть наиболее «бросающуюся в глаза» часть камеры — объектив, использовалась специальная насадка с раздвигающимися шторками, она установливалась на угловом кронштейне. Во время фотосъемки, нажатием большой коричневой кнопки на пульте дистанционного управления, на камере сначала открывались шторки затвора, делался снимок, и отверстие снова закрывалось. Все это происходило очень быстро «без шума и пыли», и заметить на практике этот процесс было просто невозможно.

Фотокамера хранилась в футляре на молнии из кожзаменителя. Весь комплект был размещен в сером деревянном ящике размером 28 х 20 х 5,5 см. Фотокамера и ящик маркировались пятизначным номером: первые две цифры обозначали год выпуска, следующие три — порядковый номер.

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

Основные части фотоаппарата Заход:

  • фотокамера
  • сменный объектив
  • пульт выносной с дистанционным управлением
  • блок контроля питания
  • кнопка управления
  • жгут для зарядного устройства
  • серьга
  • насадки

Камера была оснащена двумя объективами: штатный объектив 2,8/25 мм с автоматическим управлением экспозицией TTL-экспонометром, и сменный объектив.

TTL-экспонометр (англ. Through the lens, TTL: «через объектив») — разновидность встроенного экспонометра, измеряющего яркость снимаемой сцены непосредственно через съемочный объектив фотоаппарата или кинокамеры. В советской литературе по фотографии некоторое время использовалось понятие «внутреннее светоизмерение» и соответствующая аббревиатура «ВС», например в названии фотоаппарата «Зенит-15 ВС». Однако, в дальнейшем это обозначение было вытеснено международным термином TTL.

Штатный объектив состоял из 4 компонентов, каждый из которых был закреплен в своей оправе:
  • положительный мениск
  • склеенный положительный мениск
  • двояковогнутая линза
  • двояковпуклая линза

На передней панели камеры — отверстие с резьбой M 13х0,5, использовалось для крепления объективов. Слева на боковой панели камеры — встроенный кабель длиной приблизительно в 20 см с 14-контактным сверхминиатюрным штекером для подключения к различным устройствам управления. В левой части корпуса располагался счетчик кадров.

Камера запитывалась от никель-кадмиевых аккумуляторов 3 В и 5 В, которые находились внутри обоих пультов дистанционного управления. Аккумуляторы можно было заряжать, подключив зарядный кабель к внешнему источнику питания (PSU).

Выше на изображении комплект запасных кассет. Кассета предназначалась для хранения и транспортировки фотопленки длиной 1,2 метра (не менее 30 кадров). Состояла она из трех разъемных узлов: корпуса, крышки и приемной катушки.

В комплект входили 3 кассеты, ведь процесс фотонаблюдения нельзя было прервать, а потому агентов необходимо было обеспечить достаточным запасом пленки. Одна кассета устанавливалась внутри фотокамеры, а две другие запасные хранились в деревянном ящике. Каждая такая запаска с пленкой хранилась в небольшом чехле из кожзаменителя и с легкостью помещалась в кармане оперативника.

Пульт дистанционного управления с фиксированным кабелем подключался к камере, слева на нем — переключатель режимов ВКЛ и ВЫКЛ. Большая коричневая кнопка — кнопка спуска затвора. При помощи двух переключателей справа (обе клавиши перемещались вместе) можно было выбрать между автоматической и фиксированной 1/30 сек. экспозициями.

Кроме стандартного пульта управления был разработан еще пульт с расширенным набором функций. В нем переключатель ВКЛ/ВЫКЛ был перемещен на правую боковую панель. Крайний левый переключатель использовался для выбора режима работы фотокамеры ОДН/НПР (одиночный/непрерывный).

Помимо большой коричневой кнопки на устройстве, затвором камеры можно было управлять при помощи дополнительной кнопки, подключив ее к 2-контактному разъему (располагался рядом с кабельным вводом).

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

Блок контроля питания предназначался для контроля напряжения питания у батарей аккумуляторов выносных пультов фотоаппаратов. Такой блок состоял из корпуса, двух пластмассовых крышек и электронного блока. Внизу — два трехштырьковых разъема для соединения с разъемами пультов через отверстия. На передней панели устройства два светодиода-индикатора под 3 В и 5 В, соответственно. Их свечение сигнализировало о том, что батареи аккумуляторов пульта работоспособны.

Удлинитель. Как и сама фотокамера, так и пульты дистанционного управления поставлялись с относительно коротким кабелем. Хотя на практике этого хватало для большинства типов маскировки, но могла иметь место ситуация, для которой провод оказался бы коротковат. Эта проблема решалась просто — удлинитель в виде кабеля 30 см с 14-контактными штекерами с двух концов.

Хранить фотоаппарат и его принадлежности необходимо было в укладочных ящиках, в сухих помещениях (желательно в шкафу или на стеллаже) вдали от отопительных батарей или окон, температура должна быть не ниже +5 °C и не выше +35 °C, влажность воздуха не превышать 80%. Транспортировать камеры в укладочных ящиках можно было при температуре от -40 °C до +50 °C. Чтобы предотвратить отпотевание камер (при переносе с разных температурных режимов) распаковку ящиков нужно было производить не ранее, чем через 12 часов.

В 1992 году в арсенале спецслужб России появилась скорее всего последняя пленочная фотокамера Заход. Для нее были разработаны камуфляжи-прикрытия «атташе-кейс», «брючный ремень», «мужская сумка» и другие. Более поздняя версия фотокамеры Заход поставлялась с одним пультом дистанционного управления, для которого требовался только один источник питания в 6 В. Такой пульт был толще и с закругленной рукояткой, в рукоятке находились круглые никель-кадмиевые аккумуляторы. В «приплюснутой» части рукоятки расположились прямоугольная пластиковая спусковая кнопка затвора и переключатель.

Комплект фотоаппарата Заход был представлен на нескольких международных выставках в Москве и за рубежом. В 2011 году на Венском аукционе раритетной фототехники комплект Заход был продан за 7000 $. Нужно проверить закрома родины — возможно у кого-то и пылится такой недешевый раритет…

Фотокамеры Киев


Это не советская камера — это немецкая камера, сделанная в Советском Союзе.

Не только Красногорский механический завод (СССР) занимался производством фотокамер для использования спецслужбой КГБ. После Второй мировой из Германии в Киев был полностью вывезен (вместе со специалистами, запчастями и комплектующими) завод, который занимался выпуском камеры Contax. Его плацдармом стал завод Арсенал, а точнее самая старая его часть, построенная еще в 1764 году, помещение с маленькими окнами и стенами толщиной 1,3м. Тут и продолжился выпуск фотокамер. В конце 40 годов фотоаппарат обрел свое новое название «Киев» и успешно выпускался, в 1947 году свет увидели две первые модели. Хотя они и повторяли конструкцию Contax-II и Contax-III (Киев II и Киев III) продуктом плагиата не являлись, это были юридически правомочные копии Contax. Киев был продуктом высокого качества, статусная вещь, достать такую вещь можно было только с помощью высокопоставленных лиц в СССР. В 1956 году ввели синхроконтакт, серии начали получать индекс «А», появились новые модели Киев-2A и Киев-3А. В конце 50-х на заводе Арсенал ежемесячно выпускалось 3.5 тысячи фотокамер. Рассмотрим несколько моделей Киев, которые из-за миниатюрных размеров можно отнести к «шпионским» фотокамерам.

Миниатюрная 16 мм камера Kиев-30


Камера Kиев-30 представляла собой миниатюрный 16-мм фотоаппарат, была выпущена в 1974 году. Она была преемницей популярной линейки киевских камер Вега (копия миниатюрной камеры Minolta 16).

Камера снимала на неперфорированную пленку шириной 16 мм, размер кадра составлял 17 x 13 мм. Длина пленки могла быть 45 или 65 см, от этого зависело количество кадров 17 или 25, соответственно. Пленка находилась в пластмассовой кассете. Фотокамера была оснащена объективом Индустар-M c фокусным расстоянием 23 мм и светосилой f/3,5, с 5 различными диафрагмами (3,5 — 11)- что позволяло выставить диафрагму от f3,5 до f11 со всеми промежуточными значениями — и 3 скоростями затвора. Затвор — шторный с металлическими шторками, отбивались всего 3 выдержки — 1/30, 1/60, 1/200. Диафрагма объектива двухлепестковая и формировала квадратное отверстие. Калькулятор экспозиции был представлен в виде символов погоды с ручной установкой экспозиционных параметров. Экспозиция задавалась двумя ребристыми колесиками справа на торце корпуса.

Габариты фотокамеры составляли 84 х 46 х 27 мм (в закрытом состоянии), а весил аппарат не более 178 грамм. Прежде чем сделать снимок, камеру необходимо было разложить, как показано на рисунке снизу. При этом открывался объектив, происходила транспортировка кадра, становились доступны колесико фокусировки и кнопка спуска. По сути корпус являлся элементом управления. Счетчик кадров показывал количество отснятых кадров. Сам же процесс съемки выглядел так: взвод затвора, установка выдержки и диафрагмы, визирование и наводка на резкость, спуск затвора.

Теперь пользователь мог через небольшой рамочный видоискатель, расположенный с левой стороны, видеть объект съемки. Квадратная спусковая кнопка затвора находилась справа, ближе к переднему краю камеры. Слева от спусковой кнопки затвора — регулятор фокусировки (от 50 см и до бесконечности).

Комплект поставлялся в таком содержании:

  • Фотоаппарат
  • Футляр фотоаппарата
  • Кассета в футляре
  • Рамка для увеличителя типа «Свет»
  • Диск для бачка
  • Упаковочная коробка
  • Руководство по эксплуатации

Благодаря небольшому размеру и малому диапазону фокусировки, камера подходила для скрытой фотосъемки. Она использовалась спецслужбами бывшего Советского Союза (СССР), такими как КГБ. Хотя маленький, удобный фотоаппарат получил всеобщее признание у любителей турпоходов. В 1987 году Киев-30 сменил Киев-30М, а в 1990 году вышла улучшенная модель Киев-303. Завод давал год гарантии на замену комплектующих и ремонт камеры, ясное дело при условии «нормальной его эксплуатации, бережного обращения и правильного хранения». Розничная цена камеры Киев-30 в 1974 году составляла 30 рублей, а Киев-30М в 1989 году стоил 15 рублей. В фильме «Приключения Электроника» герой фильма Ури делает «шпионские» фотографии Электроника и Сыроежкина как раз фотокамерой Киев-30.

Советская 16-миллиметровая камера Киев-30 в действии: для маскировки ее вмонтировали в металлический корпус, под видом сигаретной пачки. Съемка производилась в момент, когда агент вытаскивал сигарету из пачки. Для достоверности в упаковку вставляли настоящую сигарету.

Популярность такой шпионской камеры для КГБ была высока. Поэтому специально для коллекционеров (уже в век цифрового фото) Киев-30, Киев-303 начали производить в необычном исполнении, что прямо намекало на ее «шпионское» прошлое. Kиев-JPS — это камера Киев-30, замаскированная под обычную пачку сигарет бренда John Player Special (JPS).

Такая маскировка делала фотокамеру незаметной для секретной фотосъемки. Все те же габариты 102 x 55 x 28,5 мм, в корпусе из черного металла и весом около 230 гр. Один конец был изменен так, чтобы камера выглядела как сигаретная пачка, для пущей схожести три сигареты (их фильтры) немного торчат из пачки. Две такие сигареты в фиксированном положении, а третья (самая длинная) — подвижная (внутрь или наружу).

Сигарета связана с механизмом транспортировки пленки. Если ее потянуть, открывался объектив, пленка транспортировала следующий кадр и можно было делать снимок. Хотя первоначально предполагалось, что такой вариант камеры был сделан специально для КГБ, позже стало ясно, что это скорее всего обман наивных западных коллекционеров.

Согласно словам пользователей, качество снимков Киев-30 было не особо высокое, из-за двух основных причин. Сильно царапалась пленка. Узкая пленка была тогда в дефиците, потому часто-густо пользовались просроченной. Пленку необходимо было хорошо промывать при проявке, так как могли оставаться сильные пятна.

Киев-303 — миниатюрная 16-мм фотокамера, выпущенная в 1990 году на заводе Арсенал в Киеве (Украина), преемница популярной Киев-30 и Киев-30M.

На самом деле это улучшенная версия Киев-30 с дополнительной выдержкой 1/250. Фотокамера была оснащена все тем же объективом Индустар-M c фокусным расстоянием 23 мм и светосилой f/3,5, фокусировался от 50 см до бесконечности, с остановками на 1 и 2 м.

Камеру можно было приобрести в пяти цветах: черном, зеленом, красном, белом и сером. Небольшие габариты камеры делали ее незаменимым помощником в арсенале агентов и оперативников: в закрытом состоянии — 84 х 46 х 27 мм и весом не более 178 грамм. Корпус, как и у Киев-30 являлся элементом управления. Обратная перемотка пленки (16-мм неперфорированая) была невозможна. Сменить кассету можно было в любое время, при этом засвечивалась только небольшая часть фотопленки.

По сути Киев-303 — модификация фотоаппарата Киев-30 с измененным внешним видом и другими значениями выдержек. Новый диапазон выдержек — 1/30, 1/60, 1/125, 1/250.

Киев-35А


Фотокамера Киев-35А выпускалась на заводе Арсенал (Украина) с 1985 по 1991. Камера представляла собой копию Minox 35EL 1974 года с объективом Color-Minotar, которая успела завоевать любовь агентов слежки во времена холодной войны. Миниатюрная 35 мм фотокамера с фиксированным пятилинзовым объективом МС Корсар 2,8/35. Разрешение объектива: по центру 50лин/мм по краю 28лин/мм. Камера с автоматической экспозицией с выдержкой до 1/1000 с, кроме того, выдержку можно было установить ​​вручную от 4 до 1/500 сек. Работала от батареи или набора дисковых элементов с напряжением 6 В. Передняя стенка была откидная. Как только стенка откидывалась, объектив выдвигался в рабочее положение, спусковая кнопка уже не была заблокирована, включалось питание экспонометра. Взвод затвора и перемотка пленки осуществлялись двойным переводом курка.

Киев-35А — полноформатная полуавтоматическая от диафрагмы камера с размером кадра 24х36 мм. Затвор — центральный междулинзовый с электронным управлением, взвод затвора — курковый. Фокусировка по шкале от 1 м до бесконечности.

Габариты фотоаппарата составляли 101,5 x 64 x 32,5 мм, вес — менее 200 грамм, температурный режим работы от -15 до +45 С. В закрытом состоянии могла поместиться в любой карман.

Хотя камеры Киев-35А и Minox 35EL выглядят на первый взгляд идентично, все же качество сборки Kiev 35A желает лучшего. Советский вариант «прославился» многочисленными электронными сбоями. Камеру нельзя было ронять даже на полметра. В камере использовался гальванический, стрелочный экспонометр, он был связан с электронным затвором камеры, нежнейший механизм повреждался при малейшем ударе. Без такой хрупкой «пружинки со стрелочкой» фотоаппарат уже не мог функционировать. Это слабое место попытались устранить в модели Киев-35АМ, заменив в 1991 году стрелочный экспометр на светодиодный индикатор.

Из отзывов пользователей:

  • Камера — мечта мазохиста. Назовите любую пришедшую на ум неисправность — в Киев-35 оно встречается. На моем экземпляре было: врал экспонометр, клин затвора, клин протяжки, засветка через щели, засветка через недоокрашеный корпус (!), блики в объективе, наложение кадров, несрабатывание затвора («чистый» кадр) и т.д.
  • Идея (взятая c Minox 35) хороша, но исполнение никакое. Крышка засвечивала, отчасти из-за плохой подгонки, отчасти из-за того что пластик был недостаточно окрашен в массе и пропускал свет! Затвор периодически залипал, причем на слух было неотличить — все щелкало, но пол-пленки выходило неэкспонированной. Курок иногда клинило. Объектив ощутимо бликовал. Экспонометр был недоюстирован на 1.5-2 ступени. Брал камеру на заводе Арсенала в Киеве, из трех — две остальные были вообще мертворожденные. В общем потратил на нее слишком много времени и хорошей пленки… потом она разбилась, и вопрос решился сам собой.
  • Снимал на цветную пленку, в том числе на ORWOCHROM. Очень хороший объектив, несмотря на странную диафрагму. Очень резкий, яркие, неискаженные, насыщенные цвета. Мне очень нравился. Единственые неприятности доставляли элементы питания — часто пропадал контакт — в фотоаппарате что-то клацало, но затвор не срабатывал.
  • Резюме — кроме объектива все в нем никудышнее, хотя, при изначально удачном аппарате и аккуратном обращении, может служить отличной записной книжкой....

Специальные стационарные фотокамеры — закладные фотоаппараты


Такие стационарные системы были рассчитаны на длительную съемку по времени, она могла длиться часами, и даже несколько дней. Фотокамеры были автоматические, с часовым механизмом (позднее электронным таймером), что позволяло делать один кадр в 5, 10 или 15 секунд. Камеры оснащались специальными кассетами на 100, 200 и более кадров. Такая аппаратура называлась между оперативниками «закладной», ее маскировали / закладывали в предварительно подобранные камуфляжи-прикрытия. Часто таким прикрытием служили предметы интерьера, элементы мебели: вазы, вазоны, настенные картины. Проделывались отверстия в стенах, потолке, вентиляции, конструировались пустотелые перекрытия и выступы.

Лавр (Лавр-5, Лавр-6), Жимолость, Морозник — первые «закладные» стационарные фотоаппараты с различными объективами и насадками. Агенты КГБ, начиная с 70-х годов начали активно применять стационарные фотоаппараты Забег, они считаются самыми удачными закладными устройствами того времени.

Надежная, автономная, бесшумная камера — настоящая находка для служб разведки и контрразведки. Такую спецтехнику устанавливали в кабинетах, гостиничных номерах. В отелях «Россия», «Москва», «Националь» даже существовали специально оборудованные для наблюдения номера. Старым и провереным способом негласной фотосъемки была система зеркал, которые заранее устанавливались под разными углами, давая агенту еще больше возможнотей для произведения компрометирующих снимков под разными углами и с различных ракурсов.

Оперативные мероприятия с целью дискредитировать человека и заставить его
затем действовать в интересах конкретной спецслужбы, как правило, тщательно планировались,
организовывались и проводились, как хорошо отрепетированные спектакли, где в финальной
части «герой», в отличие от театральной сцены, не выходил счастливый к зрителям «на поклоны
и цветы», а зачастую думал о том, а как теперь жить дальше?

Фотокамера Забег была разработана с автоматической выдержкой, которая контролировалась в зависимости от освещенности помещения. Работал Забег на аккумуляторах, емкость которых подбиралась в зависимости от продолжительности операции. При помощи пульта управления делались снимки, таймер задавал время начала съемки, например, через каждые 15 минут (или каждый час и тп). Правая рукоятка пульта управления задавала цикл съемки, левая — задавала чувствительность, используемая в камере фотопленки в относительных единицах: 32, 45, 140, 250 ед (ГОСТ). Эта камера использовала неперфорированную 12-мм пленку в специальных картриджах.

На практике спецслужб случались кейсы, в которых классическая формула компрометирующей операции «алкоголь + секс» просто не срабатывала, и фототехника была совсем ни при чем. Как-то наблюдаемый убедил оперативников КГБ, что компроментирующие кадры лишь разожгут их с женой интимную жизнь, добавят огонька в отношения. Объект компромата заявил, что он и его супруга являются страстными любителями порноснимков. Что ж, агенты КГБД такого финала уж точно не ожидали, как итог — иностранец вежливо отказался от какого-либо сотрудничества, еще и попросил подарить на память копии «прекрасно» сделанных фотоснимков.

Let's block ads! (Why?)