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

Чорт, всё же не выдержал.

скейл в данном случае, а вообще - это оператор звёздочка, а не мул.

Перегружается через трей Deref.

убогое нагромождение невнятной херноты, которая не поддаётся никакому объяснению и классификации

Ты просто недостаточно скилен.

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

Если Rust ... ... то индусы будут массово использовать ГЦ, #nogc, дефакто, рипнется, что тут непонятного?

Некоторые в С/С++ испольют GC. Рипнулся? Логика 3 класса.

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

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

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

С такой «гибкостью» с тобой вообще спорить смысла нет.

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

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

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

Серверный ксеон в ноутбук не запихнёшь

Жесть какая. По-твоему, за 10 лет ноутбуки нисколько производительнее не стали? o_O

Никто так не делает. Только если вместе с самим ноутбуком/планшетом.

А можно поменять коммуникатор не поменяв его железо? o_O

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

Да хоть раз в пару лет (хотя реально чаще, конечно). Речь, напомню, шла о периоде в 10 лет.

4.2 Гига памяти хватает с запасом.

Ню-ню.

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

Перегружается через трей Deref.

Я знаю - я прочитал. Зачем называть это какой-то фигнёй, если это просто операторы?

Ты просто недостаточно скилен.

Да не правда. В нагромождениях конструкций и всяком хардкоре я посильнее много. Только это не помогает.

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

Вот это нечто:

impl Add for Point {//хорошо - у нас Add для Point - паскалятинка и 95-й год - это ладно.
    type Output = Point;//какого хрена для результата совершенно другой синтаксис?
 //Т.е. что такое Output - это какое-то зарезервированное нечто?
 //Почему оно выглядит как хрен пойми что?

    fn add(self, other: Point) -> Point {//зачем мы суём сюда какой-то селф, 
//если мы уже выше что-то писали, а зачем мы делаем тут ретркн, 
//если надо по логике надо инициализировать Output? Или что? Мне не ведомо.
        Point {x: self.x + other.x, y: self.y + other.y}
    }
  //я попытлся написать другой add - оно мне написало - нельзя.
}

Я попытался сделать: https://play.rust-lang.org/?gist=ebf85cba07afae3fd9a3&version=nightly - оно обделалось.

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

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

//У тебя есть набор операторов. Их нужно как-то выбирать для каждого
//случая. В крестах они прибиты к классу + перегрузка. Т.е. класс 
//селектит функцию по левому, а перегрузка для правого.

//Здесь же классов, как я понял - нет.

//Нам надо сделать вменяемы интерфейс для функций - самое простое 
//решение сделать +1 аргумент(вернее его делать не надо - он итак есть)

Add (self: Point, other: i32) {
  Point {x: self.x * other, y: self.y * other}
}//этого достаточно.

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

Т.е. что такое Output - это какое-то зарезервированное нечто?

Это ассоциированный тип.

Я попытался сделать: https://play.rust-lang.org/?gist=ebf85cba07afae3fd9a3&version=nightly - оно обделалось.

Ну как обычно.

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

Ты о чём?

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

Я попытался сделать: https://play.rust-lang.org/?gist=ebf85cba07afae3fd9a3&version=nightly - оно обделалось.

https://play.rust-lang.org/?gist=065e480f2182cb07daf7&version=nightly

Я вижу неосиляторство в каждой строчке - это просто ужос.

Ты просто анскильная лалка, не могущая в чтение.

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

Ты отвечал на вопрос «чего не хватает» вопросом «где перегрузка».

Не юли - всё прекрасно выводится. Я спросил - ты ответил.

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

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

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

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

На это тебе и надо отвечать.

С такой «гибкостью» с тобой вообще спорить смысла нет.

Со мною вообще смысла так спорить нет - ты не споришь - ты доказываешь. Причём убогими лозунгами.

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

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

Маловероятно.

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

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

https://play.rust-lang.org/?gist=065e480f2182cb07daf7&version=nightly

Это не решение - это дублирование убогое. Алогичное дерьмо. В целом по этой причине ты по существу ничего и не ответил.

Ты просто анскильная лалка, не могущая в чтение.

Очередное доказательство того, о чём я говорил. Каждый ответ - подтверждение моих слов.

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

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

Это не решение - это дублирование убогое. Алогичное дерьмо. В целом по этой причине ты по существу ничего и не ответил.

Ты пытался сделать и обделался. Я - сделал. Аналогия в том, что слова «сделал» и «обделался» однокоренные.

который никак логически не выводится

Лалка не может ни в чтение, ни в логику. Такая анскильная.

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

Не юли - всё прекрасно выводится.

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

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

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

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

Поздравляю - ты доказал, что оно не выводится и требует чтения - ты доказал мою правоту.

Достаточно посмотреть на трейт, который реализовываешь и всё.

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

И про «нагромождение рантайм обёрток» мне всё ещё интересно.

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

Это ассоциированный тип.

Он нигде не используется - это магическая херня. А как там она в у вас называется - мне нсрать.

Ну как обычно.

И что ты этим показал? Что дублировал указание типа и показал убогость конструкций? Молодец.

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

Ты о чём?

Тебе слишком сложно будет это понять. Если не понимаешь - мне лениво объяснять, ибо шанс на то, что прокнет - в районе нуля. Если бы ты писал хотя-бы лабу по реализации ЯП - ты бы понял.

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

Это ассоциированный тип.

Он нигде не используется

Лжешь.

pub trait Mul<RHS = Self> {
    type Output;
    fn mul(self, rhs: RHS) -> Self::Output;
}

Если не понимаешь - мне лениво объяснять, ибо шанс на то, что прокнет - в районе нуля. Если бы ты писал хотя-бы лабу по реализации ЯП - ты бы понял.

Какой слив.

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

Он нигде не используется - это магическая херня.

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

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

Легко поверить, что ты и правда не осилил.

Тебе слишком сложно будет это понять.

Значит опять лужи газифицируешь?

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

Лжешь.

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

Какой слив.

Но опять же - ты подтвердил то, о чём я говорил выше. Ты это специально делаешь?

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

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

Как из первого следует второе? Второе - это «трейты» и плюсы.

Легко поверить, что ты и правда не осилил.

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

Значит опять лужи газифицируешь?

Там уже выше пацан подтвердил мои слова за меня. Читай выше.

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

Зачем ты мне выкатил левый код, которого изначально не было?

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

Т.е. ты высрал мне левый кусок рантайма

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

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

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

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

И мы оба знаем, что если я щас начну требовать с тебя обоснования за свои предьявы - ты убежишь в слезах - зачем ты это делаешь?

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

Ладно - не буду с тобою сраться - всё равно потрёшь и будешь делать вид, что ничего не было.

Но в конечном итоге я выйграл. Это признанно - этого достаточно.

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

всё равно потрёшь и будешь делать вид, что ничего не было.

Я тру только обильную шизофазию, так что не надейся.

если я щас начну требовать с тебя обоснования за свои предьявы - ты убежишь в слезах

Но в конечном итоге я выйграл. Это признанно - этого достаточно.

Бгг.

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

Ладно - давай я тебе объясню. Авось осилишь понять.

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

Т.е. конструкции, которые пораждают исполняемый код для реализации действий, которые выполняет конструкция, но не код, который реализует саму конструкцию.

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

Потом это всё мы забиваем уже в рантайм самого куллязычка как рантайм-обёртку. Т.е. обёртку с кодом, который рантайм.

Если просто, то как-то так.

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

Чего? Я надеюсь, ты в курсе, что unsafe в расте не только для указателей?

Я как раз говорю про использование unsafe в этом контексте.

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

В официальном FAQ говорится что там нет никакого рантайма. Так что давай, выкладывай, если сам не придумал.

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

Rust чуть ли не с самого начала позиционировался как systems programming language. Так что в цели это входило.

Ну да, заявляли. Также как и производители каждого первого «внедорожника» заявляют о способности авто передвигаться по бездорожью.

Как unsafe (чем бы он не являлся) противоречит цели Rust быть языком системного программирования?

Да ассемблерные вставки тоже не мешают С быть системным языком. Я говорил про сегфолто- и прочую безопасность, которой так хвастаются rust-овцы, и которая запарывается на корню, как только программист начинает писать unsafe-блоки.

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

Rust чуть ли не с самого начала позиционировался как systems programming language. Так что в цели это входило.

Ну да, заявляли

Недавно было:

segfault>ни системное, ни низкоуровневое программирование не входили в цели разработки rust

Сейчас ты утверждаешь, что были заявления, но реально целей не было? Или они не были достигнуты? Или... что?

Да ассемблерные вставки тоже не мешают С быть системным языком.

Никто и не говорит, что мешают.

Я говорил про сегфолто- и прочую безопасность, которой так хвастаются rust-овцы, и которая запарывается на корню, как только программист начинает писать unsafe-блоки.

Хм. Так unsafe-блоки нарушают гарантии безопасности? Спасибо, Капитан.

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

Зашибись логика. «Пока не получается - значит, не нужно».

А ты хочешь, чтоб все сишники кинулись переписывать свой код на rust, и только потом оценивать его? Слишком уж дорого. Я, например, достаточно изучил документацию, и увидел там те же грабли для себя, что и в паскале. Лучше уж буду писать на «С с классами». Каким путем пойдут остальные - лишь время покажет. И мы все в этом споре неправы в том, что даем столь категоричные прогнозы на будущее.

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

Сейчас ты утверждаешь, что были заявления, но реально целей не было? Или они не были достигнуты? Или... что?

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

Хм. Так unsafe-блоки нарушают гарантии безопасности? Спасибо, Капитан.

Так же как ассемблерные вставки нарушают читабельность и переносимость. Этим они и похожи. Надеюсь, понятно, или еще нужны услуги Капитана?

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

А ты хочешь, чтоб все сишники кинулись переписывать свой код на rust, и только потом оценивать его?

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

Я, например, достаточно изучил документацию, и увидел там те же грабли для себя, что и в паскале

Те же, что и в Паскале? O_o Пример граблей, пожалуйста.

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

Я не даю прогнозов. ИМХО, шансы Rust взлететь невелики, но они есть. Взлетит ли он - ХЗ.

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

Чего не хватает? Что мешает?

Надеюсь, понятно, или еще нужны услуги Капитана?

Вообще нужны не были.

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

Понимаешь в чём штука - всё, что правильно - то логично.

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

Но в конечном итоге я выйграл.

Вся суть царя. Обсираться в сниппете на 10 строк, а потом вещать о своей охеренности. Пафосно вещать о непригодности Раста для системного программирования, а а вместо предоставления пруфов скатиться в спор о вкусах. Рассказывать, что не критикует руст, а хочет доказать, что мир не ограничивается нашими представлениями о нём, а вместо выката своих охеренных представлений о мире - скатиться в обсирание руста за то, что он не подходит под его представления о ЯП. Проигнорить десяток постов, а потом рассказывать, как он у всех выиграл. Где пруфы логичности сишных объявлений? Где пруфы страшных заговоров Мозиллы? Где пруфы нужности сишного ООП?

Это признанно - этого достаточно.

Кем признанно? Тобой? Как ты это определил? Лично я пока видел только игнор чужих аргументов и съезжание с темы. Ты просто хрестоматийный демагог.

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

Это как же паскаль должен был по мозгам дать, чтобы увидеть его в Rust?

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

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

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

То есть когда рустеры визжат на форумах, бордах, бложиках и прочих твиторах, что «Си - ленаси-говно, потому что позволяет легко „выстрелить себе в ногу“ из-за проблем с #memorysafety и #threadsafety» [,которые на самом деле возникают из-за несоблюдения стандартов], то это какбы нормально.

А когда им показывают, что в их язычке у индусов есть великолепная возможность сделать то же самое без asm и insafe, просто использовав библиотеку god_mode.rs (или как там ее назовут), то это тут же приравниватеся к

с закрытыми глазами писать

Да это же эталонное ВРИОТИИИ!!!

Вот что именно мне не нравится в этом вашем «безопасном», а точнее в его «сообществе»: бессовестная ложь евангелистов.

Ложь и ВРИОТИИИИИ!!!, которые начинаются сразу, как только вас ткнёшь пятаком в объективную реальность.

И да, если у индуса есть возможность «обмануть систему», он обязательно ей воспользуется.

Но ты ведь не по их поделкам качество языка оцениваешь?

Я оцениваю языки по нагрузке на механизмы памяти и внимания, которые они создают.

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

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

Это не моя логика, а логика тех, что это вбрасывает, и это не я.

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

А когда им показывают, что в их язычке у индусов есть великолепная возможность сделать то же самое без asm и insafe
сделать то же самое

Ну ТОЛСТО же.

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

А когда им показывают, что в их язычке у индусов есть великолепная возможность сделать то же самое без asm и insafe, просто использовав библиотеку god_mode.rs (или как там ее назовут), то это тут же приравниватеся к

с закрытыми глазами писать

Именно так. Потому что все способы выстрелить себе в ногу, которые есть в Rust, есть и в Си. Но _вдобавок_ в Си есть 1) еще много способов, которыми обычно и стреляют в ногу 2) дефолтная #memoryunsafety.

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

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

Именно так. Потому что все способы выстрелить себе в ногу, которые есть в Rust, есть и в Си. Но _вдобавок_ в Си есть 1) еще много способов, которыми обычно и стреляют в ногу

Безопасность в голове, а не в ЯП, когда вы все это поймете?

2) дефолтная #memoryunsafety.

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

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

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

Безопасность в голове, а не в ЯП, когда вы все это поймете?

Ты еще не понял, что безопасности, которая в голове, катастрофически не хватает? Что ж в твоей голове тогда...

И кстати, почему все растохейтеры так двинуты именно на безопасности? Система типов Rust на световые годы впереди системы типов Си, даже если писать исключительно unsafe.

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

Тормоза придумали трусы.

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

Это как же паскаль должен был по мозгам дать, чтобы увидеть его в Rust?

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

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

Нет. Иногда я пишу что-то для себя на совсем неродственных С языках, таких как пайтон или луа. Для каждой задачи свой язык или языковые принципы.

Я против повсеместного впихивания «панацей» проде сборщика мусора. А есть области применения, где и rust-овская memory-safety не нужна.

segfault ★★★★★
()

Некоторые люди в этом топике делают ошибки говоря о заявленных гарантиях Rust и его unsefe-частью одновременно

https://doc.rust-lang.org/nomicon/meet-safe-and-unsafe.html

Programmers in safe «high-level» languages face a fundamental dilemma. On one hand, it would be really great to just say what you want and not worry about how it's done. On the other hand, that can lead to unacceptably poor performance. It may be necessary to drop down to less clear or idiomatic practices to get the performance characteristics you want. Or maybe you just throw up your hands in disgust and decide to shell out to an implementation in a less sugary-wonderful unsafe language.

Worse, when you want to talk directly to the operating system, you have to talk to an unsafe language: C. C is ever-present and unavoidable. It's the lingua-franca of the programming world. Even other safe languages generally expose C interfaces for the world at large! Regardless of why you're doing it, as soon as your program starts talking to C it stops being safe.

With that said, Rust is totally a safe programming language.

Well, Rust has a safe programming language. Let's step back a bit.

Rust can be thought of as being composed of two programming languages: Safe Rust and Unsafe Rust. Safe Rust is For Reals Totally Safe. Unsafe Rust, unsurprisingly, is not For Reals Totally Safe. In fact, Unsafe Rust lets you do some really crazy unsafe things.

Safe Rust is the true Rust programming language. If all you do is write Safe Rust, you will never have to worry about type-safety or memory-safety. You will never endure a null or dangling pointer, or any of that Undefined Behavior nonsense.

Deleted
()

Также некоторые люди в этом топике разсудили вещи из этого списка как бреши в «безопастности» Rust

https://doc.rust-lang.org/nomicon/meet-safe-and-unsafe.html

Rust is otherwise quite permissive with respect to other dubious operations. Rust considers it «safe» to:

. Deadlock
. Have a race condition
. Leak memory
. Fail to call destructors
. Overflow integers
. Abort the program
. Delete the production database

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

matumba предлагает интроспекцию интерфейсов драверов. Где она в Object Manager?

Драйвер себя регистрирует где надо.

Ну окей.

нечто подобное видел в амижном AutoConfig-e.

там, тащем-то раньше всех нормальный plug-and-play запилили, который сразу работал.

это всё ещё к тому же на библиотеки завязано: API типа OpenLibrary/GetInterface/DropInterface/CloseLibrary.

или на сишный ООП GUI, типа BOOPSI — cм. например гуёвые хелловорды[/url}

интроспекция там кстати, вполне ничё так запилена была. например, темы для Zune или воркбенча менять можно было чисто ресурсами, и гуй скриптовать на REXX-е, через порты — почти как в BeOS/Haiku расширяемый скриптуемый гуй слизали как раз оттудова

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

cамо ядро, Exec там очень похоже на микро, кстати.

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

