Пришло время напомнить, что это так-то не просто канал с мемами, а блог :)
Я хорошенько отдохнула на майских, у меня снова загорелось желание работать над пет-проектами. Например, надо бы починить вот эту функцию (которой десять месяцев уже): https://github.com/portasynthinca3/boss/blob/ce2a4ec43f780dcd95cf0926b04af54c1ecd5091/src/mem_manager/reloc.rs#L188-L351
Можете даже не читать код, просто прочитайте комментарии внутри неё. Это ужасная функция. Просто отвратительная функция. Что она делает? Редактирует исполняемый код работающего ядра ОС, которое её вызывает. Зачем? Потому что в самом начале проекта мне было лень писать отдельный загрузчик для ОС, который бы эти же самые действия производил до передачи управления ядру, а не во время его работы.
Разумеется, при первом же обновлении компилятора эта хрупкая и мерзкая конструкция обрушилась, из-за чего я забросила проект (а ещё меня тогда взяли на работу, что разумеется важнее чем писать всякие там петы).
Поэтому провожу рефакторинг системы сборки и выделяю загрузчик в отдельный подпроект, как делают во всех остальных ОС и как мне следовало бы сделать с самого начала.
Я хорошенько отдохнула на майских, у меня снова загорелось желание работать над пет-проектами. Например, надо бы починить вот эту функцию (которой десять месяцев уже): https://github.com/portasynthinca3/boss/blob/ce2a4ec43f780dcd95cf0926b04af54c1ecd5091/src/mem_manager/reloc.rs#L188-L351
Можете даже не читать код, просто прочитайте комментарии внутри неё. Это ужасная функция. Просто отвратительная функция. Что она делает? Редактирует исполняемый код работающего ядра ОС, которое её вызывает. Зачем? Потому что в самом начале проекта мне было лень писать отдельный загрузчик для ОС, который бы эти же самые действия производил до передачи управления ядру, а не во время его работы.
Разумеется, при первом же обновлении компилятора эта хрупкая и мерзкая конструкция обрушилась, из-за чего я забросила проект (а ещё меня тогда взяли на работу, что разумеется важнее чем писать всякие там петы).
Поэтому провожу рефакторинг системы сборки и выделяю загрузчик в отдельный подпроект, как делают во всех остальных ОС и как мне следовало бы сделать с самого начала.
Bipolar Junk Transistor
Пришло время напомнить, что это так-то не просто канал с мемами, а блог :) Я хорошенько отдохнула на майских, у меня снова загорелось желание работать над пет-проектами. Например, надо бы починить вот эту функцию (которой десять месяцев уже): https://git…
Вот, теперь оно работает как должно было работать с самого начала:
1. Запускается загрузчик (
2. Настраивает таблицы памяти как надо
3. Распаковывает два архива в памяти (с ядром и начальным диском)
4. Читает распакованный elf-файл с ядром, располагает его в памяти (КАК СЛЕДУЕТ, а не с патчингом самого себя во время работы )
5. Передаёт, собственно, управление ядру (
6. Пока не реализовано - надо избавиться от загрузчика в памяти
1. Запускается загрузчик (
boss_boot
)2. Настраивает таблицы памяти как надо
3. Распаковывает два архива в памяти (с ядром и начальным диском)
4. Читает распакованный elf-файл с ядром, располагает его в памяти (
5. Передаёт, собственно, управление ядру (
boss_emu
)6. Пока не реализовано - надо избавиться от загрузчика в памяти
Forwarded from Dr Zlo
https://deadlockempire.github.io/
игра, в которой мы играем за планировщик, и наша задача - по шагам выполнять потоки таким образом, чтобы они либо упали, либо одновременно выполнили то, чего одновременно выполнять ни в коем случае не должны
игра, в которой мы играем за планировщик, и наша задача - по шагам выполнять потоки таким образом, чтобы они либо упали, либо одновременно выполнили то, чего одновременно выполнять ни в коем случае не должны
deadlockempire.github.io
The Deadlock Empire
Slay dragons, learn
concurrency! Play the cunning Scheduler, exploit flawed
programs and defeat the armies of the Parallel Wizard.
concurrency! Play the cunning Scheduler, exploit flawed
programs and defeat the armies of the Parallel Wizard.
Хот тейк: если ваш проект на расте не реализует доступ к аппаратному оборудованию (например, ядро ОС или пакет поддержки микроконтроллера) и при этом использует unsafe, вы не должны иметь права орать о ⚡️⚡️⚡️мемори сейфти ⚡️⚡️⚡️. Особенно если unsafe у вас в среднем каждые 170 строчек кода, и особенно если вы пытаетесь заменить уже устоявшийся проект на другом языке, за которым следят другие инструменты автоматизированного поиска уязвимостей и тысячи человеческих глаз.
https://codeguessr.vercel.app/
РЕД.: очень хорошая задумка, но отвратительная реализация. уважаемые веб-разработчики, пожалуйста, сделайте играбельную версию 🙏🙏🙏
РЕД.: очень хорошая задумка, но отвратительная реализация. уважаемые веб-разработчики, пожалуйста, сделайте играбельную версию 🙏🙏🙏
А в какой момент на википедии появилась вот такая интерактивная красота?
https://en.wikipedia.org/wiki/RC_circuit#RC_discharge_calculator
https://en.wikipedia.org/wiki/RC_circuit#RC_discharge_calculator