OSDev

для всех
Текущее время: 29 мар 2024, 00:45

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




Начать новую тему Ответить на тему  [ Сообщений: 19 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения: Re: Еще одна ОС: Genos
СообщениеДобавлено: 19 апр 2014, 14:07 
Аватара пользователя

Зарегистрирован: 16 апр 2010, 10:10
Сообщения: 320
Откуда: Псковская обл.
Это не классическая ОС. Цели у вас другие. :D


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Еще одна ОС: Genos
СообщениеДобавлено: 19 апр 2014, 18:54 
Аватара пользователя

Зарегистрирован: 20 мар 2014, 12:53
Сообщения: 45
Никто не говорил, что она классическая :)... Я вообще не утверждаю, что это ОС...

Решил, что надо писать какую-то документацию (Пока сумбурно и самопально.):
http://genos.esy.es


P.S. Подскажите простенький конструктор html страниц.

_________________
http://osdev.ru/viewtopic.php?f=4&t=893 - GenOS


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Еще одна ОС: Genos
СообщениеДобавлено: 05 май 2014, 20:03 
Аватара пользователя

Зарегистрирован: 20 мар 2014, 12:53
Сообщения: 45
Сегодня у меня окончательно оформилась одна мысль, которую я запишу.

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

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

Опять же... Вывод может быть на страницу видеопамяти... А вход с клавиатуры.
Вывод на страницу видеопамяти, а вход с телнета...
И, блин... Вывод на страницу видеопамяти, при сквозном входе с клавиатуры (то бишь вообще без консоли).

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

И тут до меня наконец-то дошло, на каком языке на самом деле общаются между собой части базовой системы.

... Барабанная дробь.

Это - язык клавиатурных команд. Причём, самих команд, а не каких-то кодирующих их символов. Если пользователь нажимает backspace, то он хочет, чтобы консоль стёрла символ. Если консоль говорит backspace, это значит, что она хочет, чтобы поток вывода каким-то ему ведомым способом выполнил этот backspace.

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

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

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

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

С точки зрения реализации все модули, поддерживающие этот интерфейс будут наследниками класса предка этого интерфейса (напоминаю, c++). Реализовывать все функции предка, кстати, необязательно... Тоесть если кто то будет работать только с char, то пусть и работает. При приходе "левой" команды с командой разберется функция заглушка "предка"...





Хм... Это надо обмозговать....

_________________
http://osdev.ru/viewtopic.php?f=4&t=893 - GenOS


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Еще одна ОС: Genos
СообщениеДобавлено: 06 май 2014, 12:35 

Зарегистрирован: 15 апр 2014, 14:13
Сообщения: 127
Mirmik писал(а):
Но, вот скажем, общаемся мы с устройством по telnet. Мы должны не только считать входную информацию, но еще и выдать в канал эхо. Кто должен сгенерировать эхо? Внешний обработчик или консоль. Если внешний обработчик, то консоль не сможет в случае чего запретить, например, эхо без танцев с бубном (она ведь не должна знать, кто с ней разговаривает, иначе какая нафиг модульность)... Но и писать обработку ответа в консоль тоже нельзя, потому что, консоль понятия не имеет, в каком формате надо отвечать.
Вы подходите к вопросу традиционным для начинающих способом - снизу, от ассемблера, так сказать. Но из гущи деревьев не видно леса. Это я к тому, что надо об архитектуре думать сверху.
Mirmik писал(а):
Это - язык клавиатурных команд.
...
Хм... Это надо обмозговать....

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

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Еще одна ОС: Genos
СообщениеДобавлено: 06 май 2014, 12:55 
Аватара пользователя

Зарегистрирован: 20 мар 2014, 12:53
Сообщения: 45
Логично...

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

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

- А как ты, о чувак, который эту хрень думал, предлагаешь мне интегрировать мою гипернутую психохрень с нестандартными кодами в твою систему?

Поэтому я... Ну никуда не денусь от абстрактного ассемблера. :ugeek:

_________________
http://osdev.ru/viewtopic.php?f=4&t=893 - GenOS


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Еще одна ОС: Genos
СообщениеДобавлено: 06 май 2014, 19:25 
Аватара пользователя

Зарегистрирован: 16 май 2007, 23:46
Сообщения: 1126
Тут нет архитектуры. Как кому что нравиться. Тот так и реализует. Так что обмозговывать тут особо нечего тут делать надо.
Как известно ядро это всего лишь почтальон, который доставляет данные от одного процесса к другомму. Это по сути определение микро ядра.
Что касается организации протокола передачи. То тут совет простой разделить поток данные и управляющие потоки.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Еще одна ОС: Genos
СообщениеДобавлено: 10 май 2014, 22:38 

Зарегистрирован: 21 сен 2007, 17:24
Сообщения: 1088
Откуда: Балаково
Mirmik писал(а):
Поэтому я... Ну никуда не денусь от абстрактного ассемблера. :ugeek:

А как же платформо-независомость, полиморфность?
И откуда консоль узнает о скан-коде клавиши "Backspace" нестандартной клавиатуры?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Еще одна ОС: Genos
СообщениеДобавлено: 11 май 2014, 01:18 
Аватара пользователя

Зарегистрирован: 20 мар 2014, 12:53
Сообщения: 45
... Вы видите какой-то выход из этой щекотливой ситуации :) ?

_________________
http://osdev.ru/viewtopic.php?f=4&t=893 - GenOS


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Еще одна ОС: Genos
СообщениеДобавлено: 12 май 2014, 10:25 
Аватара пользователя

Зарегистрирован: 14 мар 2011, 12:31
Сообщения: 970
Откуда: Дагоба
1. Использование языков высокого уровня там, где нет явной необходимости в ассемблере.
2. Использование промежуточного уровня "абстрагирования от конкретного оборудования".
Только не спрашивайте какой ЯВУ лучше использовать, на этот вопрос я ответить не смогу :(

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

<<< OS Boot Tools. >>>


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

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


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

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


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

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