Исправления и улучшения в ядре LiteOS A:
Проблема с необходимостью использования макроса для shcmd.h была исправлена (6c4e4b1).
Исправлена проблема с аномалией в тесте на использование прав xts (b0d31cb).
Решена проблема, когда случайное адресное пространство было недоступно из-за невозможности использовать аппаратный генератор случайных чисел (665c152).
Устранена вероятность сбоя при использовании механизма блокировки дверей в случае процесса (1ed28b4).
Нестабильность потоков процессов была устранена (f6ac03d).
Система больше не зависает из-за повторяющихся операций с памятью (6c2b163).
Ошибки в комментариях модуля MMU были исправлены (1a8e22d).
Проблемы с общей памятью были решены (9fdb80f).
Улучшено сообщение об ошибках ядра, теперь оно содержит информацию о процессе и потоке, что облегчает определение проблемы (cb423f8).
Добавлена информация о текущем процессе и потоке для сообщений об ошибках уровня ядра и выше (540b201).
Исправление проблем в тестовых случаях для проверки исходного кода (a6ac759).
Удалены избыточные заголовочные файлы (8e614bb).
Реализована функция pselect SYSCALL и тестовые случаи для неё (f601c16).
Введён системный вызов epoll для ядра (2251b8a).
Реализация некоторых функций интерфейса в библиотеке net в ядре, а также соответствующие тестовые примеры (3d00a7d).
Добавление тестового примера для обнаружения «дыма» от процесса и потока (2be5968).
Когда основной поток процесса завершается, другие дочерние потоки могут войти в обработку исключений, что приводит к зависанию системы (d955790).
Изменение стандартов кодирования (d161a0b).
Решение проблем со стандартами кодирования (f60bc94).
Унификация структуры компиляции (bdb9864).
Проблема двойного блокирования в параметре dmesg -s была решена (e151256). BREAKING CHANGES
Добавлена поддержка API:
В los_perf.h добавлена серия внешних API для работы с производительностью (Perf).
В пользовательском режиме добавлены команды для работы с Perf:
Bug Fixes
A ядро: предупреждение обнулено (698756d), закрывает #I4378T.
Предупреждение A ядра устранено (d16bfd0), закрывает #I46KF6.
Платформа 3518: тестовый процесс не может нормально завершиться (23937a2), закрывает #I3V8R5.
Добавить (void) в метод GetFileMappingList (56b8eca), закрывает #I3XPXY.
Добавление возможностей и изменение дымового теста (c9d69e2).
Добавить fchdir api (e828cbd).
Добавить fchmod api (2f214bf).
Добавить api fststfs и юнит-тест (4c57aa2).
Добавить параметр product_path для сборки драйвера (88fe4eb), закрывает #I3PQ10.
Добавить системный вызов для ppoll и добавить 2 тестовых примера (defedb6).
Избежать предупреждения компиляции игнорируется (eca711b), закрывает #I3VOAO.
BBOX использует зарезервированную физическую память для журнала сбоев кэша (2ad176e), закрывает #I41YIZ. * stored typo (d25560f)
fix syscall faccessat, fstatfs, fstatat & add 6 testcases (aa1cd24)
fix the inappropriate errno in FatFs (af61187), closes #I3O8IF
Fix wrong judgment in los_trace.c to avoid null pointer access. (4d863e9), closes #I3RT9F
Identical condition 'ret<0', second condition is always false. (1348809)
init进程收到子进程退出信号后,调用fork重新拉起进程,会导致系统卡死 (35a2f3a), closes #I41HOY
kernel crashed after rmdir the umounted folder (ac0d083)
kernel crashed when delete a umounted folder (f305d1f)
kernel crashed when delete a umounted folder (c6e9212)
liteipc max data size too small (4dc421e)
lookup new vnode may cause parent vnode freeing (902a11d), closes #I3MYP4
mini: fix compile error in mini liteos_a (e13cb3b)
minimal compile (ac8c2c6)
misspell (08980ea)
mkdir -p is more robust (e38f9a9)
modify event API description (937734b)
move nuttx head file back * Закрыты проблемы: I4443Q, I41U0R, I3OSYT, I3OYUQ, I3R8O8, I446CX, I41MWM, I3NNFA, I3NTH9, I3OBXY, I3OADR, I3PW5Y.
nanosleep 接口的rmtp参数被错误清零.
Нет вывода информации об исключениях при аномальной работе системы.
Оптимизация макроса quickstart cmd.
Оптимизированы разрешения /dev/quickstart.
Оптимизирована реализация узла quickstart.
В функции OsGerCurrSchedTimeCycle есть орфографическая ошибка.
Неверно объявлен заголовочный файл, в котором находится объявление OsGetArgsAddr.
Необходимо обновить родительскую точку vnode, найденную VfsHashGet.
PathCacheFree пытается освободить поле имени в структуре PathCache.
PathCacheMemoryDump неправильно рассчитывает использование оперативной памяти PathCache.
Предоставлен отдельный конфигурационный макрос для загрузочной среды в оперативной памяти.
Устранено состояние гонки в liteipc.
Перестроение mksh зависит от скрипта rebuild.sh.
Удалены избыточные заголовочных файлы.
Убраны избыточные и некорректные коды. * Отображение конфликтующих файлов для команд git apply или patch -p (35f7957) — закрывает проблему #I3NNUS.
Ошибка malloc размера в ядре при использовании SIOCGIFCONF ioctl (bfd27e7) — закрывает проблему #I3XEZ3.
Развязка кода запуска SMP и развязки отношений отображения памяти (3bb3173) — закрывает проблему #I41P8Y.
В одном из форматов веток vnode мьютекс не освобождается должным образом (9b2b700) — закрывает проблему #I3OFAY.
Ответ на запрос: В коде, связанном с сортировкой ссылок, время отклика на вставку узла должно быть добавлено в конец существующего узла.
statfs не может получить f_bfree и f_bavail для раздела FAT12/FAT16 (9503c4a) — закрывает проблему #I3Q0VS.
Возвращаемое значение SysOpenat должно быть fd процесса, а не глобальным fd системы (3457c0b) — закрывает проблему #I3TNAK.
Общее количество используемых номеров vnode не увеличивается после удаления файла (4f514a1) — закрывает проблему #I3TS1Y.
Динамический расчёт тиков для оптимизации, устранение влияния времени выполнения прерывания на общее время системы, обеспечение точности реакции программного таймера (8df3e8c) — закрывает проблему #I43UQJ.
Комментарий LOS_DL_LIST_IS_END обновлён (900269b).
Адрес начала и размер раздела userfs настраиваются через bootargs (2e2b142) — закрывает проблему #I3XNEY.
VnodeInUseIter и VnodeFreeAll ранее были рекурсивными (5f6656c) — закрывает проблему #I3NN3U.
Использование g_sysSchedStartTime в качестве индикатора для определения того, действует ли временная ось, существует ли предельный сценарий, приводящий к тому, что время планирования не действует (67ac8c4) — закрывает проблему #I45HP5.
Исправлена проблема с тем, что разные внутренние интерфейсы в FATFS не поддерживают FAT12 / FAT16 FAT-таблицу (33f5c70) — закрывает проблему #I409R6.
Устранена проблема, из-за которой процесс не мог завершиться при завершении процесса liteipc (7de43bb) — закрывает проблему #I3XX7K.
Исправление ошибки доступа за пределы массива MagicKey. Исправления:
После исправления проблемы с правами доступа при изменении mprotect, связанной с диапазоном адресов, соответствующее имя диапазона перестало отображаться.
Проблема с сохранением занятости файла после закрытия очереди сообщений (mq_close) была исправлена.
Исправлены проблемы с очередью сообщений (mqueue).
Несоответствие между ожидаемым и полученным значениями сигнала в sigwait было устранено.
Ошибка в макропереключателе LOSCFG_FS_FAT_VIRTUAL_PARTITION, вызывающая функциональную ошибку в области действия, была исправлена.
Тестовые случаи для VFAT в ядре были исправлены.
Доступ к функциям chmod и chown в ядре был исправлен.
В функции проверки целостности кучи ядра была устранена проблема, связанная с доступом к недопустимому указателю, которая могла вызывать системные исключения.
Отладочные предупреждения -Werror=maybe-uninitialized в рамках запуска фреймворка были устранены, а также решена проблема с отсутствующими символическими ссылками в образе.
Вероятность зависания при запуске была снижена.
Проблемы с неработающими ссылками в документации были решены.
Формат отображения в /proc/mounts был изменён.
Интерфейс clock_gettime был адаптирован под стандарт POSIX, включая исправление ошибки, когда возвращаемое значение ESRCH было заменено на EINVAL при неправильном вводе clk_id.
Функция DoNanoSleep была изменена для работы с наносекундами.
Некоторые проблемы с сохранением журналов bbox на определённых платформах были решены.
Ширина окна по умолчанию была установлена равной 400 пикселям.
Корректное отключение jffs и fat привело к тому, что rootfs на носителе nand стал недоступен. * В ядре после инициализации в консоли невозможно нормально печатать с помощью printf (44ce696). Закрывает задачу I3SBYN.
Убрали избыточную операцию strip (7819d15). Закрывает задачу I43767.
Объединили два соседних региона в стеке процесса (42f374d). Закрывает задачу I43QYJ.
Когда ядро выдаёт сообщение «No idle TCB», добавили вывод текущей информации о системных задачах для облегчения поиска проблемы (11a9b00). Закрывает задачу I434UC.
Добавили заголовок и разделили содержимое на столбцы с помощью символа табуляции (e9ad6b7). Закрывает задачу I3W2M9.
Перенесли скрипт для отладки памяти пользовательского режима в каталог tools (85b4cb7). Закрывает задачу I42T9A.
Восстановили функцию установки метки тома в FATFS (9515d53). Закрывает задачу I3Y5G8.
При завершении процесса решили проблему с освобождением ресурсов ядра, которые уже были заняты процессом (cf89f01). Закрывает задачу I3S0N0.
Решена проблема, из-за которой размер rootfs в разных окружениях вычислялся неправильно, что приводило к ошибкам disk full при копировании файлов (c54879b). Закрывает задачу I3IA06.
Настроили размер userfs по умолчанию в qemu и изменили каталог драйвера qemu (1d952a2). Закрывает задачу I3XW96.
Активировали mksh и toybox (cacb4f0). Закрывает задачу I3VEOG.
Для поддержки синхронной связи между процессами в режиме пользователя добавили /dev/quickstart (46b63f7). Закрывает задачу I3OHO5.
Добавили файл /proc/fd для вывода информации о pid/fd/path (600dded). Закрывает задачу I3WB5U.
Добавили /proc/fs_cache для отображения информации о кэше (231cb6b и 53c6d96). Закрывают задачи I3WWBD и I3WESD соответственно.
Доработали некоторые системные вызовы (ce849f2).
Добавили blackbox для liteos_a (a195aac и 425975e). Закрывают задачи I406NP и I406NP соответственно.
Добавили команду очистки кэша в /proc/fs_cache (3d1cf68). * Добавить возможность патча LiteOS (98ca844).
Добавить поддержку системы сборки gn (a8805a6).
Добавить uid/gid для ProcFs (6780659).
В A-ядре proc-файла системы в echo-режиме добавить функцию записи (f10dd7c).
Сборка OHOS_Image из ядра (abf4d8f).
Сделать liteos_config_file доступным как аргумент gn (f9a9077).
При использовании xts -notest, ядро не участвует в компиляции и конфигурации сборки (9bdf716).
Не применять module_swith к конфигурациям конфигураций (f3beb4b).
Включить сборку gn для toybox и mksh (c54bfa1).
Поддержка символьных ссылок в fatfs (e50cf0b).
Добавление файловой системы на основе памяти romfs (c4595d2).
Введение mksh toybox в rootfs (41c7689).
L0-L1 поддержка Trace (dc9ec68).
Низкое энергопотребление голосования в L1 (21d8ac8).
Обновление оптимизированных процедур до версии 21.02 (1ec8d5a).
Оптимизация make-файлов и удаление некоторых неиспользуемых файлов (0e26094).
Открытый макрос для модуля ADC (c71ec9d).
Возможность включения FAT-файла в QEMU_ARM_VIRT_CA7 (49856dc).
Поддержка .mkshrc (51a50c9).
Поддержка link/symlink/readlink (6eddc86).
Поддержка toybox в qemu (5618319).
Создание таймера с помощью SIGEV_THREAD в timer_create (e5f6bf0).
Использование kconfiglib вместо kconfig. Улучшения производительности
Присвоить -1 неинициализированной переменной: ret.
Изменения
Откат изменений
Критические изменения
Добавлена серия внешних API для трассировки, расположенных в los_trace.h.
vfs: после выполнения функций exec класса, состояние файловых дескрипторов процесса изменяется: до изменения все файловые дескрипторы процесса 0, 1 и 2 повторно открываются; после изменения, если файловый дескриптор не имеет метки FD_CLOEXEC, он не будет закрыт.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )