База Данных Файлов

«.

Одним из краеугольных камней архитектуры Inferno является идея Unix с доведенными до предела файловыми устройствами: в Inferno абсолютно все представлено файлами.

» сильный человек .

Как может выглядеть база данных в свете вышесказанного? Знакомясь с возможностью многоязычного пользовательского интерфейса в программе wm/calendar, я случайно наткнулся на возможную реализацию.

У Inferno OS есть интересный способ представления баз данных — в виде файловой системы.

Для этого используйте команды dbfs, rawdbfs — которые монтируют базу данных как файловую систему.

Возьмем, к примеру, базу данных календаря (wm/calendar): rawdbfs -e пользователь/inferno/cal /mnt/расписание смонтирует базу данных из файла user/inferno/cal в папку /mnt/schedule (если файла Cal не существовало, он будет создан благодаря ключу -e).

В точке монтирования будет сгенерирован список файлов, где каждый файл соответствует одной записи в базе данных.

Благодаря этому вы можете работать с записями базы данных, создавая и удаляя, записывая и читая соответствующие файлы.

При записи в файл NEW создаются новые записи: % echo 20071107 1 > /mnt/schedule/new в пустом безе мы создали первую запись для проверки: % ls /mnt/расписание /mnt/расписание/0 /mnt/расписание/новое наша запись номер ноль: % кот /mnt/расписание/0 20071107 1 Основное различие между dbfs и rawdbfs заключается в способе хранения данных.

В первом случае используется обычный текстовый файл, записи в котором разделены пустой строкой; во втором - специальный формат, позволяющий не перезаписывать весь файл базы данных при изменении всего одной записи, что хорошо для Флэш-накопителей.

У Inferno есть и другие базы данных: есть модули dbm, attrdb, работающие со своими «форматами»; а также модуль dbsrv, позволяющий получить доступ к базе данных основной операционной системы (если Inferno используется в качестве гостевой ОС).

Теги: #inferno #Программное обеспечение

Вместе с данным постом часто просматривают: