kolibrios/kernel/branches/kolibri-e/roadmap_e_utf-8.txt

193 lines
17 KiB
Plaintext
Raw Normal View History

roadmap Kolibri-E (kernel r. 7965; distributive r. 8092)
Обязательно для каждого, кто читает этот родмап:
1. Как определить приоритет задач:
поставьте после каждой строки цифру от 1 до трёх:
1 - критически важно;
2 - важно
3 - надо будет сделать.
Приоритет посчитаю я. Каких цифр больше - такой и приоритет задачи. Большая просьба когда ставите цифры, делать пробел после двоеточия и делать их жирными и красными.
2. Можете добавлять свои задачи, но они обязательно должны быть оригинальными и не повторять другие.
3. Своё мнение излагать в комментариях к задачам.
Эта сборка предназначена для проведения испытаний новейших поправок в коде ядра и приложений. После успешного прохождения тестирования код заливается в транк. Ниже расписаны основные направления.
Участники и составители (ники на форуме):
Alex2003 - Алексей Рогозинников
denius - Денис Литвинов
maxcodehack
Михаил Фролов
Юрий Петров
superturbocat2001
rgimad - Рустем Гимадутдинов
Boppan - Боппан Костоев
Ядро - системные функции, поддержка технологий, документация
1. Отделить графику от ядра.
Приоритет: 3
2. Системная функция 70 - исправить использование полного пути для открытия файлов, сделать через дескрипторы.
Приоритет: 2
3. Системная функция 1 - удалить неиспользуемый стиль окон.
Приоритет: 2
4. Поддержка многоядерных процессоров - переделать планировщик задач; переделать примитивы синхронизации.
Приоритет: 3
5. Мануал по отладке ядра. ВЫПОЛНЕНО (rgimad, статья выложена на форум в раздел Ядро)
Приоритет: 1
6. Загрузчик PE DLL и EXE в ядре.
Приоритет: 2
7. Реализовать стандартные потоки ввода-вывода, pipe в ядре.
Приоритет: 1
8. USB 3.0.
Приоритет: 3
9. Wi-Fi подсистема.
Приоритет: 3
10. Внедрить syscall из Kolibri A.
Приоритет: 3
11. PAE-NX.
Приоритет: 3
12. Hybrid-core: опробовать систему из двух ядер разной разрядности работающих на разных ядрах процессора и в одном адресном пространстве.
Приоритет: 3
Графика - функции, оконная система, движки
1. Разработка графического стека с использованием OpenGL/TinyGL/Mesa.
Приоритет: 2
2. Масштабируемый GUI.
Приоритет: 2
3. Улучшение вида панели задач; переделка системного скина; красивые обои, заменить “Шкворку”, а то она уже надоел, кстати, большой выбор их есть, и так же добавить кнопку разворота на весь экран.
Приоритет: 2
4. Внедрение glass environment (библиотека альтернативной оконной графики).
Приоритет: 3
5. Пересмотр всех графических функций.
Приоритет: 3
6. Выделение графической системы из ядра.
Приоритет: 3
7. Компактные шрифты с масштабированием и сглаживанием
Приоритет: 2
Приложения - портирование, исправление багов, написание, фичи
1. Дописать порт браузера NetSurf.
Приоритет: 1
2. Firefox и его зависимости.
Приоритет: 3
3. Обновить shell.
Приоритет: 3
4. Обновить пакет офисных программ (уже имеется Table).
Приоритет: 3
5. Win PE лаунчер (есть в ядре KOLIBRI-PE, идет разработка KWINE, PELOAD).
Приоритет: 2
6. Animage - сделать удобный интерфейс, исправить мелкие баги.
Приоритет: 1
7. FPlayer- добавить поддержку формата 4К и его зависимость ffMpeg.
Приоритет: 3
Разработка - библиотеки, компиляторы, документация, IDE
1. Переписать документацию и заменить ей DOCPACK.
Приоритет: 1
2. .obj-библиотека для работы с файлами.
Приоритет: 3
3. Создать графический IDE с возможностью подключения библиотек и компиляторов.
Приоритет: 2
4. console.obj - добавить разворачивание консольного окна на полный экран, и изменение размера экрана как в KFAR, там не настоящая консоль; выделение текста в окне; горячие клавиши ^C ^V.
Приоритет: 2
5. Избавиться от кросс-компиляции, по максимуму портировать различные компиляторы в KOS.
Приоритет: 1
6. Написать различные обёртки для C++/C--/C.
Приоритет: 2
Дистрибутив - комплектация, сборка
1. Разобраться с MENU.dat.
Приоритет: 3
Комментарии к разделу "Ядро"
1. А мух от котлет :)
Привет Xorg
Алексей: нет, это glass environment или glass shell, на ваше усмотрение
rgimad: я не про название, а про то что в линуксе тоже графика отделена от ядра и вынесена в Х сервер
Алексей: Сделать два ядра - графическое и системное? (смотрите hybrid core). Хм… Тогда видеокарта не будет нужна? Мне кажется, что лучше этот абзац перенести в ядро
2. сисфункция 70. Почему там каждая операция с файлами производится по полному пути? Это неэкономно и неудобно. Нужно сделать сисфункцию открыть/закрыть файл которая возвращает дескриптор, а все операции уже будут по дескриптору
3. Ничего здесь нет :(
4. многоядерность. А именно SMP, как с этим работать можно посмотреть в исходниках любительских ОСей с гитхаба. Это потребует переделки всего планировщика задач, а также примитивов синхронизации.
5. Написать мануал по отладке ядра. Это очень важно, ибо много кто хочет лезть в ядро и что-то там делать, но как это отлаживать почти никто не знает. Простейший способ это использовать вывод на доску отладки, но этот способ не всегда помогает. Например как ставить брейкпоинты? Слышал что ядро колибри можно отлаживать в BOCHS. Возникают вопросы: как грузить отладочные символы. Насколько я знаю у bochs их можно просто перечислить с определенном формате (.map). Есть идея написать утилиту которая бы перегоняла отладочные символы формата .fas (формат отладочных символов fasm) в .map файл для bochs.
За любой ваш кипишь связанный с документацией ядра: что где происходит, почему, на каком этапе, как туда собачится биос загрузка и ефишная - в какой момент и также попунктно по шагам что дальше происходит, по каким файлам и какие этапы распределены.
Важно не только что и в каких файлах, но в каком порядке и когда оно исполняется.
6. возможно сделать загрузчик PE DLL и EXE в ядре. (Не путать с виндовс приложениями, PE формат можно использовать в любой оси). См. проект Kolibri-PE
7. вроде уже есть, надо чекнуть
8. Реализовать стандартные потоки ввода-вывода, чтобы консольные программы могли работать нормально. Чтобы стало возможным перенаправлять ввод и вывод команд. (Обязательно в ядре? msvcrt.dll - пользовательская либа, насколько мне известно. Разве что несколько POSIX-фич, вроде fork, придется впиливать в ядро, все остальное лучше выгрузить в юзерспейс либы).
9. usb 3.0 . USB 3.0 обратно совместим с USB 2.0. По крайней мере сделать переключение usb 3.0 в режим совместимости с usb 2.0
10. wi-fi драйверы. Это не только драйверы. Нужна подсистема wifi, а потом уже драйверы. Переписывать сетевой стек? - по сути да, дописывать его. То есть вопрос в том как интегрировать вифи с существующую сетевую подсистему?
11. позволяет напрямую управлять ресурсами ПК
12. PAE-NX (36- битная адресация ОЗУ) - пригодится для KWINE - особо ресурсожоркие приложения не поместятся в 4 гига озу
13. опробовать конструкцию hybrid core? (два ядра разной разрядности на двух ядрах процессора). А это вообще возможно или нет? По крайней мере на форумах осдеверов это выяснить нужно
Алексей: Идея бредовая, но имеет здравое семя
Комментарии к разделу "Графика"
1. Разработать графический стек (по типу как в KDE) с использованием OpenGL/TinyGL/Mesa и т.д.
Алексей: не будет ли такая оболочка тормозить? Сколько ОЗУ это затребует?
2. сделать GUI колибри масштабируемым ибо сейчас даже на самых больших разрешениях экрана шрифты очень мелкие
3. Улучшить вид панели задач; переделать системный скин; красивые обои
Комментарий: мб улучшить внешний вид панели задач, сейчас он не оч, и кнопку пуск(возможно как в XP только птицы вместо флажка) покрасивее мб птичку или лого какое. Кстати дефолтный скин надоел, я за то чтобы default.skn другой взять, у нас их много, ++. Ну и нескучные обои еще
Алексей: могу подобрать, моя подборка обоев для Kolibri N 10 всем понравилась
4. Что такое glass environment?
Это библиотека является альтернативой оконной системой. Пока только расписывается документация.
5. Тоже ничего нету… :(
6. Обязательный пункт!!!
Комментарии к разделу "Приложения"
1. Да, потому что оба разработчика порта (Нина и ashmew2) по разным причинам прекратили участие..
2. А тут ничего нет! ;/
3. добавить команд, сделать настройки shell
4. Уже есть Table, остальное приложится
5. Win pe - лаунчер. Уже есть peload от 0Coderr, но он сильно ограниченный, например не умеет грузить PE DLL. Сейчас идет разработка KWINE 0.0.4, который будет написан с нуля и без этих недостатков, но хз получится он или нет
6. Где комментарий, Лебовски?
7. Ничего...
Комментарии к разделу "Разработка"
1. Алексей: уже занимаюсь, пока есть недоделанная версия на английском; думаю закончить к Новому году оба варианта перевода (русский/английский)
2. Сделать .obj библиотеку для работы с файлами, ибо руками юзать сисфункцию 70 крайне неудобно (а для СИ++ fstream)
(А для си, уже есть сишные функции для работы с файлами в кос?
3. (предлагали портировать WXWIDGETS, и уже на нем codeblocks, вот только оч сложно). Идея: визуальный конструктор форм. Суть такая есть визуальный конструктор форм, рисуешь формочку руками т.е кидаешь компонентики.. Форма сохраняется в чем то типа XML, а программа загрузчик форм уже парсит файл и рисует нужное с помощью box_lib или чего там.. Кстати это не я придумал, так работает Qt, и WPF, и delphi и еще много чего, можно подсмотреть в f_kol_edit это иде для кос, но на асме, и не очень ТРУЪ, поэтому только идеи подсмотреть
4. По console.obj: разворачивание консольного окна во весь экран, выделение мышкой, шифтом текста в консоли, ctrl+c и ctrl+v . В перспективе уйти от использования console.obj, это упростит создание консольных приложений. Консольный ввод-вывод будет осуществляться через системные функции. Отрисовкой консольных окон может заниматься уже не ядро, а программа пользовательского режима, например как conhost.exe в windows. Вообще модель консоли в windows наиболее простая и функциональная (см. GetConsoleHandle, SetConsoleHandle, …). А библиотеку console.obj оставить только как legacy для программ которые изначально писались с ее использованием.
5. Компиляторы, которые ещё не портированы:
6. например бокс либ...