OSDev

для всех
Текущее время: 29 апр 2024, 12:27

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




Начать новую тему Ответить на тему  [ Сообщений: 81 ]  На страницу Пред.  1 ... 5, 6, 7, 8, 9  След.
Автор Сообщение
 Заголовок сообщения: Re: Проектирование ОС
СообщениеДобавлено: 21 фев 2012, 13:15 

Зарегистрирован: 28 окт 2007, 18:33
Сообщения: 1418
А мне вот интересно, в проектировании какой ОС использовался UML или другая графическая нотация. Что он применяется кучей серьёзных фирм -- флаг им в руки, но всех их объединяет одно: они занимаются бизнес-приложениями. Те, кто делает и операционки (ИБМ, Мыкрософт, теперь уже бывший Сан, когда-то Нокия), начали эти работы за много лет до того, как UML появился, и развивают свои системы эволюционно, а не революционно, так что и этапа полноценного проектирования как такового в новых версиях нет, а проектная документация наследуется от предыдущих разработок -- естественно, без всяких там UML. И вообще, графическое представление для операционки -- вещь обычно очень неудобная, ненаглядная и громоздкая; куда эффективнее текстовые описания (естественно, написанные нормальным языком, а не таким, где невозможно понять, что пейсатель хотел сказать). Диаграммы хорошо подходят для достаточно простых вещей вроде документооборота (а бизнес-задачи к нему, по сути, и сводятся: поступили сырьё и комплектующие на склад -- родили бумажку, перешли в производство -- переслали бумажку, появилась готовая продукция -- одну бумажку в архив, другую создали, ну и т.д.).

P.S. Проектную документацию на OS/360 видел -- хотя не всю, конечно. В общем, тысячи страниц английского текста с довольно редкими блок-схемами. На последних показывается, например, путь задания в системе или прохождение управления по модулям (подпрограммам) -- например, как ниже. Однако вся подробная информация, что на каких этапах делается, какие компоненты системы вовлечены и т.д., дана в тексте.

Изображение


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проектирование ОС
СообщениеДобавлено: 21 фев 2012, 13:24 

Зарегистрирован: 28 окт 2007, 18:33
Сообщения: 1418
iz56 писал(а):
1 Какое проектирование с презинтациями? Здесь все в одиночку работают() - каждый над своим неповторимым самым-самым проектом ос. вся документация и проектирование (в голове) ...


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

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


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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проектирование ОС
СообщениеДобавлено: 21 фев 2012, 17:16 

Зарегистрирован: 25 май 2010, 20:58
Сообщения: 136
Yoda писал(а):
То есть как это, без личного опыта??? Погоди, не понял... ща, дай разобраться......
Это по Козьме Пруткову, что ли? Если на клетке слона прочтёшь надпись "буйвол", не верь глазам своим?
Ну ладно, раз авторитетный дядя написал "буйвол", так тому и быть. Тогда мне придётся устраниться от обсуждения, т.к., к сожалению, уже испорчен личным опытом, а здесь приветствуются только чистые, абстрактные теоретики.

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

Полностью согласен, но данная тема, всё же, создана для обсуждения проектирования новых систем. А гиганты пусть как хотят, так и делают (Хотя ЮМЛ поддерживается именно по их инициативе).
Цитата:
2 Эти хорошие технологии - мешают в некотором смысле свободе манёвра. Другими словами если пользоваться общепринятыми инструментами - то получится тоже самое на выходе.

Всё зависит от того, где провести границу между общепринятым и полётом фантазии.
Из общепринятого ты, вероятно, пользуешься общепринятыми компиляторами в нативный код платформы (хотя мог бы написать свой), используешь общепринятые представления пользовательского интерфейса (хотя можно было бы ВООБЩЕ без интерфейса), притягиваешь общепринятые принципы к своей системе (многозадачность, вирт.память...). Почему не применять общепринятые стандарты моделирования и документации?
Что касается полёта фантазии: если пишешь систему для себя одного, да и уверен, что через 10 лет вспомнишь: "А почему я в этом месте сделал так, а не иначе?" - можно держать весь проект в голове. А попробуй написать систему так, чтобы в ней можно было разобраться за вечер, хоть соседу-программисту, хоть ребятам на форуме, хоть младшему брату.
//Убеждён, что ОСь должна писаться на ассемблере. Т.е. сама система должна отражать исключительно логику и функционал, а её реализация для конкретной платформы - дело кодинга, а не проектирования, со всеми преимуществами низкоуровневой оптимизации. Думаю, многие здесь согласятся. А что делать, когда объём исходников перевалит за 100.000 строк ассемблерного кода? Вот нужно мне будет, например, новый модуль в систему добавить, или потребовался перенос на новую платформу с сохранением прежнего функционала.. Как это сделать быстро и с минимальным количеством ошибок? - Не вижу способа лучше, чем изначально проектировать систему в виде отдельных компонентов (с чётко определёнными функционалами и интерфейсами). А когда система - наглядна, тогда несложно хоть новый компонент добавить, хоть на другой ассемблер всё перенести.. Да, и как сказал Yoda: "Производить отладку компонентов по-отдельности!":) Только для этого нужно изначально выбрать компонентный подход, а не "пилить на куски" уже рабочий монолит кода (проще написать заново). Собственно, в этом и вопрос: в каком формате представлять проект новой системы, чтобы его можно было вести как распределённо, так и с экономией макулатуры? Леса-то в стране не резиновые!;)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проектирование ОС
СообщениеДобавлено: 22 фев 2012, 11:35 
Заблокирован

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

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


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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проектирование ОС
СообщениеДобавлено: 22 фев 2012, 18:00 