муйня гуевая, опять же

на няшной сишечкеже.вот это матумбу напоминаед:

rootclass                - базовый класс BOOPSI
  |
  Notify                  - механизм извещения объектов
   |
   +--Application         - главный класс программы
   +--Window              - окно программы
   +--Area                - базовый класс для всех GUI элементов
       |
       +--Rectangle       - чертит прямоугольники для визуального разделения
       +--Image           - графическое изображение
       +--Text            - вывод текста
       +--String          - строка ввода
       +--Prop            - создаёт пропорциональный gadget(ползунок)
       +--Gauge           - индикатор процесса(измеритель)
       +--Scale           - процентная шкала
       +--Boopsi          - интерфейс для BOOPSI классов
       +--Colorfield      - закрашенная область
       +--List            - создаёт линейный список
       |   |
       |   +--Floattext   - "плавающий" список
       |   +--Volumelist  - список томов
       |   +--Scrmodelist - список экранных режимов
       |   +--Dirlist     - список файлов
       |
       +--Group           - группирует GUI элементы и отвечает за их расположение

           |
           +--Virtgroup   - управляет виртуальными группами
           +--Scrollgroup - управляет виртуальными группами с линейками прокрутки
           +--Scrollbar   - создаёт линейку прокрутки
           +--Listview    - создаёт список
           +--Radio       - переключатели (радио-кнопки)
           +--Cycle       - раскрывающися список выбора
           +--Slider      - создаёт ползунок
           +--Coloradjust - создаёт RGB ползунок (колесо)
           +--Palette     - gadget палитры цветов

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

anonymous
()
Ответ на: муйня гуевая, опять же от anonymous

причём там вся такая вот развесистая интроспекция могла скриптоваться запросто, AREXX-ом. весь гуй автоматически становился скриптуемым.

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

Autoconfig protocol

1987 год, Карл. Всё просали, все полимеры, Карл. Сансенратт, ога.

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

нечто подобное видел в амижном AutoConfig-e.

Вообще не об этом.

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

Не увидел там интроспекции.

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

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

а об чём вопрос?

[x] API, основанный на модулях (библиотеках) и интерфейсах

check — OpenLibrary/.../CloseLibrary. перемещаемое, в отличие от dlopen/dlsym/dlclose.

[x] драйвера, основанные на интроспекции и автоконфигурации такого API

check — см. autoconfig protocol

[x] дополнительные плюшки от «портов приложений» (ср: каналы и посылка сообщений, CSP, порты в Mach, вот это вот всё) и скриптоты в гуях или глубже, на уровние API

check — cм. AREXX

отчёго бы в новохипторской оси и подобное не запилить бы, ведь идея-то рабочая?

RPC и интроспекция - это круто, конечно

RPC там кстати, толком не было. обычный Single Space OS, разве что вот в REBOL/iOS «internet OS» от Карла Сансенратта нечто подобное было, но уже поверх.

но... по разным причинам поезд ушел в другом направлении.

так-то да, что в Plan9 Rio, Inferno, что в MGR оконной системе поезд ехал, да недоехал

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

Не увидел там интроспекции.

была какая-то утилита, которая темы меняла. до отдельных кнопок, до отдельных приложений. работала, ЕМНИП, как раз через интроспекцию и настраиваемый API.

потом, autoconfig протокол — это интроспекция для драйверов.

потом, BOOPSI GUI начиная с MUI и Intuition — это API на интерфейсах над библиотеками (relocatable, потому что по имени).

в общем-то, чем-то на SOM с workplace shell напоминает, ога — только маленькое ещё, без CORBA.

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

[x] API, основанный на модулях (библиотеках) и интерфейсах

Настолько общее заявление, что просто бессмысленно.

[x] драйвера, основанные на интроспекции и автоконфигурации такого API

check — см. autoconfig protocol

«Autoconfig is an auto-configuration protocol of Amiga computers which is intended to automatically assign resources to expansion devices without the need for jumper settings.[1] It is analogous to PCI configuration».

Это вообще не о том.

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

фейспалм амиги, конечно, был в том, что модель памяти амижная была «си машина», а не «раст машина» — небезопасно это всё, и приводило к GUI Meditation Error :-)

а общая концепция API весьма годная.

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

Это вообще не о том.

это к матумбиной хотелке, про драйвера и объектно-ориентированный IOKit.

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