Емблема ОС Політ
Загальне
Скріншоти
Інтерфейс
Реалізація
Даунлоад
Прогрес
Форум
Чат
Адреси
Написати
 
Політ - реалізація

Ось загальна схема внутрішньої будови Польоту. Тут прямокутниками позначено окремі модулі, а стрілками показано їх зв'язки (скажімо, стрілка від App до Kernel означає App uses Kernel). Розміри прямокутників приблизно відповідають розмірам відповідних модулів. Для простоти тут не показано модулі Log, D і Types, якими користується майже кожен модуль.


App (Application) - додаток, програма під Політ
WinLook - оформлення рамок вікон
Kernel - ядро системи
Ctl (Controls) - елементи керування
Mouse - підтримка мишки
Gfx (Graphics) - графічні процедури
Font - шрифти, виведення написів
Pic - підтримка графічних файлів
Log - журнал повідомлень
D (Different) - різні корисні процедури та функції
Types - типи, що використовуються Польотом

Загальні принципи

Багатозадачність, реалізована у Польоті - кооперативна, або ж невитісняюча. Це значить, що за переключення задач відповідає і система, і програми під неї: поточна задача повідомляє, коли можна переключатись на наступну, а система власне робить переключення.

Додатки (програми під Політ) реалізуються або як модулі (units), що підключаються до ЕХЕ-файла Польоту (так зараз зроблені всі політівські додатки), або як окремі DLL-бібліотеки. Додатки скаладаються із набору процедур - обробників подій, які в різних ситуаціях і викликаються системою. В результаті ми і отримуємо багатозадачність.

Графіка в Польоті реалізована через окремий модуль (під який заточуються модулі шрифтів та графічних файлів). Тобто цей модуль досить нескладно замінити на якийсь інший. Для Польоту, що пишеться зараз, я обрав знайдену десь бібліотечку SGRAPH.PAS, що підтримує VESA-відеорежими до 1280 х 1024 х 256. Вона маленька (десь 30К) і при цьому досить швидко працює. А коли буде треба - замінимо її на щось крутіше.

Елементи керування - важлива частина системи. Окремий модуль містить код деяких елементів (кнопка, список, напис, поле вводу, панель кнопок та інші). Політівським додаткам залишається лише сказати, де у вікні елемент розташований та що він містить, за все інше відповідає Політ. Взагалі,

Програмування під Політ я намагався зробити настільки простим, наскільки це можливо. Реально воно сильно нагадує програмування на Delphi чи чомусь подібному і базується на тих самих поняттях: компонентах (елементах керування), подіях та їх обробниках. Щоправда, справжніх об'єктів у Польоті нема - із міркувань ефективності.

Рамки вікон також малює окремий модуль, який можна при бажанні замінити на щось інше. А можна у межах програми вказати власний такий модуль, і вікна цієї програми виглядатимуть не так, як усі інші. До речі, такий самий фокус можна проробляти і з елементами керування.

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

Події - це те, що призводить до виклику процедур-обробників. Прикладами подій у Польоті є запуск чи закриття додатку, малювання вікна, натиснення клавіші, клік мишкою, повідомлення від одноїх програми іншій, помилка, таймер. Тобто робиться приблизно так: скажімо, у додатку пишеться, що треба робити при його запуску (це називається обробником події), і коли юзер дійсно запустить цей додаток, система викличе цей самий обробник.

(далі буде)

Hosted by uCoz