- PVSM.RU - https://www.pvsm.ru -
Прошло почти 9 месяцев с момента, как я сделал паузу в работе над моим хобби-проектом: игрушечной ОС [1]. Примерно тогда же я опубликовал серию статей на Хабре, описывающих различные аспекты её устройства (1 [2], 2 [3], 3 [4], 4 [5] и 5 [6]). Далее я решил немного отвлечься и переключился на проект медицинского коллективного блога [7]. Сейчас он стал забирать у меня меньше времени, и я вновь почувствовал интерес к изысканиям в области системного программирования. Начав новую итерацию кодирования, я остановился, решив вновь задуматься об архитектуре.
Моё предыдущее видение сводилось к следующим тезисам:
На единое адресное пространство монтируются (проецируются) накопители. Под каждый накопитель выделяется диапазон адресов в зависимости от его размера. Эту область адресного пространства будем называть доменом.
После монтирования в домене запускаются потоки, уснувшие во время последнего размонтирования. Поскольку домен может быть монтирован на произвольный адрес, его код должен быть перемещаемым (PIC). Кроме выполняющихся потоков домен содержит код, разбитый на модули. Каждый модуль имеет UUID и поддерживает некоторый интерфейс. Кроме кода модули ещё в себе инкапсулируют и данные. Такой схема делает файлы ненужными. В самом деле, зачем нужны файлы, когда модули персистентны и просто хранят всю информацию в памяти?
Одни модули могут использовать функционал других модулей (вызывать их функции). Такие вызовы бывают трёх видов:
Итак, я грубыми штрихами набросал моё текущее видение законченной системы. Буду очень признателен, если вы укажете мне на ошибки и потенциальные недостатки обрисованной конструкции (не хочу двигаться в тупиковом направлении).
Автор: ababo
Источник [8]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/diy-ili-sdelaj-sam/58791
Ссылки в тексте:
[1] игрушечной ОС: https://github.com/ababo/toy
[2] 1: http://habrahabr.ru/post/175749/
[3] 2: http://habrahabr.ru/post/177403/
[4] 3: http://habrahabr.ru/post/177569/
[5] 4: http://habrahabr.ru/post/179561/
[6] 5: http://habrahabr.ru/post/181870/
[7] медицинского коллективного блога: http://vedmedi.ru
[8] Источник: http://habrahabr.ru/post/218955/
Нажмите здесь для печати.