English

Наміри ANT

Date: 06.08.2020

Підсистеми Середовища (ПС)

Я вже згадував за намір підтримувати в Ант кілька Підсистем Середовища, ПС. ПС це програмний комплекс в складі системи, який дає їй уміння ганяти програми, написані для конкретного середовища Програмного Інтерфейсу, ПІ (англ. Application Programming Interface, API). ПС імплементує середовище, яке ті програми очікують від системи. Починаючи від надання самих множин функцій цього API і закінчуючи створенням "вигляду" системи, який характерний для того середовища. Наприклад, згадане єдине дерево ієрархії файлових даних в Unix клонах. Це частина вигляду таких систем, і програми написані під Posix очікують саме таку файлову організацію, а вона не збігається з рідною конвенцією в Ант, того потрібні певні компоненти, які дбатимуть за "правильний" вигляд для своєї ПС. Імплементаційно, ПС складатиметься з динамічних бібліотек (DLL), шо міститимуть фукнції API або його класи, якшо мова йде за об'єктно орієнтований ПІ. Також ПС має в собі процеси підтримки, саме вони створюватимуть згаданий "вигляд" і дбатимуть за його специфіку. Шо саме буде потрібно для створення такого "вигляду" є, звичайно, специфічним для стандарту ПІ, який ПС імплементовує. Іншими компонентами, якшо потрібно, можуть бути модулі ядра, які додаватимуть або покращуватимуть функціональність, потрібну середовищу або які допомагатимуть в створенні вигляду (середовища мається на увазі, а не саботаж). Ідея ПС взята з NT, яка мала її з самих початків.

Ант матиме завжди присутню, рідну ПС, AntAPI. Вона планується бути дуже схожою на WinAPI. Наскільки, — це предмет для подальших фаз розробляння. Деталізація цього важливого параграфу цілком залежить від прогресу проєкту й матеріал сюди буде доданий коли буде шо додавати.

На додачу до AntAPI, є намір написати ПС для Posix. Навіть не дивлячись на те, шо я не фанат Posix-у, це було б цікаво. Бо намір підтримувати кілька ПС є викликом — він складний і значить викликає здоровий, творчій азарт. Але також, суть ще й практичні позитивні результати від цього — ОС отримує більше шансів мати свого користувача. Інакше кажучи, ця ідея має кілька плюсів, серед яких практичні. Як чітачі могли взнати з читання за цілі, серед них, і з самого початку, були недорогі армівські ОПК. Вони популярні серед ентузіастів різного штибу, яких узагальнено називають англійською tinkerers. Вони роблять різні речі з такими ОПК — від використання їх як безвентиляторних міні ПК до саморобних (DIY, Do It Yourself) мережних сховищ, медіяцентрів, мікросерверів різноманітного призначення, всілякої робототехніки або навіть наукових проєктів. Назараз лінукс є, власне, єдиною опцією для них. Це означає, шо всі вони призвичаєні до Posix-них утиліт і загалом — до того середовища. Ось чого мання Posix-ної ПС, здатної ганяти знайомі для тієї авдиторії програми, є важливим для успішности ОС. І, також, ці програми доступні для портування в великій кількості. Очевидно, шо створення функціональних аналогів з нуля, однією особою чи маленькою спільнотою — нереалістично.

Ролі

Тобто Ант збирається покривати дещо різні ПК подібні сегменти компутерів і шляхів їхнього використання — звичайний настільний ПК, сервер, мікросервер і чисельні підтипи мобільних формфакторів і сценаріїв. За це пізніше, але тут зазначимо, шо таке покриття вимагає від системи чітко визначити один аспект свого устрою: вона має бути гнучкою в опціях, які залежать від типу сценарію використання. Один такий — це його інтерактивність. "Інтерактивний" означає такий, шо має на увазі наявність локального користувача як людини, яка взаємодіятиме з компутером через його периферійні пристрої Користувацької Взаємодії. Інший — це форма взаємодії, якшо вона є. На прикладі щойно згаданих армівський ОПК. Часто, все, шо користувачу треба для роботи підчас локальної сесії на таких пристроях, це Інтерфейс Командного Рядка (ІКР, англ. Command Line Interface, CLI), який надається Підсистемою Консольної Взаємодії (ПКВ, англ. Console User Interface, CUI) і яка споживає набагато менше ресурсів за повну підсистему Графічної Взаємодії (ПГВ, англ. Graphical User Interface, GUI), шо може бути важливим для малоресурсного компутера. Цей приклад показує, шо Ант має надавати можливість вибору користувацького інтерфейсу і перемикання між ними. ПГВ містить ПКВ, але ненавпаки, але попри всі ці непрості зв'язки, функція вибору й перемикання між підсистемами має давати користувачеві робити це легко, без зайвих ускладнень. Тож, ми маємо ще одну важливу концепцію — селективність користувацького інтерфейсу. Тонкощі вибору й перемикання між підсистемами користувацької взаємодії будуть обговорені в відповідній главі з технічних деталей цього компоненту Ант. Коротко, якшо користувач, під'єднавши до своєї машини монітор, хоче заходити в систему лише в консольну сесію, то він має визначити "профіль", який казатиме системі надавати лише ІКР і використовувати його для входу в таку сесію. В підсумку, Ант має просто розрізняти такі підвиди сесій і взаємодій з користувачем і має надавати ясний механізм їхнього конфігурування.

Далі. Ми знаємо, шо настільний Графічний Інтерфейс, ГІ, і мобільний (смартфоновий) ГІ суть дуже різними. Я не вірю в можливість ефективного об'єднання таких разюче відмінних в своїй "фізиці" форматів інтерфейсу, тож Ант розрізнятиме їх замість ліпити шось єдине. Поєднуючи те, шо справді можна поєднати. Тож, ми маємо кілька типів пристроїв, з точки зору користувацької взаємодії:

Настільник або ноутбук без сенсорного екрану
Найчастіша форма настільного компутера. Основний пристрій виведення це дисплей, введення — клавіатура та миша, тракпад
Настільник або ноутбук з сенсорним екраном
Шось новомодне, як наприклад нотбуки трансформери з потужністю звичайного ПК, але з сенсорним екраном. Основне введення всеодно клавіатура, миша, але також сенсорний екран додає новогу в гру.
Великий планшет, гібридний ПК, ультрабук. Сенсорний екран присутній обов'язково.
Споріднений з пунктом вище, але менш потужний, шось посередині між тими й мобільними планшетами. Тут сенсорний екран може бути використаний частіше і вже може не бути "вторинним" пристроєм введення.
Мобільний планшет, <14″ дисплей, сенсорний екран
Первинний пристрій введення тут сенсор і навіть якшо є приєднувана клавіатура, вона скоріше помічник.
Мобільний телефон (Смартфон), <7″ дисплей з сенсором
Звичайний мобільний телефон. Насправді, дякуючи USB C, ця платформа стає набагато складнішою в плані можливого типу взаємодії з користувачем, ніж просто "смартфон". Бо тепер до нього можна приєднати USB C докстанцію, а через неї — клавіатуру, мишу, жорсткий диск, HDMI (або Display Port) монітор і мережу! Шо перетворе його в настільник. Настільник, шо поміщається в крихітному пласкому корпусі телефона. Ця цікава можливість буде обговорена пізніше. Мобільний ГІ всеодно залишається основним для платформи, бо все ж, це переважно мобільний пристрій. Настільні інтерфейси (консольний та/або повний) можна буде інсталювати і використовувати як вторинну підсистему. І це звучить круто як мета, проте, слід зазначити, шо це не просте досягнення. Як з т.з. ПЗ так і апаратури. Мається на увазі побоювання з приводу відсутности чіткого регулювання чи ця конкретна машина здатна потягти аж так багато приєднаної ПК-шної периферії. Фото поплавленого і просмаженого бездумними конфігураціями пайнфона кажуть, шо треба дуже відповідально ставитися тут до керування енергоспоживанням (а не так як в лінуксі).
Пристрої з маленьким монітором без сенсору
Навігатори? Або ручні ретроігрові консолі, які ми згадували на сторінці цільових платформ. Шодо останніх, то це не для початків, але, думається, шо всю специфіку таких інтерфейсів треба спробувати забезпечити через визначення оболонки1, спеціальної для цього типу пристроїв, замість визначення цілої нової підсистеми користувацької взаємодії з своїми API, інтерфейсними повідомленнями тощо.
1 — програма, зазвичай частина ОС, яка показує користувачу систему на екрані, як наприклад Explorer в Windows, це справжня оболонка, а те, шо юніксоїди називають оболонкою є командним інтерпретатором.

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

В Ант є план мати 2 види ПГВ: