Page 1 of 1

Справочник по исходному коду ядра KolibriOS

Posted: Mon Jul 13, 2020 2:52 pm
by rgimad
Решил написать полный справочник (которого так не хватает) по исходному коду ядра Колибри, выкладываю то, что получилось на данный момент.
Пока идея документа простая, для каждого файла исходного кода описать, какие функции и структуры данных в нем реализуются, как они работают и зачем они нужны.
Знаю, в Вики подробно описана концепция работы ядра, но к сожалению она не описывает большинство внутренних функций и структур ядра, а только самые самые основные. Также стоит сказать, что некоторые участки ядра неплохо прокомментированы в самом коде, в то время как попадаются и места где комментарии полностью отсутствуют. В результате, я начал писать справочник.
P.S. в файле в некоторых местах встречаются пометки TODO вместо описаний а также пока не рассмотрены многие файлы кода, было бы очень хорошо если участники нашего сообщества, которые имеют более глубокие познания во внутренностях ядра, дополнили бы данный документ :D

UPD: Перенесено в Wiki: http://wiki.kolibrios.org/wiki/Kernel_code/ru и развивается там.

Re: Справочник по исходному коду ядра KolibriOS

Posted: Tue Jul 14, 2020 1:57 am
by dunkaist
Documentation is vital for KolibriOS development and your effort is very appreciated.

Some thoughts on this:
  1. There is no reason to keep description of a function in a separate file from its body.
  2. Same for more high-level logic. CleverMouse set a quite high standard of documentation that I see no reason to not follow (except lazyness of course).
  3. May be it's time to proceed with discussion of in-code documentation?

Re: Справочник по исходному коду ядра KolibriOS

Posted: Tue Jul 14, 2020 4:01 pm
by rgimad
dunkaist wrote:Documentation is vital for KolibriOS development and your effort is very appreciated.

Some thoughts on this:
  1. There is no reason to keep description of a function in a separate file from its body.
  2. Same for more high-level logic. CleverMouse set a quite high standard of documentation that I see no reason to not follow (except lazyness of course).
  3. May be it's time to proceed with discussion of in-code documentation?
1) I think it is convenient to have descriptions of all function in one place along with the comments in code. For example to overview the kernel structure its quite easier to learn documentation in one file (maybe with internal hyperlinks), than open many many tabs in text editor. Also, maybe Ill add more detailed explanations on how does some things in the kernel work, so document above can become rather a book than only documentation.
2) You mean http://wiki.kolibrios.org/wiki/Style/ru ? Yes, we need to translate existing russian comments in the kernel and add missing, following one standart.
3) Yes it is good idea to add possibility to automatically make documentation files from in-code comments. Writing python script that grabs function decriptions from source code file, using regexps, would be not bad and simple solution..

Re: Справочник по исходному коду ядра KolibriOS

Posted: Sun Nov 08, 2020 2:38 am
by rgimad
Here is the 0.0.2 version, ive added descriptions on some things and how they work. Now still only in russian, but in future I'll translate it in english too.

Re: Справочник по исходному коду ядра KolibriOS

Posted: Fri May 14, 2021 4:07 pm
by rgimad
Перенес из txt в новую страницу на Wiki: http://wiki.kolibrios.org/wiki/Kernel_code/ru . В начале страницы располагается автоматическое иерархическое оглавление, что дает большое удобство навигации. В дальнейшем справочник будет развиваться и дополняться именно на данной странице.

Re: Справочник по исходному коду ядра KolibriOS

Posted: Sat May 15, 2021 1:00 pm
by art_zh
Гм, имхо легче искать информацию в исходном асм-листинге,
чем ползать по одной плоской вики-странице.

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

Re: Справочник по исходному коду ядра KolibriOS

Posted: Sat May 15, 2021 2:33 pm
by rgimad
art_zh wrote:Гм, имхо легче искать информацию в исходном асм-листинге,
чем ползать по одной плоской вики-странице.
В идеале, конечно, неплохо бы сделать на Doxygen или аналогах. Хотя, мне кажется что и у вики-версии есть свои плюсы: в описании функции можно написать свои пространные рассуждения о том, как и что там работает, и даже привести примеры использования. Не думаю, что в коде уместно писать настолько много и подробно..
art_zh wrote:Надо добавить граф/таблицу перекрёстных ссылок,
иначе не поймёшь где конкретная функция используется
и для чего она вообще в ядре нужна.
Помню dunkaist генерировал граф инклудов в ядре. Сделать то же самое для функций было бы классно (кстати граф выйдет гигантским :) )
Таблицу перекрестных ссылок сделать попроще, думаю добавлю. То есть в конце описания каждой функции будет "Используется в :" и набор ссылок.

Re: Справочник по исходному коду ядра KolibriOS

Posted: Wed May 19, 2021 1:04 pm
by IgorA
Файл unpacker.inc
Это lzma-распаковщик, содержит одну единственную функцию void unpack(void* packed_data, void* unpacked_data);
TODO: вопрос - как задается для данных которые нужно распаковать? т.е как эта функция определяет длину packed_data?
как эта функция определяет длину packed_data я не знаю, но сюда можно добавить:

Code: Select all

dword[packed_data + 0] -> символы 'KPCK'
dword[packed_data + 4] -> размер unpacked_data

Re: Справочник по исходному коду ядра KolibriOS

Posted: Wed May 19, 2021 1:14 pm
by rgimad
IgorA wrote:но сюда можно добавить:

Code: Select all

dword[packed_data + 0] -> символы 'KPCK'
dword[packed_data + 4] -> размер unpacked_data
Спасибо, добавил

Re: Справочник по исходному коду ядра KolibriOS

Posted: Thu May 19, 2022 4:48 pm
by eurol
А вообще есть такая вики, где рассказывается подробно понятным языком, как ОС грузится, раскладывается по оперативке и т.п.?

Re: Справочник по исходному коду ядра KolibriOS

Posted: Sun May 22, 2022 12:08 pm
by art_zh
eurol wrote:А вообще есть такая вики, где рассказывается подробно понятным языком, как ОС грузится, раскладывается по оперативке и т.п.?
https://wiki.osdev.org

Re: Справочник по исходному коду ядра KolibriOS

Posted: Mon May 23, 2022 2:18 pm
by eurol
Вообще-то вопрос был про Колибри. :)

Re: Справочник по исходному коду ядра KolibriOS

Posted: Tue May 24, 2022 10:28 am
by art_zh
eurol wrote:Вообще-то вопрос был про Колибри. :)

http://wiki.kolibrios.org/wiki/Kernel/ru