Задать вопрос
  • Как работать с жестким диском через порты В/В в защищенном режиме?

    @Karpion
    А что значит "сделать прерывания"?

    Прерывание - это внезапный (по желанию устройства) переход к выполнению обработчика прерываний (с возможностью в любой момент завершить обработку прерывания и вернуться к выполнению прерванной программы).

    Exception - это тоже как бы прерывание, но возникает не внезапно, а при выполнении программы, т.е. предсказуемо с т.з. программиста, который сам написал такую программу (т.е. мог предусмотреть, но не стал).
    Ну, есть ещё exception из-за свопинга. Для программиста - не предсказуемо.

    Я вот тоже не вышел из реального режима. Там я прерывания перехватывал, а в защищённый режим уже не стал вникать - это какое-то уродство.

    Чтобы изучить вопрос - посмотрите, как это сделано в операционках с открытым исходным колом: FreeBSD, Linux. Возможно, имеет смысл начать со старых версий - которые ещё не работали с ACPI и PnP.

    А ещё имеет смысл забить на *86 и писать операционку для ARM - там д.б. намного проще.
  • Как работать с жестким диском через порты В/В в защищенном режиме?

    @Karpion
    Цитирую вопрос топиккастера: "Пытаюсь писать ОС на си и ассемблере".
    Т.е. предпосылка "Если речь про обычную ОС" - неверна: топиккастер сам пишет ядро.
  • Как работать с жестким диском через порты В/В в защищенном режиме?

    @Karpion
    Работать с устройствами, не используя прерываний - можно в режиме пулинга (pooling), т.е. регулярного опроса. Однако, такой способ обычно оказывается слишком дорогим по расходу процессорного времени, т.к. устройство приходится опрашивать и тогда, когда оно не требует обслуживания со стороны процессора.
    Ну и, формально говоря, при этом используются прерывания от таймера.

    Ну, можно выделить под пулинг одно ядро процессора - полностью. Но это совсем уже глупо.

    Расскажите, почему у Вас столь сильная неприязнь к прерываниям, что Вы даже кушать не можете?
  • Почему скрипт, запущенный через systemd, зависает?

    @Karpion
    Ресурсы показывают программы top и ps. Если почитать маны по ним - то там также есть ссылки на другие программы, которые могут подсказать причину зависания.

    Учтите, что эти программы показывают не скрипты, а интерпретаторы скриптов.

    Если скрипт продолжает работать и потребляет процессор - то он зациклился. Если не работает - то заткнулся на том, что не смог получить какие-то ресурсы (например, открыть файл).
  • Почему скрипт, запущенный через systemd, зависает?

    @Karpion
    Ну, я бы для проверки попробовал запустит скрипт из консоли, саму консоль не закрывать.

    Также неплохо было бы глянуть, не наедается ли скрипт ресурсов - типа памяти или открытых файлов.
  • Разработчик, не пишущий в опенсорс - плохой разработчик?

    @Karpion
    За написание кода по работе - человек получает награду в этой жизни, в виде зарплаты.
    За написание опенсорса - человек получает награду в вечной жизни.