Задать вопрос
  • Как решить проблему с зависимостями в Clover?

    veselov4nton
    @veselov4nton
    Системный администратор.
    Ого, всё стало на свои места — у тебя краш в отладочной сборке Clover (DEBUG/CLOVERX64.dll) при запуске через QEMU.
    Ошибка #GP - General Protection — это жёсткий сигнал, что какой-то драйвер или библиотека Clover грузится неподдержанным образом, особенно под виртуалкой.

    Что конкретно происходит:
    Clover лезет запускать CLOVERX64.dll из отладочной сборки (/DEBUG/)
    Это может происходить, если ты нечаянно подменил драйверы/файлы в UEFI разделе при ручной сборке Clover
    Или запустил Clover через QEMU с указанием неправильной BOOTX64.efi или криво собранного бинаря

    Что делать:
    Пересобери Clover в RELEASE режиме, не DEBUG
    Или просто скачай официальную .pkg и проверь, чтобы путь был к /RELEASE/CLOVERX64.efi, а не к /DEBUG/
    В QEMU указывай строго BOOTX64.efi из EFI/BOOT/ и следи, чтобы он ссылался на CLOVERX64.efi из RELEASE
    Проверь, чтобы в refit не затесались *.dll от отладочной сборки — особенно в drivers/UEFI и tools/
    Ну и если ты собирал вручную — пересобери с make clean && make -j RELEASE=1

    P.S. Отладочная сборка Clover (DEBUG) не совместима с большинством реалов и даже с QEMU без танцев с бубном.

    Лучше держись RELEASE.
    Ответ написан
    7 комментариев
  • Установка macos на makbook air?

    @Drno
    чисто логически, первое что надо проверить - это диск
    Ответ написан
    8 комментариев
  • Как загрузить CLI в macOS?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    https://www.securedatarecovery.com/blog/macbook-re...
    Гуи не отключаем. После всех шаманст все равно максимум будет так
    macbook-terminal-mode.webp

    https://support.apple.com/en-us/102603 - режимы загрузки

    What does safe mode do?
    Prevents certain software from loading as your Mac starts up. This includes login items and extensions that aren't required by macOS, and fonts that weren't installed by macOS.

    Performs a basic check of your startup disk, similar to the more comprehensive check performed by the First Aid feature of Disk Utility.

    Clears some system caches, including font caches and the kernel cache. These are automatically created again as needed.
    Ответ написан
    Комментировать
  • Как загрузить CLI в macOS?

    xez
    @xez
    TL Junior Roo
    Command Line Interface там уже есть.
    Называется "Terminal"
    Ответ написан
    Комментировать
  • Почему даже после отключения SIP не получается удалить файлы на macOS?

    BjLomax
    @BjLomax
    TV.app входит в базовую поставку OS. А оно целиком read-only, на уровне отдельного раздела APFS.
    Ответ написан
    2 комментария
  • Как заставить интернет работать на ReactOS/QEMU?

    Jeditobe
    @Jeditobe
    666b84c3a9f5c057982170.png

    Нужно правильный виртуальный сетевой адаптер выбрать и все будет работать.

    Отдельно отмечу, что лучше тестировать ночные сборки 0.4.15, т.к. 0.4.14 уже морально устарела.
    Ответ написан
    Комментировать
  • Есть ли что-то вроде QEMU для iOS и Android?

    @mnnoee
    Сразу готовых эмуляторов под Android нет, имею ввиду сборки с какими-то системами. Но у нас есть:
    1)Termux с полноценным qemu
    2)LimboPC

    Ну или, чтобы пост не растягивать есть вот эта тема на 4pda

    Для ios есть вроде только utm
    Ответ написан
    Комментировать
  • Как вызвать ядро со второго сектора дискеты из загрузчика на первом секторе дискетты?

    TrueBers
    @TrueBers
    Гуглю за еду
    Прочитать с диска в память и передать управление?

    Миллион статей в интернетах с девяностых годов же.
    https://wiki.osdev.org/Rolling_Your_Own_Bootloader хотя бы посмотри.

    Через int 13 читай следующий сектор и передавай управление через jump.
    Ответ написан
    3 комментария
  • Как скрыть дурацкие ~ на месте пустых строк в NeoVim?

    Lynn
    @Lynn
    nginx, js, css
    https://neovim.io/doc/user/options.html#'fillchars'

    Как-то так
    :set fillchars+=eob=\ ,
    <code>
    Ответ написан
    Комментировать
  • Почему от добавления функций помимо main() в начало кода ядро перестает работать?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Почему от добавления функций помимо main() в начало кода ядро перестает работать?

    смотри: ты собираешь образ kernel следующей командой:
    i686-elf-ld -Ttext 0x7E00 --oformat binary kernel.o -o kernel -e main

    а запускаешь следующей:
    ; Jump to the kernel's entry point
        JMP 0x0000:0x7E00

    как по-твоему здесь используется информация о точке входа -e main?

    Ответ
    никак, выполнение всегда начинается с начала образа kernel, куда выполняет переход начальный загрузчик; что там будет, то и начнёт выполняться. Эта информация даже никуда не записывается, потому что файл формата binary -- это тупо склеенные вместе загружаемые сегменты, там нет места для метаинформации. Если бы ты собирал ELF, то этот адрес был бы записан в поле e_entry заголовка ELF.

    Если не модифицировать загрузчик, то образ ядра должен начинаться с кода точки входа, в твоём случае -- с кода main(). Чтобы поместить нужный код в нужное место собранного образа обычно используют скрипт линковщика.
    Ответ написан
    Комментировать
  • Как использовать libstdc на Bare Metal?

    includedlibrary
    @includedlibrary
    Как верно заметили выше, никак. Но вообще, в ядре можно свои аналогичные функции написать, правда, они не всегда будут иметь тот же интерфейс, что и функции из стандартной библиотеки.
    Ответ написан
    4 комментария
  • Как использовать libstdc на Bare Metal?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Есть по-разному устроенные libc, некоторые из них можно приспособить для работы в ядре. Для начала нужно понимать, что в libc есть часть, которая совсем не зависит от ОС (например все функции mem*() или большинство функций str*()), есть часть, зависимость которой от ОС реализована в терминах других функций libc (например printf() может выделять память и может записывать в файл, но обе эти функции уже реализованы в других местах libc), а есть часть напрямую взаимодействующая с ОС.
    Некоторые libc написаны так, что эта последняя часть чётко отделена (например newlib) и для адаптации к другой ОС или к окружению внутри ядра нужно реализовать небольшое количество интерфейсов (для newlib это будет вариант libgloss).
    Ответ написан
    Комментировать
  • Почему этот код не заполняет синим весь экран?

    15432
    @15432
    Системный программист ^_^
    Ну один столбец синим он вам заполнил.
    А так, у вас в проверке границ MOV AX, Y и MOV AX, X вместо [Y] и [X]
    Ответ написан
    Комментировать
  • Как скомпилировать консольную программу C++ в .app?

    @dima20155
    you don't choose c++. It chooses you
    Потому что у ваша программа отработала и завершилась. Добавьте паузу, ожиданные ввода данных или что-то ещё и ваша программа будет ждать
    Вы же не удивляетесь, что запускаю компилятор, он останавливается после завершения работы? Вашей программе просто нечего больше делать.
    Ответ написан
    Комментировать
  • Как соответствовать LGPL для Qt?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Да, лицензия LGPL для того и придумана, чтобы можно было линковать закрытый код с открытым, при этом изменения в сам этот открытый код необходимо публиковать.
    Ответ написан
    Комментировать
  • Как скомпилировать приложение для Windows в Qt Creator на MacOS?

    Adamos
    @Adamos
    Теоретически достаточно поставить MXE и прописать соответствующий компилятор в QtCreator. Под Ubuntu я себе собрал такую среду и спокойно компилирую EXE-шники, просто переключившись на другую схему сборки в QtCreator.
    Как там с OSX на практике - не пробовал и не завидую новичку, которому понадобится разобраться с этой кухней...
    Ответ написан
    1 комментарий