Далее мы выполним работу, аналогичную той, что была проделана в рамках подготовки к экспериментам по «удалению зависимостей» от стандартной библиотеки Rust для операционной системы: нам нужно предоставить пользователям среду выполнения, которая будет максимально упрощена и не будет зависеть от стандартных библиотек Rust. Здесь мы кратко рассмотрим процесс, который мы будем использовать для создания этой среды.
Мы создадим 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 64console.rs
реализует макросы print!
и println!
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )