НовостиОбзорыСобытияIT@WorkРеклама
Open Source:

Блог

На что влияет открытость исходников

Читаю статью "Возможен ли в России цифровой суверенитет". Целых два абзаца автор посветил собственной операционной системе. И, на мой взгляд, перечислил самые популярные заблуждения относительно этого предмета.

[spoiler]Вот первое:

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

Например, я уже давно использую Linux. И продуктивность моей работы ничуть не ниже, чем у многих моих коллег. Так почему же журналисты массово не переходят на СПО? Явно не потому, что предлагаемый набор ПО их не устраивает.

Поэтому, см. п. 2 - нет мотивации. Тут я согласен. Только не согласен с тем, что это архитрудная задача. В частности, чтобы перевести на СПО все школы, достаточно одного-единственного внятного приказа сверху. Но его почему-то до сих пор нет. О причинах этого говорилось так много, что повторяться не буду.

Вот второе:

Несколько лет назад в ИНСОР представители ФСБ заявили, что им все равно - имеют они дело с исходными кодами или с их отсутствием при анализе защищенности ПО. На сложность и трудоемкость анализа наличие исходников никак не влияет.

Если это действительно так, то возникает вопрос. Если не влияет, то зачем компании закрывают код своих продуктов? Специально, чтобы нас позлить?

Рассмотрим простой пример. Допустим, в ПО есть блок, который просыпается только при получении какой-то определённой команды извне, а до того никак себя не проявляет. Как его найти в закрытом коде? Это даже теоретически невозможно, поскольку число подаваемых команд бесконечно.

Впрочем, одна из заявленных тем ROSS 2013 - "Национальная программная платформа и ФАП (фонд алгоритмов и программ) как механизм поддержки отечественной ПО-разработки". Наверняка там будет рассматриваться и вопрос о достоинствах открытых исходников.
Сергей Бобровский
По идее, двоичный код, который формально представляет собой последовательность команд процессора, можно представить в виде графа с цепочками исполнения, где и внешние входы будут тоже учтены. Это по идее проще делать автоматически, благо всяческих умных дизассемблеров и эмуляторов кода куча.

А с объемными исходниками нереально разобраться, даже чтобы просто смысл понять, а пытаться верифицировать вручную вообще бессмысленно.

Код закрывают скорее чтобы какие-то технологические секреты скрыть от конкурентов, хотя в 99% скрывать исходники смысла действительно нету.
Сергей Голубев
в 99% скрывать исходники смысла действительно нету.

Конечно же. Поэтому и срабатывает правило "если что-то прячут, то наверняка нехорошее". Поскольку логика тут совершенно прозрачна, но коды всё равно не открывают, то получается, что действительно что-то нехорошее прячут :).
Но дело даже не в анализе. Очевидно, что минимум половину софта приходится перерабатывать под конкретную задачу. И так или иначе разбираться в чужом коде приходится.
И вот тут применительно к НФАП нужны жесточайшие правила оформления. Как в СССР - постановка, алгоритм, структура, блоки, комментарии.
Ну и тут еще есть опасения, что при таком подходе "дурь каждого видна будет" :)