Зарегистрирован: 25 май 2010, 20:58
Сообщения: 136
О как!:)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проектирование ОС
СообщениеДобавлено: 28 авг 2013, 10:38 

Зарегистрирован: 28 авг 2013, 09:35
Сообщения: 3
Откуда: Брянск
Станислав писал(а):
Вопрос, есть ли у вас хоть малейшее желание не то, что проектировать ось, а хотябы заняться созданием её в перспективе? Я не вижу его. Занимаются ли этим те люди, которые учавствуют в обсуждениях и считаются действительно специалистами в этой области, доказав это неоднократно как Pavia, Sii, Yoda, ... . Или вопроса её создания ни у кого не стоит?

Создание всяческих ОС тематика данного форума. Речь идёт же о том что создание надо начинать с проектирования. Разруха она в головах. Сложность кода может превысить все мыслимые пределы. Может возникнуть необходимость подключения другого разработчика вида у которого просто не работает телепатия. Отсюда необходимость проектирования и документирования.

Mr.McD. писал(а):
paviaЭто только в теории, а напрактике нет.
ActionScript, UCSD p-System, AngelScript, Smalltalk, Lua, Ruby, Python, Parrot, .NET, PHP, Forth, Erlang, Io, Java, JavaScript... Немного практики.. Список продолжать?

Непонятно как практика проектирования и наличие опыта программирования оценивается и определяется количеством изученных языков. Вдруг вы на всех них ничего кроме "Hello World!" не писали?

Только без обид.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проектирование ОС
СообщениеДобавлено: 28 авг 2013, 14:18 
Аватара пользователя

Зарегистрирован: 16 апр 2010, 10:10
Сообщения: 320
Откуда: Псковская обл.
Проект так или иначе повышает мотивацию - пока придумываешь как оно будет - и глядь что-то хочется делать. А правильно это или нет - зависит от обстоятельств - и может быть так ,что лучше сразу что-то в коде сделать - потом переделать и доделать.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проектирование ОС
СообщениеДобавлено: 31 авг 2013, 11:09 

Зарегистрирован: 19 май 2011, 14:54
Сообщения: 73
На самом деле люди, заявляющие, что не пользуются документацией при разработке - лукавят. Не обязательно пользоваться своей собственной документацией, если можно документацию позаимствовать. Посмотрите хотя бы на начинающие проекты. 90% пользуются руководствами типа блогов James Molloy, Lonesome, KIV и др. Есть книжки в конце-концов. То же самое и с заиствованием кода. Пока есть откуда взять готовый код, или есть с кем обсудить в интернете - есть более-менее быстрый прогресс. Когда приходится все писать с нуля, копать спецификации на предмет того, что еще никто популярно не описывал, наступает совершенно иная ситуация.

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

У меня сейчас текущие 2 типа проектов. 1-японцы. 2-американцы.

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

2. Американцы - из документации только требования на пользовательский интерфейс и документация на внутреннюю вебовую шину (out of date). Между требованиями на пользовательский интерфейс и другими частями системы связи никакой. Стиль проекта Agile. Время рассчитанное на разработку следующего релиза в существенной степени расходуется на фикс багов предыдущего релиза. Все вопросы обсуждаются в почте, количество редиректов, возникающих при решении того или иного вопроса - просто не прилично. Багов на проекте сотни и трудоемкость проекта просто не поддается в итоге нормальной оценке. Программисты увольняются - знания теряются...

Т.о. при разработке большого софта в большой компании необходимость документации в доказательствах нуждается мало. Нет документации - лишняя трудоемкость.

Другое дело одиночный проект вроде Hobby OS. Документация - оверхед. На ее подготовку уходит время, не все программисты (весьма талантливые и производительные) любят тратить лишние усилия на документацию. Документацию заменяет светлая голова, комментарии в коде и (или) юнит - тесты. В случае успеха - документацию напишут другие :) Т.е. несомненно, если кто-то пишет документацию, а тем более если делится с интернетом, это прекрасно. Но были, есть и будут, проекты весьма успешные проекты без документации.

Сам я за документацию. Поскольку для меня очевидно, что проект _новой_ос_, написанной "с нуля", не может быть сделан за короткий срок. Да и одним человеком. А поскольку не является сколь либо коммерчески выгодным, может быть остановлен в любой момент ввиду необходимости тратить время на другие дела. Поэтому, чтобы от проекта была хотя бы какая-то польза - пишу документацию. Не будет ОС, останется хотя бы немного полезной документации.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проектирование ОС
СообщениеДобавлено: 31 авг 2013, 11:36 
Аватара пользователя

Зарегистрирован: 25 июл 2013, 08:45
Сообщения: 141
Откуда: Новочеркасск
achesnokov писал(а):
90% пользуются руководствами типа блогов James Molloy,

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

Золотые слова. Любой опыт не должен пропадать зря а должен стать доступным для окружающих. Собственно я так же и делаю последнее время, заодно можно вернуться к забытой работе и восстановить информацию в голове по этим докам


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проектирование ОС
СообщениеДобавлено: 31 авг 2013, 14:25 

Зарегистрирован: 19 май 2011, 14:54
Сообщения: 73
maisvendoo писал(а):
achesnokov писал(а):
90% пользуются руководствами типа блогов James Molloy,

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


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


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 81 ]  На страницу Пред.  1 ... 5, 6, 7, 8, 9  След.

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


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

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


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

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