LINUX.ORG.RU

Redox OS 0.6.0

 ,


0

2

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

Изменения в 0.6:

  • Переписан менеджер памяти rmm. Это устранило утечки памяти в ядре, которые стали серьёзной проблемой с предыдущим менеджером памяти. Также поддержка многоядерных процессоров стала стабильней.

  • Многие вещи от студентов Redox OS Summer of Code были включены в этот релиз. Включая работы по ptrace, strace, gdb, disk partitioning, logging, io_uring и т.д.

  • Переработана стандартная библиотека С relibc для обеспечения большей совместимости с приложениями.

  • Новый формат пакетов pkgar, который быстрее чем старый формат tar.

  • Обновлена коллекция с примерами пакетов: cookbook

  • Много времени к подготовке к этому выпуску было потрачено на адаптацию кода к ломающим изменениям в Rust Nightlies, где был изменён дизайн макроса asm. Также другие проблемы удерживали разработчиков от выпуска. Они надеются что новые версии теперь будут выходить чаще. (Предыдущий выпуск 0.5 был: 24 марта 2019 г.)

Скриншот из VirtualBox: https://i.imgur.com/QqylHXj.png

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

★★★★★

Проверено: DoctorSinus ()
Последнее исправление: DoctorSinus (всего исправлений: 4)

Ответ на: комментарий от fsb4000

Вот, для тебя две главы написали :)

Да фиг с ними с этими главами, меня больше местные лоровские растоманы умиляют (:

Oberstserj ★★
()
Ответ на: Rust II от anonymous

В Rust II будет предусмотрена защита от утечек памяти.

Also, вторая реализация раста будет по-прежнему написана на С.

Oberstserj ★★
()

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

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

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

Однако, кой смысл выкидывать llvm?

А как же дырявый C++ с сегфолтами? Заглянешь под кровать, а там уязвимости с сегфолтами и утечками памяти сидят, и как жить после такого?

goto-vlad
()
Ответ на: комментарий от goto-vlad

Да что за наркоманский бред?! Если я пишу программу с уникальной фичей Х, а этого нет у другого ПО, то я должен переписать все другое ПО? Зачем?! Наиболее качественные и лучшие программы написаны на отстойных ЯП, но они становятся качественными из-за других вещей, например, десятки лет дебаггинга и поиска багов, вложение колосального времени сотен и тысяч разрабов. Ни кто не говорит, что взяв один раз в руки Раст ты станешь хорошим разработчиком.

AntonyRF ★★★★
()

Многие вещи от студентов

А я думаю, откуда такая популярность у этого педераста

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

Ах какие красивые фотки, например

Panasonic Toughbook CF-18

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

Постойте-ка, а там ещё есть

ASUS eeePC 900

На ЛОРе вопрошали, что на него поставить, может, как раз Redox? Хотя бы ради фана, если софта не хватает?

hobbit ★★★★★
()
Последнее исправление: hobbit (всего исправлений: 1)

Redox OS должен прийти на замену GNU/Linux, BSD

Вот почему Redox OS должен стать переемником GNU/Linux, BSD:

  • Разработан с использованием языка Rust и концепции микроядра. Что не получилось у проекта Hurd, должно получиться у Redox OS.

  • Развивается в соответствии с философией Unix, некоторые идеи заимствованы из SeL4, Minix и Plan 9: идеи создателей Unix будут воплощены в жизнь.

  • Для совместимости с существующими приложениями предоставляется специальная POSIX-прослойка, позволяющая запускать многие программы без портирования. Пора избавиться от устаревшего наследия BSD систем и от приставки GNU в названии ОС. Никаких linuxulator-ов в системе, только прослойка совмесиимости с POSIX.

  • В системе применяется принцип «все есть URL». Например, для записи в лог может использоваться URL «log://», для взаимодействия между процессами «bus://», для сетевого взаимодействия «tcp://» и т.п.

  • пользовательское окружение в Redox построено на базе собственной графической оболочки Orbital

  • Проектом также развивается собственный пакетный менеджер, набор стандартных утилит (binutils, coreutils, netutils, extrautils), командная оболочка ion, стандартная Си-библиотека relibc, vim-подобный текстовый редактор sodium, сетевой стек и файловая система TFS, развиваемая на основе идей ZFS (модульный вариант ZFS на языке Rust).

Настало время переосмыслить идеи отцов-основателей Unix и избавиться от тяжелого наследия, множества накопившихся недостатков существующих систем (systemd, XWindow и др.).

anonymous
()
Ответ на: Redox OS должен прийти на замену GNU/Linux, BSD от anonymous

Redox OS должен прийти на замену GNU/Linux, BSD

FSF и GNU мне подарили OS GNU/Linux. GNU/Linux копилефтен, а это значит что копираст не сможет хитро заменить на GNU/Linux на что-то своё. В копилефтной среде голос Сообщества имеет вес.

Redox OS - по лицензии БЗДуноподобен, MIT-образен, пермиссивен, а это плохо, это очень плохо. В пермиссивной среде голос Сообщества не имеет веса. Открытость и разрешиловка без КОПИЛЕФТА - это Зло.

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

Почему я вбиваю в поисковике rust, а мне выдаётся какая-то игра

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

anonymous
()
Ответ на: Redox OS должен прийти на замену GNU/Linux, BSD от anonymous

файловая система TFS, развиваемая на основе идей ZFS

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

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

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

Как Шишкин? Которому RaizerFS интересен как метематической концепт. Но поддреживать свою разработку он не хочет. Это же приземлённо. А чо? Руский интеллихент-технарь.

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

https://en.wikipedia.org/wiki/Memory_safety#Types_of_memory_errors

Тот случай, когда приведённый пруф тебя же и опровергает. Читаем в начале: «For example, Java is said to be memory-safe because its runtime error detection checks array bounds and pointer dereferences.» Да вот беда, от утечек памяти джава (да и вообще любой язык в котором есть динамически выделяемая память) не спасает. Ты можешь тупо завести статический массив и сохранять туда указатели, либо намудрить сложносвязанную структуру, а потом случайно захватить безобидный её кусочек в замыкание.

Так что мимо, претензии Раста на безопасность памяти данной статьей не опровергаются

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

Читаем в начале: «For example, Java is said to be memory-safe because its runtime error detection checks array bounds and pointer dereferences.»

То, что кто-то там что-то говорит (без пруфов) - это проблемы того, кто говорит. Жава «официально» не заявляет, что memory-safety.

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

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

И есть аноним (возможно это ты), который нихера делать не будет, но решил доебаться, и он хочет показать, что авторы Раста совершили страшнейший грех, использовали термин неправильно. А так как мнение анонима никому не интересно, в качестве примера правильного использования термина привёл статью в Вики. Но эта же самая статья сообщила о безопасности памяти в языке Джава. Следовательно, аноним оказался с голой жопой, либо его пруф - просто малоосмысленный набор букв авторов википедии, которые сами толком не понимают что пишут, либо термин «memory-safe» не требует защиты от утечек (тем более это невозможно), а достаточно «checks array bounds» и чтоб «pointer dereferences» не приводил к доступу куда-то не туда.

В любом случае получается, что аноним сам себя поимел своей же собственной ссылкой.

khrundel ★★★★
()
Последнее исправление: khrundel (всего исправлений: 1)

Хороший язык Rust, идеальный детектор: хорошие люди пруцца, а неадекватов люто корчит.

anonymous
()

Говно ваш хруст. Написал на нём прогрумму для решения квадратных уравнений, только перепутал плюс на минус и мне поставили двояк. И ЭТО БЕЗОПАСНОСТЬ??? СДОХНЕТЕ СВОЛОЧИ!!!!! КАК Я ВАС НЕНАВИЖУ ОБЕЩАЛИ БЕЗОПАСНОСТЬ А ЭТО ЧТО????? МЕНЯ ИЗ ЗА ВАС В АРМИЮ ЗАБИРАЮТ СУКИ ТЫПЫЕ ПИДЖАРАСЫ ГОВНОЕДЫ УРОДЫ КЛОЫНЕ ВАНИЧИЕ ПИДАРЫ АНАЛЬНЫЕ ГАВНАЕДЫ СУКИ ИДИОТЫ ДЕБИЛЫ СРАНЫЕ КРЕТИНЫ Я СРАЛ ВАМ В РОТ ГОВНА!!!!!!!!!!!! СРАЛ ГОВНА!!!!!!!!!!!!!!!!! СРАЛ ГОВНА!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

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

Нет, чувак, не катит.

Еще один, у кого отсутствует критическое мышление: «все, что написано в газете - это правда». Написано в газете memory-safety - значит это так и есть. И неважно от чего safety: что «спортлото» навыдумает - то и есть safety.

Это как про «адекватность». Никого не волнует, что можно говорить только про «адекватность модели (поведения)», то есть надо сразу говорить про модель - без модели нет адекватности, нет смысла говорить об адекватности.

Без заранее описанных угроз/ошибок нет безопасности. Поэтому я дал ссылку именно на угрозы, ошибки от чего нужна защита.

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

Боюсь, что к тому времени как он её допилит все про неё забудут и никому она будет не интересна. Уже более десяти лет прошло как Рейзера того-этого, а reizer4 выкинули из ядра. Печально это всё.

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

Еще один, у кого отсутствует критическое мышление: «все, что написано в газете - это правда».

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

Ещё раз: если единственный твой пруф твоему же утверждению противоречит, значит что-то с тобой не так. Ищи другие пруфы как минимум.

Даже без этого обосрамса в принципе утверждение «если язык не решает принципиально нерешаемую проблему то он не имеет права называться безопасным» оно попахивает идиотизмом. Ну не имеет смысла вводить термин «memory safety» в контексте описания ЯП, такое, что очевидно что под это определение не подойдёт ни один язык.

Если же не пытаться в этот идиотский формализм, то с предотвращением утечек памяти у Раста всё просто замечательно. Я бы даже сказал, что получше чем у той же Джавы. Память в Расте может утечь 3 способами (не считая unsafe). 1, тот же что и везде, через захват владения каким-то статическим объектом. 2, присутствующий у всех языков с rc или владением, через цикл владеющих ссылок. 3, просто вызвав специальную функцию для утечки. На первый взгляд это дофига. Однако важны только случаи, когда утечка происходит ненамеренно. В Расте довольно богатый выбор типов ссылок, владеющие и не владеющие ссылки разделены, поэтому функция, которая не требует владения, не сможет сохранить владеющий указатель незаметно. В Джаве может.

По сравнению с плюсами тоже неплохо: из-за реализованных из коробки и без костылей работающих мувов, а также из-за отсутствия необходимости тянуть дремучий легаси, код типа factory.createModel().serialize(stream) не потечёт. На плюсах такое тоже возможно, но на практике подобную хрень делают по-старинке, через обычные указатели.

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

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

Вот и находят люди противоречия в заявлениях «спортлото» про memory-safety и заодно про thread-safety. И приходится «спортлото» распротиворечивать свои заявления, включая вот это https://doc.rust-lang.org/nomicon/races.html. UB, а не safety. И чем это лучше Си?

anonymous
()
Ответ на: ЛОГЕКА от anonymous

Rust не нужен

Заметь, не я это сказал.

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

На каком-нибудь реальном железе это работает или только в виртуалке?

Ты делишь ОС на ОС для железа и ОС для виртуалок?

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

Нет.

Хотя я читал про ОС, которую сами её авторы ориентировали на работу исключительно в виртуалке, это позволило выкинуть кучу лишнего. Вот название в упор не помню. :(

Но я спрашивал про другое — готова ли уже сама ОС для запуска на железе, есть ли драйвера и др. Судя по ответу — да, есть.

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

Чё-то ты вообще запутался.

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

включая вот это https://doc.rust-lang.org/nomicon/races.html.

Ты сам эту ссылку читал?

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

Пример с проблемой во втором случае, когда гонка вызывает в на первый взгляд корректном коде выход за границы массива (в ансейф блоке) - это тот пример, который можно написать либо специально, либо только если ты вообще дурак и копируешь текст не задумываясь. Там если что из переменной, которая специально описана как доступная из нескольких потоков, особым способом idx.load(Ordering::SeqCst) 2 раза извлекается значение и используется для проверки границ, а потом для доступа. Если человек видя особый ритуал чтения значения не заподозрил, что тут что-то не так, не посмотрел, что же эта конструкция load(Ordering::SeqCst) делает, то тут как бы очевидная ошибка в коде за которую несёт ответственность программист, и никакие отмазки не катят.

Аналог на плюсах выглядел бы как

if (*idx < data.size()) {
    std::cout<<data[*idx]<<std::endl;
}

Если ты и после этого не понимаешь, чем Раст лучше Си, то извини.

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

Чё-то ты вообще запутался.

А ты?

На этом этапе ты уже обосрался …

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

Так тема ушла от первоначального «ответь за memory-safety» в сторону «отвечаю за всё, что мне вздумается», то …

… я сливаюсь.

PS. На досуге поищи теоретическое обоснование, что так называемая «модель владения» с borrow checker’ом вообще работает корректно без противоречий. А то вдруг окажется, что колосс на глиняных ножках. Не говорю про то, то нет еще «модели памяти» но уже гарантируем «защиту».

anonymous
()

Redox Loader - Stage Two
Required CPU features are not present…

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

Вообще-то reiser5 уже вышла, которая неплохо работает даже для беты

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

гораздо менее серьёзный чем Serenity SerenityOS … operating system for x86 computers

она устарела даже не родившись

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

А ты?

А я - нет.

Переход на обсуждение личности,

При чём здесь твоя личность? Ты просто 2 раза обосрался. Это так сказать вопрос факта.

PS. На досуге поищи теоретическое обоснование, что так называемая «модель владения» с borrow checker’ом вообще работает корректно без противоречий.

Зачем? Нахрена мне теоретическое обоснование работы молотка, например?

Не говорю про то, то нет еще «модели памяти» но уже гарантируем «защиту».

Чувак, я понимаю, что ты уже в панике бросаешь вообще всё что когда-то слышал, но серьёзно, ты отвечаешь на сообщение, где упоминается Ordering::SeqCst, неужели у тебя в голове никаких сомнений не возникло?

С практической точки зрения в Расте уже есть всё что нужно. Нормальная блокировка, атомики с ордерингом. Только вот на странице докуменентации нет описания модели с какими-то обещаниями. Однако это язык, который, в отличие от java, следит за межпоточным обращением к данным и требует особых ритуалов для избегания гонок. Расту, при таком подходе, модель памяти в общем-то и не нужна.

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

Зачем? Нахрена мне теоретическое обоснование работы молотка, например?

Затем, чтобы знать, что не используешь микроскоп вместо молотка.

Ordering::SeqCst

Это всего лишь малая часть модели памяти (которой нет), которая гарантирует порядок только атомарных операций (а это только малая часть работы с памятью). И этот порядок не гарантирует в общем случае ни memory-safety, ни thread-safety, а гарантирует только при правильном использовании.

anonymous
()

Я сегодня под хмурым и меня прёт от уважения.

С уважением Владимир

anonymous
()

Это устранило утечки памяти в ядре

Вот смех. Адепты Rust’а как раз и гордились,что утечки памяти в нем невозможны в принципе)))

anonymous
()

Это устранило утечки памяти в ядре

Ха..ха…ха. И это надежный системный язык ?!)))

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

Затем, чтобы знать, что не используешь микроскоп вместо молотка.

Знаешь, вообще касательно компьютеров и всякой вычислимости есть много теорем. Ты уверен что хотя бы 70% их знаешь как формулируются? Чем тебе поможет знание ещё одной?

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

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

Во-первых, набери в гугле c++ memory model. Прочитай. Увидишь перечисление примитивов синхронизации и атомиков. Примитивы синхронизации хуже растовских, атомики такие же. Ну, точнее это растовцы просто передрали, чтоб не париться. Просто всё собрано в 1 пдф, поэтому мемори модель как будто есть.

Модель памяти - это описание, как компилятор (и, в некоторых случаях, процессор) может переставлять операции записи относительно синхронизации и доступа к особым типам переменных, например атомиков или volatile. Чтоб не было случая, что программист всё правильно синхронизировал, а компилятор переставил операции и получилась гонка. В Расте система на 2 головы выше, примитивы синхронизации привязаны к охраняемым данным, а неохраняемые данные из другого потока просто недоступны.

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

Всё, что нужно знать о расте.

Вот нашёл новость

https://blog.rust-lang.org/inside-rust/2020/06/08/new-inline-asm.html

We renamed the existing asm! to llvm_asm!, so that people currently using inline assembly on nightly can continue to use the existing syntax for now. (We plan to remove this syntax eventually, given its fragile ICE-happy nature, but while evaluating the new syntax we want the old syntax available for comparison and alternatives.)

так что авторы Redox могли не переписывать asm, а просто сделать замену asm! на llvm_asm! если бы хотели сэкономить время прямо сейчас…

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

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

И этот язык не является полным по Тьюрингу (наверно, я не знаю про какой язык ты говоришь), потом что …

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

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

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

Я тоже не знаю.

На нет и суда нет. Не говорило бы «спортлото» о «безопасности» - не было бы срача про «безопасность». Не заявляют же про «безопасность» разработчики более формальных языков, как Agda, Idris, FStar.

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

Не говорило бы «спортлото» о «безопасности» - не было бы срача про «безопасность»

Всё с безопасностью нормально. Раст даёт ровно то что обещает.

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

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

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

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

Ты сам себя послушай, клоун

Аргументация от директора цирка.

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

Какое назначение у этой системы?

Rust for fun. Других достоинств у этой системы нет.

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