Chisel: инструмент и сетевая технология¶
Chisel (от англ. chisel — «стамеска», «зубило») — многозначный термин, обозначающий, во-первых, класс ручных инструментов для обработки твёрдых материалов, а во-вторых, программное обеспечение с открытым исходным кодом для создания защищённых сетевых туннелей. В русскоязычной технической среде термин чаще всего употребляется в обоих значениях, в зависимости от контекста.
¶Инструмент: определение и виды
В инструментальном значении chisel (стамеска) — это режущий инструмент с заострённой рабочей кромкой, предназначенный для снятия слоя материала (стружки) с заготовки. В отличие от ножа, chisel работает за счёт ударного или силового воздействия вдоль оси инструмента, а не поперечного движения.
¶Классификация по материалу обработки
Выделяют три основные категории инструмента:
- Стамески по дереву — наиболее распространённый тип. Изготавливаются из инструментальной стали (углеродистой или легированной). Рабочая часть имеет одностороннюю заточку под углом 20–30 градусов. Ручка выполняется из дерева (бук, граб) или ударопрочного пластика.
- Зубила по камню и бетону — более массивные инструменты с углом заточки 60–70 градусов. Используются с киянкой или молотком. Рабочая кромка изготавливается из быстрорежущей стали или оснащается твердосплавными пластинами.
- Скульптурные и гравёрные стамески — узкоспециализированные инструменты малых размеров для художественной обработки дерева, кости, мягкого камня.
¶Основные разновидности по форме
- Плоские — для выборки пазов и снятия ровного слоя.
- Полукруглые — для обработки вогнутых поверхностей и создания желобов.
- Угловые (V-образные) — для контурной резьбы и гравировки.
- Косые — для подрезки и чистовой обработки.
¶История инструмента
Прообразы стамесок появились ещё в эпоху неолита, когда человек начал обрабатывать дерево и кость. Древнеегипетские и древнегреческие мастера использовали медные, а затем бронзовые долота. С началом железного века инструменты стали изготавливать из стали. Современная конструкция стамески с металлическим хвостовиком, проходящим через ручку, сформировалась в Европе в XVII–XVIII веках. В Российской империи производство качественных стамесок было налажено на Павловском инструментальном заводе в XIX веке.
¶Сетевая технология Chisel
В области информационных технологий Chisel — это утилита с открытым исходным кодом для создания туннелей и передачи данных через HTTP/WebSocket. Проект разработан британским программистом Томом Кэмпбеллом (Tomás Aparicio) и распространяется под лицензией MIT.
¶Назначение и принцип работы
Chisel позволяет организовать защищённый канал связи между двумя компьютерами через публичные сети, используя единственный TCP-порт. Программа состоит из двух компонентов: серверной части (chisel server) и клиентской (chisel client). Сервер разворачивается на машине с публичным IP-адресом, клиент подключается к нему по протоколу HTTPS. Внутри туннеля трафик шифруется с использованием протокола TLS.
Основные сценарии применения включают:
- Проброс портов — доступ к сервисам внутри закрытой сети без настройки маршрутизатора (например, доступ к веб-интерфейсу устройства за NAT).
- Организация обратного туннеля — подключение к компьютеру, находящемуся за файрволом, когда инициатором соединения выступает сам защищаемый компьютер.
- Транспортировка трафика через HTTP-прокси — обход ограничений корпоративных сетей (при этом важно отметить, что использование технологии в обход законодательства может быть неправомерным).
¶Технические особенности
Chisel написан на языке Go, что обеспечивает кросс-платформенность (Windows, Linux, macOS, FreeBSD). Отличительные черты:
- простота развёртывания — один исполняемый файл без зависимостей;
- поддержка SOCKS5-прокси;
- возможность аутентификации клиента по токену;
- устойчивость к разрывам соединения (автоматическое переподключение);
- высокая скорость работы за счёт мультиплексирования потоков внутри одного TCP-соединения.
¶Сравнение с альтернативами
В отличие от классических VPN-решений (OpenVPN, WireGuard), Chisel не требует привилегий суперпользователя для установки туннеля и работает на прикладном уровне модели OSI. По сравнению с SSH-туннелированием Chisel предлагает более гибкие возможности аутентификации и не требует наличия учётной записи на удалённой машине. Однако технология уступает VPN в производительности при передаче больших объёмов трафика и не предназначена для построения полноценных корпоративных сетей.
¶Chisel в микроэлектронике
Дополнительное значение термина — Chisel (Constructing Hardware in a Scala Embedded Language) — предметно-ориентированный язык описания аппаратуры, разработанный в Калифорнийском университете в Беркли в 2012 году. Язык базируется на Scala и позволяет описывать цифровые схемы и процессоры на высоком уровне абстракции. На Chisel, в частности, написана система RISC-V. В отличие от классических Verilog и VHDL, Chisel генерирует синтезируемое описание автоматически, что упрощает параметризацию и повторное использование блоков.
¶Интересные факты
- В русском языке термин «chisel» в инструментальном значении часто переводят как «стамеска», однако в профессиональной среде столяров и краснодеревщиков под chisel понимают именно стамеску с косой заточкой, а не долото (mortise chisel).
- Средневековые мастера-строители использовали стамески для нанесения меток на каменные блоки — эти знаки до сих пор находят при реставрации готических соборов.
- Утилита Chisel была создана в 2017 году и быстро завоевала популярность среди системных администраторов благодаря простоте использования: для установки туннеля достаточно одной команды в терминале.
- В языке описания аппаратуры Chisel существует библиотека стандартных компонентов, которая позволяет тестировать проектируемые схемы непосредственно в среде Scala, что ускоряет процесс разработки микропроцессоров.