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 строку короче Раст-реализации.

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

В смысле?

А как там отстаивать?

Файл я туда отправил, сделал все по инструкции...

Там в трекере висят коммиты с осени прошлого года, походу туда давно никто не заглядывал...

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

Итак, запишем: преимущество Си в том, что Си-реализация связного списка на 1 строку короче Раст-реализации.

брежнев_и_никсон.txt facepalm.jpg

shkolnick-kun ★★★★★
()

Кстати, если всем уже надоело мусолить «Си против всего мира», можно посмотреть на операционку на D, называется XomB.

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

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

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

Где ещё его использовать, кроме как не в циклах/ифах?

Они их юзают для возврата значений из функции и из _веток_ ифа. Едва ли разрабы раста делали их для такого юзкейза - они не ценят возможность сделать кучу императивщины в одну строчку.

Она не нужна там, где сейчас пишут на сишке и на прочих unsafe

Это бессмысленный разговор. Лично я запасся попкорном и наблюдаю, что получится у мозиллы с растом. И через время уже можно будет объективно судить о его нужности/эффективности.

Даже ты, если это ты - впаривал мне ООП на сишке.

Это я. И я ООП на сишке не использовал и тем более не думал никому не впаривать. Я просто его привёл, как пример юскейза для указателей на функции в страктах. Так что давай ещё попытку.

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

«Всё есть файл» - это дурь, концептуальная блажь фантазёров из 70-ых. Сегодня это читать просто смешно.

Откуда Вы все лезете?

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

DOS уже давно есть.

Мне 64битный пожалуста и с поддержкой терабайтных винтов и ссдешников вместе с усб 3.0 и так далее.

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

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

Авторы раста слишком переоценены. Очень.

Это бессмысленный разговор.

Нет.

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

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

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

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

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

А раз есть попытки к нечестной конкуренции - значит честная обречена.

И через время уже можно будет объективно судить о его нужности/эффективности.

Я как эсперт заявляю - эффективности там ровно -1. А нужность никого не интересует - в этом мире объективная нужность и применяемость никак друг с другом не связана. Что получится спарить - то впарят, а нужно или нет - никому не важно.

Это я. И я ООП на сишке не использовал и тем более не думал никому не впаривать. Я просто его привёл, как пример юскейза для указателей на функции в страктах. Так что давай ещё попытку.

В этом и суть - ты привёл этот как что-то нужное.

Как действует крестовая/раст пропаганда: на сишке пишут ООСкастыльное-ко-ко-ко. А вот у нас есть ООП как в куллязыке не кастыльное - всё круто, а сишники дебилы. Фу на них. Именно по этому наш язык лучше.

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

Так что давай ещё попытку.

Попытку чего?

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

А что-то посерьёзней?

Сокеты - дерьмо. Любая информация о системе в рантайме? Дерьмо. Вообще какая-либо информация - дерьмо. Работа с файлами? Дерьмо. Ладно хоть ммап есть. ipc? Дерьмо. Качество любого api? Страшное дерьмо.

Файлы - это абстракции уровня шела, а не программ.

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

они хотят исключить определенные кейсы, которые, тем не менее, возможны в С.

Довольно точная формулировка одной из целей Rust.

Перечитал цели разработки rust два раза. Ничего про С там не нашел. Может, ткнешь носом?

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

они хотят исключить определенные кейсы, которые, тем не менее, возможны в С.

Довольно точная формулировка одной из целей Rust.

Перечитал цели разработки rust два раза. Ничего про С там не нашел

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

Может, ткнешь носом?

Нет. Ищи сам.

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

Авторы раста слишком переоценены.

Как ты это определил?

В целом раст изначально был признан проигравшим.

На кой его тогда пилили?

Если будет тормозить - зато масштабируется

Куда масштабируется? Кто в это поверит?

будет такое же дырявое и кривое - оно же многопоточное

Кого это будет волновать, что оно многопоточное, если оно дырявое и кривое?

И не надо про фанатиков, на одних фанатиках аудиторию не построишь.

на сишке пишут ООСкастыльное-ко-ко-ко. А вот у нас есть ООП как в куллязыке не кастыльное - всё круто, а сишники дебилы.

Зачем сишное ООП в прикладном ПО, когда есть кресты?

Попытку чего?

Рассказать,

