OSDev

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

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




Начать новую тему Ответить на тему  [ Сообщений: 52 ]  На страницу 1, 2, 3, 4, 5, 6  След.
Автор Сообщение
 Заголовок сообщения: Годная ОСь. Революционные идеи.
СообщениеДобавлено: 09 авг 2009, 06:09 
Это файл о моей ОС.

Это будет принципиально новая ОС, ни на что не похожая.
Основные принципы моей ОС:

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

2. абсолютная переносимость на любую платформу. Сча расскажу как. Так вот, основная суть операционки в том, что она будет использовать виртуальную
машину.

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

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

Кароче, скокоб я букв не написал все равно ничерта
непонятно, поэтому я нарисую картинко.

Вот схема обычной, говняной архитектуры:
Код:
--------------------------------
| говняные бинарные приложения |
| (без исходников не понять)   |
--------------------------------
      ^
      |
----------------
| говняная ОСь |
----------------
      ^
      |
------------------------------
| говняный загрузчик на асме |
| загружающий говняную ОСь   |
------------------------------
      ^
      |
----------------------------------
| говняная аппаратура            |
| говняный, непонятный ассемблер |
----------------------------------


Что мы видим? Одно говно. С аппаратурай все ясно, т.е. приходится юзать такую какая есть, тут мы не в силах что-либо изменить. Загрузчик аналагично.
Под такой ОСью можно конечно юзать и не бинарные приложения, но это будет не по християнски, очень убого, некрасиво, и медленно будет работать, и нужен будет интерпретатор.

А теперь схема правильной, годной архитектуры:
Код:
-------------------------------------------
| годные приложения на годном языке,      |
| которые выполняются прямо из исходника  |
-------------------------------------------
      ^
      |
-------------
| годня ОСь |
-------------
      ^
      |
------------------------------------
| годный загрузчик на годном языке |
| загружающий годную ОСь           |
------------------------------------
      ^
      |
---------------------------------
| годная вирт. машина           |
| (интерпретатор годного языка) |
---------------------------------
      ^
      |
-----------------------------------
| говняный загрузчик на асме      |
| загружающий годную вирт. машину |
-----------------------------------
      ^
      |
----------------------------------
| говняная аппаратура            |
| говняный, непонятный ассемблер |
----------------------------------


Что мы видим? Говна стало меньше, но оно не относится к ОСи!
Переносимость, как я и говорил, абсолютная.

3. минимализм и простота. Если исходники ядра весят больше 1.999 метров, то ну их в топку, пускай в этом дерьме разбирается кто нибудь другой, а я мозги ломать не хочу. Вот, например, OpenBSD 4.3. Ну скачал я исходники ихнего ядра, разархивировал, и получил 90 мегов хлама.

И это называется, бл*ть Open Source? Никакого толка. Бред. Разве можно 90 мегов исходников назвать ядром ОСи? Ни один нормальный человек не может держать в своих мозгах за раз 90 мегов. Какой отсюда можно сделать вывод?
А такой, что ни один из этих "разработчиков" не знает своего ядра досканально. Да выкинули бы всё лишнее и оформили в виде маленьких прикладных
программ, было бы совсем другое дело... Ладно чето я не о том.

Так вот, моя виртуальная машина будет очень маленькой и аккуратной, максимум 1.998 мега.

Файловая система меня не волнует. Она будет как отдельное приложение.
Многозадачность аналогично. Будет отдельное приложение ее реализующее.

Так, теперь подробнее про виртуальную машину. Как она будет выглядеть? Да очень просто: строка приглашение на ввод функции, вы вводите функцию на годном языке, ее аргументы, и вам возвращают результат. И вот, всё на этом будет зиждется.

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

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

А, еще одну фишку забыл сообщить. Приложения не нужно будет компелировать.
Прям в исходниках на годном язычке и будут плясать. Ну разве это не прекрасно?

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

Что в нем написано? Да что угодно, но желательно, чтобы он запускал необходимые юзеру программы: система безопасности, файловая система, реализация многозадачности, тетрис и т.д. Т.е. что админу будет нужно, то он там и напишет.

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

А что же тогда называть ОСью и что в нее входит?
Ответ: ядро и прикладные программы. Т.е. конструктор лего. Не понравилась файловая система - выкинул, прикрутил новую. Не понравился гуй - к черту его. А заменять то будет проще простого: никакой установки, компеляции не требуется, все Проги по определению становятся открытыми! Это вам не линуксы, виндовсы и прочая шняга, где без 1000 грам не разберешься.

А что за "годный язык"? Ну уж точно не С\C++, JAVA, PHP, HTML, MS WORD, BrainFuck, etc.
Годный язык - это AST (абстрактное синтаксическое дерево), т.е. лисп.

Почему этот язык годный?
Потому что он от GOD'a (я не шучу). В любом высокоуровневом языке программирования зашито AST.
Делайте выводы, товарищи. А для тех, кто не может: из лиспа можно сделать любой ЯП.

Итак, окончательная архитектура:
Код:
   -------
   | ОСь |
   -------
      ^
      |
  --------
  | ядро |
  --------
      ^
      |
-------------------
| вирт. машина    |
| (интерпретатор) |
-------------------
      ^
      |
----------------------------
| загрузчик на асме        |
| загружающий вирт. машину |
----------------------------
      ^
      |
-------------------
| аппаратура, асм |
-------------------


ЗЫ. Никаких наработок пока нет, есть только идея.
Приветствуется любая критика и опровержение годности.
Все пожелания и эмоции отправляейте мне на hardreset@inbox.ru


Вернуться к началу
  
 
 Заголовок сообщения: Re: Годная ОСь. Революционные идеи.
СообщениеДобавлено: 09 авг 2009, 10:13 

Зарегистрирован: 12 ноя 2008, 12:35
Сообщения: 36
Как минимум это будет тормозить. Но на самом деле не будет работать вообще. Потому что никто это не напишет. Открой прикола ради исходники компилятора(интерпретатора) и погляди что тебе придётся реализовывать в твоей интерпретирующей виртуальной машине.
А о вопросе защиты вообще ни слова. А драйвера кто писать будет на "говноасме" ???
Ну и так далее :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Годная ОСь. Революционные идеи.
СообщениеДобавлено: 09 авг 2009, 10:21 

Зарегистрирован: 21 сен 2007, 17:24
Сообщения: 1088
Откуда: Балаково
Есть уже такая ОС, BlueBottle называется. Только там Оберон вместо Лисп, а так те же яйца вид сбоку.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 09 авг 2009, 12:28 

Зарегистрирован: 09 авг 2009, 06:14
Сообщения: 25
2nextos

Насчет скорости, ответ неоднозначен и зависит от реализации интерпретатора и самой аппаратуры.

Никто не напишет? Да если даже никто сейчас и не напишет, то всё равно, рано или поздно мы придем к этому. Фишко то в чем? А в том, что годной аппаратуре не нужны дрова и ОСь. Ей нужен просто набор пользовательских программ.

Вот нужна мне, например, сегодня система реального времени, завтра я захочу вместо ФС, какую-нибудь другу БД приблуду, послезавтра еще че нить понадобится. Мне придется искать каждый раз новую ОСь, тратить время на то, чтобы понять как она устроена. Зачем этот гемор, если можно просто поменять соответствующую прогу и не париться.

Интерпретатор лиспа может написать любой конченый косорукий дебил на самом лиспе (читай SICP, глава 4 и 5).

Драйвера, защита, ect?. Пускай это всё реализует тот кому оно нужно.

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 09 авг 2009, 13:13 

Зарегистрирован: 09 авг 2009, 06:14
Сообщения: 25
2chizh

Не знаю ничего о BlueBottle. Но Оберон однозначно не катит. Он на мозги давит.
Слишком сложный. Потом, у них там всё, насколько я понял, на каких-то объектах построено. Мне это не нравится. Хотя, конечно, размер kernel'a впечатляет. Просто бусечка. Очень хорошо. И сайт у них хороший. В общем молодцы. Но Оберон... Что он вообще может этот Оберон? Метапрограммирование нормальное (такое как в лисп) в нем есть? Или это просто тюнинговоный Паскаль?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Годная ОСь. Революционные идеи.
СообщениеДобавлено: 09 авг 2009, 13:24 

