1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/weharmony-kernel_liteos_a_note

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
CHANGELOG.md 35 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 26.11.2024 21:09 87d6455

Исправления и улучшения в ядре 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

    1. Удалены LOS_CirBufLock() и LOS_CirBufUnlock() — внешние интерфейсы ядра. LOS_CirBufWrite() и LOS_CirBufRead() больше не выполняют операции блокировки/разблокировки, теперь они по умолчанию включают эти операции.
  • Добавлена поддержка API:

    • LOS_LmsCheckPoolAdd — позволяет проверять наличие заданного пула памяти;
    • LOS_LmsCheckPoolDel — не проверяет заданный пул памяти;
    • LOS_LmsAddrProtect — блокирует доступ к указанному сегменту памяти;
    • LOS_LmsAddrDisableProtect — разрешает доступ к указанному сегменту памяти.
  • В los_perf.h добавлена серия внешних API для работы с производительностью (Perf).

    • LOS_PerfInit — настройка буфера выборки данных;
    • LOS_PerfStart — запуск выборки Perf;
    • LOS_PerfStop — остановка выборки Perf;
    • LOS_PerfConfig — настройка событий выборки Perf;
    • LOS_PerfDataRead — считывание данных выборки;
    • LOS_PerfNotifyHookReg — регистрация функции-перехватчика для буфера данных выборки;
    • LOS_PerfFlushHookReg — регистрация перехватчика очистки кэша для буфера данных.
  1. В пользовательском режиме добавлены команды для работы с Perf:

    • Usage:
      • ./perf [start] /[start id] — запустить Perf;
      • ./perf [stop] — остановить Perf; * ./perf [read nBytes] — прочитать nBytes необработанных данных из буфера Perf и вывести их на экран;
        • ./perf [list] — вывести список событий, которые можно использовать в -e;
        • ./perf [stat] или [record] — параметры:
          • -e, event selector — использовать команду ./perf list для вывода списка доступных событий;
          • -p, event period — период события; * -o, perf data output filename — имя файла выходных данных Perf;
            • -t, taskId filter (whiltelist) — если не установлен, Perf будет выбирать все задачи;
              • -s, type of data to sample defined in PerfSampleType los_perf.h — тип данных для выборки;
              • -P, processId filter (whiltelist) — если не установлен, Perf будет выбирать все процессы;
              • -d, whether to prescaler (once every 64 counts) — только для аппаратных событий на основе тактов процессора.

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.

  • Ядро A codex изменено (ec977a1), закрывает #I40B1S.

  • 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 typo in quickstart (3b2ff4b), closes #I3M1S8

  • Fix wrong judgment in los_trace.c to avoid null pointer access. (4d863e9), closes #I3RT9F

  • Identical condition 'ret<0', second condition is always false. :bug: (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)

  • kernel_test: 内核mem/shm冒烟用例重复运行失败 (0676578), closes #I3TH4W

  • L1 toybox 命令功能实现 (2ff44c4), closes #I41N2A

  • liteipc max data size too small (4dc421e)

  • LiteOS_A BBOX Codex整改 (6a5a032), closes #I43RQU

  • Liteos-a创建的文件夹在Ubuntu中不可见 (a9fc1e0), closes #I3XMY6

  • 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)

  • mksh compile bug fix (d8263b1), closes #I3ZMR7

  • 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.

  • Обновление toybox (c3245b3) — закрывает проблему #I41N2A.

  • Комментарий 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.

Изменения

  • Поддержка vfs для SD-карт с «горячей» заменой (hotplug).
  • vfs: поддержка FD_CLOEXEC в vfs.
  • Удаление избыточного кода zpfs.
  • Реализация на ассемблере функции очистки пользовательской памяти ядра.
  • Добавление поддержки MS_RDONLY флага mount.
  • Поддержка killpg и waitid.
  • Новая команда toybox reboot.
  • Предоставление инструмента Hidumper для экспорта системной информации разработчикам.
  • Восполнение самописных команд оболочки.

Откат изменений

  • Возврат к предыдущей версии: изменение ширины окна по умолчанию на 400 пикселей.

Критические изменения

  • Добавлена серия внешних API для трассировки, расположенных в los_trace.h.

    • LOS_TRACE_EASY — упрощённый инструмент для вставки точек останова.
    • Стандартные точки останова LOS_TRACE.
    • Конфигурация адреса и размера буфера трассировки LOS_TraceInit.
    • Запуск записи событий LOS_TraceStart.
    • Остановка записи событий LOS_TraceStop.
    • Вывод данных из буфера трассировки LOS_TraceRecordDump.
    • Получение начального адреса буфера трассировки LOS_TraceRecordGet.
    • Очистка событий в буфере трассировки LOS_TraceReset.
    • Установка маски события LOS_TraceEventMaskSet для записи только определённых событий модуля.
    • Регистрация функции-ловушки для фильтрации событий определённого номера прерывания LOS_TraceHwiFilterHookReg.
  • vfs: после выполнения функций exec класса, состояние файловых дескрипторов процесса изменяется: до изменения все файловые дескрипторы процесса 0, 1 и 2 повторно открываются; после изменения, если файловый дескриптор не имеет метки FD_CLOEXEC, он не будет закрыт.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/weharmony-kernel_liteos_a_note.git
git@api.gitlife.ru:oschina-mirror/weharmony-kernel_liteos_a_note.git
oschina-mirror
weharmony-kernel_liteos_a_note
weharmony-kernel_liteos_a_note
master