OSDev

для всех
Текущее время: 27 дек 2024, 04:41

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
 Заголовок сообщения: Redox OS - ОС, которую пишут на Rust
СообщениеДобавлено: 19 ноя 2015, 11:34 

Зарегистрирован: 15 фев 2015, 12:41
Сообщения: 9
http://www.redox-os.org/
https://github.com/redox-os/redox

Проект, похоже, стартовал в сентябре 2015. Обещается поддержка Posix. Rust - куда более безопасный язык, нежели C/C++. Поэтому ОС должна быть, по идее, надёжнее и безопаснее тех, что написаны на Сях.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Redox OS - ОС, которую пишут на Rust
СообщениеДобавлено: 19 ноя 2015, 11:51 

Зарегистрирован: 28 окт 2007, 18:33
Сообщения: 1426
Ну, для надёжности важней всё ж мозги разработчиков и дисциплина разработки. В древних осях, написанных на ассемблере, таких офигительных дыр в безопасности, как в Унихе (в частности, пресловутого переполнения буфера), не было, хотя ассемблер, в общем-то, ничуть не безопаснее.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Redox OS - ОС, которую пишут на Rust
СообщениеДобавлено: 19 ноя 2015, 13:40 

Зарегистрирован: 15 фев 2015, 12:41
Сообщения: 9
ОС древних машин были куда скромнее по объёму и, как следствие, по возможностям. Скажите, а можно ли было взломать ОС MFT 4.0 EC ЭВМ, используя лазейки в FlashPlayer? Так в те времена не было браузеров, не было сети – как глобальной, так и локальной для этих машин. В ОС MFT не было разграничения полномочий пользователей, да и сами пользователи в системе вообще не заводились. А какая защита от хакеров была, если представить, что пришёл хакер с перфокартой? А это была тётя Клава на проходной. Дыры в тех ОС были, просто о них никто не знал. ОС были глючные, но кто ж тогда об этом знал, кроме очкариков с бобиной магнитной ленты? А о новых релизах ОС не писали ни в газете «Правда», ни даже в журнале «Наука и жизнь».

Мозги разработчиков и дисциплина разработки – важные ингредиенты безопасности. Но не единственные. Почитаешь на Хабре, какие ошибки находит PVS-Studio, и диву порою даёшься. Вроде с мозгами и дисциплиной должно быть всё в порядке – проекты были очень серьёзные. Но сила человеческого разума не так велика, чтобы полностью на неё уповать. А ведь спроектируй по-другому язык, на котором всё написано, глядишь – и ошибок было гораздо меньше.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Redox OS - ОС, которую пишут на Rust
СообщениеДобавлено: 19 ноя 2015, 19:14 

Зарегистрирован: 28 окт 2007, 18:33
Сообщения: 1426
Юрий писал(а):
ОС древних машин были куда скромнее по объёму и, как следствие, по возможностям.


По объёму -- безусловно. По возможностям... Скажем так, очень спорное утверждение. Не было графических интерфейсов пользователя и прочих браузеров -- это да, но к функционалу самих систем это вообще никак не относится, это уже больше прикладной уровень (от системного там, по большому счёту, лишь драйверы для соответствующего железа, но если такое железо разработать для мэйнфейма конца 1960-х, то и программную поддержку для него вполне возможно сделать; например, технически нет никаких проблем прикрутить контроллер Ethernet к стандартному интерфейсу ввода-вывода ЕС ЭВМ и написать стек TC/IP для ОС -- просто тогда этого не было, ну а сейчас всё это есть, только, естественно, на современных потомках Системы 360). Если стряхнуть с современных систем весь ворох свистоперделок и прочих пользовательских вещей, то внизу окажется ядро, не имеющее принципиальных отличий от достаточно мощных систем конца 60-начала 70-х годов.

Цитата:
не было сети – как глобальной, так и локальной для этих машин


У нас не было, у них -- уже был удалённый (реально удалённый, со связью по телефону хоть через все Штаты) доступ пользователей к мэйнфреймам с арендой машинного времени и всего такого прочего. Да и межмашинные сети тоже именно в 1960-е стали появляться.

Цитата:
В ОС MFT не было разграничения полномочий пользователей, да и сами пользователи в системе вообще не заводились. А какая защита от хакеров была, если представить, что пришёл хакер с перфокартой? А это была тётя Клава на проходной. Дыры в тех ОС были, просто о них никто не знал. ОС были глючные, но кто ж тогда об этом знал, кроме очкариков с бобиной магнитной ленты?


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

Что ж до пользователей и защиты... В MFT, честно говоря, не помню, а вот в MVT и SVS были и пользователи, и защита -- другое дело, что этими возможностями далеко не всегда пользовались (обычно просто смысла не было, особенно в наших условиях, где не требовалось вести учёт машинного времени, потраченного разными пользователями). В частности, правильно настроив систему, можно было разрешить или запретить исполнение потенциально опасных системных вызовов программам, запускаемым от имени определённых пользователей. Например, была малоизвестная макрокоманда MODESET, позволяющая прикладной программе перейти в режим супервизора -- и тем самым получить полный контроль над машиной. Естественно, если заботиться о безопасности, эту макрокоманду надо сделать недоступной для прикладных программ, кроме особо избранных, и такая возможность была.