Зарегистрирован: 09 авг 2009, 06:14
Сообщения: 25
Поговорим теперь о интерпретаторе (виртуальной машине) подробнее.
Приглашение на ввод будет выглядеть так:
>

. Т.е. ">\n". Почему, кому нужен этот '\n'? А чтобы с отступами не ипацца.
Почему именно знак ">", почему не "#" или "$"? Потому что так красивше.

Всё что вычисляет интерпретатор - это списки и атомы.
Что за атомы? Это объекты, которые вычисляются сами в себя.
Например, если ввести "Hello", то вам вернется "Hello". "Hello" - это атом.

Общий формат списка такой:
(<имя> <аргумент-1> <аргумент-2> ... <аргумент-N>)

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

Все списки делятся на три группы:
1. () - пустой список.
2. процедуры.
3. особые формы.

Что особенного в пустом списке? А то, что он единственный список, который одновременно
и список и атом. Т.е. если вы напечатаете интерпретатору (), то он вам вернет ().

Как вычисляются процедуры? Очень просто: вычисляются имя и аргументы, а потом все тело.

Чем процедуры отличаются от особых форм? Тем, что особые формы вычисляются не так как процедуры, а по особому. Например, if - это особая форма.

Ну вот в принципе и все, стандарт языка в три строчки. Это вам не С++.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 09 авг 2009, 17:45 

Зарегистрирован: 21 сен 2007, 17:24
Сообщения: 1088
Откуда: Балаково
http://ru.wikipedia.org/wiki/Bluebottle_OS
похож на твою ОС идейно и архитектурно. Оберон - обычный процедурный язык, гибрид Modula с Pascal. "Активные объекты" - это отдельные задачи, или просто программы. Я хотел показать, что похожая на твою идея ни какой популярности не получила.

Думаешь, другие ОС не могут запускаться без драйверов? В любых ОС есть драйвера стандартного оборудования PC/AT, они позволяют запуститься с любого компьютера, и использовать дополнительные драйвера лишь по мере их установки пользователем.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Годная ОСь. Революционные идеи.
СообщениеДобавлено: 19 авг 2009, 15:20 
О да! Даешь ОС на лиспе! Symbolics возвращается!
Heil Symbolics!


Вернуться к началу
  
 
СообщениеДобавлено: 20 авг 2009, 01:56 

Зарегистрирован: 09 авг 2009, 06:14
Сообщения: 25
Bluebottle не может быть похож на годную ОСь хотя бы за то, что написан на Оберон - императивном говне.

Популярность не входит в мои принципы. Если бы человечество выбирало наилучшие решения, то мы бы сейчас жили ого-го как... Популярность - это не показатель годности. Иначе, исходя из твоей логики, лучшая ОСь - это Windows, а аппаратура - Intel.

> Думаешь, другие ОС не могут запускаться без драйверов?
Ну, пускай, могут. Все равно говна в них больше (см. картинку выше).

> Описание твоего языка программирования вообще не впечатлило.
Не впечатлило? Функ.Прог. тебя не впечатляет? В таком случае почитай для начала хотя бы первую главу из "Функциональное программирование" Филд, Харрисон и потом говори.

> Это можно взять обычный Си, и использовать в нём только процедуры и макросы.
Ну этим ты меня просто убил. Семантика совсем не та, пойми это. Си - процедурный язык. Т.е. есть исходное состояние (входные данные), которое преобразуется операторами в всё новое и новое состояние, в итоге мы получаем какое-то конечное состояние (выходные данные). В ФП все по другому, правильно, работает: программа - это выражение, а выполнение программы - процесс его вычисления.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 20 авг 2009, 02:06 

Зарегистрирован: 09 авг 2009, 06:14
Сообщения: 25
Да, Symbolics - это круто. Лисп машины многое нам дали. Действительно, надо это дело возрождать. Только предварительно упростить всё до максимума, но не больше.


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

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


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

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


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

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