The Linux Boot Process: From Power Button to Kernel 🔥 Горячее
Процесс загрузки Linux начинается с нажатия кнопки питания, после чего процессор переходит в реальный режим (real mode) и выполняет инструкцию по адресу сброса 0xFFFFFFF0. Это приводит к запуску микропрограммы на материнской плате (BIOS или UEFI), которая выполняет самотестирование (POST) и ищет загрузочное устройство. При обнаружении загрузочного сектора (маркеры 0x55 и 0xAA), BIOS копирует его в память по адресу 0x7C00, после чего управление передается загрузчику GRUB. GRUB считывает свою конфигурацию, загружает ядро Linux в память и передает управление программе настройки, которая создает предсказуемую рабочую среду: выравнивает сегментные регистры, создает стек, очищает область BSS и запрашивает информацию о доступной памяти у микропрограммы. В конце концов, вызывается первая функция C с именем main, что标志着 переход к следующей фазе загрузки.
Комментарии (82)
- Обсуждение показало, что статья о процессе загрузки Linux охватывает только самые базовые концепции, что вызвало критику за упрощение и упущение важных деталей, таких как взаимодействие с UEFI, инициализация видео и роль загрузчика.
- Участники подчеркнули, что статья не соответствует уровню подготовки аудитории Hacker News, и что она не раскрывает важные темы, такие как влияние UEFI на процесс загрузки.
- Также было отмечено, что статья не затрагивает такие важные темы, как влияние UEFI на процесс загрузки и не упоминает о таких важных компонентах, как initrd и драйверы.
- Некоторые комментаторы выразили сожаление по поводу того, что статья не затрагивает такие темы, как влияние systemd на процесс загрузки и не упоминает о таких важных компонентах, как initrd и драйверы.
- Также было отмечено, что статья не упоминает о таких важных компонентах, как initrd и драйверы, и не раскрывает влияние systemd на процесс загрузки.
D2: Diagram Scripting Language 🔥 Горячее
D2 — декларативный язык для создания диаграмм из текста. Пользователь описывает желаемую диаграмму простым текстом, а D2 автоматически генерирует визуальное представление. Например, создается файл input.d2 с текстовым описанием сети, после выполнения команды CLI получается готовая диаграмма с элементами вроде CELL TOWER, SATELLITE, TRANSMITTER и связями между ними.
Для работы доступны CLI с режимом отслеживания изменений и интерактивный Playground для экспериментов. Исходный код D2 и документации размещены на GitHub. Тур по основам занимает 5-10 минут, а краткое руководство "Hello World" — около 2 минут. Для каждого примера в документации есть возможность открыть код в Playground для тестирования.
Комментарии (63)
- Обсуждение в основном вращается вокруг инструмента D2 и его места в экосистеме диаграмм-как-кода, включая сравнение с Mermaid, PlantUML и прочими.
- Участники обсуждают визуализацию изменений в графах, анимацию переходов между снапшотами и влияние на восприятие изменений.
- Упоминается, что D2 — это компилятор, а не просто синтаксический сахар, и что он может быть использован как библиотека или как CLI-утилита.
- Поднимается вопрос о цене и лицензии: TALA стоит $3000 в год, что вызывает споры о целесообразности такого подхода.
- Участники также обсуждают, как D2 сравнивается с другими инструментами в терминах синтаксиса, возможностей и удобства использования.
How programs get run: ELF binaries (2015)
Статья объясняет, как Linux выполняет ELF-бинарные файлы — основной формат программ в современных Linux-системах. Поддержка ELF реализована в файле fs/binfmt_elf.c, где основная функция load_elf_binary() занимает более 400 строк кода — вчетверо больше, чем поддержка старого формата a.out. ELF-файл содержит заголовок ELF и таблицу заголовков программы, из которой ядро извлекает три ключевых типа записей: PT_LOAD (описывающие области памяти программы), PT_INTERP (определяющий компоновщик) и PT_GNU_STACK (указывающий, должен ли стек быть исполняемым).
Процесс загрузки начинается с проверки формата файла и чтения его заголовков. Затем функция вызывает flush_old_exec(), которая очищает состояние ядра, унаследованное от предыдущей программы, убивает другие потоки процесса и очищает обработку сигналов. Это обеспечивает чистый запуск новой программы с одним потоком. Интересно, что BSS-секция (для неинициализированных данных) в ELF-файле хранится только как размер, так как ядро заполняет её нулями при загрузке.
Комментарии (7)
- Пользователи обсуждают, что в детстве изучение формата ELF привело к интересу к Linux и программированию.
- Обсуждается, что обработка исполняемых файлов теперь происходит в пространстве пользователя, что, как предполагается, может уменьшить риск крашей ядра из-за ошибок в формате.
- Участники вспоминают, что когда-то процесс загрузки ELF-файлов назывался "image activation", и что эта терминология исчезла после dot-com краха и появления LLM.
- Несколько человек спорят о том, как именно загружаются статические бинарники: часть считает, что ядро все еще обрабатывает их, другие утверждают, что это не так.
Комментарии (27)
- TinyKVM путают с PiKVM/PicoKVM (аппаратные KVM-переключатели) из-за схожего названия.
- Основной вопрос: можно ли использовать TinyKVM для изоляции GUI-приложений (например, Firefox) с ограниченным доступом к сети и файлам.
- TinyKVM сравнивают с Firecracker VM, но его фокус — на быстрой изоляции для серверного JS, а не на GUI.
- Упомянуты альтернативы: Qubes OS, Guix для изоляции и воспроизводимости, а также традиционные инструменты вроде bwrap/chroot.
Show HN: Diagram as code tool with draggable customizations
oxdraw — это инструмент для создания диаграмм с помощью кода, написанный на Rust с поддержкой перетаскивания элементов. Проект позволяет разработчикам создавать визуальные диаграммы, используя текстовое описание, что упрощает версионирование и интеграцию с существующими рабочими процессами. Написанный на производительном языке Rust, oxdraw обеспечивает быструю работу даже с сложными диаграммами.
Ключевая особенность инструмента — возможность интерактивного редактирования диаграмм с помощью мыши. Пользователи могут создавать элементы кодом, а затем перетаскивать их для изменения расположения без необходимости редактировать исходный код. Такой подход сочетает преимущества декларативного описания диаграмм с интуитивным визуальным редактированием, что делает инструмент полезным как для разработчиков, предпочитающих работу с кодом, так и для тех, кто предпочитает визуальный дизайн.
Комментарии (44)
- Пользователи обсуждают различные инструменты для диаграмм: Mermaid.js, D2, PlantUML и Graphviz, а также их ограничения и возможности.
- Обсуждается необходимость улучшения автоматического размещения для Mermaid.js и возможность встроить инструмент в качестве layout engine.
- Участники поднимают вопросы о лицензии (отсутствие файла LICENSE), отсутствии функционала вроде всплывающих подсказок и коллапсинга нод, а также о том, что проект не предоставляет встроенного способа взаимодействия с инструментами вроде Excalidraw.
- Разработчик отвечает, что проект находится в стадии разработки и что он открыт к вкладу со стороны сообщества.
Комментарии (103)
- Основная дискуссия ведётся о целевой аудитории Nike Amplify: спорят, ориентированы ли они на спортсменов или людей с ограниченной подвижностью (артрит, рассеянный склероз, аутоиммунные заболевания).
- Поднимаются технические сомнения: влияние на развитие мышц и суставы, вес устройства, расположение батареи и потенциальное снижение естественности движений.
- Упоминаются альтернативы: велосипеды, электросамокаты, машины, а также сценарии использования вроде "последней мили" в городском транспорте.
- Высказывается скепсис относительно новизны продукта (существование аналогов в Китае) и маркетингового позиционирования Nike.
- Появляются культурные отсылки (советские ракетные сапоги) и шутки о будущем (полный экзоскелет, Супермен).
Agent Lightning: Train agents with RL (no code changes needed)
Microsoft представила Agent Lightning, инструмент для разработки AI-агентов. Проект находится на GitHub в репозитории microsoft/agent-lightning, но подробное описание функционала в предоставленном тексте отсутствует. Судя по названию проекта, он позиционируется как "абсолютный тренер" для создания и обучения AI-агентов. В репозитории пока нет подробной документации или примеров использования. Microsoft продолжает расширять свое присутствие в области ИИ, добавляя инструменты для разработчиков в экосистему GitHub.
Комментарии (13)
- Обсуждение в основном крутится вокруг того, что проект не имеет ясной цели, документации и примеров, а также использует LLM для генерации README, что вызывает скепсис.
- Участники также критикуют отсутствие бенчмарков для задач с разреженной наградой или частичной наблюдаемостью, что является критически важным для утверждений о "обучении любого агента".
- Сомнения вызывает и то, что проект позиционирует себя как "фреймворк для оптимизации LLM агентов", но при этом не предоставляет никаких примеров или документации, а также использует LLM для генерации README.
- Некоторые участники также указывают на то, что проект не предоставляет никаких бенчмарков для задач с разреженной наградой или частичной наблюдаемостью, что является критически важным для утверждений о "обучении любого агента".
- В целом, обсуждение показывает, что проект вызывает много вопросов из-за отсутствия ясной цели, документации и примеров, а также использует LLM для генерации README.
California invests in battery energy storage, leaving rolling blackouts behind 🔥 Горячее 💬 Длинная дискуссия
К сожалению, предоставленный контент содержит только навигационную структуру сайта Los Angeles Times, а не саму статью о инвестициях Калифорнии в хранение энергии от аккумуляторов. В структуре сайта есть разделы, где могла бы находиться такая статья (California, Climate & Environment, Business), но её содержимое отсутствует.
Для создания точного пересказа мне нужен текст самой статьи, а не только её заголовок и навигационное меню сайта. Пожалуйста, предоставьте содержимое статьи, и я с удовольствием сделаю для вас ёмкий пересказ на русском языке в формате Markdown.
Комментарии (277)
- California hasn't issued a Flex Alert since 2022, but the underlying risk factors (heat waves, fires, drought) remain unchanged.
- France's electricity is 90% low-carbon, yet EDF loses €18 bn a year because the state caps retail prices far below the true cost of generation.
- California's grid-scale battery storage is overwhelmingly Tesla Megapack 2 XL (LFP chemistry) built at Tesla's Lathrop, CA plant.
- PG&E's variable-rate plans let homes with batteries arbitrage the grid, but the same homes are barred from net-metering, so the utility pockets the arbitrage spread.
- Moss Landing fire shows that a 300 MW/1.2 GWh Tesla battery can burn for days, release toxic metals, and still be called "clean energy" in the press.
AI, Wikipedia, and uncorrected machine translations of vulnerable languages
Искусственный интеллект и машинный перевод создали порочный круг для уязвимых языков в Википедии. Когда Кеннет Вир взял управление гренландской версией, он обнаружил, что из 1500 статей почти все были созданы не носителями языка, а содержали грубые ошибки от ИИ-переводчиков. Одна статья даже утверждала, что в Канаде проживает всего 41 житель. "AI translators are really bad at Greenlandic", - отмечает Вир, добавляя, что предложения часто не имели смысла или имели очевидные ошибки.
Проблема не уникальна для гренландского. В африканских языковых версиях Википедии 40-60% статей являются некорректированными машинными переводами, а в инуктитуте (родственном гренландскому) более двух третей страниц содержат части, созданные автоматически. Это создает "лингвистический doom loop": ИИ обучается на ошибках в Википедии, а затем пользователи используют этот ИИ для создания новых статей с ошибками, которые снова попадают в обучение. "Garbage in, garbage out" - как говорят эксперты, проблема сводится к простому принципу: некачественные данные порождают некачественные результаты.
Комментарии (54)
- Пользователи обсуждают, что малые языки вроде гренландского или шотландского не имеют достаточного сообщества для поддержки Википедии, и что это делает их уязвимыми для AI-переводов и других проблем.
- Участники обсуждения подчеркивают, что вместо того, чтобы пытаться сохранить эти языки, было бы лучше признать, что языки умирают естественно и что это не обязательно плохо.
- Некоторые участники поднимают вопрос о том, что если никто не говорит на этих языках, то возможно не стоит пытаться сохранять их в Википедии.
- Другие участники отмечают, что вместо того, чтобы пытаться сохранить эти языки, было бы лучше сосредоточиться на сохранении знаний, которые могут быть утеряны, если эти языки исчезнут.
Show HN: Shadcn/UI theme editor – Design and share Shadcn themes
ShadCN Themes — это платформа для создания и обмена красивыми темами для библиотеки shadcn/ui. Инструмент предлагает интуитивный редактор тем, позволяющий пользователям строить идеальные цветовые палитры и делиться ими с сообществом. Пользователи могут фильтровать темы по цветовой гамме, включая красный, оранжевый, желтый, зеленый, бирюзовый, синий, фиолетовый, розовый, серый, черный и белый, что обеспечивает широкий выбор для любого дизайна.
Проект с открытым исходным кодом доступен на GitHub, что позволяет разработчикам вносить свой вклад и расширять функциональность. ShadCN Themes упрощает процесс кастомизации интерфейсов, делая его доступным как для новичков, так и для опытных дизайнеров. Платформа стремится создать сообщество вокруг создания и обмена темами, повышая гибкость и персонализацию в экосистеме shadcn/ui.
Комментарии (34)
- Пользователи жалуются на невозможность открыть ссылки в новой вкладке из-за использования <button> вместо <a>, что ломает стандартное поведение браузера.
- Поднята тема о том, что shadcn/ui — это просто копипаста компонентов, которые не предоставляют никакой гибкости для кастомизации, в отличии от TweakCN, который предоставляет полный контроль над внешним видом.
- Разработчик утверждает, что у него есть доступ к созданию и редактированию тем без регистрации, но пользователи отмечают, что это не так.
- Пользователи также жалуются на то, что невозможно дойти до футера из-за бесконечного скролла.
- Разработчик утверждает, что его инструмент предоставляет большее удобство в использовании, но пользователи отмечают, что TweakCN предоставляет более продвинутый интерфейс для редактирования тем.