Сообщество - GNU/Linux
Добавить пост

GNU/Linux

1 030 постов 15 516 подписчиков

Популярные теги в сообществе:

Релиз офисного пакета ONLYOFFICE Docs 7.3.0

Релиз офисного пакета ONLYOFFICE Docs 7.3.0 Технологии, Офис, Длиннопост, Onlyoffice

Опубликован выпуск ONLYOFFICE DocumentServer 7.3.0 с реализацией сервера для online-редакторов ONLYOFFICE и организации совместной работы. Редакторы можно использовать для работы с текстовыми документами, таблицами и презентациями. Код проекта распространяется под свободной лицензией AGPLv3.

Одновременно сформирован выпуск продукта ONLYOFFICE DesktopEditors 7.3, построенного на единой кодовой базе с online-редакторами. Десктоп-редакторы оформлены в виде приложений для рабочего стола, которые написаны на JavaScript с использованием web-технологий, но объединяют в одном наборе клиентские и серверные компоненты, оформленные для самодостаточного использования на локальной системе пользователя, без обращения к внешнему сервису. Для совместной работы на своих мощностях также можно использовать платформу Nextcloud Hub, в которой обеспечена полная интеграция с ONLYOFFICE. Готовые сборки сформированы для Linux, Windows и macOS.

В ONLYOFFICE заявлена полная совместимость с форматами MS Office и OpenDocument. Среди поддерживаемых форматов: DOC, DOCX, ODT, RTF, TXT, PDF, HTML, EPUB, XPS, DjVu, XLS, XLSX, ODS, CSV, PPT, PPTX, ODP. Предусмотрена возможность расширения функциональности редакторов через плагины, например, доступны плагины для создания шаблонов и добавления видео с YouTube. Готовые сборки сформированы для Windows и Linux (deb- и rpm-пакеты).

Основные новшества:

  • Унифицировано оформление всплывающих подсказок, диалоговых окон, контекстных меню и панелей.

  • Интерфейсы для работы с файлами и вывода на печать заменены на штатные системные диалоги.

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

  • В окно работы с файлами добавлена поддержка порталов Freedesktop (xdg-desktop-portal), применяемых для организации доступа к ресурсам пользовательского окружения из изолированных приложений.

  • Добавлена панель быстрого доступа к уравнениям.

  • Для 3D-диаграмм реализованы настройки трёхмерного вращения.

  • Добавлена поддержка вставки объектов Smart Art.

  • Добавлены преднастройки для вставки горизонтальных и вертикальных текстовых блоков.

  • Предоставлена возможность скрытия левой и правой панелей во вкладке View в верхней панели инструментов.

  • Обеспечена группировка шаблонов таблиц.

  • В редакторе OLE-объектов появилась возможность управления стилем ячеек.

  • Предоставлена возможность изменения размера окон редактирования диаграмм, OLE-объектов и получателей рассылок (Mail merge).

  • Оптимизировано отображение комментариев.

  • Функции чтения и записи PDF объединены в одну библиотеку.

  • Изменена логика работы с локальными документами, для которых выставлена блокировка во время редактирования.

  • Редактор документов

    • Добавлена поддержка двух режимов ввода уравнений: Unicode и LaTeX.

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

    • В строку состояния добавлена кнопка для просмотра статистики.

    • Реализована возможность использования относительных ссылок на локальные файлы.

  • Редактор таблиц

    • Добавлено окно Watch для инспектирования и аудита вычислений.

    • Добавлена поддержка новых функций: TEXTBEFORE, TEXTAFTER, TEXTSPLIT, VSTACK, HSTACK, TOROW, TOCOL, WRAPROWS, WRAPCOLS, TAKE, DROP, CHOOSEROWS, CHOOSECOLS.

    • Добавлена поддержка ссылок на внешние файлы.

    • Добавлена возможность вставки данных из файла XML (XML Spreadsheet).

    • Добавлена возможность изменения размера области предпросмотра стиля ячеек.

    • Реализована возможность использования относительных ссылок на локальные файлы.

  • Редактор презентаций

    • Добавлена поддержка ввода уравнений в режимах Unicode и LaTeX.

    • Во вкладку View и в контекстное меню добавлены настройки направляющих и сетки.

    • Добавлены подсказки, показываемые при перемещении направляющих. Предоставлена возможность удаления выбранной направляющей.

    • Добавлена поддержка горячих клавиш Paste Special для гибкой вставки слайда в презентацию, например, с сохранением исходного форматирования, использования целевой темы оформления или вставки как изображения. .

    • В контекстное меню добавлена кнопка для записи фигуры (графического объекта) в виде картинки.

  • Формы

    • Предложены новые поля: дата, время, почтовый индекс и номер кредитной карты.

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

    • Предоставлена возможность предпросмотра файла DOCXF во время создания роли.

Показать полностью

Выпуск дистрибутива Elementary OS 7

Выпуск дистрибутива Elementary OS 7 Linux, Технологии, Длиннопост

Представлен выпуск дистрибутива Elementary OS 7, позиционируемого в качестве быстрой, открытой и уважающей конфиденциальность альтернативы Windows и macOS. Основное внимание в проекте уделяется качественному дизайну, нацеленному на создание простой в использовании системы, потребляющей минимальные ресурсы и обеспечивающей высокую скорость запуска. Пользователям предлагается собственное окружение рабочего стола Pantheon. Для загрузки подготовлены загрузочные iso-образы (2.8 ГБ), доступные для архитектуры amd64 (для бесплатной загрузки с сайта проекта в поле с суммой пожертвования необходимо ввести 0).

При разработке оригинальных компонентов Еlementary OS используется GTK3, язык Vala и собственный фреймворк Granite. В качестве основы дистрибутива используются наработки проекта Ubuntu. На уровне пакетов и поддержки репозиториев Еlementary OS 7.x совместим с Ubuntu 22.04. Графическое окружение основано на собственной оболочке Pantheon, которая объединяет собой такие компоненты, как оконный менеджер Gala (на базе LibMutter), верхнюю панель WingPanel, лаунчер Slingshot, панель управления Switchboard, нижнюю панель задач Plank (переписанный на Vala аналог панели Docky) и менеджер сессий Pantheon Greeter (на основе LightDM).

В состав окружения входит набор тесно интегрированных в единое окружение приложений, необходимых для решения задач пользователей. Среди приложений большую часть составляют собственные разработки проекта, такие как эмулятор терминала Pantheon Terminal, файловый менеджер Pantheon Files, текстовый редактор Code и музыкальный проигрыватель Music (Noise). Проектом также развиваются менеджер фотографий Pantheon Photos (ответвление от Shotwell) и почтовый клиент Mail (ответвление от Evolution).

