Hacker News Digest

Тег: #namespaces

Постов: 2

Using bubblewrap to add sandboxing to NetBSD (blog.netbsd.org)

В NetBSD отсутствует полноценная технология sandboxing, в отличие от FreeBSD (jails) и Linux (namespaces). Существующий chroot считается слабым механизмом изоляции, так как ограничивает только представление файловой системы, но не изолирует сеть, IPC и монтирование. Предыдущие попытки реализации изоляции на уровне ядра с помощью инструментов gaols, mult и netbsd-sandbox не были интегрированы в систему.

В рамках Google Summer of Code 2025 планируется реализовать механизм, подобный Linux namespaces, используя bubblewrap. Проект фокусируется на двух типах namespace: UTS (для управления именем хоста) и mount (для изоляции файловых систем). Реализация будет использовать системные вызовы unshare или clone, а в ядре NetBSD - подсистему kauth для управления авторизацией и жизненным циклом credential. Это позволит не только добавить изоляцию приложений, но и улучшить совместимость с Linux-бинарниками через существующий compat_linux.

by jaypatelani • 09 ноября 2025 г. в 13:09 • 86 points

ОригиналHN

#netbsd#bubblewrap#sandboxing#namespaces#linux#flatpak#gcc

Комментарии (24)

  • Bubblewrap — основа песочницы Flatpak, используется для изоляции приложений (например, Claude Code/Codex/Gemini CLI) с контролем доступа к системе.
  • NetBSD выделяется полной бит-в-бит воспроизводимостью бинарников и вендорингом GCC, что обеспечивает воспроизводимость всей цепочки инструментов; Golang также обеспечивает воспроизводимость реестра пакетов.
  • Полные окружения рабочего стола (labwc, KWin, Plasma) могут запускаться через bwrap с привязкой устройств и временных файлов, с возможностью ограничения доступа.
  • Sandbox-инструменты (bubblewrap, firejail) имеют ограничения в Linux, особенно на десктопе; AppArmor предлагает профили с автоматическим определением разрешений.
  • Guix и FreeBSD (v15) также рассматриваются в контексте воспроизводимости сборок и безопасности.

Why did containers happen? (buttondown.com) 💬 Длинная дискуссия

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

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

Важный момент: Docker изначально создавался для PaaS-платформы, чтобы упрощать развёртывание приложений, а не изолировать их. Потому и акцент на сборку, а не на безопасность. Многие функции, такие как read-only rootfs, делали контейнеры безопаснее, но главное — они решали проблему управления.

Кроме того, Docker популяризировал Go, показав его эффективность для системного программирования. Сегодня Go — один из главных языков, а многие стандартные библиотеки включают TLS, что упрощает разработку.

В итоге, контейнеры изменили подход к развёртыванию, сделав его более стандартизированным и автоматизированным. Это помогло DevOps-практикам, хотя некоторые аспекты, как безопасность, развиваются до сих пор.

by todsacerdoti • 13 октября 2025 г. в 11:37 • 166 points

ОригиналHN

#docker#containers#go#cloud#linux#cgroups#namespaces#devops#paas

Комментарии (211)

  • Контейнеры появились как реакция на неспособность Linux/Unix обеспечить изоляцию и управление зависимостями, а не как решение для разработки и доставки ПО.
  • Docker и подобные инструменты стали популярны, потому что они позволяют разработчикам легко запускать и тестировать приложения в изолированной среде, но это не основная причина их создания.
  • Контейнеризация стала возможной благодаря тому, что Google и другие компании внедрили cgroups и namespaces в ядро Linux, что позволило создать легковесную альтернативу виртуальным машинам.
  • Использование контейнеров для разработки и тестирования приложений стало возможным благодаря тому, что контейнеры предоставляют изоляцию и контроль над зависимостями, что делает их удобными для этих целей.