Skip to content

Releases: TheCawa/CawOS

v0.3.6

Choose a tag to compare

@TheCawa TheCawa released this 25 Oct 16:19

CawOS v0.3.6

Прокачанные команды

  • cpuid: логика CPUID вынесена в отдельный модуль libc/cpuid, добавлено
    чтение произвольного суб-листа (cpuid_raw), проверка поддержки TSC,
    64-битный замер частоты и защита от переполнения при расчёте размера
    кэша; --raw теперь строго разбирает число и отвергает мусор в аргументе
  • info: использует общий cpuid_get_brand с откатом на vendor и имеет
    защиту от пустого brand
  • font: команда не запускается в текстовом режиме и выдаёт понятную ошибку

Системные улучшения

  • libc: util.c разбит на независимые модули, string, memory,
    number, format, hash, random, timer, interrupt_state,
    cpuid
  • CPUID: таблица legacy-брендов для старых CPU (486, Pentium, K6, Cyrix,
    WinChip, Crusoe и др.)
  • Сборка: scripts/build.py переписан, параллельная компиляция в
    несколько потоков (-j), цветной прогресс-бар, флаги --clean и
    --no-programs
  • Загрузчик: проверка поддержки EDD/LBA (INT 13h AH=41h), три попытки
    чтения stage2 со сбросом диска, вывод кода ошибки в hex и корректный
    hlt-цикл вместо зависания
  • CawFS: валидация имён файлов и каталогов (запрет /, управляющих
    символов, ./..); переименование каталога обновляет пути всех
    вложенных записей; запись файла сначала размещает новую цепочку
    кластеров и только потом освобождает старую
  • Графика: раздельное масштабирование по X и Y (screen_set_font_scale_xy),
    отдельная установка межстрочного интервала (screen_set_line_gap),
    сохранение вертикального масштаба в стеке шрифтов
  • BSOD: в графическом режиме используется шрифт 8x8 с раздельным
    масштабом (3:2 по X, 2:1 по Y) и увеличенным интервалом строк
  • vsnprintf: упрощён разбор аргументов, убраны лишние va_copy,
    добавлены проверки границ для %c и %u

Критические фиксы

  • format.c: %u больше не сбрасывает индекс буфера (затенённая
    переменная i) и не портит строку при смешивании с другими
    спецификаторами
  • fs.c: защита от зацикливания при чтении файла (cluster == 0,
    счётчик шагов) и при разборе цепочек в fs_format; при нехватке места
    неудачная запись не уничтожает старое содержимое файла; переименование
    каталога больше не оставляет вложенные записи с несуществующим путём
  • screen.c: курсор ограничивается границами экрана, позиционируется по
    низу ячейки и сбрасывается при перерисовке области или очистке экрана,
    что убирает артефакты и застрявший курсор
  • boot.asm: при отсутствии LBA или ошибке чтения выводится код сбоя,
    раньше загрузка просто зависала без диагностики
  • cpuid.c: неверный аргумент --raw больше не парсится как leaf 0;
    топология читается с корректным суб-листом (0xB/1), а не через
    подстановку в EAX; замер частоты проверяет наличие TSC и использует
    64-битный счётчик
  • idt.c: BSOD в графическом режиме больше не использует настройки
    шрифта обычной консоли
  • info.c: на старых процессорах без extended CPUID больше не выводится
    пустое имя CPU, показывается legacy-название или vendor

v0.3.5

Choose a tag to compare

@TheCawa TheCawa released this 30 Sep 23:58

CawOS v0.3.5

Прокачанные команды

  • font: поддержка загрузки PSF-шрифтов (font <8x8|8x16|filename.psf>), сохранение выбора в конфиг, отображение текущего шрифта
  • bigclock: переписан для графического режима с пиксельной отрисовкой, добавлен режим текстового VGA
  • edit: оптимизирована перерисовка (только изменённые строки вместо полного экрана), улучшено поведение курсора