Ключевые новшества:

  • Проведена модернизация центра установки приложений (AppCenter), в котором расширена страница с информацией о программах, добавлена поддержка автоматического обновления Flatpak-пакетов, обеспечена установка системных обновлений во время перезапуска, улучшена поддержка сторонних репозиториев (Flathub), полностью переработана навигация и реализован адаптивный интерфейс, подстраивающийся под разные размеры экрана.

  • На базе браузера GNOME Web 43 (Epiphany) реализована поддержка самодостаточных web-приложений в формате PWA (Progressive Web Apps). Предоставлена возможность установки сайта как web-приложения, размещения его ярлыка в меню приложений и запуска web-приложения в отдельном окне по аналогии с обычными программами.

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

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

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

  • Переделано оформление почтового клиента. Реализована поддержка учётных записей Microsoft 365.

  • В приложении Tasks, помогающем вести списки задач и заметок, предоставлена возможность работы с новыми списками в режиме offline (изменения синхронизируются после появления доступа к сети). Обеспечен вывод уведомлений о необходимости выполнения задач. В настройки добавлена поддержка включения offline-режима для учётных записей CalDAV и возможность изменения периодичности обращения к IMAP.

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

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

  • Из GNOME 43 перенесены новые версии приложений для просмотра документов и работы с архивами, в которых улучшена поддержка тёмной темы оформления и заменён диалог выбора файлов.

  • Полностью переписан музыкальный проигрыватель Music, который переработан с оглядкой на удобную работу с музыкальными сервисами, осуществляющими потоковое вещание, а также упрощение добавления композиций в очередь, работу с локальной коллекцией и воспроизведение отдельных файлов. Улучшена поддержка чтения метаданных композиций (например, извлечение обложек альбомов). Проведена адаптация элементов управления для экранов разного размера.

  • В апплете управления громкостью реализован вывод отдельного индикатора для штатного видеопроигрывателея.

  • Обновлён конфигуратор. Добавлен интерфейс управления профилями энергопотребления, через который можно, например, активировать профили максимальной производительности или экономии заряда аккумулятора. Изменено оформление экрана для настройки горячих клавиш. Добавлена опция для запрета подключения новых USB-устройств во время блокировки экрана. Обновлены настройки сетевого подключения и индикатор активности сети, в котором появилась поддержка WPA3. Предоставлена возможность обновления прошивок в offline-режиме.

  • Предоставлена возможность выполнения определённых команд при подведении курсора к углам экрана (hotcorner).

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

  • Началась работа по переводу приложений на GTK4 и внедрению адаптивного оформления, подстраивающегося под экраны любого размера. Выполнено портирование на GTK4 фреймворка Granite, применяемого в приложениях от проекта Elementary OS. На GTK4 переведены такие приложения, как Calculator, Sideload, Shortcuts, Music и Onboarding.

  • Унифицировано оформление всех пиктограмм приложений, а также обновлены некоторые системные пиктограммы.

  • Для установки через AppCenter предложено новое приложение Icon Browser, предназначенное для просмотра имеющихся пиктограмм.

  • Интерфейс текстового редактора Code адаптирован для экранов разного размера. Добавлена боковая панель. Предложены новые светлые и тёмные стили оформления. В функциях поиска добавлена поддержка регулярных выражений. В меню добавлены кнопки для скрытия панелей, а также кнопки для поиска на странице и в проектах.

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

Показать полностью

Обновление Убунту на вялом ноутбуке

На ноутбуке c Intel Core Duo T2310 1,46GHz и 2 ГБ памяти стоит Убунту 16.04, которая, естественно, не обновляется, как и софт на ней, поэтому надо двигаться вверх по версиям. Проблема в том, что для офисных задач все нормально, но видео 720p уже легко перегревает ноутбук, и он просто вырубается, а ютубовские видео могут даже не запускаться.

Вопрос в том, насколько будет тяжелее 22.04? Потому что если система сама по себе и особенно оболочка потребляют больше ресурсов, то вполне может быть перегрев даже на холостом ходу. Или только до 20.04 обновиться? Или до 18.04 - хоть до апреля смогу VLC обновлять и браузер?

Что может отечественный Linux

Как поживает на волне импортозамещения российский Linux? Можно ли на нём работать, играть, качать торренты и смотреть 4К видео без команд в терминале? Проверили отечественный Simply Linux на простом железе с 4 ГБ ОЗУ.

Наш телеграм - https://t.me/mknewsru
Вк - https://vk.com/mknews

Впечатления от Kubuntu на KDE Plasma 5

Я продолжительное количество времени провел на дистрибутиве Kubuntu, это ответвление дистрибутива Ubuntu 22.04 LTS на графической оболочке KDE Plasma 5. Из них я разобрал некоторые минусы и впечатления

