OSDev

для всех
Текущее время: 22 ноя 2017, 13:40

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




Начать новую тему Эта тема закрыта, вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 34 ]  На страницу Пред.  1, 2, 3, 4  След.
Автор Сообщение
 Заголовок сообщения: Re: Лаборатория Единой среды
СообщениеДобавлено: 04 дек 2012, 11:00 

Зарегистрирован: 28 окт 2007, 18:33
Сообщения: 1314
Откуда: Зеленоград
Yoda писал(а):
Freeman писал(а):
Не бессмысленно, а рано. Нужно написать все остальное, и уже под него -- ядро

Не, вот с этим я точно не могу согласиться.


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

Цитата:
Freeman писал(а):
Попытка делать малую ОС на массовом оборудовании -- либо хобби, либо подмена понятий, особенно если автор провозглашает "вендекапец".

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


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

Цитата:
Freeman писал(а):
Примеры других ОС на x86 -- Netware, BeOS, OS/2 и прочих оставляю в качестве домашнего задания. :)

Это очень интересные примеры. Особенно Novell Netware. Это была хорошая ОС, очень востребованная, написанная с нуля, и, полагаю, разработка также началась в первую очередь с ядра. Другое дело, что она устарела и поэтому сошла с рынка. Но многие её концепции до сих пор меня восторгают и я с сожалением вздыхаю, что сейчас этого нет.


Думаю, что сошла из-за ошибок фирмы, а не из-за устарелости как таковой...

Цитата:
Himik писал(а):
Наверно это и правильно, и наверно универсальной ОС не бывает. Даже Windows выходит в десяти вариантах.

Это не из-за неуниверсальности. Это чисто коммерческий приём


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

Цитата:
Himik писал(а):
К сожалению С/С++ культовым скорее всего не станет, потому что он занимает промежуточную позицию между низко в высокоуровневыми ЯП.

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


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

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Лаборатория Единой среды
СообщениеДобавлено: 04 дек 2012, 12:33 
Заблокирован

Зарегистрирован: 28 окт 2011, 12:14
Сообщения: 555
Откуда: Новосибирск
Кстати компиляторы сравнивают с трансляторами, на трансляторе можно написать абсолютно всё, и компилятор тоже должен дать такие же возможности, но с удобным лексиконом и без регистров. Кстати регистры для работы с вещественными числами есть от fpu и sse, причём эта тема в компиляторах отбивает руки и для нормальной работы создаёшь ассемблерные вставки как единственный выход.
Я уже не пользуюсь Паскалем, а С так и не пробовал, хоть и знаю. Я пользуюсь трансляторами и создаю свой компилятор, тема у меня такая, и у вас тоже.
В компиляторах считаю неправильным передачу параметров от функции к функции, да и в трансляторах макросы с той же ошибкой.
Трансляторы тоже не дают например возможности создать таблицу релокации в заданном месте и заданными параметрами, а делают это только для стандартных форматов, хотя созданы в первую очередь для разработчиков этих форматов и всего остального с ноля.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Лаборатория Единой среды
СообщениеДобавлено: 05 дек 2012, 00:00 

Зарегистрирован: 21 сен 2007, 17:24
Сообщения: 1025
Откуда: Балаково
Станислав писал(а):
Вопрос в том, что, может ли человек не зная все остальное писать ядро, конечно нет.

Может, если следовать эволюционному принципу разработки. Это когда берёшь что-то хорошо известное за основу и допиливаешь. Например так создавался CP/M и DOS, будучи по-сути надстройками над BIOS, затем был Windows надстройкой над DOS, и т.д. и т.п.

Конечно в идеале проектировать ОС сверху вниз, потому что в таком случае ядро написать легче, когда поставлена конкретная задача с конкретными параметрами и с конкретным API. Тут уже просто тупо кодируешь готовый проект. Для этого нужна очень фундаментальная проработка, что тоже не просто. И при этом надо не забывать, что лучшее враг хорошего, поэтому тут надо искать компромисс между бесконечным проектированием или кодированием.

Станислав писал(а):
Ядро работает с объектами и обеспечивает работу объектов на низком уровне(запуск в их ВАП, защите, короче полое состояние процессора в их правильной работе).