Системные улучшения

  • Новая система шрифтов: структура font_t, встроенные 8x8 и 8x16, загрузка PSF, конфигурация через /core/config/font, функции screen_push_font/screen_pop_font, gfx_draw_char_ex/gfx_draw_char_px, screen_flip_rect, gfx_fill_rect_px
  • Файловая система: защита каталога /core и его подкаталогов от удаления/переименования/форматирования; новые функции fs_get_size_abs и fs_load_to_memory_abs для абсолютных путей; fs_format сохраняет все файлы в /core; изменено расположение FS_TABLE_LBA и DATA_REGION_START
  • Аудио: загрузочный звук теперь /core/res/audio/boot; удалён boot_sound_cawos и все связанные проверки
  • BSOD: расширенные имена исключений, вывод кода ошибки, динамическая компоновка, поддержка как текстового, так и графического режима
  • Recovery: режим восстановления теперь использует VGA-текст при отсутствии VBE, переведён на шрифт 8x16
  • Ядро: инициализация шрифта, загрузка выбранного шрифта из конфига при старте, очистка экрана в начале загрузки
  • ATA: добавлены проверки статуса и сброс кэша для повышения надёжности
  • Логгер: добавлена функция log_dump_hex
  • vsnprintf: добавлена поддержка %u и %p
  • Explorer: добавлен в меню Пуск и на рабочий стол (иконка)
  • Log Off: новый пункт меню для выхода из графической оболочки без выключения

Критические фиксы

  • ac97.c: закомментирована неиспользуемая функция nabm_read8
  • fs.c: защита от зацикливания при освобождении цепочки кластеров; исправлена запись/чтение FS через ATA (по секторам); защита от некорректных значений в CAWFAT
  • edit.c: исправлено мерцание курсора и избыточная перерисовка
  • desktop.c: исправлены артефакты курсора, добавлено сохранение фона под курсором с запасом
  • window.c: исправлена фокусировка при закрытии окна, добавлена обработка scancode и мыши
  • start_menu.c: исправлен выбор пунктов меню с разделителями

v0.3.4-patch1

Choose a tag to compare

@TheCawa TheCawa released this 19 Sep 16:07
CawOS v0.3.4-patch1

v0.3.4

Choose a tag to compare

@TheCawa TheCawa released this 19 Sep 03:53

CawOS v0.3.4

Новые команды

  • df: статистика CawFS (использование кластеров, слотов файлов,
    полоса заполнения) с опцией --check для диагностики целостности
  • idle: настройка автозапуска скринсейвера (idle <мин>|on|off)

Прокачанные команды

  • calc: инфиксный парсер с приоритетами, hex/binary литералы,
    скобки, функции sqrt()/abs(), память ans
  • pipes: плавное трёхступенчатое затухание следов
  • ls: постраничный вывод для больших директорий
  • echo: упрощена после системного фикса переноса

Системные улучшения

  • Скринсейвер bigclock автоматически запускается после периода
    бездействия (настраивается через idle, сохраняется в конфиг)
  • Конфиг idle: персистентность через /core/config/idle

Критические фиксы

  • kernel.c: переполнение слотов истории команд на длинных
    (>255 символов) строках, портившее кучу (safe_strcpy)
  • screen.c: системный перенос в print_line_scroll закрыт
    класс багов с длинными строками (echo, grep, find)
  • kernel.c: перенос при вспоминании истории и автокомплите
    через reset_input_area + replay_into_buffer
  • config.c: корректное восстановление cwd через fs_cd_abs,
    защита от OOB при чтении конфиг-файлов

v0.3.3

Choose a tag to compare

@TheCawa TheCawa released this 18 Sep 01:57

CawOS v0.3.3

Новые команды

  • cpuid: полная информация о CPU (vendor, brand, features, cache,
    topology, hypervisor, speed, --raw )
  • find: поиск файлов по имени с фильтрами --dir/--file/--size
  • cp: копирование файлов
  • bigclock: полноэкранные часы с датой и днём недели

Скринсейверы (выход: ESC или Ctrl+C)

  • fire, donut, life, pipes, dvd

Улучшения

  • uptime: флаги --seconds и --short
  • BSOD: строка перезагрузки больше не перекрывает stack trace

Исправления

  • fs_load_to_memory: исправлено переполнение буфера при чтении
    файлов (порча заголовков кучи и ложный "Out of memory")

v0.3.2

Choose a tag to compare

@TheCawa TheCawa released this 03 Sep 23:28
CawOS v0.3.2

v0.3.1

Choose a tag to compare

@TheCawa TheCawa released this 25 Jun 20:40
Merge branch 'main' of https://github.com/CawaRUS/CawOS

v0.3.0

Choose a tag to compare

@TheCawa TheCawa released this 02 Jun 23:25
fix screenshots