Впечатления от Kubuntu на KDE Plasma 5 Linux, Windows, Kde
  1. У меня была не заменена батарейка биоса из-за чего время сбивалась, но KDE устанавливал время автоматически уже в течении секунды после загрузки, WIndows(у) же нужно было зайти в настройки даты, только тогда он пытался что то синхронизовать!

  2. Проблема с буфером обмена именно в DE KDE Plasma 5, ужасная проблема, многий с копируемый текст не копируются, если не всплыло уведомление, то он и не скопируется

  3. Все работает шустро и быстро, у меня 4-х ядерный процессор и 4 ГБ ОЗУ, сейчас у меня стоит Windows рядом с LInux, мульти бут так называемый. Я использую linux как основную операционную систему - при всем при этом, у меня включены все анимации и даже стоят анимированные обои и система ни разу не дала ни одного падения, фриза или сбоя

  4. Многие не привыкнут к иному ускорению мыши, все это очень сильно заметно как мышка ведет себя не точно, и сделана по иному нежели в других дистрибутивов. Я очень чувствителен на «Акселерацию мыши»

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

На этом все заметные проблемы исчерпаны, все же KDE одна из лучших DE что я пробовал. Рекомендую ли я ставить именно Kubuntu на свой компьютер? Конечно! Вполне можете поставить и система даже не упадет

Показать полностью

Выпуск web-браузера CENO 2.0, использующего P2P-сеть для обхода блокировок

Выпуск web-браузера CENO 2.0, использующего P2P-сеть для обхода блокировок Технологии, Браузер, P2P, Длиннопост

Компания eQualite опубликовала выпуск мобильного web-браузера CENO 2.0.0 (CEnsorship.NO), предназначенного для организации доступа к информации в условиях цензуры, фильтрации трафика или отключения сегментов интернета от глобальной сети. Браузер построен на основе движка GeckoView (применяется в Firefox для Android), расширенного возможностью обмена данными через децентрализованную P2P-сеть, в которой пользователи участвуют в перенаправлении трафика к внешним шлюзам, обеспечивающим доступ к информации в обход фильтров. Наработки проекта распространяются под лицензией MIT. Готовые сборки доступны в Google Play.

P2P-функциональность вынесена в отдельную библиотеку Ouinet, которая может быть использована для добавления средств обхода цензуры в произвольные приложения. Браузер CENO и библиотека Ouinet позволяют получить доступ к информации в условиях активной блокировки прокси-серверов, VPN, шлюзов и прочих централизованных механизмов обхода фильтрации трафика, вплоть до полного отключения интернета в цензурируемых областях (при полной блокировке контент может раздаваться из кэша или локальных накопителей).

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

Для получения доступа к новому контенту, прямой доступ к которому заблокирован, применяются специальные прокси-шлюзы (injector), которые размещаются во внешних частях сети, не подверженных цензуре. Информация между клиентом и шлюзом шифруется с использованием шифрования на базе открытых ключей. Для идентификации шлюзов и предотвращения внедрения вредоносных шлюзов применяются цифровые подписи, а ключи сопровождаемых проектом шлюзов включены в поставку браузера.

Для доступа к шлюзу в условиях его блокировки поддерживается подключение по цепочке через других пользователей, которые выступают в роли прокси для проброса трафика к шлюзу (данные шифруются ключом шлюза, что не позволяет транзитным пользователям, через системы которых передаётся запрос, вклиниться в трафик или определить содержимое). Клиентские системы внешние запросы от имени других пользователей не отправляют, а либо отдают данные из кэша, либо используются в качестве звена для установки туннеля к прокси-шлюзу.

Обычные запросы вначале браузер пытается доставить напрямую, а если прямой запрос не проходит - выполняет поиск в распределённом кэше. При отсутствии URL в кэше информация запрашивается через подключение к прокси-шлюзу или обращение к шлюзу через другого пользователя. Конфиденциальные данные, такие как cookie, в кэше не сохраняются.

Каждая система в P2P-сети снабжается внутренним идентификатором, который используется при маршрутизации в P2P-сети, но не привязан к физическому местоположению пользователя. Достоверность передаваемой и сохраняемой в кэше информации обеспечивается через применение цифровых подписей (Ed25519). Передаваемый трафик шифруется при помощи TLS. Для доступа к информации о структуре сети, участниках и прокэшированном контенте применяется распределенная хэш-таблица (DHT). При необходимости в качестве транспорта помимо HTTP могут использоваться µTP или Tor.

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

Среди изменений в новом выпуске:

  • Изменено оформление панели и переделан интерфейс конфигуратора.

  • Предоставлена возможность определения поведения по умолчанию кнопки Clear и удаления данной кнопки с панели и из меню.

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

  • Выполнена перегруппировка опций меню.

  • В отдельное подменю вынесены опции для настройки интерфейса.

  • Обновлена версия библиотеки Ouinet (0.21.5) и дополнения Ceno Extension(1.6.1), движок GeckoView и библиотеки Mozilla синхронизированы с Firefox for Android 108.

  • Добавлена локализация для русского языка.

  • Добавлены настройки для управления параметрам темы оформления и поисковыми движками.

Показать полностью

ФСТЭК РФ опубликовал рекомендации по обеспечению безопасной настройки Linux

ФСТЭК РФ опубликовал рекомендации по обеспечению безопасной настройки Linux Технологии, Linux, Длиннопост

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

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

Основные рекомендации:

  • Запрет учётных записей пользователей с пустыми паролями.

  • Отключение входа суперпользователя по SSH (PermitRootLogin=no в /etc/ssh/sshd_config).

  • Ограничение доступа к команде su пользователями из группы wheel ("auth required pam_wheel.so use_uid" в /etc/pam.d/su)

  • Ограничение списка пользователей, которым разрешено использовать команду sudo.

  • Установка корректных прав доступа к файлам с параметрами пользователей (chmod 644 /etc/passwd /etc/group) и хешами паролей (chmod go-rwx /etc/shadow).

  • Установка корректных прав доступа к файлам запущенных процессов через выполнение "chmod go-w /путь/к/файлу" для всех исполняемых файлов и библиотек, связанных с запущенными в настоящий момент процессами, с последующей проверкой, что каталог, содержащий данные файлы, а также все родительские каталоги недоступны для записи непривилегированным пользователям.

  • Установка корректных прав доступа к исполняемым файлам, вызываемым из cron ("chmod go-w путь_к_файлу"), а также к файлам конфигурации cron /etc/crontab и /etc/cron.* ("chmod go-wx путь").

  • Установить корректные права доступа к файлам, выполняемым с помощью sudo ("chown root путь_к_файлу" и "chmod go-w путь_к_файлу").

  • Установить корректные права доступа к стартовым скриптам системы ("chmod o-w filename" к каждому файлу в /etc/rc#.d, а также к файлам .service).

  • Установить корректные права доступа к исполняемым файлам и библиотекам, расположенным по стандартным путям (/bin, /usr/bin, /lib, /lib64 и т.п.), а также к модулям ядра (/lib/modules/версия-текущего-ядра).

  • Установить корректные права доступа к SUID/SGID-приложениям путём проведения аудита всех SUID/SGID-приложений и удаления SUID/SGID-флагов с лишних.

  • Установить корректные права доступа к содержимому домашних каталогов пользователей (.bash_history, .history, .sh_history, .bash_profile, .bashrc, .profile, .bash_logout и т.п.).

  • Установить корректные права доступа к домашним каталогам пользователей (chmod 700 каталог).

  • Ограничить доступ к журналу ядра (sysctl -w kernel.dmesg_restrict=1).

  • Блокирование утечки информации об адресном пространстве через /proc/kallsyms (sysctl -w kernel.kptr_restrict=2).

  • Инициализировать нулями динамическую память ядра (параметр init_on_alloc=1 при загрузке).

  • Запрет слияния кэшей slab-аллокатора ядра (параметр slab_nomerge при загрузке).

  • Инициализировать механизм IOMMU (параметры iommu=force, iommu.strict=1 и iommu.passthrough=0 при загрузке).

  • Рандомизировать расположение ядерного стека (параметр randomize_kstack_offset=1 при загрузке).

  • Включить защиту от аппаратных уязвимостей CPU (параметр mitigations=auto,nosmt при загрузке).

  • Включить защиту подсистемы eBPF (sysctl -w net.core.bpf_jit_harden=2).

  • Отключить устаревший интерфейс vsyscall (параметр vsyscall=none при загрузке).

  • Ограничить доступ к событиям производительности (sysctl -w kernel.perf_event_paranoid=3).

  • Отключить монтирование виртуальной файловой системы debugfs (параметр debugfs=no-mount или off при загрузке).

  • Отключить системный вызов kexec_load (sysctl -w kernel.kexec_load_disabled=1).

  • Ограничить использование user namespaces (sysctl -w user.max_user_namespaces=0).

  • Запретить системный вызов bpf для непривилегированных пользователей (sysctl -w kernel.unprivileged_bpf_disabled=1).

  • Запретить системный вызов userfaultfd для непривилегированных пользователей (sysctl -w vm.unprivileged_userfaultfd=0).

  • Запретить автоматическую загрузку модулей ядра, связанных с TTY Line Discipline (sysctl -w dev.tty.ldisc_autoload=0).

  • Отключить технологию TSX (Transactional Synchronization Extensions) (параметр tsx=off при загрузке).

  • Настроить минимальны виртуальный адрес, который разрешено использовать для mmap (sysctl -w vm.mmap_min_addr = 4096).

  • Включить рандомизацию адресного пространства (sysctl -w kernel.randomize_va_space = 2).

  • Запретить подключение к другим процессам с помощью ptrace (sysctl -w kernel.yama.ptrace_scope=3).

  • Ограничить небезопасные варианты прохода по символическим ссылкам (sysctl -w fs.protected_symlinks=1).

  • Ограничить небезопасные варианты работы с жесткими ссылками (sysctl -w fs.protected_hardlinks=1).

  • Включить защиту от непреднамеренной записи в FIFO-объект (sysctl -w fs.protected_fifos=2).

  • Включить защиту от непреднамеренной записи в файл (sysctl -w fs.protected_regular=2).

  • Запретить создание core dump для исполняемых файлов с флагом suid (sysctl -w fs.suid_dumpable=0).

Показать полностью

Создатель C++ раскритиковал навязывание безопасных языков программирования

Создатель C++ раскритиковал навязывание безопасных языков программирования Java, Ruby, Rust, Swift

Бьёрн Страуструп (Bjarne Stroustrup), создатель языка C++, опубликовал возражения против выводов, сделанных в отчёте АНБ, в котором организациям было рекомендовано отойти от использования языков программирования, таких как Си и Си++, перекладывающих управление памятью на разработчика, в пользу языков, таких как C#, Go, Java, Ruby, Rust и Swift, обеспечивающих автоматическое управление памятью или выполняющих проверки безопасной работы с памятью во время компиляции.

По мнению Страуструпа упомянутые в отчёте АНБ безопасные языки на деле не превосходят C++ в важных с его точки зрения применениях. В частности, развиваемые последние годы базовые рекомендации по использованию C++ (C++ Core Guidelines) охватывают методы безопасного программирование и предписывают применение средств, гарантирующих безопасную работу с типами и ресурсами. При этом разработчикам, которым не требуются подобные строгие гарантии безопасности, оставляется возможность продолжения использования старых методов разработки.

Страуструп считает, что хороший статический анализатор, соответствующий рекомендациям C++ Core Guidelines, может обеспечить необходимые гарантии безопасности C++ кода, требуя значительно меньше затрат, чем переход на новые безопасные языки программирования. Например, большинство рекомендаций Core Guidelines уже реализованы в статическом анализаторе и профиле безопасной работы с памятью из состава Microsoft Visual Studio. Часть рекомендаций также учтена в статическом анализаторе Clang tidy.

Объектом критики также стало акцентирование отчёта АНБ только на проблемах работы с памятью, оставляя без внимания многие другие проблемы языков программирования, влияющие на безопасность и надёжность. Страуструп рассматривает безопасность как более широкое понятие, различные грани которого могут быть достигнуты комбинацией стиля написания кода, библиотек и статических анализаторов. Для управления включением правил, обеспечивающих безопасность работы с типами и ресурсами, предлагается использовать аннотации в коде и опции компиляторов.

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

Показать полностью
Отличная работа, все прочитано!