Цитата:
Мозги разработчиков и дисциплина разработки – важные ингредиенты безопасности. Но не единственные. Почитаешь на Хабре, какие ошибки находит PVS-Studio, и диву порою даёшься. Вроде с мозгами и дисциплиной должно быть всё в порядке – проекты были очень серьёзные. Но сила человеческого разума не так велика, чтобы полностью на неё уповать. А ведь спроектируй по-другому язык, на котором всё написано, глядишь – и ошибок было гораздо меньше.


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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Redox OS - ОС, которую пишут на Rust
СообщениеДобавлено: 20 ноя 2015, 12:47 
Аватара пользователя

Зарегистрирован: 14 мар 2011, 12:31
Сообщения: 972
Откуда: Дагоба
Хороший посыл, правильная идея, хороший выбор базового языка.
Старые ОС не ломали не потому что в них не было дыр. Я помню, ещё в старые времена пара студентов с Физтеха провели анализ RT-11 и нашли ошибки, в т.ч. и типа переполнения буфера. Отсутствие масштабных хаков было обусловлено скорей следующими обстоятельствами:
  • Малое распространение компьютеров. Каждый владелец домашнего компьютера мог считаться небожителем, а даже более-менее приземлённые PDP-11 могли себе позволить только очень солидные группы с хорошей финансовой подпиткой. Компьютер ДВК-2М в магазине "Электроника" на Красной Пресне стоил около 15000 рублей, т.е. примерно столько, сколько стоил автомобиль Волга.
  • Малое распространение сетей. Они, фактически, соединяли академические заведения, минуя агрессивную среду обычных пользователей и коммерческих учреждений. Да, был удалённый терминальный доступ, но не для простых смертных. Простые смертные в основном ограничивались FIDO и BBS.
  • Отсутствие мотивации ко взлому. Для этого нужно время (а людям, получившим доступ к мейнфрейму, было просто не до того) и цель (ну что ты украдёшь? исходник чужой диссертации?). Даже в описании червя Морриса в википедии написано, что он использовал давно известные уязвимости в почтовом сервере Sendmail... То есть, дырка была, и о ней знали, но всем было наплевать не придавали этому большого значения.
  • Весьма ограниченная функциональность ОС того времени. Фактически, защищать нужно было только файловую систему и несколько сетевых протоколов.
  • Специализация ОС. В то время ОС писались с нуля и целенаправленно с учётом факторов защиты, а не вырастали из убогих ДОСов с сохранением совместимости.
Мозги, как первичный фильтр, конечно важны, и программированием в основном занимались профессионалы, а не миллионы быдлокодеров. Но, тем не менее, с языка не стоит снимать вину, т.к. он может провоцировать на ошибки даже профессионала.

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

_________________
Yet Other Developer of Architecture.
The mistery of Yoda’s speech uncovered is:
Just an old Forth programmer Yoda was.

<<< OS Boot Tools. >>>


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Redox OS - ОС, которую пишут на Rust
СообщениеДобавлено: 20 ноя 2015, 18:21 

Зарегистрирован: 15 фев 2015, 12:41
Сообщения: 9
SII
Цитата:
технически нет никаких проблем прикрутить контроллер Ethernet к стандартному интерфейсу ввода-вывода ЕС ЭВМ и написать стек TC/IP для ОС
Вы плохо представляете, сколько для этого надо было бы сделать. «Прикрутить контроллер Ethernet» - это отверткой что ли? Там канал ввода-вывода представлял из себя толстый пучок проводов коаксиального кабеля. Мультиплексоры передачи данных представляли из себя здоровые шкафы – для информационного обмена по телефонному каналу со скоростью 1200 бод. Для стека TC/IP надо было бы влезать в ОС, дописывать то, чего в ней нет, чтобы обеспечить возможность работы того, что сейчас называют драйверами.
Цитата:
Да и межмашинные сети тоже именно в 1960-е стали появляться.
Да какие это сети? Обмен информацией между 2-мя машинами и 2-мя программами на этих машинах.
Цитата:
Глюки были, дыры были -- но отнюдь не в таких количествах и не настолько идиотские, хотя в те времена защитой как раз и не озабочивались, в общем-то -- просто писали в среднем намного качественней.
Ой, не надо о том, что раньше трава была зеленее. Я об этом знаю не понаслышке. Писали такой отстой порою! Была такая история. Было 2 организации, одна должна была сдать написанное ПО в эксплуатацию, а другая принять её. Одному программисту второй организации было дано задание: написать нечто, чтобы «ронять» систему во время испытаний. Ибо первая организация могла продавить (благодаря админресурсу) «успешность» испытаний, и надо было сделать так, чтобы испытания были бы вопиюще неуспешными. Когда же эти испытания наступили, то этот «вирус» даже не пришлось применять – система и сама успешно падала.
Цитата:
В MFT, честно говоря, не помню, а вот в MVT и SVS были и пользователи
Это смотря как сгенерировать ОС. Ни разу не видел такую MVT, в которой бы были пользователи.
Цитата:
Программы на Аде содержат в несколько раз меньше ошибок, чем на Си++, и отлавливать их намного проще. Тем не менее, первичными всё-таки мозги являются, а не инструменты.
Применение анализатора PVS-Studio доказывает, что мозгов всё-таки не достаточно для большей надёжности. А мозги, конечно, нужны. Без них ни Аду не написать, ни PVS-Studio, ни обычную любую другую программу.
Yoda
Цитата:
Хороший посыл, правильная идея, хороший выбор базового языка.
Написать ОС на хорошем, безопасном языке гораздо проще и быстрее. И результат будет лучше. Попытка найти все ошибки в коде С/С++ анализаторами кода заранее обречена на провал. Спрашиваю Андрея Карпова, соавтора PVS-Studio: «А как сказывается а работе PVS-Studio употребление оператора goto»? Отвечает: «Очень плохо». Он же указывает, что их анализатор хорошо находит одни ошибки, а другие анализаторы – другие.
Цитата:
Каждый владелец домашнего компьютера мог считаться небожителем… Простые смертные в основном ограничивались FIDO и BBS.
Бывали времена, когда и домашних компьютеров не существовало. И FIDO и BBS тоже не было!
Цитата:
Отсутствие масштабных хаков было обусловлено скорей следующими обстоятельствами:

