Comments 23
Создаётся впечатление, что Андреас Клинг потерял интерес к SerenityOS, а сосредоточился на браузере.
Если так, то он вообще молодец. Независимый браузер с открытым кодом - это насущная необходимость.
Я посмотрел сколько зависимостей тянет а собой Ladybird из репозитория FreeBSD и мне стало страшно. Говорить, что это написанный с нуля движок это просто обманывать себя и других. Зачем ему Qt6 и три питона (3.8, 3.9 и 3.11) ? Этим мезким питоном отравили весь опенсорс.
До этого мерзким perl отравили весь опенсорс
Не было ничего подобного! Не требовался Perl для сборка каждого второго проекта, и уж тем более в Perl-е не было такого бардака с несовместимыми версиями. И размер пакета Perl5 крошечный по сравнению с вечно голодным питоном.
Скорее всего автор не осилил причесать. Начиная с 3.7 питоны почти ничем не отличаются, для сборки должен подходить любой, а уж тем более любой самый новый.
Как гентушник скажу вам, что вывожу дерево зависимостей пакетов и вижу, что пакетов 50 зависит от perl, например тот же QT. И тоже делаю facepalm.
Похоже всё это добро тянет за собой Qt6. В статье написано, что SerenityOS использует свой GUI на базе SDL, почему нельзя было портировать его вместе с браузером и избавиться от целого эшелона зависимостей ?
Браузер Ladybird я попробовал. Жуткое глюкало - загрузил процессор на 100%, поел всю память и упал (у меня лимит стоит по 2ГБ на процесс). На мелких сайтах без яваскрипта жутко лагает прокрутка.
В Линуксе у него нормальные зависимости, никаких трёх версий Питона:
pamac info ladybird
Название : ladybird
Версия : 20240417-1
Описание : Web browser built from scratch using the SerenityOS LibWeb engine
Адрес : https://github.com/SerenityOS/serenity
Лицензии : BSD
Репозиторий : Хранилище AUR
Группы : --
Зависит от : brotli less libgl python qt6-base qt6-multimedia qt6-svg qt6-wayland
Необязательные зависимости : --
Зависимости сборки : cmake git ninja qt6-tools unzip
Проверяются зависимости : --
Предоставляет : --
Заменяет : --
Конфликтует с : --
Сопровождающий : timschumi
Впервые отправлен : Сб 01 апр 2023 13:36:24
Последнее изменение : Ср 17 апр 2024 20:52:41
Голосов : 7
Устаревший : --
Это в вашей BSD мантейнеры что-то намудрили.
Говорить, что это написанный с нуля движок это просто обманывать себя и других
Движок написан с нуля (иначе бы он тянул ещё и qt6-webengine), а для GUI на Линуксе используется Qt. Что не так?
что это написанный с нуля движок это просто обманывать себя и других
И в чём же обман? Они честно пишут в readme, что "The Browser UI has a cross-platform GUI in Qt6 and a macOS-specific GUI in AppKit".
Зачем ему ... три питона (3.8, 3.9 и 3.11)
Не понятно, потому что питоны 3.8, 3.9, 3.11 обратно совместимы за вычетом удалённых deprecated модулей (что-то там удаляли из stdlib в 3.11 или в 3.12, не помню уже). Скорее всего кто-то ленивый сделал кривой пакет в FreeBSD, у которого в зависимостях аж 3 версии Python.
Как раз сегодня собрал Ladybird с исходников, искал, на чём бы ещё потестить, зашёл на хабр, а тут эта статья, хех
![](https://habrastorage.org/webt/rw/ur/av/rwurav9tiaardik9rc6fbvw5an0.png)
Собственная ОС с нуля это всегда интересно и впечатляюще, но первый же вопрос: как у неё с драйверами?
как у неё с драйверами?
по большей части пока сидит в виртуалке)
Не понимаю, чем ядро Линукса не нравится, там полно драйверов. А нахлобучку из консоли и гуи можно свою сделать ;-)
Линукса не нравится, там полно драйверов
Ну вот как-то так. Та же Haiku использует слой драйверов из freeBSD. Тут пошли своим путем
Я пользуюсь Линуксом уже лет 15 и в целом меня эта система устраивает. Но вот некоторые особенности ядра меня напрягают:
Stable API is nonsense. Я знаю, что у этого подхода есть свои причины, читал соответствующую статью, но всё равно немного диковато. Если у тебя старая железка или, например, старая файловая система, которая дропнута из ядра - ты либо сам перепиливаешь код и патчишь ядро, либо прощаешься с ней. Вообще, как-то напрягает понимание, что все драйверы и прочие компоненты - результат постоянной работы тысяч человек. Если над чем-то перестают работать - оно умирает и исчезает из ядра.
Подход "всё в ядре". Как следствие - мало того, что ядро раздувается аки наша вселенная (сколько там уже, 25 миллионов строк кода? только вдумайтесь!), так ещё и ошибка в каком-нибудь драйвере валит всю систему. Я вот недавно имел неудовольствие поработать на свежем AMD APU, и амдшный видеодрайвер регулярно падал и, конечно же, утягивал за собой ядро целиком. Сделать как в Windows, где видеодрайвер при падении можно просто перезапустить, в Линуксе, как я понимаю, в принципе невозможно.
Выбор языка программирования. Я понимаю, почему Линус выбрал сишку в 1991 году, но блин. Взять сишку с её обилием ручной работы, и вкорячивать в ядро наколеночный недоООП, чтобы сократить количество этой самой ручной работы - ну я не знаю :) Да, сейчас в ядро тащат Rust, но у него свои сомнительные стороны. Решение Клинга по выбору языка выглядит наиболее разумным, по-моему (и я так говорю не потому, что сам пишу на С++, нет :)).
Так и не нашел как установить на виртуалку. Ожидал наличие ISO с установщиком.
З.Ы. Оболочка схожая с Win98 вызывает трепет и ностальгию.
Не нашёл в статье информации о лицензии самой SerenityOS. Восполняю пробел - там двухпунктная BSD.
Браузер в современном мире это что-то вроде ОС верхнего уровня. Фактически, основная программа, наиболее часто используемая, и вполне сопоставимая с операционной системой.
Конечно круто ,но мы то знаем ,это всё Linux и что кроме него и пары заинтересованных ,пользоваться ей никто не будет)
Разве после психоклиники можно остаться со своими знаниями)?
Андреас Клинг, его операционная система SerenityOS и браузер Ladybird