OSDev

для всех
Текущее время: 28 мар 2024, 11:41

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




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

Зарегистрирован: 14 мар 2011, 12:31
Сообщения: 970
Откуда: Дагоба
Freeman писал(а):
На самом деле это и есть проявление фрактальности (2015 г.), о которой я и писал. В нее одинаково безнадежно упираешься и ты, и Станислав, и Дмитрий в "Фантоме", и даже Вирт с Мейером. Это математика, ее никак не обойти.

Хммм. Отлично проведенный анализ!! Наводит на ряд размышлений, особенно в свете моих заключений о необходимости нового языка программирования.

Freeman писал(а):
Я читал какие-то конспекты лекций Мейера, у него описаны три случая системы с глобальной типизацией, но окончательного решения нет. Могу нарыть снова и процитировать, если интересно.

Было бы интересно почитать.

Freeman писал(а):
Кто с ядра начинает -- всю жизнь ядром и занимается. :lol:

Выходит, я всю жизнь буду заниматься загрузчиками? :D Меня что-то не радует такая перспектива.

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

<<< OS Boot Tools. >>>


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

Зарегистрирован: 28 окт 2011, 12:14
Сообщения: 555
Откуда: Новосибирск
Himik писал(а):
В данный момент планирую переход на 64-битный режим, совместно с 32-битным и виртуальным 16-битным (потому что ОС использует BIOS).
16-битный режим несовместим с 64-битным, поэтому системе нужен 2х-ядерный процессор, на первом ядре проца будет постоянно работать 64-битное ядро системы, на втором проце тоже будет работать 64-битное ядро, но периодически переходить на 32-битное ядро с виртуальной 16-битной задачей (по мере вызова BIOS процедур).

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

Цитата:
В самом деле, что есть объект? Всё? Совсем всё? Вот файл на диске — объект? А если файл исполняемый, в нем внутри лежат секции кода, данных, ресурсов, перемещаемые символы и пр. Эти секции — объекты? А одиночный ресурс в ресурсах, — та же иконка, — объект? А палитра иконки? А цвет палитры?

Если подняться выше, каталог — это объект? А раздел с файловой системой? Том носителя? Сам носитель как устройство? Да и сам компьютер как узел глобальной сети — объект или нет? Как вместить это в ОС? Провести границу? Как? Отделить хорошие объекты от плохих? Или объекты от необъектов?


Каталог это файл своего формата. Да всё есть объект, процессор, задача, система и файл, .... .

Цитата:
Если подходить к понятию объекта абстрактно, получается, что в общем случае мы не можем определить границы объектности и степень вложенности объектов друг в друга. Объект, могущий содержать в себе другие объекты, называют контейнером. И если принять невозможность определения границ вложенности объектов за данность, правильное определение «Всё есть объект» звучит как:Всё есть контейнер.


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


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

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

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

Yoda писал(а):
Выходит, я всю жизнь буду заниматься загрузчиками? Меня что-то не радует такая перспектива.

В первой статье (2015 г.) есть рецепт: нужно разработать тотемную культуру, и люди потянутся за тобой. Раз получилось у Вилле Турьянмаа, получится и у других.

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

Во! Возьму цитатой, поставлю сразу после "Волшебной лампы Аладдина". Спасибо за столь наглядную иллюстрацию.


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

Зарегистрирован: 21 сен 2007, 17:24
Сообщения: 1088
Откуда: Балаково
Станислав писал(а):
Перемешивать режимы не стоит. Сама система не должна привязываться к режимам и архитектуре, разработанная объектная операционная система должна легко переноситься на любую архитектуру и режим, т.к. вне зависимости от процессора на фдешке и в сети будут находиться данные, которые должны обрабатываться одинаково любой ОС. Ядра нужны, для выполнения задач параллельно.

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


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

Зарегистрирован: 21 сен 2007, 17:24
Сообщения: 1088
Откуда: Балаково
Yoda писал(а):
Хммм. Отлично проведенный анализ!! Наводит на ряд размышлений, особенно в свете моих заключений о необходимости нового языка программирования.

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


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

Зарегистрирован: 14 мар 2011, 12:31
Сообщения: 970
Откуда: Дагоба
Freeman писал(а):
В первой статье (2015 г.) есть рецепт: нужно разработать тотемную культуру, и люди потянутся за тобой. Раз получилось у Вилле Турьянмаа, получится и у других.

Прочитал. Как-то очень пессимистично написано, да и с основными заключениями я в корне не согласен, в частности, с тем, что писать ядро бессмыссленно.
Поясню. Действительно, многие примеры успешных ОС, которые мы видим, начинались не с ядра. Но я думаю, что выводить статистику на столь малой выборке неправомерно и в данном случае лучше анализировать причины успеха и неудачи исключительно индивидуально.
Windows. Успех в основном коммерческий. Изначально MS удалось создать простую и достаточно удобную ОС, причём в плане удобства был один из важных факторов, - её можно было загрузить без всяких нудных установок с дискеты и работать прямо на этой дискете. Нельзя считать, что разработка началась не с ядра, всё же у ДОС был и есть вполне устоявшийся ABI, причём весьма солидный, включающий в себя не только программный АПИ, но и формат исполняемых файлов, файловую систему, компиляторы и много чего прочего.
Unix. Начался с ядра + язык программирования. В данном случае, несмотря на то, что разработка велась в стенах коммерческого предприятия, сама по себе не была коммерческим проектом. Можно рассуждать про Линуксы, БСД и прочее, но всё это было потом.
Таким образом, видим, что в основе двух самых мощных ветвей современных ОС лежат разработки именно по принципу "сначала сделаем ядро", причём, не важно, было ли это коммерческой или академической разработкой.
Но ладно, скажем ОК, пусть ряд ОС разработан предположительно вне приоритета ядра. Но тогда нам надо провести чёткую границу между ядром и не-ядром. Возьмём, к примеру Андроид. Действительно, он базируется на ядре Линукс. Но вправе ли мы говорить, что у Андроида нет своего ядра? А как же его виртуальная машина? А как же его ABI? Я согласен, за выделение памяти и работу с устройствами отвечает Линукс-ядро. Но тем не менее, мы не можем его ограничить и сказать "дальше этого оно не простирается". То же самое касается и большинства других ОС.
Хочу отметить ещё один важный момент, а именно, вопрос необходимости новой ОС. Можно считать, что разработка новых ОС бессмысленна т.к. 1) уже всё есть, 2) с Майкрософтом конкурировать бессмысленно 3) вряд ли получится что-то лучше и пр.пр. Вместо споров по каждому отдельному пункту скажу только одно. Если существует огромная группа пользователей, которая аргументированно не удовлетворена ни одной из существующих ОС, точку в разработке ОС ставить рано. Можно спорить, как она должна выглядеть, какие функции решать, но её ещё нет, а значит она должна рано или поздно появиться - сейчас, через 10 или через 100 лет.

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

Не, это всё же совершенно разные, хотя и очень тесно связанные задачи. Пока во многих ИТ-сферах есть существенные пробелы, так, на мой взгляд, нет хорошей ОС, хорошей архитектуры CPU и хорошего системного языка программирования. Хотя в некоторых областях прогресс всё же дошёл до стадии, когда можно сказать - "это близко к идеалу". Так, например, стандарт ECMA (JavaScript) можно критиковать в деталях, но в целом как универсальный скриптовый движок он существенно превосходит всякие Бейсики и прочий мусор.

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

<<< OS Boot Tools. >>>


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

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

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

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

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

Yoda писал(а):
Но я думаю, что выводить статистику на столь малой выборке

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

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

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


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

Зарегистрирован: 21 сен 2007, 17:24
Сообщения: 1088
Откуда: Балаково
Freeman писал(а):
Yoda писал(а):
Прочитал. Как-то очень пессимистично написано, да и с основными заключениями я в корне не согласен, в частности, с тем, что писать ядро бессмыссленно.

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

Мне кажется что это ближе к позиции нишевой, а не универсальной ОС - точно знать область применения. Наверно это и правильно, и наверно универсальной ОС не бывает. Даже Windows выходит в десяти вариантах.
Freeman писал(а):
Если любой непредвзятый наблюдатель посмотрит на этого разработчика со стороны, он скажет, что чел "гоняет движок на стенде", а не "строит автомобиль", как кажется автору.

