Repository navigation
Releases: TheCawa/CawOS
Releases · TheCawa/CawOS
Release list
v0.3.6
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
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_read8fs.c: защита от зацикливания при освобождении цепочки кластеров; исправлена запись/чтение FS через ATA (по секторам); защита от некорректных значений в CAWFATedit.c: исправлено мерцание курсора и избыточная перерисовкаdesktop.c: исправлены артефакты курсора, добавлено сохранение фона под курсором с запасомwindow.c: исправлена фокусировка при закрытии окна, добавлена обработка scancode и мышиstart_menu.c: исправлен выбор пунктов меню с разделителями
v0.3.4-patch1
v0.3.4
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
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")