- BrainTools - https://www.braintools.ru -
Когда я впервые настроил AUFS для контейнеров, осознал: люди — тоже union-монтирование. Мы — наложение паттернов, привычек и ролей. Решил применить это к себе.
Спонсор эксперимента — более 5 лет в IT и знание, что /proc/self/maps не показывает границы внутреннего ада.
Another Union File System — это объединение нескольких слоёв файловой системы в единое целое. Каждый слой может быть:
Read-only (базовые установки)
Read-write (один, верхний, текущие изменения)
Whiteouts (удалённые элементы, спрятанные, но не забытые)
Слоев для чтения может быть много, а для записи — только один. Это неизменное правило.
mount -t aufs -o br:/upper=rw:/lower1=ro:/lower2=ro,udba=reval none /mnt/current_self
/lower1/base (Read-only):
Детские травмы (/family_dysfunction)
Генетика (/biology/irish_depression)
Культурный код (/etc/russian_guilt.conf)
/upper/changes (Read-write):
Привычки (/usr/bin/procrastinate.sh [1])
Навыки (/lib/modules/coding_skills)
Социальные маски (/dev/char/social_role)
Whiteouts:
/.wh.deleted_sensitivity (подавленная эмпатия)
/.wh.killed_dreams (отказ от музыки в 15 лет)
Шаг 1: Анализ слоёв
auplink /mnt/current_self list
/lower1/base/trauma_events.log
/upper/changes/new_beliefs.cfg
Шаг 2: Пересборка
mkdir -p /upper/patches/self_2024
cp /lower1/base/bad_patterns.c /upper/patches/self_2024/
vim /upper/patches/self_2024/bad_patterns.c
Шаг 3: Удаление через whiteout
touch /upper/changes/.wh.never_ask_for_help
Проблема: страх [2] публичных выступлений.
Код в /lower1/base/social_interaction.c:
if (audience > 1) {
panic("They see through you!");
}
Решение: временный слой:
mount -t aufs -o br:/tmp/actor_mask=ro:/upper/changes=rw /mnt/stage_persona
Результат: теперь в /usr/bin/talk.py [3]:
def speak():
if self.mode == "public":
execute(actor_mask.script) # Имитация уверенности
else:
normal_mode()
Бэкап слоя:
cp -a /lower1/base /lower1/base_python2_backup
Постепенная замена:
- print "I'm worthless"
+ print("I'm work-in-progress")
Проверка совместимости:
./configure --with-self-compassion=yes
make test
Симптом: зависания при переписывании базовых установок через /upper/changes
Пример:
echo new > /upper/changes/fear_of_abandonment
Ошибка [4]: kernel panic: conflicting belief systems
Решение:
dmesg | grep -i conflict
echo 1 > /proc/sys/kernel/emotional_crash
reboot # через терапию
cat /proc/self/status | grep -i anon
Anonymous memory: 8.7G (память [5] о бывших, невысказанное, тревоги)
Фикс:
void release_memory(void *pain) {
kfree(pain);
trigger_grief(); // Плач
trigger_writing(); // Дневник
}
Проблема: whiteout скрывает, но не очищает.
stat /mnt/current_self/.wh.need_for_approval
Size: 0 Blocks: 8
Вывод: suppression != deletion. Нужно пересобирать.
Мой эксперимент показал: слои — не решение, а инструмент. Как и в AUFS, важно:
Делать auplink flush — синхронизировать и отпускать
Не бояться rmmod старых модулей
Помнить: даже read-only слои можно переосмыслить через mount
# А пока я переключился на:
mount -t overlay -o lowerdir=childhood,upperdir=init_attempt,workdir=/tmp/initramfs_rebuild none /mnt/boot_self
Сейчас пробую OverlayFS — он позволяет менять нижние слои. Видимо, пора лезть в initramfs детства.
P.S. Все скрипты из статьи — в моём GitHub [6]. Там же конфиги для emotional_cgroupd — демона контроля ресурсов.
P.S.S. Мне 23, я разработчик. Эта статья — не просто метафора, а начало сборки настоящей ОС. Следующая — про init, rootfs, и загрузку своего первого слоя реальности.
P.S.S.S. Если вам откликаются мои размышления о слоистых системах, технологии и жизни, подписывайтесь на мой канал в Telegram “Консоль Души”. Тут я делюсь своими мыслями и опытом [7] в IT, говорю о том, как я пережил паузу в коде, и о том, как мы, как и операционные системы, можем быть многослойными.
_____________________________ / | mount -t aufs -o br=... | | Монтирую личность... | | | | /lower/base: травмы | | /upper/changes: опыт | | /.wh: подавления | | | | >> /mnt/current_self | _______________________________/
|| || (o) (o) | | ___||___/ / / (__) (__)
⬢ Mozgolika v1.0 ⬢ "Self is mounted"
Автор: mozgolika
Источник [9]
Сайт-источник BrainTools: https://www.braintools.ru
Путь до страницы источника: https://www.braintools.ru/article/14921
URLs in this post:
[1] procrastinate.sh: http://procrastinate.sh
[2] страх: http://www.braintools.ru/article/6134
[3] talk.py: http://talk.py
[4] Ошибка: http://www.braintools.ru/article/4192
[5] память: http://www.braintools.ru/article/4140
[6] в моём GitHub: https://github.com/anatoliiii
[7] опытом: http://www.braintools.ru/article/6952
[8] Подписаться на канал: https://t.me/mozgolika_ayaroa
[9] Источник: https://habr.com/ru/articles/906968/?utm_campaign=906968&utm_source=habrahabr&utm_medium=rss
Нажмите здесь для печати.