Давай не валить всё в одну кучу. Разработчики ядер заявляют что они разработчики ядра, а не ОС. Например Торавальдс никогда не называл себя разработчиком ОС Линукс, потому что "Линукс ОС" не существует. Ну я вот изначально назвал свою систему ОС, потому что изначально планировал сделать ОС, потом когда разобрался во всём этом понял что у меня ничего кроме ядра сделать не получится. Чтобы сделать что-то кроме ядра, нужна команда фанатов. К сожалению в нашей стране существуют только фанаты ассемблера. Это потому, что Ассемблер стал культовым ЯП, как стали например культовыми автомобилями древние ВАЗ-01, Ford Mustang. К сожалению С/С++ культовым скорее всего не станет, потому что он занимает промежуточную позицию между низко в высокоуровневыми ЯП. Следующим культовым ЯП станет какой-нибудь JavaScript (тем более что до недавнего времени был культовым Java) или вытеснивший Java .Net C# и VB#. Именно поэтому в концепции моей "ОС" заявлена поддержка такого типа платформ, как .Net или Mono.
Вообще у системы появляется шанс на жизнь тогда, когда в ней появляются удобная по современным меркам система разработки программ. Поэтому в своей ОС я веду работу в направлении поддержки языков программирования. FASM и GCC работают уже давно, но для полного счастья нужна ещё IDE, без неё код не напишешь и не отладишь.


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

Зарегистрирован: 14 мар 2011, 12:31
Сообщения: 970
Откуда: Дагоба
Freeman писал(а):
Не бессмысленно, а рано. Нужно написать все остальное, и уже под него -- ядро

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

Freeman писал(а):
Начинать ОС с ядра -- все равно что пытаться сделать двигатель и беспрерывно гонять его на стенде

Хорошо, пусть будет такое сравнение.
1. Двигатель всё равно рано или поздно кто-то должен разработать.
2. Если двигатель хороший, и свои качества он успешно докажет, его можно использовать на целой серии автомобилей самых разных производителей.
3. Если делать машину без учёта специфики двигателя с мыслью "потом как-нибудь прикрутим", то скорей всего машина никогда не будет сделана, потому что разработчики машины вообще себе не представляют работу ДВС, а если бы представляли, то озаботились КПП и трансмиссией.
Я совершенно согласен, что хорошее ядро без прикладного ПО никому не нужно. Тем не менее, из этого совершенно не следует сдвиг приоритета (как по важности, так и по времени начала разработки) в сторону прикладного ПО. Сначала нужен скелет, даже если сам по себе он бесполезен. Другое дело, что разработчик должен понимать, какой именно скелет ему нужно проектировать, чтобы не попасть в ситуацию, что разработан двигатель для формулы 1 вместо тракторного.

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

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

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

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

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

Это не из-за неуниверсальности. Это чисто коммерческий приём, называющийся targeting и заключается он в том, что изначально универсальное решение принудительно делается неуниверсальным и размывается по ценовому диапазону, чтобы можно было успешно "отъять" лишние деньги у как можно большего числа потребителей, начиная с нищего студента и заканчивая мега-корпорацией. В МС работают отличные менеджеры.

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

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

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

<<< OS Boot Tools. >>>


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

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

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

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

Ядро работает с объектами и обеспечивает работу объектов на низком уровне(запуск в их ВАП, защите, короче полое состояние процессора в их правильной работе).
Функционал объектов есть API. А потом уже создание дополнительных объектов, которые будут работать в ядре как полагается системе и делать свои дела(форматы файлов, дрова, модули, системы файловые, компоненты, ..., короче это всё остальное, и часть уже есть и просто переносится)
Я при изменении ядра в системе держу минимальную сборку всего остального, и отлаживаю это всё после изменения в ядре, проверяя как оно скажется на работе и что дают. А после завершения посмотрю, в каком состоянии всё остальное и буду просто добавлять к нему(наращивать систему с готовым ядром с проверенной работой объектов в нём делающие полезные дела)
А процессоры кстати бываю разные, и их изменения должны влиять на ядро, и ни в коем случае на систему, для её переносимости на ядра работающие по принципу работы своего ядра, но с разными процессорами. Бинарный код системы всё равно не подайдёт, но в ней он должен перекомпилироваться без изменений.

Yoda писал(а):
Himik писал(а):Наверно это и правильно, и наверно универсальной ОС не бывает. Даже Windows выходит в десяти вариантах.Это не из-за неуниверсальности. Это чисто коммерческий приём, называющийся targeting и заключается он в том, что изначально универсальное решение принудительно делается неуниверсальным и размывается по ценовому диапазону, чтобы можно было успешно "отъять" лишние деньги у как можно большего числа потребителей, начиная с нищего студента и заканчивая мега-корпорацией. В МС работают отличные менеджеры.


Да, ядро одно, а просто разные сборки.

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


С/С++ есть и ни куда не денется, и другого ничего нету, а появится после создании ОС, которой понадобится новый язык программирования, который даст дополнительные возможности, удобства, скорость, если это будет возможно.


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

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


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

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


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

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