RISC-V

RISC-V Процессоры и Микроконтроллеры: Linux или RTOS
ЧипКлассЯдроMMULinuxRTOSТипичное применение
CH32V003MCURV32ECНетНетДаПростая автоматика
CH32V203MCURV32IMACНетНетДаПромышленная электроника
GD32VF103MCURV32IMACНетНетДаЗамена STM32F103
Kendryte K210SoC2× RV64GCНетНет*ДаAI Vision, Edge AI
Allwinner D1SoCRV64GCДаLinuxДаLinux SBC
SpacemiT K1SoC8× RV64GCДаLinuxДаМини-ПК
StarFive JH7100SoC2× RV64GCДаLinuxДаРазработка Linux
StarFive JH7110SoC4× RV64GCДаLinuxДаVisionFive 2
T-Head TH1520SoC4× RV64GCДаLinuxДаНоутбуки RISC-V
ESWIN EIC7700SoC4× RV64GCДаLinuxДаAI и рабочие станции
Sophgo SG2042Server CPU64× RV64GCДаLinuxДаСерверы
Ключевое правило:
Если у RISC-V чипа есть MMU и внешняя DDR-память, то обычно можно запускать полноценный Linux.

Если MMU отсутствует, то используются:
  • FreeRTOS
  • Zephyr
  • RT-Thread
  • ThreadX
  • Собственные прошивки без ОС
Linux практически всегда требует MMU.

Почему Linux обычно требует MMU?

MMU (Memory Management Unit) — это аппаратный блок процессора, который преобразует виртуальные адреса памяти в физические и обеспечивает защиту памяти между процессами.

Именно благодаря MMU в Linux каждый процесс имеет собственное адресное пространство. Если программа зависнет или попытается обратиться к чужой памяти, ядро может её остановить, не затрагивая остальные процессы.

Пример:
В Linux браузер, SSH-сервер и база данных работают в разных областях памяти. Если браузер аварийно завершится, система продолжит работать.

Что дает MMU?

  • Виртуальную память.
  • Защиту процессов друг от друга.
  • Подкачку памяти (swap).
  • Запуск множества независимых приложений.
  • Современные механизмы безопасности.
  • Поддержку полноценного Linux.

Что происходит без MMU?

Если MMU отсутствует, все программы фактически работают в одном общем адресном пространстве. Любая ошибка может повредить память другой задачи или самого ядра.

Пример:
Микроконтроллер CH32V203 имеет 64 КБ ОЗУ и не содержит MMU. Если программа случайно запишет данные по неверному адресу, она может полностью вывести устройство из строя до перезагрузки.

Можно ли запустить Linux без MMU?

Да, существует специальная версия Linux под названием uClinux. Она предназначена для процессоров без MMU.

ВозможностьLinux с MMUuClinux без MMU
Полноценные процессыДаОграничено
Защита памятиДаНет
Виртуальная памятьДаНет
Современные дистрибутивыДаНет
DockerДаНет
Ubuntu/DebianДаНет

Что используют вместо Linux без MMU?

На большинстве современных микроконтроллеров без MMU применяются операционные системы реального времени (RTOS):

  • FreeRTOS
  • Zephyr
  • RT-Thread
  • ThreadX
  • Azure RTOS
  • Собственные прошивки без ОС

Примеры RISC-V устройств

ЧипMMULinux
CH32V003НетНет
CH32V203НетНет
GD32VF103НетНет
Kendryte K210НетТолько специальные сборки uClinux
Allwinner D1ДаПолноценный Linux
StarFive JH7110ДаUbuntu, Debian, Fedora
Sophgo SG2042ДаПолноценный Linux
Запомнить просто:

✔ Есть MMU → можно запускать полноценный Linux.
✔ Нет MMU → обычно используют RTOS или uClinux.
✔ Большинство микроконтроллеров RISC-V работают без MMU.
✔ Большинство RISC-V компьютеров и серверных процессоров имеют MMU и запускают обычный Linux.