
Комментарии 2
реализация libc
С этим примерно понятно. А что имеется ввиду под
стандартная библиотека Rust — чтобы собирать и запускать приложения, написанные на чистом Rust;
Неужели планируется динамическое связывание программ на Rust со стандартной библиотекой Rust (кажется, видел такое в Redox OS)? Внешние крейты при сборке не выносятся в shared objects, а просто добавляются к бинарю? Просто приложения на "чистом Rust" в большинстве своём после сборки представляют собой большой почти статический бинарь, имеющий в зависимостях разве что libc и ещё пару системных библиотек.
Ещё вопрос не по теме. Читал предыдущие части, слог довольно приятный. Вы пишете текст/наброски статьи по ходу работы или апостериори?
Здравствуйте! Спасибо за приятный отзыв.
Сейчас userspace-приложения собираются под aarch64-unknown-none, поэтому приходится вешать атрибуты no_std и no_main, а возможности использовать крейт std нет. А вот со своими биндингами к стандартной библиотеке уже можно будет собирать какие-то программки с crates.io. Динамического связывания, как в Redox, пока не планируется — буду делать статическую линковку, так что да, на выходе будет тот же большой статический бинарь. Хотя идея интересная, подумаю над этим тоже.
Статью начинаю писать в самом конце, когда уже сделан какой-то инкремент функционала и есть понимание, как его подать. Во время написания делаю только демо-сценарии и попутные доработки - если оказывается, что публичный API даже для демо где-то недостаточно юзабелен.
Пишем мобильную ОС на Rust. Часть 3. Путь от bare-metal эксперимента к capability-based микроядру