44 lines
2.5 KiB
Markdown
44 lines
2.5 KiB
Markdown
# Немного про распределенную компиляцию
|
||
|
||
> В телеграмме про распределенные и параллельные вычисления
|
||
|
||
## Мотивация / Введение
|
||
|
||
Про `gentoo` и распределенные системы.
|
||
|
||
Мне, как любителю Linux всегда было интересно установить Gentoo
|
||
Linux. На это есть множество причин, сейчас не о них.
|
||
Суть в том, этап установки системы на виртуальную машину пройден и
|
||
есть желание попробовать установить на маломощный нетбук.
|
||
Возникает проблема: Gentoo Linux -- это т.н. "source-based" дистрибутив,
|
||
т.е. она распространяется в виде исходного кода. В свою очередь, компиляция
|
||
системы на нетбуке занимает чуть больше суток (возможно, это можно поправить
|
||
более тщательной конфигурацией перед сборкой, но, на мой взгляд, это
|
||
слишком "хардкорный" путь).
|
||
|
||
Таким образом, возникает вопрос -- можно ли ускорить компиляцию? Тут
|
||
на помощь приходит `distcc`, своего рода фронтенд для компиляторов C/C++.
|
||
|
||
Здесь мы хотим посмотреть на возможность компиляции ядра Linux (минимальной
|
||
конфигурации `tinyconfig`) на двух виртуальных машинах с разными
|
||
характеристиками. Но для этого нужно рассказать про утилиту `vagrant`,
|
||
конфигуратор виртуальных машин.
|
||
|
||
## Vagrant
|
||
|
||
- Польза для сисадмина
|
||
- Создание стендов
|
||
- Декларативный стиль работы с виртуальными машинами
|
||
|
||
## Distcc
|
||
|
||
- Распределенная компиляция
|
||
|
||
## Компиляция
|
||
|
||
- Демонстрация стенда
|
||
- Компиляция на одной машине (gcc)
|
||
- Компиляция на одной машине (distcc)
|
||
- Компиляция на нескольких машинах (distcc)
|
||
- Таблица сравнения
|