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

OSCHINA-MIRROR/rcore-os-rCore-Tutorial

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
part-1.md 2.6 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 29.11.2024 21:14 7f8a4fd

Построение пользовательской программной среды

Далее мы выполним работу, аналогичную той, что была проделана в рамках подготовки к экспериментам по «удалению зависимостей» от стандартной библиотеки Rust для операционной системы: нам нужно предоставить пользователям среду выполнения, которая будет максимально упрощена и не будет зависеть от стандартных библиотек Rust. Здесь мы кратко рассмотрим процесс, который мы будем использовать для создания этой среды.

Создание crate

Мы создадим crate с именем user рядом с os. На этом этапе мы удалим стандартный файл main.rs, а вместо этого создадим подкаталоги lib и bin в каталоге src. В lib мы разместим нашу упрощённую среду выполнения, а в bin будут храниться исходные файлы, которые будут скомпилированы в отдельные исполняемые файлы.

{% label %}Команда для запуска{% endlabel %}

cargo new --bin user

{% label %}Структура каталогов{% endlabel %}

rCore-Tutorial
  - os
  - user
    - src
      - bin
        - hello_world.rs
      - lib.rs
    - Cargo.toml

Построение базовой структуры

Как и в случае с операционной системой, нам необходимо удалить зависимости от стандартной библиотеки и добавить некоторые необходимые функции.

lib.rs

  • #![no_std] удаляет стандартную библиотеку
  • #![feature(...)] включает некоторые нестабильные функции
  • #[global_allocator] использует библиотеку для динамического выделения памяти
  • #[panic_handler] останавливает программу при возникновении паники

Другие файлы

  • .cargo/config устанавливает цель компиляции как RISC-V 64
  • console.rs реализует макросы print! и println!

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

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

1
https://api.gitlife.ru/oschina-mirror/rcore-os-rCore-Tutorial.git
git@api.gitlife.ru:oschina-mirror/rcore-os-rCore-Tutorial.git
oschina-mirror
rcore-os-rCore-Tutorial
rcore-os-rCore-Tutorial
master