Обновить
335.46

Linux *

Пишем под *nix

Сначала показывать
Порог рейтинга

Откуда берётся мусор?

Рассмотрим следующую программу:

#include <stdio.h>
int main () {
  int a [100];
  int i;
  for (i=0; i<100; i++)
    printf ("%d ", a[i]);
  return 0;
}

При компиляции без оптимизации и вызове в Linux она выдаст некоторые числа, являющиеся мусорным содержимым памяти. Кто-нибудь в состоянии объяснить, откуда конкретно они берутся, и почему каждый раз разные при последовательных запусках программы?

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

Объяснение в стиле “потому что виртуальные адреса мапируются на реальные рандомно” я и сам могу дать, хочется более глубокого понимания. Компьютер – вещь детерминированная, в нём случайность – это не познанная закономерность.

Upd: ответ дан уважаемым @alexvangog в закреплённом комментарии.

Теги:
Всего голосов 4: ↑3 и ↓1+2
Комментарии13

Мейнтейнер блочной подсистемы в ядре Linux, а также создатель io_uring и планировщиков ввода/вывода CFQ, Deadline и Noop Йенс Аксбо (Jens Axboe) продолжил свои эксперименты с оптимизацией ввода/вывода в ядре Linux. Он занялся оптимизацией работы планировщиков ввода/вывода BFQ и mq-deadline, являющиеся узким местом как минимум в случае скоростных накопителей NVMe.

Как показало изучение ситуации, одной из ключевых причин неоптимальной производительности подсистем планировщиков ввода/вывода стали проблемы с конкурирующими блокировками (lock contention, попытка получить блокировку, удерживаемую другим потоком). Благодаря мерам, нацеленным на снижение соперничества при обработке блокировок, таким как сериализация диспетчеризации и вставки запросов, скорость работы планировщиков выросла в ряде ситуаций в разы (при пересчёте в IOPS в рамках тестов).

При тестировании планировщика BFQ утилитой fio производительность выросла с 567К до 1551К операций ввода/вывода в секунду, а конкуренция блокировок снизилась с 96% до 30%. В случае с mq-deadline производительность после применения предложенных Аксбо патчей при использовании NVMe-накопителя увеличилась с 1070К до 2560K операций ввода/вывода в секунду (IOPS), а конкуренция блокировок снизилась с 94% до 23%.

Ранее Аксбо сообщил, что смог увеличить число операций ввода/вывода в секунду (IOPS) на 6% (или даже больше для полновесных конфигураций ядер Linux), потратив всего 5 минут на внесение правок в код проекта.

Теги:
Всего голосов 6: ↑6 и ↓0+6
Комментарии0

Вышел релиз дистрибутива DietPi 9.0, предназначенного для использования на одноплатных ПК на базе архитектур ARM и RISC-V, включая Raspberry Pi, Orange Pi, NanoPi, BananaPi, BeagleBone Black, Rock64, Rock Pi, Quartz64, Pine64, Asus Tinker, Odroid и VisionFive 2.

Дистрибутив построен на пакетной базе Debian и доступен в сборках для более, чем 50 плат. DietPi может применяться для создания компактных окружений для виртуальных машин и обычных ПК на базе архитектуры x86_64. Сборки для плат отличаются компактностью (в среднем 130 МБ) и занимают меньше места на накопителе, по сравнению с Raspberry Pi OS и Armbian.

DietPi оптимизирован для минимального потребления ресурсов и развивает несколько собственных утилит: интерфейс для установки приложений DietPi-Software, конфигуратор DietPi-Config, систему резервного копирования DietPi-Backup, механизм ведения временных логов DietPi-Ramlog (поддерживается rsyslog), интерфейс для установки приоритетов выполнения процессов DietPi-Services и доставку обновлений DietPi-Update. Утилиты предоставляют консольный интерфейс с меню и диалогами на базе whiptail. Также поддерживается режим полной автоматизации установки, позволяющий провести инсталляцию на платы без участия пользователя.

