The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Выпуск операционной системы Redox OS 0.5, написанной на языке Rust

25.03.2019 07:51

После года разработки подготовлен выпуск операционной системы Redox 0.5, разработанной с использованием языка Rust и концепции микроядра. Наработки проекта распространяются под свободной лицензией MIT. Для тестирования в VirtualBox или QEMU предложены готовые загрузочные образы.

Пользовательское окружение в Redox построено на базе графической оболочки Orbital. В качестве web-браузера применяется Netsurf. Операционная система использует концепцию микроядра, при котором на уровне ядра обеспечивается только взаимодействие между процессами и управление ресурсами, а вся остальная функциональность вынесена в библиотеки, которые могут использоваться как ядром, так и пользовательскими приложениями. Все драйверы выполняются в пространстве пользователя в изолированных sandbox-окружениях. Для совместимости с существующими приложениями предоставляется специальная POSIX-прослойка, позволяющая запускать многие программы без портирования.

Redox развивается в соответствии с философией Unix c заимствованием некоторых идей из SeL4, Minix и Plan 9. В системе применяется принцип "все есть URL". Например, для записи в лог может использоваться URL "log://", для взаимодействия между процессами "bus://", для сетевого взаимодействия "tcp://" и т.п. Модули, которые могут быть реализованы в форме драйверов, расширений ядра и пользовательских приложений, могут регистрировать свои обработчики URL, например, можно написать модуль обращения к портам ввода/вывода и привязать его к URL "port_io://", после чего можно использовать его для доступа к 60 порту через открытие URL "port_io://60".

Проектом также развивается собственный пакетный менеджер, набор стандартных утилит (binutils, coreutils, netutils, extrautils), командная оболочка ion, vim-подобный текстовый редактор sodium, сетевой стек и файловая система TFS, развиваемая на основе идей ZFS (модульный вариант ZFS на языке Rust). Конфигурация задаётся на языке Toml. Система поддерживает запуск на процессорах с архитектурой x86_64 c VBE-совместимой графической картой (nvidia, intel, amd), AHCI-дисками и сетевыми картами на базе чипов E1000 или RTL8168.

Из новшеств, добавленных в выпуске Redox 0.5, можно отметить:

  • Предложена собственная стандартная Си-библиотека Relibc, написанная на языке Rust. Relibc позиционируется как переносимая реализация стандартной библиотеки Си, соответствующая стандарту POSIX и способная работать не только в Redox, но и в дистрибутивах на базе ядра Linux. Ранее в Redox в качестве стандартной библиотеки применялся форк библиотеки newlib от проекта Сygwin, но он не устраивал разработчиков с точки зрения безопасности и кросс-платформенности. На текущей стадии развития Relibc уже намного превосходит newlib по функциональности;
  • Подготовлены новые загрузчики bootloader-coreboot и bootloader-efi для coreboot и EFI, на основе которых сформированы загрузочные образы. Написаны библиотеки для работы с EFI на языке Rust и загрузочный код (payload для coreboot) на Rust. Загрузчики могут применяться обособленно от Redox и в других проектах;
  • Система обработки событий переработана для предоставления корректной поддержки вызовов select и poll;
  • Реализована полноценная поддержка функций отображения в память (mmap);
  • Добавлена поддержка Pthreads и предложены дополнительные системные вызовы для обработки сигналов;
  • Улучшена совместимость с LLVM, что позволило обеспечить сборку rustc и Mesa (c llvmpipe);
  • Благодаря переходу на новую системную библиотеку удалось добиться поддержки многих новых приложений. Для установки в Redox подготовлены готовые пакеты с библитеками SDL2, ffmpeg, cairo, gstreamer, pcre, glib, pixman, libiconv, libsodium и gettext, набором компиляторов llvm, реализацией OpenGL/Vulkan Mesa, эмуляторами scummvm, dosbox и mgba, играми eduke32 (Duke Nukem 3D), openttd и FreeDoom. Всего добавлено 62 новых пакета.


  1. Главная ссылка к новости (https://www.redox-os.org/news/...)
  2. OpenNews: Для Linux и Redox представлена реализация Libc на языке Rust
  3. OpenNews: Третий выпуск операционной системы Redox OS, написанной на языке Rust
  4. OpenNews: Представлена операционная система Redox, написанная на языке Rust
  5. OpenNews: Проект RustPython развивает реализацию интерпретатора Python на языке Rust
  6. OpenNews: Выпуск libOS, unikernel на языке Rust для запуска приложений поверх гипервизора
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/50387-redox
Ключевые слова: redox, rust
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (123) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 08:03, 25/03/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > В системе применяется принцип "все есть URL".

    А там можно как в похапе ровно одной функцией file_exists проверить phar:// на существование и начать его исполнять?

     
     
  • 2.25, Аноним (-), 11:03, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Да глупость какая-то. В винде тоже можно зачем-то написать \\.\COM1, только никому не приходит в голову показывать это в консоли и вондовсэксплорере.
     

  • 1.2, Аноним (2), 08:08, 25/03/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Зачем изолировать драйвера, если Rust безопасный?
     
     
  • 2.3, Ordu (ok), 08:13, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Я тоже этого не понимаю до конца. Сам бог, казалось бы, велел вывести монолит на новый уровень, а они вместо этого сообщения между потоками передают. Может они думают не только об ошибках работы с памятью, и не только о тех ошибках, которые можно предотвратить грамотными API, но и об остальных ошибках, на которые никакая креативность не предложит лучшего способа реагировать, кроме panic?
     
     
  • 3.8, Аноним (2), 08:44, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Да, может В таком случае кажется разумным задокументировать подобные мысли Одн... большой текст свёрнут, показать
     
  • 2.6, Аноним (6), 08:41, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Суть скорее в том что кроме расто драйверов существуют и другие драйвера которые могут быть написаны и на си.

    Да и не каждому ядру понравится крашится от драйверов мыши (привет из юникса).

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

     
     
  • 3.17, Аноним (2), 09:57, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    А зачем писать драйвера на си, если можно на безопасном Rust?
     
     
  • 4.32, Аноним (32), 11:39, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +7 +/
    Затем, что эти драйвера уже написаны, и будут портироваться сюда, потому что врядли кто-то сегодня потянет написание с нуля драйверов, даже для самых популярных устройств
     
     
  • 5.39, Аноним (-), 11:58, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    ЛОЛШТО? Драйвер это вообще-то адаптер, преобразующий протокол устройства в протокол (API) ОС. Если это действительно новая ОС со своим протоколом, то и драйверы придётся именно переписывать.
     
     
  • 6.52, НяшМяш (ok), 13:23, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ну будет у тебя интерфейс драйвера другой. А логику драйвера будешь с нуля реверсить - спеки читать (если они есть вообще)? Тот же видеодрайвер проще взять линуксический и поменять в нём осезависимый код.
     
     
  • 7.58, Аноним (58), 13:35, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +4 +/
    >видеодрайвер проще взять линуксический и поменять в нём осезависимый код.
    >видеодрайвер
    >поменять осезависимый код.

    Это весь код, что ли?

     
     
  • 8.60, Аноним (-), 13:42, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ребята совсем не в теме Вот это и есть уровень типичных растофанов ... текст свёрнут, показать
     
  • 7.70, Аноним (2), 14:13, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > Тот же > видеодрайвер проще взять линуксический
    > и поменять в нём осезависимый код.

    А ещё проще взять готовый виндовый. Тем более, давно есть наглядный пример.

     
     
  • 8.74, Аноним (58), 14:43, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Главное синий экран зе забыть портировать ... текст свёрнут, показать
     
     
  • 9.75, Аноним (2), 14:52, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Всё продумано шеф, возьмём готовый https docs microsoft com en-us sysinternals... текст свёрнут, показать
     
  • 8.102, Аноним (102), 22:21, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Чем менять-то, HEX-редактором ... текст свёрнут, показать
     
     
  • 9.120, Аноним (2), 14:03, 26/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Драйвера менять не надо Мы же новую ОС пишем Просто берём ReactOS и переписыва... текст свёрнут, показать
     
  • 4.35, Аноним (35), 11:48, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    а вы готовы переписать все драйвера на rust ?
     
     
  • 5.61, Аноним (2), 13:46, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Да, готов. Ведь ради этого всё и затевалось. Правда, я бы предпочёл переписать всё на Component Pascal или Sing#, в крайнем случае на ML.
     
     
  • 6.103, Аноним (102), 22:24, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    На Electron
     
     
  • 7.121, Аноним (2), 14:13, 26/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Предлагаю предварительно произвести ребрендинг https://ru.wikipedia.org/wiki/%D0%94%D1%8B%D1%80 что бы избавиться от негативного заряда.
     
  • 2.9, Сергей (??), 08:50, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Без unsafe на нём ничего полезного и быстрого не напишешь, особенно драйвер.
     
     
  • 3.139, burjui (ok), 04:35, 29/03/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    И много кода вы написали на Rust, интересно Вот мне почему-то кажется, что вы -... большой текст свёрнут, показать
     
  • 2.18, anono (?), 10:18, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    не путай причину с следствием.
     
     
  • 3.19, Аноним (2), 10:24, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    То есть безопасность Rust обусловлена применением микроядра? Вы же понимаете, если это так, то в прикладном софте говорить о ней не приходится?
     
     
  • 4.66, Аноним (58), 14:04, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    >то есть безопасность Rust обусловлена применением микроядра
    >Безопасность кирпича обусловлена применением здания.

    Иди домой ты пьян.

     
     
  • 5.72, Аноним (2), 14:19, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >>то есть безопасность Rust обусловлена применением микроядра
    >>Безопасность кирпича обусловлена применением здания.
    > Иди домой ты пьян.

    Переставил причину и следствие по совету эксперта.

     
  • 2.49, Аноним (58), 13:19, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +5 +/
    И безопасной бритвой можно подавиться.
     
     
  • 3.146, Anonim (??), 18:59, 22/07/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Ну так не надо их есть
     
  • 2.81, Anonimus (??), 16:37, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Это по идее просто так не совсем удачно описали принцип работы микроядерной архитектуры. Как бы все изолированно друг от друга в том числе и драйвера.
     
  • 2.101, Aknor (?), 21:42, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Когда-нибудь система становится зрелой и получает проприентарные драйвера.Так сто лучще бы их изолировать.
     
  • 2.133, northbear (??), 12:37, 27/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Есть разница между безопасным в смысле stability, и безопасным в смысле security. Rust безопасный в смысле stability... Изоляция нужна для security...
     
     
  • 3.137, Аноним (2), 12:06, 28/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > Есть разница между безопасным в смысле stability, и безопасным в смысле security.
    > Rust безопасный в смысле stability... Изоляция нужна для security...

    А в смысле safety у всего этого как? Шифрование изолированных адресных пространство, как я понял с Ваших слов, Rust реализует прозрачно.

     
     
  • 4.142, northbear (??), 15:02, 27/05/2019 [^] [^^] [^^^] [ответить]  
  • +/
    >> Есть разница между безопасным в смысле stability, и безопасным в смысле security.
    >> Rust безопасный в смысле stability... Изоляция нужна для security...
    > А в смысле safety у всего этого как? Шифрование изолированных адресных пространство,
    > как я понял с Ваших слов, Rust реализует прозрачно.

    Rust - это язык программирования. Он к этой проблеме ортогонален... Это вопрос приложения, а не языка программирования.

     

  • 1.4, Аноним (4), 08:21, 25/03/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    > port_io

    А почему подчёркивание, а не дефис?

    Хотя, в общем-то, почему вообще не port? И так же понятно,что I/O.

     
     
  • 2.64, Аноним (58), 13:57, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    >А почему подчёркивание, а не дефис?

    Какой на ухо дефис? Через минус, что ли? Минут в именах символов используют только дeбилы и создатели CSS, то есть только дeбилы.

     
     
  • 3.85, Аноним (85), 17:05, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    "-" — дефис.
    "−" — минус.
    "—" — тире.
     
     
  • 4.88, J.L. (?), 18:42, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > "-" — дефис.
    > "−" — минус.
    > "—" — тире.

    давайте через неразрывный пробел называть тогда уж

     
     
  • 5.91, Илья (??), 19:34, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Неразрывный пробел это пробел, который не рвётся при переносе строки
     
  • 3.87, Аноним (87), 18:35, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > Минус в именах символов используют только дeбилы и создатели CSS

    Кроме языков программирования подчёркивания употребляются реже минусов. CSS вы уже упомянули. В доменных именах подчёркивания просто запрещены. В XML в именах тегов тоже минусы предпочтительнее (не уверен, что подчёркивания разрешены). В unix-утилитах подчёркивание тоже дикость, обычно используются минусы.

     
     
  • 4.93, Ordu (ok), 19:52, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Не мешай им бороться с CSS. Они почти победили, а тут ты со своими отсылками к unix-утилитами.
     

  • 1.13, BrainFucker (ok), 09:19, 25/03/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    И как с их ссылками работать в скриптах, с помощью wgef и curl? В юниксах концепция "всё файлы" была удобна в скриптах особенно. А в чём смысл "всё ссылки" непонятно, будто просто изврат ради изврата.

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

     
     
  • 2.14, Аноним (1), 09:28, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +14 +/
    Предлагаю новую концепцию: всё есть systemd-юниты.
     
     
  • 3.57, Аноним (57), 13:28, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    SystemDOS
     
  • 2.15, Аноним (15), 09:34, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Почему ты считаешь, что URL подразумевает HTTP?
     
     
  • 3.20, BrainFucker (ok), 10:50, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > Почему ты считаешь, что URL подразумевает HTTP?

    Где ты там увидел подразумевание? В юниксах можно прочитать файл чем угодно, т.к. читать файлы умеют все. Чем прочитать данные по ссылке типа упомянутого в статье log://? Это поддержку каждого протокола надо добавлять во все утилиты, нафиг такое.

     
     
  • 4.42, KonstantinB (ok), 12:18, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Если там так же, как в Plan 9, - ничего не надо.

    В Plan 9 (откуда они взяли идею) протокол реализуется драйвером, а работаешь ты с таким URL точно так же как с файлом, через стандартные операции ввода-вывода. Точно так же, как в Линуксе сделан procfs.

    Какая разница, /var/log/logfile или log://logfile? Принципиально никакой, только драйвер указывается в явном виде.

     
     
  • 5.45, BrainFucker (ok), 12:32, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • –5 +/
    > Точно так же, как в Линуксе сделан procfs.
    > Какая разница, /var/log/logfile или log://logfile? Принципиально никакой, только драйвер  указывается в явном виде.

    /proc я могу читать чем угодно, хоть веб-браузером, несмотря на то что он на это не был расчитан. А при попытке открыть log:// я получу ошибку о незнакомом протоколе. Вот и вся разница.


     
     
  • 6.50, Аноним (58), 13:21, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Ты туповат?
     
     
     
    Часть нити удалена модератором

  • 8.59, Аноним (58), 13:38, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Ошибка, непознанный протокол ... текст свёрнут, показать
     
  • 6.82, KonstantinB (ok), 16:38, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Нет, ты напишешь cat log://logfile и получишь желаемое.
     
     
  • 7.98, BrainFucker (ok), 20:52, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Нет, ты напишешь cat log://logfile и получишь желаемое.

    Но разработчики ОС не осилят пропатчить абсолютно все приложения так чтобы они поддерживали всевозможные протоколы и схемы ссылок. При том что там кто угодно может выдумывать свои принципиально новые ссылки: "можно написать модуль обращения к портам ввода/вывода и привязать его к URL port_io://"

    Тут нет ничего похожего на принцип UNIX. Главная суть принципа "всё есть файл" в том что нет необходимости поддерживать для каждой фигни свой протокол, коих могут плодить 100500, достаточно уметь читать/писать файл: https://i.imgur.com/GLs2RjG.png

     
     
  • 8.122, J.L. (?), 14:39, 26/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    они пропатчили fopen, и теперь он умеет вызывать обработчики всевозможных проток... текст свёрнут, показать
     
     
  • 9.123, X4asd (ok), 16:08, 26/03/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    а кстати чем это отличается от той ситуации которая сейчас в Linux любая прогр... текст свёрнут, показать
     
  • 2.16, KonstantinB (ok), 09:47, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    При чем тут HTTP?

    Работать примерно так же, как с файлами. Но есть нюанс.

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

    С URL это развитие той же идеи со своего рода типизацией: scheme указывает на протокол. Можно все разнообразие свести к некоторому промежуточному универсальному формату и на лету конвертировать одно в другое автоматически. А учитывая, что есть еще и query string, можно варьировать параметрами, специфичными для протокола, безо всяких специальных конструкций.

     
     
  • 3.22, BrainFucker (ok), 10:52, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > При чем тут HTTP?

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

     
  • 3.115, funny.falcon (?), 08:50, 26/03/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    "Все есть файл" не значит "текстовый".

    В современном unix это значит, можно работать через файловый дескриптор операциями read/write. Но основатели Unix считают, что этого не достаточно.
    В ортодоксальном (читай, православном) Plan9 (созданном теми основателями Unix) это означает "ко всему есть доступ через функцию open и путь в файловой системе". В Plan9 и сокеты имеют интерфейс через файлы в файловой системе, и оконная система, и драйверы устройств.

     
  • 2.96, Ordu (ok), 20:03, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Вот так:

    cat https://www.opennet.dev/ | iconv -f koi8-r -t utf8 | grep 'align=middle' | sed 's|.*">\(.*\)</a>.*|\1|'

    > А ссылки большинство не поддерживает

    Я тебе открою секрет: большинство утилит командной строки и имена файлов не поддерживают, они делигируют всю работу с именами файлов ядру.

     
     
  • 3.100, BrainFucker (ok), 20:57, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • –5 +/
    > Я тебе открою секрет: большинство утилит командной строки и имена файлов не
    > поддерживают, они делигируют всю работу с именами файлов ядру.

    Да, но надо лишь уметь работать с файлами и ты умеешь почти всё. Это главная суть идеи "всё есть файл". А в случае концепции "всё есть ссылка", особенно в их реализации, этого не получится. https://i.imgur.com/GLs2RjG.png
    Банально потому что разработчики будут не в состоянии пропатчить всё ПО так чтобы оно поддерживало всевозможные схемы и протоколы URL'ов, тем более там они предлагают любым желающим выдумывать свои какие угодно. Поэтому тут нет ничего якобы "похожего на принцип UNIX, только ссылки вместо файлов". Их концепция не даёт того, что даёт концепция "всё есть файл". Вот я о чём.

     
     
  • 4.106, Ordu (ok), 23:00, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Зачем патчить всё ПО Зачем поддерживать какие бы то ни было схемы и протоколы U... большой текст свёрнут, показать
     
     
  • 5.108, BrainFucker (ok), 23:18, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Хм, ну ок, так действительно вполне возможно что это может работать...

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

     
  • 2.104, Аноним (102), 22:29, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    >Файлы-то хоть можно прочитать чем угодно, хоть браузером.

    И редактировать можно с помощью wwwim :)

     

  • 1.21, Аноним (21), 10:52, 25/03/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    кастую сравнение redox vs. reactos!
     
     
  • 2.30, Аноним (-), 11:24, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +13 +/
    ReactOS: Development began in 1996
    Redox: first published on 20 April 2015
     
  • 2.43, жека воробьев (?), 12:25, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +12 +/
    redox уже работает
     
     
  • 3.105, Аноним (102), 22:31, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Тоже в VirtualBox или QEMU?
     
     
  • 4.109, marios (ok), 23:38, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вообще-то автор его пилил для собственного компуктера, чтобы в нём работать.
     

  • 1.23, kiwinix (?), 10:52, 25/03/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Кто объяснит зачем эта ОС?
    Просто чтоб ядро не текло? (Раст не умеет текти)
    Либо по тому что могут?)

    Я вот просто сомневаюсь что выйдет ос которая будет работать быстрее.

    Тогда практическое применение?

     
     
  • 2.26, Аноним (26), 11:05, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Раст умеет всё.
     
  • 2.27, Аноним (-), 11:19, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Доказать всем, что у раста больше. Только, похоже, соревноваться они будут с реактосом.
     
     
  • 3.97, Аноним (97), 20:28, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    +1
     
  • 2.54, Аноним (58), 13:26, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    >Раст не умеет текти

    Любой полный по Тьюрингу язык программирования может и "текти" и виснуть и глючить. Это прямо следует из его полноты.

    В том же Расте: Создаем динамического размера буфер(Vec<i32>) в бесконечном цикле пихаем туда значения. Вуаля, за минуту-другую вся память утекла.

     
     
  • 3.111, Аноним (111), 00:17, 26/03/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ты спутал OOM и утечку памяти. Последняя - это когда объект мёртв, до него не достучаться, а память всё равно кушает. В твоём же примере Vec не куда не девается - к нему вполне себе можно обратиться, что ты и делаешь.

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

     
     
  • 4.113, Аноним (113), 02:09, 26/03/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Чем тоньше объекты - тем больше фрагментирована куча
     
  • 4.127, angra (ok), 03:39, 27/03/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Нет, это ты перепутал частный случай(когда объект мёртв, до него не достучаться, а память всё равно кушает), с общей проблемой. Какая разница, что на объект где-то есть ссылка, если нет кода, который освободит его? Точно также нет разницы, освобождается ли память ручным вызовом free или автоматически сборщиком мусора после удаления последней ссылки на него. Утечки памяти это результат логических ошибок в программе, а не модели управления памятью в языке.
     
  • 2.55, pda (?), 13:26, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    На данный момент "for fun". Как и Linux в начале. Может когда-нибудь применение найдётся. А может и нет.
     
  • 2.79, Аноним (79), 15:56, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Микроядро интересне. Может и кольца заюзают наконец (которым сто лет в обед), в отличии от.
    Ну а раст - because we can.
     
  • 2.84, Аноним (84), 16:51, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    >Кто объяснит зачем эта ОС?

    For fun, для экспериментов, в качестве хобби, для исследований возможностей и лимитов Rust, для исследований микроядерной архитектуры, для статей на OpenNet. Возможно, какие-то ещё интересные применения найдутся со временем.

     
  • 2.90, J.L. (?), 18:47, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Кто объяснит зачем эта ОС?
    > Просто чтоб ядро не текло? (Раст не умеет текти)
    > Либо по тому что могут?)
    > Я вот просто сомневаюсь что выйдет ос которая будет работать быстрее.
    > Тогда практическое применение?

    имхо это шикарный демонстратор языка +(возможно) проверка концепций

    если они даже бутлоадер на расте написали и создали свой пакетменеджер вместо использования какого-либо стандартного (например nix) - это явно демонстратор технологий и/или языка

     
  • 2.94, Ivan_83 (ok), 19:53, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Там в академических кругах кто то взялся пропихивать RUST студентам, ну и видимо они теперь за оценку/зачот будут кодить втуда.

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

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

     
     
  • 3.143, p1 (?), 10:55, 23/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Вот зачем делать такие рискованные эмоциональные безосновательные заключения?
     
  • 2.110, marios (ok), 23:39, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    В Линуксе слишком много дыр!
     
     
  • 3.125, аноним3 (?), 00:34, 27/03/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    не в линуксе, а в конкретных приложения и их совместном проживании)) и да ну не верю я в безопасные языки. единственный безопасный  - это ассемблер + точное знание архитектуры и оборудования под которую пишется. и да как в древности никаких операционных систем только напрямую запуск на железе. вот тут пожалуй безопасно)) ну если комп вообще не включать пожалуй еще безопаснее))
     

  • 1.24, Аноним (24), 10:56, 25/03/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    Отлично! Теперь осталось переписать это всё дело на C.
     
     
  • 2.29, VINRARUS (ok), 11:23, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Лучше на assembler, толку больше.
     
     
  • 3.56, pda (?), 13:27, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    На ассемблере уже есть. Даже две.
     
  • 2.140, burjui (ok), 04:37, 29/03/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Зачем?
     

  • 1.31, VINRARUS (ok), 11:28, 25/03/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Даже ОС переписали на Rust, а Firefox до этих пор слоупочит...
     
     
  • 2.73, Анонимс (?), 14:34, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Mozilla скорее всего перейдёт на движок chromium. Поэтому смысла им никакого нет всё переписывать на rust.
     
     
  • 3.76, VINRARUS (ok), 14:56, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Mozilla скорее всего перейдёт на движок chromium.

    Глупый тролинг. На chromium выгодно переходить токо комерческим организациям, так как не нада тратить деньги на програмистов, достаточно 2х дизайнеров.
    А Mozilla существует типо как план Б для юзеров веба.

     
     
  • 4.77, Анонимс (?), 15:41, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Глупый тролинг. На chromium выгодно переходить токо комерческим организациям, так как не
    > нада тратить деньги на програмистов, достаточно 2х дизайнеров.

    Вы ошибаетесь. Mozilla Corporation (частная, коммерческая организация) - дочерняя компания Mozilla Foundation, созданная 3 августа 2005 года. Ей были переданы функции по планированию, маркетингу, разработке и распространению Mozilla Firefox. Главной задачей для любой корпорации является получение прибыли. Написание собственного движка - это большой труд и непомерные затраты и издержки. Микрософт это поняли и перешли вместо своего движка в Edge на движок chromium. Поэтому, закономерным итогом всего этого для Mozilla Corporation я вижу переход c собственного движка Gecko на движок Chromium.  

     
     
  • 5.83, Kuromi (ok), 16:49, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Ошибаетесь, Микрососы просто прочитали древнюю мудрость "Не можешь побороть - возглавь" (собственно их Embrace, extend, and extinguish примерно о том же). Во первых они сейчас резко повышают свою совместимость в вэблм, во вторых сокращают атраты, а в третьих начнут ползуче протаскивать нужные им фичи.
    Вот возьмем стандарт WebAuthn - с начала 2019-ого Микрософт выключила браузерам прямой доступ к FIDO ключам, теперь только через их проприетарную прослойку Windows Hello, которая навязывает биометрию и TMP модули.
    Причем если погуглить, то уже видно, что активно продавливается мысль Webauthn = Windows Hello и никак иначе. Embrace уже навязан, начинаем Extend.

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

     
  • 5.107, Ordu (ok), 23:09, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Я могу перечислить тебе ещё десяток уважаемых компаний, которые не стали разрабатывать собственного движка. Но я не понимаю как из этого следует, что мозилле не следует разрабатывать собственный движок.

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

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

     
     
  • 6.132, Попугай Кеша (?), 10:19, 27/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Если компания хочет власти и влияния - пишет свою ОС, свой сервис карт/картографии, свой язык создает, свой движок браузера.

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

     
  • 2.86, Аноним (21), 17:51, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    https://github.com/servo/servo
     

  • 1.33, Аноним (33), 11:39, 25/03/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    идея хороша, но зачем оно нужно без софта? Или там можно будет запускать линуховый?
     
     
  • 2.36, Аноним (35), 11:50, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    как это без софта, написано же "добавлено 62 новых пакета"
     

  • 1.37, Аноним (37), 11:55, 25/03/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    >В качестве web-браузера применяется Netsurf

    А почему не rast'образный firefox? Что не осилили?

     
     
  • 2.40, Аноним (-), 12:10, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Конечно, они же там зачем-то всё подряд пилят. Не только стандартную библиотеку Си на ржавчине, но и freetype тоже перепиливают с Си на раст. И ничего толком не доделано, что характерно.
     
     
  • 3.48, НяшМяш (ok), 13:19, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Что характерно, это "недоделано" уже запускается и работает. Первый линукс тоже вышел без системдэ и драйверов нвидии.
     
     
  • 4.92, Аноним84701 (ok), 19:36, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Что характерно, это "недоделано" уже запускается и работает. Первый линукс тоже вышел  без системдэ и драйверов нвидии.

    Причем и первый и второй и ... цатый (например: ядро 1.2.13 в третьей слаке) имел еще и меньше строк кода. чем некая "система инициализации" ;)

     
     
  • 5.126, аноним3 (?), 01:01, 27/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    я помнится обновлял ядрышко 2.4 было около 15 мб, теперь 64819 КБ (4.13.). грубо говоря сильно потолстело.
     

  • 1.38, evkogan (?), 11:57, 25/03/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +25 +/
    Не понимаю отрицательных отзывов.
    Они сделали еще одну микроядерную ОС. Ну захотели и сделали, молодцы. Судя по всему она уже сейчас может не меньше старых и над расширением совместимости с существующим софтом активно работают.
    Написали ее на RUST, ну то же молодцы, с одной стороны течь не будет, с другой возможности RUST показывают. Инструмент вполне соответствует задаче.
    Концепция все URL, это прямое расширение концепции все файл и вполне логична. Обращаться к файлам как это принято в Linux это хорошо. Дать возможность по этому же типу делать кучу других стандартных вещей типа логов и т.п. тоже хорошо.
    Написание всяких библиотек и загрузчиков с учетом возможности использовать не только с Redox - это вообще какой-то возврат в прошлое, когда люди думали как сделать хорошие универсальные вещи. В отличии от подходов всяких системды.
    Чем все недовольны?
    Жаль что пока готова только для тестов. Нужно:
    1. поддержка железа - возможно прослойка для использования дров линуховых
    2. репозитарий с пакетами и пакетов сильно побольше.

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

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

     
     
  • 2.46, Аноним (-), 13:06, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Они сделали еще одну микроядерную ОС.

    нет

     
  • 2.47, Аноним (47), 13:15, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >Написали ее на RUST, ну то же молодцы, с одной стороны течь не будет  

    rust защищает от порчи памяти, но не от ее утечек. Там даже mem::forget сделали безопасной функцией

     
     
  • 3.67, VINRARUS (ok), 14:05, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Вроде ж как главное преимущество отмечается отсутствие сборщика мусора.
     
  • 3.80, evkogan (?), 16:06, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Сам я Rust не пробовал. Все думаю посмотреть поглубже.
    С порчей памяти понятно.
    А можно пример как на нем сделать утечку?
     
     
  • 4.89, Ordu (ok), 18:43, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > А можно пример как на нем сделать утечку?

    fn memleak() {
        let leak = Vec::<u64>::with_capacity(1_000_000_000);
        std::mem::forget(leak);
    }

    fn main() {
        memleak();
        println!("Memleak success");
    }

    Это правда не очень хороший пример, потому что Vec::with_capacity берёт неинициализированную память, и из-за этого эффективно отъедает лишь кусок адресного пространства процесса, а не физическую память: ядро не выделяет страницы, пока к ним не было обращения. Но ежели ты туда запишешь что-нибудь, чтобы ядро страницы-таки выделило, то... ты только осторожнее, оно может серьёзно протормозить твою систему.

    Можно пойти более сложным путём и создать цикл из Rc<T>, ссылающихся друг на друга.

     
     
  • 5.124, Аноним (-), 17:49, 26/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Всё написанное верно, но при этом все утечки помимо Rc-циклов - явный и осознанный выстрел себе в ногу, который не нужен в 99,999...% кода.
     
     
  • 6.144, Ktoto (?), 14:36, 26/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Хм, вчера только прочитал что нельзя в расте получить мутирующую и не мутирующую ссылку на один и тот же объект, таким образом нельзя сделать кольцевые ссылки.

    Таким образом даже себе в ногу так не выстрелить :-)))

     

  • 1.68, анон (?), 14:07, 25/03/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –5 +/
    Жаль что не на Golang. Было бы круто.
     
     
  • 2.71, Аноним (58), 14:14, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    >Каждый год переписывать всю кодовую базу под новый "модный" язык программирования

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


     
     
  • 3.116, funny.falcon (?), 08:59, 26/03/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Всегда поражался, насколько точно эта цитата описывает нашу жизнь
     
  • 2.78, Аноним (78), 15:44, 25/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Уже написали, гугли pdf и сорцы на гхабе.
     

  • 1.99, Аноним (99), 20:53, 25/03/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    надо sysvinit на rust переписать и вернуть в debian
     
  • 1.112, Gannet (ok), 01:01, 26/03/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Зачем иконки такие яблочные? о_О
     
  • 1.114, Tifereth (?), 05:54, 26/03/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Интересная концепция про URL в этом их РжавОСе...

    Но определённо стоит попробовать в действии, заинтриговали.

     
  • 1.117, anonymous (??), 09:17, 26/03/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Хм.

    mkdir -p http:/yandex.ru
    echo TEST > http:/yandex.ru/index.html
    cat http://yandex.ru/index.html

    Что мне я увижу в консоли в этом редоксе?

     
     
  • 2.128, angra (ok), 03:53, 27/03/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Ну замени свой http:/yandex.ru на /dev/urandom и попробуй в линуксе. Скорее всего будет то же самое:

    1. cannot create directory ‘http:/yandex.ru’: Not a directory
    2. ничего
    3. содержимое http://yandex.ru/index.html

     

  • 1.119, Константавр (ok), 12:00, 26/03/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Рад за них. Хочу, чтобы у них получилось. Вот только лицензия... Помню несколько проектов под митовской лицензией, которые развивали, взращивали, а потом приходил хитрожопец и создавал форк с некоторыми улучшениями, но уже платную и всё разваливалось. Последнее что помню - Urho3D и его форк на сишарпе с платными плюшками, который в результате тоже стал открытым, но сообщество развалил и автора оригинала обидел. Все эти пермисивные игры...
     
  • 1.136, Аноним (136), 00:36, 28/03/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А вот интересно отсылает ли эта OS телеметрию своим авторам ? Есть ли в ней "зонды"   ?
     
  • 1.138, Аноним (138), 18:28, 28/03/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Когда Golang перепишут на Rust.
    Будет наконец-то быстрый и безопасный Golang
     
  • 1.145, Blaze (ok), 18:49, 21/10/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Эм Orbital из Redox и другой Orbital это совершенно два разных проекта, просто случайно название совпало и всё.

    Тот Orbial https://github.com/giucam/orbital, про который вы написали, и правда работает на Wayland, базируется на её эталонной реализации (Weston) и написан на C++.


    Но тот Orbital https://github.com/redox-os/orbital, который в Redox, написан на Rust и использует свои Orb** библиотеки, никаких вейлендов. Не имеет ничего общего с тем Orbital кроме названия и что это композитный оконный диспетчер

    Да, иногда бывают такие случайности

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру