Пролог: Зачем разбирать себя на слои?
Когда я впервые настроил AUFS для контейнеров, осознал: люди — тоже union-монтирование. Мы — наложение паттернов, привычек и ролей. Решил применить это к себе.
Спонсор эксперимента — более 5 лет в IT и знание, что /proc/self/maps
не показывает границы внутреннего ада.
Глава 1: AUFS как модель личности
Что такое AUFS в реальности?
Another Union File System — это объединение нескольких слоёв файловой системы в единое целое. Каждый слой может быть:
Read-only (базовые установки)
Read-write (один, верхний, текущие изменения)
Whiteouts (удалённые элементы, спрятанные, но не забытые)
Слоев для чтения может быть много, а для записи — только один. Это неизменное правило.
Моя "личность" в терминах AUFS
Монтирование себя
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
)Навыки (
/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: Реальные кейсы переслоения
Кейс 1: Импровизация как Overlay
Проблема: страх публичных выступлений.
Код в /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
:
def speak():
if self.mode == "public":
execute(actor_mask.script) # Имитация уверенности
else:
normal_mode()
Кейс 2: Миграция с Python 2 на 3 (aka идентичность 2.0)
Бэкап слоя:
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
Глава 3: Технические проблемы самоAUFS'а
1. Конфликт слоёв
Симптом: зависания при переписывании базовых установок через /upper/changes
Пример:
echo new > /upper/changes/fear_of_abandonment
Ошибка: kernel panic: conflicting belief systems
Решение:
dmesg | grep -i conflict
echo 1 > /proc/sys/kernel/emotional_crash
reboot # через терапию
2. Утечки памяти
cat /proc/self/status | grep -i anon
Anonymous memory: 8.7G (память о бывших, невысказанное, тревоги)
Фикс:
void release_memory(void *pain) {
kfree(pain);
trigger_grief(); // Плач
trigger_writing(); // Дневник
}
3. Бесполезные whiteouts
Проблема: whiteout скрывает, но не очищает.
stat /mnt/current_self/.wh.need_for_approval
Size: 0 Blocks: 8
Вывод: suppression != deletion. Нужно пересобирать.
Эпилог: Что осталось в /var/log
Мой эксперимент показал: слои — не решение, а инструмент. Как и в 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. Там же конфиги для emotional_cgroupd
— демона контроля ресурсов.
P.S.S. Мне 23, я разработчик. Эта статья — не просто метафора, а начало сборки настоящей ОС. Следующая — про init
, rootfs
, и загрузку своего первого слоя реальности.
P.S.S.S. Если вам откликаются мои размышления о слоистых системах, технологии и жизни, подписывайтесь на мой канал в Telegram "Консоль Души". Тут я делюсь своими мыслями и опытом в IT, говорю о том, как я пережил паузу в коде, и о том, как мы, как и операционные системы, можем быть многослойными.
_____________________________
/ \
| mount -t aufs -o br=... |
| Монтирую личность... |
| |
| /lower/base: травмы |
| /upper/changes: опыт |
| /.wh: подавления |
| |
| >> /mnt/current_self |
\_______________________________/
|| ||
(o) (o)
| |
\___||___/
/ \
/ \
(__) (__)
⬢ Mozgolika v1.0 ⬢
"Self is mounted"