Любое ядро работает поверх наноядра, даже если оно чётко не формализовано и не декларировано. Если хорошо покопаться, то в любом ядре его можно найти и вычленить. Так вот я предлагаю не смешивать ядро вообще и низкоуровневую подсистему, которая на внешние интерефейсы (API) не влияет, и в любом случае аппаратно зависимо. Это как в Linux-е подсистемы arch.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Лаборатория Единой среды
СообщениеДобавлено: 05 дек 2012, 12:20 
Аватара пользователя

Зарегистрирован: 14 май 2012, 22:17
Сообщения: 96
Начну с домашнего задания. Как старый нетварьщик хочу сказать, что NetWare "ушла" когда попыталась стать универсальной на 6-й версии (а началось - в 5-й). Эта ниша оказалась занята, а там где NetWare господствовала - ниша сильно сократилась. Ну и совершенно ненужное объединение с линукс компанией не надо забывать. При всём при этом - в ней были сервисы, которые не повторены до сих пор (например SFTIII - зеркалирование содержимого серверов на стандартном оборудовании) и сервисы, которые стали образцом для подражания - NDS. Система эта началась вместе с ядром и например удачная QNX - тоже система начавшаяся с ядра. Вы в качестве образца смотрите монстров в которых (рискну сказать) ядро не главное. Если смотреть на маленькие и средние системы - ядро на первом месте.

А без ядра можно, если хочется сразу сервисами заняться? Конечно можно - вот пример из автомобилестроения. Когда готовят новую модель, сначала делают "мула". Это машина в которой часть деталей (кузов, мотор, привод) используется от предыдущего поколения и заменяются по мере создания. Это позволяет всё отлаживать на работающем прототипе. В разработке ОС тоже так можно. Возьмите тот-же MINIX и делайте всё поверх него. По необходимости допишете работу с памятью, поддержку нескольких процессоров и т.п. В результате через некоторое время получите СВОЮ систему без чужого кода. Кое какие решения конечно придётся унаследовать, но MINIX - хорошо спроектирован и стОит того.

На мой взгляд одному замахивается на ОС - бессмысленно ибо абсолютно не подъёмно, а вот на ядро - можно. Ядро это то что в ОС имеет более длинный цикл развития чем пользовательское окружение. Как мотор в машине, который как правило переживает 2-3 смены кузова. Mach например был готов ещё в начале 90-х и сейчас работает в Mac-ах а некоторые решения из него - в винде. Другое дело, что ядро само по себе мало кому нужно и чтобы оно пошло - это должен быть настоящий прорыв куда-нибудь (именно так, без шуток, Маch - был настоящим прорывом в то время). Если просто сделать по старым шаблонам, то такое вряд-ли будет востребовано. Ищите свою нишу.

У Вас правильный взгляд в будущее - объектно-орентированные операционные системы. Это то направление, которое исследовали в 90-е, но дальше прототипов не пошло. ИМХО здесь концепция важна, но надо думать и о технической реализации. И когда я об этом думаю, то ничего лучше чем DCE\DCOM придумать не выходит. Не забывайте про технические детали у Ваших объектов. Например - отсутствие множественного наследия в COM прямое следствие попытки создать совместимую и переносимую между многими компиляторами реализацию.

Вот с чем соглашусь, что на западе люди умеют объединятся для решения задач. Это демонстрирует линукс и бсд и другие примеры. У нас - все по своим лавкам. Я правда - тоже. :) Объяснить этот феномен с рациональной позиции не берусь, но ИМХО возможно и поэтому многие русские проекты - не взлетают.

Отдельно по примерам:
Правильные двигатели проектируют без особой привязки к шасси. например GM-овский V8 Nordstar, который спроектировали в конце восьмидесятых-начале девяностых и который почти без изменений дожил до наших дней. Когда его проектировали, американцы собрали и переработали весь опыт проектирования моторов в то время. Достаточно сказать, что он некоторое время может работать совсем без охлаждающей жидкости (при её утечке в цилиндры поочередно впрыскивается воздух для охлаждения), мало того - редкий случай в истории автомобилестроения - двигатель, который был спроектирован для установки поперек кузова - теперь ставится продольно.

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

И большое спасибо за интересные статьи. Прочитал с большим интересом и удовольствием.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Лаборатория Единой среды
СообщениеДобавлено: 06 дек 2012, 21:15 

Зарегистрирован: 04 ноя 2007, 14:48
Сообщения: 113
Кажется кто то скоро напишет аналог emacs...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Лаборатория Единой среды
СообщениеДобавлено: 07 дек 2012, 13:29 
Аватара пользователя

Зарегистрирован: 16 апр 2010, 10:10
Сообщения: 319
Откуда: Псковская обл.
Вчера читал статьи. Интересно - на уровне художественной литературы где-то. Сама идея тоже. Чувствуется , много энергии потрачено. Целевая аудитория ,должно быть, предполагалась не самая широкая - в тех. плане. Я местами не понял. Потенциальные разработчики ,те из них что могли бы участвовать, возможно, не смогут разобраться. Если организовывать работу по уровням, то сейчас самый верхний - сложный в плане подготовки. Если найдётся ещё один человек - понимающий идею проекта глобально, будет хорошо. Для старта нужно немного универсалов, которые принимают идею (часть). Интересно, сейчас сколько человек этим занимаются.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Лаборатория Единой среды
СообщениеДобавлено: 08 дек 2012, 11:55 

Зарегистрирован: 26 мар 2012, 17:32
Сообщения: 208
D-S писал(а):
которые не повторены до сих пор (например SFTIII - зеркалирование содержимого серверов на стандартном оборудовании)

Ещё примеры?
А зеркалирование разных видов много кто делал и делает. Есть всякие кластерные утилиты для холодного failover (грубо говоря, когда при падении одного сервера второй поднимается с тем же хранилищем, забирает на себя общий ip и продолжает работу заместо первого), есть retrace/revirt, есть Xen Remus, есть всякие извращения на user mode linux, есть virtuozzo и т.д. Разные решения с разными особенностями (ибо точились под разные задачи), но если есть конкретная задача, то имхо можно найти подходящее решение.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Лаборатория Единой среды
СообщениеДобавлено: 22 янв 2013, 03:17 
Аватара пользователя

Зарегистрирован: 28 май 2012, 23:44
Сообщения: 237
Откуда: Санкт-Петербург
За прошлый год наработан солидный пакет изменений и уточнений в документации, теперь они будут постепенно интегрироваться в вики. Работа сосредоточена на языке Оно.

Уже переписано вступление к синтаксису (2015 г.) и статья про числовые, строковые и прочие константы.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Лаборатория Единой среды
СообщениеДобавлено: 24 янв 2013, 20:41 
Аватара пользователя

Зарегистрирован: 28 май 2012, 23:44
Сообщения: 237
Откуда: Санкт-Петербург
Кстати, о! Нашел в черновиках. Почему-то забыл еще в первый раз запостить.
Yoda писал(а):
Выходит, я всю жизнь буду заниматься загрузчиками? :D Меня что-то не радует такая перспектива.

Отвечает Бертран Мейер:
Бертран Мейер писал(а):
Нельзя приписывать особую роль точке начала выполнения кода в архитектуре системы. Типичным примером может служить инициализация операционной системы, выполняемая процедурой загрузки. Этот небольшой и незначительный компонент безусловно нельзя считать центральным в архитектуре операционной системы. Объектная технология исходит из прямо противоположной предпосылки, считая, что важнейшими свойствами системы являются входящий в нее ансамбль классов, функциональные возможности этих классов и их взаимосвязь. В таком контексте выбор корневого класса играет второстепенную роль и при необходимости его можно легко изменить.

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

Freeman писал(а):
Запланировано четыре такие статьи-лекции. Две уже есть и две еще будут. Последняя -- как раз про язык программирования.

Как уже видно, план по лекциям реализовать не удалось. Разработка третьей статьи-лекции сдулась на предварительном этапе, зато пошла четвертая, но не в форме лекции, а как развитие доки Оно. Из лекционных материалов есть только краткое эссе про рутину с традиционной саморекламой.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Лаборатория Единой среды
СообщениеДобавлено: 24 янв 2013, 21:39 
Аватара пользователя

Зарегистрирован: 16 май 2007, 23:46
Сообщения: 1056
Пусть тут повесит.

Концепция нового Языка.
1. должен быть проще существующих.
2. должен быть умнее существующих.
3. должен не позволять создавать ошибки.
4. должен ускорять разработку.
5. должен быть легко усвояемым. Простым в обучении.
6. легкость интегрирования и простота взаимодействия с другими приложениями.

малый код может быть наполнен большим смыслом, а поэтому может быть сложным.

1. потоковое программирование
2. событийное программирование
3. Функциональное
4. структурное/алгоритмическое


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Эта тема закрыта, вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 34 ]  На страницу Пред.  1, 2, 3, 4  След.

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


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

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


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

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