В DietPi 9.0 прекращена поддержка сборок на базе Debian 10 и обновлены сборки на основе репозиториев Debian 11 и Debian 12.

Источник: OpenNET.

Теги:
Рейтинг0
Комментарии0

Вышел проект Bun Shell для запуска кроссплатформенных скриптов на JavaScript и TypeScript.

Оболочки для bash или sh существуют уже несколько десятилетий. Но они плохо работают в JavaScript. macOS (zsh), Linux (bash) и Windows (cmd) имеют немного разные оболочки с разным синтаксисом и разными командами. Команды, доступные на каждой платформе в итоге там разные, также одна и та же команда может иметь разные флаги при запуске и поведение после активации.

Bun Shell — это новый экспериментальный встроенный язык и интерпретатор Bun, который позволяет запускать кроссплатформенные скрипты на JavaScript и TypeScript. Проект работает на Windows, macOS и Linux. Там уже реализованы множество общих команд и функций, таких как подстановка, переменные среды, перенаправление, конвейерная обработка и многое другое.

Теги:
Всего голосов 2: ↑2 и ↓0+2
Комментарии0

Проект GNU опубликовал релиз открытого текстового редактора GNU Emacs 29.2.

Вплоть до выпуска GNU Emacs 24.5 проект развивался под личным руководством Ричарда Столлмана, который передал пост лидера проекта Джону Вигли (John Wiegley) осенью 2015 года.

Исходный код проекта написан на языках C и Lisp и распространяется под лицензией GPLv3.

В новом выпуске на платформе GNU/Linux по умолчанию Emacs выставлен по умолчанию в качестве обработчика схемы URI org-protocol. Режим org позволяет быстро сохранять закладки, заметки и ссылки, используя команду emacsclient, например для сохранения ссылки URL с заголовком можно выполнить emacsclient "org-protocol://store-link?url=URL&title=TITLE". Кроме того, в новой версии редактора предложена новая опция tramp-show-ad-hoc-proxies, при помощи которой можно включить отображение внешних имён файлов вместо ярлыков на них.

Источник: OpenNET.

Теги:
Всего голосов 3: ↑3 и ↓0+3
Комментарии0

Создатель ReiserFS Ханс Райзер (Hans Reiser) в письмах из тюрьмы принёс сообществу Open Source свои глубокие извинения за социальные ошибки и прокомментировал прекращение поддержки файловой системы.

Райзер в настоящее время находится в тюрьме в Калифорнии за убийство своей жены в 2006 году. Он подключился к электронному списку рассылки писем разработчиков ядра Linux посредством обмена физическими письмами из тюрьмы.

Разработчик Фредрик Р. Бреннан написал письмо Райзеру, когда тот находился в тюрьме в Калифорнии, и недавно получил ответы на первое письмо и на несколько последующих. Письма от Райзера было разрешено расшифровать и публично распространить. Судя по оригинальным изображениям письма и всей сопутствующей информации, оно действительно кажется подлинным письмом от автора ReiserFS. Райзер в своих письмах подробно описал свои социальные ошибки, историю ReiserFS, осуждение ReiserFS некоторыми представителями сообщества и надежды, которые он возлагал на Reiser4.

Это очень длинная история, но для тех, кому интересно, её можно найти в списке рассылки ядра Linux, а оригиналы писем между Бреннаном и Райзером также выложены в открытый доступ.

Теги:
Всего голосов 8: ↑8 и ↓0+8
Комментарии2

18 января 2024 года Линус Торвальдс вернулся в сеть спустя пять суток без электричества у себя дома в Портленде, штат Орегон.

13 января 2024 года Линус Торвальдс объявил, что ему пришлось отложить текущие задачи по разработке ядра Linux 6.8 из-за сильного зимнего шторма, обрушившегося на США, включая Портленд, штат Орегон. У Торвальдса пропало электричество и доступ в Интернет.

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

В итоге сегодня после пяти суток перерыва Торвальдс всё же смог продолжить работу над ядром Linux 6.8 и начал проявлять большую активность в Linux Git.

Теги:
Всего голосов 2: ↑2 и ↓0+2
Комментарии0

Разработчик «Базальт СПО» создал приложение для запуска популярных видеоигр на операционных системах Linux.

Благодаря приложению PortProton большинство популярных видеоигр, созданных для Windows, легко и удобно запускать на компьютерах с операционными системами «Альт».

PortProton создает и автоматически настраивает префикс — каталог, в котором имитируется рабочая среда Windows и запускаются видеоигры.

Список установки содержит следующие популярные онлайн-игры:
?«Мир танков»;
?«Мир кораблей»;
?League of Legends;
?Genshin Impact.

Вручную можно инсталлировать любые другие игры, например:
?Starfield;
?Baldur's Gate 3;
?Resident Evil 4;
?Cyberpunk 2077.

Инструкция по установке PortProton. Дополнительная информация по созданию проекта PortProton опубликована в этой статье на Хабре.

Теги:
Всего голосов 5: ↑4 и ↓1+3
Комментарии5

В списке рассылки разработчиков ядра Linux возобновилось начатое шесть лет назад обсуждение перспектив использования современного кода на C++ в ядре Linux, помимо нынешнего применения языка С, ассемблерных вставок и продвижения языка Rust.

Изначально тема разработки ядра на C++ была поднята в 2018 году инженером из Red Hat, который первого апреля в качестве шутки опубликовал набор из 45 патчей для использования шаблонов, наследуемых классов и перегрузки функций C++ в коде ядра.

С инициативой продолжения обсуждения выступил Ганс Питер Анвин (Hans Peter Anvin), один из ключевых разработчиков ядра в компании Intel и создатель таких проектов, как syslinux, klibc и LANANA, разработавший для ядра Linux систему автомонтирования, реализацию RAID 6, драйвер CPUID и x32 ABI. По мнению Анвина, который является автором многочисленных макросов и ассемблерных вставок в ядре, с 1999 года языки С и С++ значительно продвинулись вперёд в своём развитии, а язык С++ стал лучше подходить для разработки ядра операционных систем, чем С.

Анвин считает, что C++ более предпочтителен, чем Rust, так как последний существенно отличается от языка С по синтаксису, непривычен для текущих разработчиков ядра и не позволяет постепенно переписывать код (в случае языка С++ можно по частям переводить код с языка C, так как С-код можно компилировать как C++). В поддержку использования С++ в ядре также выступили Иржи Слаби (Jiri Slaby) из компании SUSE и Дэвид Хауэллс (David Howells) из Red Hat.

Источник: OpenNET.

Теги:
Всего голосов 2: ↑2 и ↓0+2
Комментарии1

Рабочая группа Rust Embedded, созданная для разработки технологий повышения качества и безопасности приложений, прошивок и драйверов к встраиваемым системам, представила первый выпуск фреймворка embedded-hal, предоставляющего набор программных интерфейсов для взаимодействия с периферией, обычно применяемой с микроконтроллерами (например, предоставляются типажи для работы с GPIO, UART, SPI и I2C). Наработки проекта написаны на языке Rust и распространяются под лицензией Apache 2.0.

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

Embedded‑hal 1.0 помечен как первый стабильный выпуск проекта, который можно использовать для создания рабочих драйверов.

Источник: OpenNET.

Теги:
Всего голосов 5: ↑5 и ↓0+5
Комментарии0

11 января 2024 года в состав кодовой базы, на основе которой формируется ядро Linux 6.8, мейнтейнерами проекта был принят набор изменений, значительно повышающих производительность TCP-стека. В случаях обработки множества параллельных TCP-соединений ускорение может достигать 40%.

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

Источник: OpenNET.

Теги:
Всего голосов 17: ↑17 и ↓0+17
Комментарии0

13 января 2024 года Линус Торвальдс объявил, что ему пришлось отложить текущие задачи по разработке ядра Linux 6.8 из-за сильного зимнего шторма, обрушившегося на США, включая Портленд, штат Орегон. У Торвальдса нет электричества и Интернета.

Из-за зимнего шторма мы потеряли электричество и Интернет. Конечно, это Орегон, поэтому «шторм» здесь — это то, что некоторые, вероятно, посчитали бы «несколько ветреным», а «зима» здесь означает, что температура приближается к -10°C. И прежде чем кто-нибудь скажет: «Просто сходите в Starbucks и работайте оттуда», самое страшное — не считая, возможно, поваленных деревьев и линий электропередач — это другие водители. Я останусь на месте.

Немного удивительно, учитывая местоположение Торвальдса, что у него нет какого-либо решения для резервного питания и/или Starlink для резервного Интернета. В таких штормовых условиях и во время слишком частых отключений операторов связи ШПД сеть Starlink продолжает работать в качестве резервного подключения к Интернету .

Теги:
Всего голосов 4: ↑4 и ↓0+4
Комментарии3

Разработчики проекта OpenSSH представили план прекращения поддержки ключей на базе алгоритма DSA.

В настоящее время DSA-ключи не обеспечивают должного уровня защиты, так как используют размер закрытого ключа всего в 160 бит и хэш SHA1, что по уровню безопасности соответствует примерно 80-разрядному симметричному ключу.

По умолчанию использование ключей DSA прекращено в 2015 году, но поддержка DSA оставалась в качестве опции, так как данный алгоритм является единственным обязательным к реализации в протоколе SSHv2. Подобное требование появилось из‑за того, что во время создания и утверждения протокола SSHv2 все альтернативные алгоритмы подпадали под действие патентов. Сейчас прекратили действие патенты, связанные с RSA, добавлен алгоритм ECDSA, значительно опережающий DSA по производительности и безопасности, а также EdDSA, который безопаснее и быстрее ECDSA. Единственным фактором продолжения поддержки DSA оставалось сохранение совместимости с устаревшими устройствами.

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

Источник: OpenNET.

Теги:
Всего голосов 3: ↑3 и ↓0+3
Комментарии0

Ближайшие события

Вышел исследовательский проект Vcc (Vulkan Clang Compiler), нацеленный на создание компилятора, способного транслировать код на языке С++ в представление, выполняемое на GPU, поддерживающих графический API Vulkan. В отличие от моделей программирования GPU на базе языков шейдеров GLSL и HLSL в Vcc развивается идея полного отказа от использования отдельных языков шейдеров и предоставляется возможность прямой компиляции кода C/C++ для Vulkan. Наработки проекта Vcc распространяются под лицензией MIT.

Для компиляции кода в Vcc задействованы компоненты проекта LLVM и Clang в качестве фронтенда. Для выполнения на GPU развивается собственное промежуточное представление шейдеров Shady и компилятор для преобразования кода в это представление. По возможности поддерживается компиляция обычного стандартного кода C/C++, а для поддержки специфичных для GPU возможностей предоставляются дополнительные встроенные функции.

В Vcc применяются штатные возможности C/C++ для управления ходом выполнения программы, включая возможность использования оператора goto. Допускается вызов функций, рекурсивное выполнение функций, использование физических указателей, теггированных указателей и указателей на функции, выполнение арифметических операций над указателями, а также определение раскладки типов в памяти. Из ограничений реализации упоминается отсутствие поддержки исключений C++, недоступность функций malloc/free и непереносимость функций и указателей между хост-системой и GPU.

Источник: OpenNET.

Теги:
Всего голосов 2: ↑2 и ↓0+2
Комментарии1

Состоялся релиз динамически управляемого межсетевого экрана firewalld 2.1, реализованного в форме обвязки над пакетными фильтрами nftables и iptables. Firewalld запускается в виде фонового процесса, позволяющего динамически изменять правила пакетного фильтра через D-Bus, без необходимости перезагрузки правил пакетного фильтра и без разрыва установленных соединений. Проект задействован во многих дистрибутивах Linux, включая RHEL 7+, Fedora 18+ и SUSE/openSUSE 15+.

Код проекта написан на языке Python и распространяется под лицензией GPLv2.

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

Для изменения конфигурации межсетевого экрана можно использовать графический интерфейс firewall-config (GTK) и апплет firewall-applet (Qt). Поддержка управления межсетевым экраном firewalld через D-BUS API firewalld доступна в NetworkManager, libvirt, podman, docker и fail2ban.

Ключевые изменения в версии 2.1:

  • добавлен сервис для использования DNS поверх протокола QUIC (DNS over QUIC, DoQ, RFC 9250);

  • появилась поддержка типов сообщений ICMPv6 MLD (Multicast Listener Discovery);

  • в файл конфигурации firewalld.conf добавлена опция ReloadPolicy;

  • добавлены сервисы для приёма клиентских SMTP-запросов на TCP-порту 587 (mail submission), для поддержки ALVR (стриминг VR-игр с ПК на портативные устройства по Wi-Fi) и для поддержки протокола VRRP.

Источник: OpenNET.

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

Вышел проект Maestro по разработке на Rust легковесного Unix-подобного ядра, реализующего подмножество системных вызовов ядра Linux, достаточное для создания типовых рабочих окружений. Проект был создан в 2018 году и вначале использовал язык C, но в 2020 году был полностью перезапущен с нуля с учётом накопленного опыта и перешёл на Rust для снижения вероятности совершения ошибок, возникающих при работе с памятью.

Код проекта распространяется под лицензией MIT. Помимо ядра проектом на языке Rust также развиваются X11-сервер, пакетный менеджер, загрузчик, инсталлятор, наборы утилит и другие компоненты, необходимые для построения операционной системы.

Ядро на Rust имеет монолитную архитектуру и пока поддерживает только системы x86 в 32-разрядном режиме. Кодовая база ядра насчитывает 48.8 тыс. строк кода (для сравнения в ядре Linux - 33 млн. строк кода). Возможен запуск в QEMU, VirtualBox или поверх оборудования. На текущем этапе развития в Maestro реализован 31% (135 из 437) системных вызовов Linux, чего достаточно для загрузки консольного окружения на базе bash и стандартной С-библиотеки Musl. В окружении на базе Maestro также могут выполняться некоторые утилиты из набора GNU coreutils, такие как ls, cat, mkdir, rm, rmdir, uname и whoami.

Источник: OpenNET.

Теги:
Всего голосов 15: ↑15 и ↓0+15
Комментарии1

Состоялся выпуск системы синхронизации точного времени NTPsec 1.2.3. Проект является форком эталонной реализации протокола NTPv4 (NTP Classic 4.3.34), сфокусированной на переработке кодовой базы с целью повышения безопасности (выполнена чистка устаревшего кода, задействованы методы предотвращения атак, защищённые функции для работы с памятью и строками).

Проект NTPsec развивается при участии некоторых разработчиков оригинального NTP Classic, инженеров из Hewlett Packard и Akamai Technologies, а также проектов GPSD и RTEMS. Исходные тексты NTPsec распространяются под лицензиями BSD, MIT и NTP.

Обновления в NTPsec:

  • изменено выравнивание пакетов управляющего протокола Mode 6 (может привести к нарушению совместимости с классическим NTP). Протокол Mode 6 используется для передачи сведений о состоянии сервера и изменении поведения сервера на лету;

  • в ntpq по умолчанию задействован алгоритм шифрования AES;

  • при помощи механизма Seccomp обеспечена блокировка некорректных имён системных вызовов;

  • включён ежечасный сброс некоторой статистики. Добавлены лог-файлы с записываемой каждый час статистикой NTS и NTS-KE. Добавлено отражение в логе ошибок и статистики ms-sntp;

  • по умолчанию включена сборка с отладочными символами;

  • добавлена поддержка указания списка допустимых эллиптических кривых ECDH (настройка tlsecdhcurves), поддерживаемые в OpenSSL;

  • в buildprep добавлена опция update;

  • в JSON-выводе для ntpdig обеспечен показ данных о задержке пакетов.

Источник: OpenNET.

Теги:
Всего голосов 5: ↑5 и ↓0+5
Комментарии0

Спустя год разработки состоялся релиз Linux-дистрибутива wattOS 13, построенного на пакетной базе Debian и поставляемого с графическим окружением LXDE, оконным менеджером Openbox и файловым менеджером PCManFM.

Дистрибутив wattOS 13 является простым, быстрым, минималистичным и пригодным для работы на устаревшем оборудовании. Проект был основан в 2008 году и изначально развивался как минималистичная редакция Ubuntu.

Размер установочного iso-образа wattOS 13 составляет 1.4 ГБ, поддерживается как работа в Live-режиме, так и установка на жесткий диск.

В новой версии wattOS 13 осуществлён переход на пакетную базу Debian 12 (прошлый выпуск был основан на Debian 11, а позапрошлый на Ubuntu 16.04) и ядро Linux 6.1.

В качестве инсталлятора в wattOS 13 применяется Calamares. Имеется поддержка пакетов в формате Flatpak и возможность установки deb-пакетов при помощи утилиты gdebi.

Источник: OpenNET.

Теги:
Всего голосов 3: ↑3 и ↓0+3
Комментарии1

Разработчики Gentoo Linux, изначально ориентированного на формирование окружения с использованием сборки программ из исходного кода, объявили о введении в строй репозитория готовых бинарных пакетов. Пакетный менеджер Portage уже много лет поддерживает установку бинарных пакетов, но до сих пор бинарные пакеты предоставлялись лишь выборочно - предполагалось, что дистрибутив в основном распространяет метаданные для сборки, но пользователь может собрать бинарные пакеты на одной из своих систем и использовать на других компьютерах.

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

Для архитектур отличных от amd64 и arm64 сборки Gentoo Linux ограничены базовыми системными компонентами и еженедельными обновлениями. Для систем amd64 и arm64 бинарные пакеты охватывают и пользовательские приложения, включая пакеты с LibreOffice, Docker, Xfce, KDE и GNOME. Всего на зеркалах размещено более 20 ГБ бинарных пакетов, обновляемых ежедневно для стабильной ветки Gentoo.

Источник: OpenNET.

Теги:
Всего голосов 4: ↑4 и ↓0+4
Комментарии0

Организация Linux Foundation опубликовала годовой отчёт. За 2023 год к организации присоединилось 270 новых участников, а число курируемых проектов достигло 1133.

За год организация заработала $263,6 млн и израсходовала $269 млн. По сравнению с прошлым годом затраты на разработку ядра Linux снизились почти на $400 тыс. Общая доля затрат, связанных с разработкой ядра, среди всех расходов составляет 2.9% ($7,8 млн). Доля расходов на ядро в 2022 году составляла 3.2%, а в 2021 - 3.4%.

Всего на различные не связанные с ядром Linux проекты приходится 64% расходов ($171,8 млн). Наибольший вклад осуществляется в проекты, связанные с облачными технологиями, контейнерами и виртуализацией (25%), а также с сетевыми технологиями (13%).

Доли расходов Linux Foundation на проекты, связанные с ИИ, web-разработкой и блокчейном, составили 12%, 11% и 4% соответственно.

На поддержание инфраструктуры потрачено $22,58 млн (9%), на программы обучения и сертификации - $18,57 млн (7%), на корпоративные задачи - $17,1 млн (6%), на проведение мероприятий - $14.6 млн (6%), на сопровождение сообщества - $13,5 млн (5%), на международные задачи $2.96 млн (1%).

Что касается доходов, то 45% от всех полученных средств ($ 118,2 млн) приходится на пожертвования и взносы, участников организации; 26% ($ 67 млн) - целевая поддержка проектов; 19% ($ 49.5 млн) - поддержка мероприятий и регистрационные взносы на конференциях; 10% ($ 27,2 млн) - оплата обучающих курсов и получение сертификатов.

Источник: OpenNET.

Теги:
Рейтинг0
Комментарии0

Вклад авторов