Кто где такое утверждал?

наделяют их приниципиальной важностью(как сделал ты)

Опять ты свой кривой libtelepathy включил. Что я наделял принципиальной важностью?

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

Что ж, раз спор закончен

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

так уж и быть, оставлю последнее слово за тобой.

«Так возьми же ее, непрошеную» (ц)

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

Шутка в том, что самая «быстрая» проверенная реализация fasta на С имеет фатальный недостаток, который я поправил во время прошлого растотреда.

Но автор «игры» не торопится принимать новые реализации, некоторые висят аж с 14 года...

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

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

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

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

«Всё есть файл» - это дурь, концептуальная блажь фантазёров из 70-ых. Сегодня это читать просто смешно.

Тогда тебе винда духовно ближе. А вот в Linux намного больше «всё есть файлов», чем под виндой :D

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

Так что не нужно тут имаго применять :)

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

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

раньше все на асме и С было а счас жабы да педоны - тормозить не перестанет.

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

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

Скорее наоборот, виртуальные машины стараются больше операций самостоятельно делать, а не системе отдавать.

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

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

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

А вот и нет, в современных микроядрах можно мапить память из одного адресного пространства в другое, соответственно НЕ ВСЕ ТАК ОДНОЗНАЧНО.

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

нужны экзоядра.

И как там будет с безопасностью?

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

можно мапить память из одного адресного пространства в другое

а когда это было нельзя и при чем тут микроядра ?

И как там будет с безопасностью?

отлично если язык безопасный

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

Ни одно проекта «микроядерной архитектуры» в мире не существует.

А как же QNX и построенная на ней Blackberry?

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

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

Это точно не С. Писать каждый раз if() { вместо if { и struct Type x; порядком надоедает.

anonymous
()

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

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

Первый раз вижу человека, НАСТОЛЬКО незнакомого с компьютерными реалиями последних тридцати лет :)

Это вы отстали от жизни. Так было раньше. Но вот сейчас десктопный corei7 проигрывает, порой, десктопному core2duo 5-летней давности. Процессоры давно упёрлись в предел по частоте и наращивают ядра, а это не всегда даёт преимущества.

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

Если они не приносят прибыль, они вообще не клиенты. Клиентами Гугла являются не пользователи, а рекламодатели, и на их нужды Гугл никогда не забивал.

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

сейчас десктопный corei7 проигрывает, порой, десктопному core2duo 5-летней давности

Только это не имеет никакого отношений к утверждению «Пользователь не станет менять машину ради ваших тормозов». Да, сама Windows на десктопном x86 «насытилась» и уже лет 10 как для чисто офисной работы апгрейдиться смысла нет. Но пользователи постоянно меняют железо на более мощное на:

— Коммуникаторах и планшетах
— Ноутбуках
— Игровых десктопах
— При активной работе с Интернетом

...

Тут мало что концептуально поменялось за последние 30 лет. Сравни производительность того же Firefox 10-летней давности (1.5) и нынешнего. Это просто песец, а не разница :)

Опять же, в 2006-м 4Гб оперативки было шикарно. А 2Гб — круто. 1Гб — норма. Я в 2006-м на 512Мб машине умудрялся крутить MMORPG-сервер с десятками тысяч активных объектов, запущенный в отладчике под Eclipse!

Сегодня же 4Гб мало даже чтобы просто комфортно сёрфиться в Интернете.

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

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

На Z80 так было. Правда, не для многозадачных систем делали, а для лёгких обработчиков прерываний (что, в общем, почти то же самое :)) — типа, в обработчике просто переключил набор регистров, отработал, переключил назад, вернул управление программе. Экономия на сохранении регистров. Кончилось тем, что в обработчиках прерывания пришлось, порой, сохранять оба набора. Т.к. их активно стали использовать (оба) как в основной программе, так и в обработчиках прерываний :D

На ARM веселее. Там есть маскирование регистров для обработчиков прерываний (на ARM7 и Cortex-R, как минимум), чтобы можно было не сохранять текущее состояние регистров. Переключение автоматическое, чтобы не было соблазнов ,)

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

Т.е. ты признал убогость своего довода?

Нет, конечно.

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

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

Вот опять ты не понимаешь как это работает. В расте нет «возможности использовать блок в if». Там есть возможность возвращать значение из блока. И использоваться это может в любом месте - при возврате из функции, ну или в том же if.

