LINUX.ORG.RU

Redox — операционная система, написанная на Rust

 ,


5

7

Redox — новая UNIX-подобная операционная система с открытым исходным кодом, написанная на Rust.

Основные особенности:

  • микроядерная архитектура;
  • основная часть кода написана на Rust;
  • имеется опционально включаемый GUI Orbital;
  • библиотека Newlib для программ на C (аналог glibc);
  • лицензия MIT;
  • драйверы работают в пространстве пользователя;
  • доступны распространенные команды UNIX;
  • поддержка ZFS (пока в разработке).

Скриншот

Образы для QEMU и VirtualBox, ISO с установщиком

>>> Подробности

Deleted

Проверено: JB ()
Последнее исправление: cetjs2 (всего исправлений: 14)

Ответ на: комментарий от shkolnick-kun

Суть в том, что микроядро нельзя считать килер-фичей сегодня...

Ибо сколько уже их было микро, нано, экзо...

Сейчас это можно перевести двумя способами

1. Я тут показал, что можно и ядро на этом наваять.

2. Мне лень полностью ядро делать, поэтому сделал микроядро.

anonymous
()
Ответ на: комментарий от MyTrooName

ну я и говорю, можно страницы шарить. кажется, это оптимальный по скорости вариант.

Без проверок прав доступа - да. С проверками - со скоростью беда.

Без проверок можно использовать в эмбедеде. С проверками - там где надежность вжана, а скорость нет.

На десктоп ни так ни так не годиться.

anonymous
()
Ответ на: комментарий от Deleted

gui управляется полностью с клавиатуры?

Нет.

Deleted
()
Ответ на: комментарий от anonymous

Судя по тому, как оно написано, дело было так:

Так, мы будем писать ОСь на Rust!
Rust это очень безопасный язык, надо как-то подчеркнуть, что мы занимаемся бежопасностью...
О! А давайте скажем, что у нас микроядро!

shkolnick-kun ★★★★★
()
Ответ на: комментарий от MyTrooName

в теории вообще получается, что микроядро будет быстрее

в теории оно в принципе не может быть быстрее. Все рекламки от микроядерщиков - это фуфло и подмена понятий, которое сводится к тестированию реализаций а не принципов как таковых.

anonymous
()
Ответ на: комментарий от shkolnick-kun

Так, мы будем писать ОСь на Rust!

Я не понял, а кто этот банкет оплачивает? Наговняли то немало уже. Вот не верю, что это мамкины системщики после школы ваяют.

anonymous
()
Ответ на: комментарий от anonymous

Очень не хватает или более выскокоуровневой замены Rust. Язык видимо крут, но только как замена С. Может хоть D портируют.

Xroft ★★
()
Ответ на: комментарий от Xroft

как замена С

Насмотревшись на лоре примеров в стиле «кот походил по клавиатуре», я чота уже боюсь такой замены.

anonymous
()

микроядерная архитектура;

Вот так выглядит структура каталогов с исходниками микроядра.

Вот так выглядит структура каталогов монолитно-модульного ядра.

Вот так выглядит структура каталогов ядра redox...

Мне кажктся, или фанбои-евангелисты опять хотят меня обмануть?

shkolnick-kun ★★★★★
()
Ответ на: комментарий от zaz

Это все если делать в лоб. Если делать по уму, то ничего этого не будет. К примеру, есть возможность переключать адресное пространство без переключения контекста, оставаясь в том же потоке, тогда юзерспейс «вызывает» соседний юзерспейс и ничего из того, что вы описали не понадобится.

Вообще на эту тему очень занимательное чтиво недавно было вот тут: http://blog.darknedgy.net/technology/2016/01/01/0/

redbaron ★★
()
Ответ на: комментарий от matumba

через 10 лет будет звучать так же ржачно, как сейчас «всё есть файл». Да ниструя!

Уважаемый, это общая концепция конечного автомата: Input -> m (Output, State). Input и Output почему не могут быть представлены как файлы?

dave ★★★★★
()
Ответ на: комментарий от shkolnick-kun

Они пошли по пути Линуса: будут писать только для x86_64.

rupert ★★★★★
()
Ответ на: комментарий от redbaron

Если делать по уму, то ничего этого не будет. К примеру, есть возможность переключать адресное пространство без переключения контекста, оставаясь в том же потоке, тогда юзерспейс «вызывает» соседний юзерспейс и ничего из того, что вы описали не понадобится.

Теперь подскажи - каким образом осуществляется защита памяти и как быть с кешами при переключении адресного пространства и самое главное - чем это оличается от систем с монолитным ядром.

anonymous
()
Ответ на: комментарий от I-Love-Microsoft

Я про minix и гайку в данном случае. Про gaynode вообще никто не слышал.

fenris ★★★★★
()
Ответ на: комментарий от anonymous

Как и linux за пределами всяких серверов. У всех своя ниша.

А так-же ембидеда, мобилок и немного десктопа.
Ну и сравнивать класс ядер с одним ядром как-то не очень.

MrClon ★★★★★
()
Ответ на: комментарий от Quasar

а эта ОС имеет реальные шансы взлететь

взлететь может все, нужен только достаточный импульс

gray ★★★★★
()

Боже, люди всё так-же продолжают эксперементировать с осеписательством и всё так-же у них получается всякая ерунда.
Вот хоть кто-нибудь бы догадался сделать всё как в plan9. А ещё лучше бы просто написали пару дров к plan9front

Deleted
()
Ответ на: комментарий от anonymous

Вам-то, «хакирам», все черная консолька с зелененькими буковками.

petrosyan ★★★★★
()
Ответ на: комментарий от redbaron

есть возможность переключать адресное пространство без переключения контекста

А кто тебе сказал, что переключение контекста дороже переключения адресного пространства?

без переключения контекста

Как ты себе это представляешь?

оставаясь в том же потоке, тогда юзерспейс «вызывает» соседний юзерспейс

Ахренеть какие-новейшие технологии - это работает по умолчанию итак - в каждой функции в любой портянке.

Вообще на эту тему очень занимательное чтиво недавно было вот тут: http://blog.darknedgy.net/technology/2016/01/01/0/

100% балабольства - 0% кода и бенчмарков. Типичный пример куллстори

registrant27492
()
Ответ на: комментарий от shkolnick-kun

И как же? Настолько решена, что свет не видел ни одного бечмарка чего-либо более-менее работающего.

А так да - уже 20лет заявляют, что проблема с тормазами руста/жабаскрипта/жабки уже решена - да чё там решена - уже сишка лет десять как пыль глотает.

registrant27492
()
Ответ на: комментарий от m0rph

Ну безопасность очень даже требуется, а оно на Rust

I60R ★★
()
Ответ на: комментарий от matumba

Кроме того, при нынешних 4-гигагерцовых кирпичах, можно уже и посмеяться над мифами о контекстах

Смешно.

Пусть всё будет даже на 10% медленнее, но на 146% надёжнее!

Ты хотел сказать на 146% медленнее и на мистические 10% надёжнее. Это да.

При этом в чём конкретно заключается надёжность - никто не знает и не скажет.

registrant27492
()
Ответ на: комментарий от MyTrooName

неплохо было бы увидеть аргументы в пользу того, что тормознутость микроядер - миф

Не понял, почему ты спрашиваешь меня о тормознутости микроядер - я говорил только о usermode-драйверах. Если твой вопрос об этом - гугли gelato user-level drivers.

tailgunner ★★★★★
()
Ответ на: комментарий от zaz

Вот представим себе чистой воды микроядро - каждый драйвер/модуль это отдельный юзерспейс процесс.

Это конечно реализация «в лоб»

Пока эта «реализация» выглядит просто высосанной из пальца. Реальные системы, которые так работают, есть?

не совсем «идеологически верным» решением

Кто автор этой идеологии?

tailgunner ★★★★★
()

Ну нельзя же так: мой хипстодетектор не был на такое рассчитан, его зашкалило и он сломался.

DELIRIUM ☆☆☆☆☆
()
Ответ на: комментарий от anonymous

кто этот банкет оплачивает?

мерзилла и слмсунг очевидно

Пруфлинк или сносим по 4.2?

tailgunner ★★★★★
()
Ответ на: комментарий от anonymous

Значит с безопасностью беда будет.

Каким образом? В худшем случае драйверы будут таким же trusted-кодом, как сейчас.

tailgunner ★★★★★
()
Ответ на: комментарий от matumba

Проблема шареной памяти в том что шарится она по страницам, а это большой оверхед по выравниванию + нужна дополнительная синхронизация для шареного хипа + у каждого процесса должно быть свой кусок шареной памяти а модуль который занимается вводом выводом должен атачить все сегменты и тут уже не получится синхронезировать адресное пространство. А модулей таких много разных и могут быть нестандартные переходы (например дисковая подсистема может мапится в сетевую через NBD).

Ну а по поводу гигагерцов - то все зависит от задачи, иногда запаса производительности хватает с огромным запасом, а в другой раз тратят месяци работы чтоб выдавить +5% перворманса. Вы какнибудь почитайте чего стоит собрать сервер на современном железе который будет обробатывать 1 000 000 (мелких до 100 байт) входящих сетевых пакетов в секунду и генерировать такой-же исходящий траффик.

zaz ★★★★
()
Ответ на: комментарий от Deleted

Вот хоть кто-нибудь бы догадался сделать всё как в plan9.

То, что Unix взлетел, это вообще чистая случайность. Это уже экстраординарное событие. И то, что некоторые его элементы дожили до наших дней, тоже совсем неплохо.

Конечно, лялихсоиды Unix не поняли, для них это просто культ карго. И Plan 9 тут это уже вообще что-то запредельное, про это вообще бесполезно говорить.

anonymous
()
Ответ на: комментарий от MyTrooName

А смысл отдавать всю страницу если мне нужно записать 10 байт ? А потом ее еще тянуть через всю цепочку + адресс данных будет у каждого процесса свой (так как мы врядли сможем отмапить одну и туже страницу во все модуля по одному и томуже адрессу) и в случае малых буферов (техже 10 байт) куда дешевле будет memcpy чем атачить/детачить страницы и перещитывать адресса буферов.

Я не говорю что проблема не решаемая, проблема обсалютно решаемая - но результат все равно будет хуже чем монолитном ядре.

zaz ★★★★
()
Ответ на: комментарий от shkolnick-kun

писали крестухи для крестухов

Это ложь. Грейдона Хоара с тем же успехом можно назвать сишником и окамльщиком, у остальных тоже довольно широкий кругозор.

А твои комплексы перед крестовиками довольно забавны.

tailgunner ★★★★★
()
Ответ на: комментарий от anonymous

сводится к тестированию реализаций а не принципов

А на компе ты тоже будешь юзать принципы, а не реализации?

anonymous
()
Ответ на: комментарий от anonymous

Конечно, лялихсоиды Unix не поняли, для них это просто культ карго. И Plan 9 тут это уже вообще что-то запредельное, про это вообще бесполезно говорить.

И только вендузятниги поняли Linux. И Plan9 тоже. И, наверное, из-за этого понимания они ими и не пользуются.

tailgunner ★★★★★
()
Ответ на: комментарий от shkolnick-kun

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

zaz ★★★★
()
Ответ на: комментарий от tailgunner

гугли gelato user-level drivers

погуглил вместо него - ничего интересного не нашел - бла-бла в Linux все есть для юзермоде-драйверов и есть примеры - драйверы иксов и в общем всё. Что касается практики - сейчас есть UIO который кроме как для экспериментов никто всерьез не воспринимает а от иксовых костылей в юзерспейсе избавились как от страшного сна (DRM + KMS)

anonymous
()

Выглядит как большинство линуксов из галереи.

cipher ★★★★★
()
Ответ на: комментарий от anonymous

гугли gelato user-level drivers

погуглил вместо него - ничего интересного не нашел

okay.jpg

бла-бла в Linux все есть для юзермоде-драйверов и есть примеры - драйверы иксов и в общем всё

У тебя явные проблемы с чтением.

tailgunner ★★★★★
()
Ответ на: комментарий от MyTrooName

Проблема c read который читает в свой буффер будет в том что возможно нам нужно было читать совсем не туда (мы пытаемся дочитать не доконца вычитаный буфер) + нужно потом както сигнализировать системе что пришедший буфер нам уже не нужен и система его может использовать повторно. А это опять накладные расходы на свой хип + возможные мемори лики.

Да и проблема в том что адаптировать весь существующий софт под новую систему ввода вывода задача мягко говоря не тривиальная ...

zaz ★★★★
()

операционная система, написанная на Rust

pub extern "C" fn __rust_reallocate(ptr: *mut u8,
                                    old_size: usize,
                                    size: usize,
                                    align: usize)
                                    -> *mut u8 {
    unsafe { realloc(ptr as usize, size) as *mut u8 }
}
pub extern "C" fn panic_fmt(args: fmt::Arguments, file: &'static str, line: u32) -> ! {
    debug::d(file);
    debug::d(":");
    debug::dd(line as usize);
    debug::d(": ");
    let _ = fmt::write(&mut DebugStream, args);
    debug::dl();

    unsafe {
        loop {
            asm!("sti");
            asm!("hlt");
        }
    }
}

designed to be modular and secure

redox (master) $ grep -r unsafe | wc -l
672

Ясно.

Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)
Ответ на: комментарий от matumba

…НИ ОДНА существующая система не годится для «простого обывателя»…

Простому обывателю наплевать на систему. Простому обывателю нужны вконтактик/отнотрахники, скайп, игры, кино по ссылке (так как торрент качалка это слишком сложно). Посему, простому обывателю годится любая (правильным образом настроенная) система.

anonymous
()
Ответ на: комментарий от tailgunner

И только вендузятниги поняли Linux. И Plan9 тоже. И, наверное, из-за этого понимания они ими и не пользуются.

У виндузятников по крайней мере есть Microsoft Reseach, где они начинают догадываться. И уже не про устаревшую Plan 9, а про более продвинутую Inferno.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.