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)
Ответ на: комментарий от anonymous

функции, возвращающие функции.

int (*blabla(int, int, int))(int, int);

И чо?

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

Жаль, лицензия у ОС не GPLv3, вот была бы у Linux такая, производители бы не стали клепать закрытые неперепрошиваемые железки.

Производители бы засунули туда BSD.

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

Микроядро. Зачем обязательно на расте? Главное же протокол реализовать, а так, хоть на бейсике. Не?

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

Что-то мне подсказывает, что вместе с unsafe, overflow и на расте без проблем можно получить.

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

Доки почитай, чё на форуме шуметь?

Ожидал в новости почитать.

неплохие стартовые деньги

Кикстартер в помощь.

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

Например?

Я вот так сразу не сформулирую. Ибо не погружался в этот вопрос. Но даже я понимаю, что текущего уровня железа должно хватить, чтобы система оптимально самонастраивалась и перенастаривалась под поставленные перед ней задачи. Без помощи всяких аникиев и даже не побоюсь этого слова бородатых админов.

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

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

При помощи libastral, не иначе...

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

Нет, при помощи, например, генетических алгоритмов. Но как я и говорил, в тему не погружался, но пятой точкой чую, что такая система сейчас вполне возможна.

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

А когда телефоны перестали быть эмбеддедом?

Формально, Symbian поддерживал x86 (http://i.imgur.com/M3HE1YK.png ), другое дело, что массовые устройства были embedded. В любом случае, это не отменяет тот факт, что ОС с микроядром могут быть успешными.

X-Pilot ★★★★★
()
Ответ на: комментарий от m0rph

для ее успеха требуется поддержка железа [...] с драйверами будут проблемы.

Щаз, все подорвались писать дрова на всрасте.

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

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

Вроде сам линь, от того что написан на сишке, не страдает.

Ога, не страдает... наверное, поэтому 2016 стал годом уязвимостей. Хоть бы плюсы взяли уже вместо сишки, некроманты.

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

т.к. для ее успеха требуется поддержка железа и наличие разнопланового софта.

достаточно внедрить поддержку драйверов линукс

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

Передай ей трубку, я с ней поговорю.

Я на связи. Задавай свои вопросы.

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

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

Итог Nokia показал, что они, мягко говоря, не всегда принимали логичные и оправданные решения :)

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

гибридное оно именно потому что негибридное тормозит

Это было актуальным, когда частота процессоров единицами мегагерц измерялась.

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

Это было актуальным, когда частота процессоров единицами мегагерц измерялась.

В данном случае больше важна скорость доступа к памяти, т.к. потери времени на сохранение-восстановление контекста и работу с TLB.

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

и делает memcpy данных в адресное пространство ext4
и memcpy данные ему
и опять memcpy
и делает два memcpy в адресное пространство SATA драйвера
...

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

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

В данном случае больше важна скорость доступа к памяти, т.к. потери времени на сохранение-восстановление контекста и работу с TLB.

Один фиг, контекст переключать нужно не миллиард раз в секунду. Пусть одно переключение занимает много времени, но между переключениями остаётся намного больше.

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

Проблема шареной памяти в том что шарится она по страницам, а это большой оверхед по выравниванию

Мы же только что рассматривали вариант записи на диск. А она итак блочная :) Кроме того, передача блока подразумевает отсутствие необходимости в долгом хранении. Так что даже с оверхедом — не страшно. Передали, обработали, освободили.

а в другой раз тратят месяци работы чтоб выдавить +5% перворманса

Если речь о единовременной задаче, то это прокол маркетинга. Месяцы работы команды программистов — проще купить вторую машину и получить не +5%, а +100% прирост производительности :) Если речь о продукте для широкого использования — ну, пусть покупатель приобретёт машину на 10% более быструю.

В общем, это очень специфические запросы и проблемы. Сегодня разброс производительности парка активно работающих машин, на порядок будет, так что 5% потери на ОС тут никакой роли не сыграют.

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

А смысл отдавать всю страницу если мне нужно записать 10 байт ?

А 10 байт можно передать и через копирование, оверхед смешной будет :)

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

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

Да ладно, а как же Android? :)

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

Микроядра хороши для изоляции процессов друг от друга, но современные реализации как были говном, так и остались. «Оптимизаторы» вносят дыры, туда куда не надо вместо того, чтоб действительно заниматься построением быстрой отзывчивой безопасной системы. Прошлое и текущее железо потворствует «оптимизаторам» и это еще один печальный факт и шаг в сторону - «не взлетит». В таком виде и правда эталонное - НЕНУЖНО

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

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

А сейчас существует пример такого гипервизора, для которого имеется большой набор драйверов? Я не троллю, действительно интересно.

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

Если речь о продукте для широкого использования — ну, пусть покупатель приобретёт машину на 10% более быструю.

Нет, не так: «Если речь о продукте для широкого использования — ну, пусть откажемся от 10% потенциальных покупателей».

Согласитесь, в такой постановке вопроса, проблема выглядет несколько иначе.

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

по средствам того же libusb
о средствам системной абстрации V4L

Млять, такая сложная руская языка.

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

ну, пусть откажемся от 10% потенциальных покупателей

От 0.01%

...

Согласитесь, в такой постановке вопроса, проблема выглядет несколько иначе.

И, да, в крупном бизнесе и от 10% легко отказываются в вопросах оптимизации расходов. Посмотри, как резво тот же Гугл убивает или кастрирует проекты. Скажешь, Гугл принимает финансово неверные решения? :) В ту же степь Microsoft, Apple...

В мире опенсорса ситуация похожая. Gnome, Systemd, PulseAudio и т.п... Многие очень легко идут на потерю 1-10% пользователей ради оптимизации ресурсов разработки.

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

Я бы изначально сделал паскалевский вариант.

Это уже вопрос привычки: кому что ближе. Я сомневаюсь, что те же авторы паскаля задумывались об авто-типизации. Просто так получилось, что их вариант более подходящий.

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

Кз грамматика

У раста как-будто регулярная

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

Товарищ, ты генетикой одни ключи сборки на хорошем сервере под свой software stack будешь неделю считать.

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

Но в паскале, которым, по твоим словам, вдохновлялись создатели раста - нет.

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

Только вот есть один нюанс в расте - надо явно разыменовывать переменную при вызове функции. То есть, он в этом ещё меньше напоминает пасклаль, чем кресты.

Может, уже хватит переводить стрелки на кресты? Речь о С и Rust.

Вообще-то, он ещё в сисярпе появился.

Так это может, rust на C# похож, а не на C? (не могу сам судить, с шарпом не знаком, но слышал, что его пилили беглые дельфисты).

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

От 0.01%

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

Посмотри, как резво тот же Гугл убивает или кастрирует проекты.

Посмотрел, не увидел, чтобы гугл хоть раз убил проект, непосредственно приносящий прибыль. Даже от 0,01% не отказываются. В ту же степь Microsoft, Apple...

Gnome, Systemd, PulseAudio
Многие очень легко идут на потерю 1-10% пользователей ради оптимизации ресурсов разработки.

Не увидел связи.

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

Возможность делать более высокоуровневые абстракции там, где можно. Ну, и safety.

Для этого уже есть плюсы с их обратной совместимостью с сишным кодом. Все-таки, в rust низкоуровневое программирование прилеплено отдельной фичей к общему safe-way-ю, а не наоборот. По этой причине и громоздкие записи низкоуровневых операций по сравнению со штатными, и отсутствие таких фич как goto, сложно реализуемых и практически ненужных в языках высокого уровня.

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

А далее любое приложение запрашивает, скажем, /HW/UserInput/Keyboard - «дай свой API». В этом API есть две стандартных (для ОС) функции GetInfo и GetKey.

Что же мне это напоминает? Да это же Plan9! Не взлетело.

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

Одна из фич - безопасность работы с памятью без GC. И где это по твоему нужно, если не на низком уровне?

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

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

Видимо, ты говоришь о схожести ЯП глядя на используемые ключевые слова и знаки

Именно.

я оцениваю сложность портирования кода с одного на другой

У мня даже мыслей о таком портировании никогда не было (кроме вырожденных случаев, вроде C -> C++, Python2 -> Python3).

Может, уже хватит переводить стрелки на кресты?

Я просто привел кресты как курьёзный пример паскалеподобия по твоей логике.

шарп ... пилили беглые дельфисты

Не знаю, кто его там пилил, но это причёсанная Жабка, и по синтаксису, и по семантике, и по идеологии.

Ладно, мне уже надоел этот спор. Тем более, тебе уже совершенно верно написали, что Раст - это синтез функциональщины с синтаксическими заимствованиями из с-подобных языков.

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

Пример С++ показывает, что работа с памятью прекрасно заворачивается в высокоуровневые абстракции без оверхеда.

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

Все-таки, в rust низкоуровневое программирование прилеплено отдельной фичей к общему safe-way-ю, а не наоборот.

Растовский safe-way - это повальное RAII + проверки времени компиляции + строгая типизация, они не дают рантайм-оверхеда.

По этой причине и громоздкие записи низкоуровневых операций по сравнению со штатными

Только тех, которые потенциально небезопасны, вроде арифметики указателей и nullable pointers. В safe-коде, наоборот, операции с рантайм-оверхедом намерено сделали boilerplate-ом.

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

Я просто против подмены понятий. Никто не говорил, что они вообще не могут быть успешными. Утверждалось, что могут быть успешными для embedded. Собственно, на серверном рынке, десктопе этого самого успеха и не видно. Думаю, и не будет. Особенно когда речь будет идти о хайлоад или отклике в любимом шутере.

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

В Minix 3 до недавнего времени даже динамического связывания не было.

Только http://www.helenos.org/ имеет небольшие шансы взлететь.

Что ж ты делаешь, содомит. У helenos до сих пор динамического связывания нет.

А эта тотальная обмазанность корутинами...

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

Что ж ты делаешь, содомит. У helenos до сих пор динамического связывания нет.

Её довольно активно пилят, однако ж.

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

Её довольно активно пилят, однако ж.

Ага, лет 5 уже. Если не больше.

Они там хеш-таблицу запилили?

anonymous
()

Привет всем, кто использует Линукс — Я делаю (свободную) операционную систему (всего лишь хобби, она не будет большой и профессиональной, как Андроид) для клонов 686 (ARM)

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