То есть, это куча «особых правил» под отдельные случаи, а «минимальный» набор из которого остальные абстракции строятся. Одна из тех вещей, которые мне нравятся в языке.

Любой сильный адепт не пишет на api - он пишет api.

И как это вообще относится к обсуждаемой перегрузке операторов? Когда ты в крестах пишешь operator== - это «использование АПИ» или нет? Если нет, то чем отличается перегрузка в расте? Если да, то покажи как ты это делаешь без «использования АПИ». Только чур без обычного «да мне это вообще не надо» и т.д. Ведь именно ты сказал, что не хватает перегрузки операторов в расте.

Понимаешь в чём штука - я знаю что мне нужно и я знаю что может мне это дать и так же я знаю, что то, что нужно мне

Нет, не так. Ты ужасно закостенел и просто не можешь взглянуть с другой точки зрения. Если код на языке нельзя написать дословно так как ты привык, то всё - это объявляется проблемой. Более того, кучу раз ты заявлял, что в расте чего-то там нет, а оно находилось. Ну да, появлялись оправдания типа «там буквы не в том регистре».

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

Я не критикую ваш руст

Я вижу.

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

я не верю, что в расте необработанный bounds checking мистическим образом завершит инстанс, а не упадёт.

Что ты вкладываешь в «упадёт» в этом контексте?

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

Я знаю что такое RAII

Тогда к чему был тот аргумент? В расте RAII работает и для небезопасного кода.

Вот только не ценой разделения всего кода на «безопасные» и «небезопасные» участки.

Это не цена, а преимущество.

То же касается и новых проектов, ибо последний аргумент «за rust» отпадает.

Чего?

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

Где ещё его использовать, кроме как не в циклах/ифах?

В присваиваниях:

let res = {
    let a = 10;
    let b = 20;
    a + b
};

Она не нужна там, где сейчас пишут на сишке и на прочих unsafe

Пишу на С++, «safety» нужна. И что дальше? И нет, жавой/шарпом заменить не предлагать.

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

В конечном итоге родился гениальный план - как срыть провал раста, если новый движок окажется хуже строго - впилить в него многопоточность. А это уже сотни путей к отступлению.

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

Авторы раста слишком переоценены. Очень.

Авторы?.. Ты их по именам знаешь? Я нет, даже ников толком не помню.

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

Авторы?.. Ты их по именам знаешь? Я нет, даже ников толком не помню.

Не напрягайся пацан. Авторы Раста — это мурзилловцы. Андазначна!

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

Авторы Раста — это мурзилловцы. Андазначна!

А они переоценены? Браузер не самый популярный, по деньгам - тоже так себе.

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

Вот только не ценой разделения всего кода на «безопасные» и «небезопасные» участки.

Это не цена, а преимущество.

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

И откуда вы только беретесь, такие уверенные что rust создавался для низкоуровневого программирования? Авторы rust даже об этом не заикнулись. Сама Mozilla его использует для прикладухи, тяжелой и сложной, которую на С никому бы в голову не пришло писать (и я так понял, в перспективе они видят firefox на rust). И тут стоило кому-то сваять ОС на нем, как толпа фанов сразу уверовала что rust - низкоуровневый язык. Вы и жопу объявите пригодной для вырезания гланд, когда кому-то это удастся?

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

И откуда вы только беретесь, такие уверенные что rust создавался для низкоуровневого программирования?

Мы просто следим за разработкой языка и знаем о нем несколько больше, чем те, кто недавно узнал, что «кто-то сваял ОС на нем».

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

Мы просто следим за разработкой языка и знаем о нем несколько больше, чем те, кто недавно узнал, что «кто-то сваял ОС на нем».

А я слежу и принимаю участие в системном программировании - модули ядра, мидлварь. Посему разбираюсь в этом несколько больше, чем те, кто где-то слышал о «проблемах с безопасностью кода» на С.

Так что причиняйте «счастье и демократию» через внедрение rust где-нибудь в других областях. Тут он неуместен.

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

Зачем тогда ioctl? Не потому ли что концепция слегка обосралась?

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

Посему разбираюсь в этом несколько больше, чем те, кто где-то слышал о «проблемах с безопасностью кода» на С.

Оно и видно.

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