Я бы ещё сюда добавил бы, что существовал порог вхождения. Даже загрузка ОС на некоторых системах требовала специальных знаний. Даже существовала такая специальность – оператор ОС. В их задачу входило загружать ОС и прикладные программы. Некоторые программисты не умели запускать ОС и монтировать диски и ленты – им требовалась помощь операторов. Программисты - они же не операторы, правда?
Ну и стоить упомянуть ограниченность круга лиц, имеющих доступ к машинам.
Цитата:
ну что ты украдёшь? исходник чужой диссертации?
Охотились, в основном, за гороскопами, братьями Стругацкими, «Мастером и Маргаритой» и «Лукой Мудищевым» Баркова.
Цитата:
Мне даже подумать страшно, что было бы, если бы миллионы быдлокодеров разом начали писали на ассемблере.
Эх, не видели Вы блондинок, пишущих на ассемблере! Вы много потеряли :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Redox OS - ОС, которую пишут на Rust
СообщениеДобавлено: 21 ноя 2015, 11:08 

Зарегистрирован: 28 окт 2007, 18:33
Сообщения: 1426
Юрий писал(а):
SII
Цитата:
технически нет никаких проблем прикрутить контроллер Ethernet к стандартному интерфейсу ввода-вывода ЕС ЭВМ и написать стек TC/IP для ОС
Вы плохо представляете, сколько для этого надо было бы сделать. «Прикрутить контроллер Ethernet» - это отверткой что ли? Там канал ввода-вывода представлял из себя толстый пучок проводов коаксиального кабеля.


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

Цитата:
Для стека TC/IP надо было бы влезать в ОС, дописывать то, чего в ней нет, чтобы обеспечить возможность работы того, что сейчас называют драйверами.


Для того, чтобы работать с нестандартным оборудованием, в OS/360 можно было запускать на выполнение свои собственные канальные программы -- ОС это поддерживала совершенно штатным образом. Благодаря этому с такой железкой могла бы работать прикладная программа напрямую -- лишь бы права необходимые были. Поэтому весь стек TCP/IP можно было бы оформить отдельной задачей, а не частью ядра ОС.

Цитата:
Ой, не надо о том, что раньше трава была зеленее. Я об этом знаю не понаслышке. Писали такой отстой порою!


Ага, бывало. Однако ж трава таки тоже была зеленее -- в силу того, что средний уровень программиста 1960-70-х был сильно выше, чем сейчас.

Цитата:
Это смотря как сгенерировать ОС. Ни разу не видел такую MVT, в которой бы были пользователи.


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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Redox OS - ОС, которую пишут на Rust
СообщениеДобавлено: 21 ноя 2015, 11:14 

Зарегистрирован: 28 окт 2007, 18:33
Сообщения: 1426
Yoda писал(а):
Мне даже подумать страшно, что было бы, если бы миллионы быдлокодеров разом начали писали на ассемблере.


Ну, OS/360 отчасти и являет собой пример такого подхода. Конечно, те, кто её писали, сейчас были бы чуть ли не гениями (на фоне тех, кто научился кое-как соединять уворованные в этих ваших интернетах куски чужого кода на ПыхПыхе, чтобы делать свои быдлосайты), но в основной своей массе всё ж не были выдающимися специалистами -- посему и надёжность этой системы оставляла желать. VM/370, кстати, оказалась со всех точек зрения лучше -- убить её было крайне проблематично (недаром даже сейчас её называют "золотым стандартом виртуализации" -- примерно так авторы какой-то из книжек по процессорам её охарактеризовали). RSX-11 и VAX/VMS тоже много надёжней были -- но их писала не такая толпа народу, как OS/360 (особенно первую, большая часть которой вообще в одиночку Дэвидом Катлером написана была, судя по комментариям в исходниках).


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 8 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB