linux_read | Unsorted

Telegram-канал linux_read - Linux Books

16351

@linuxkalii - наш канал По всем вопросам- @notxxx1 № 5032799382

Subscribe to a channel

Linux Books

Математика без попсы: три бесплатных книги для тех, кто хочет настоящий фундамент

Три бесплатные книги Аллена Хатчера по математике

Если хочется нормального фундамента по топологии, K-theory и теории чисел, у Аллена Хатчера есть отличный бесплатный набор.

1. Algebraic Topology
Классический учебник по алгебраической топологии. Книга вышла в Cambridge University Press, но онлайн-версия доступна бесплатно по соглашению с издателем. На сайте есть полный PDF, главы отдельно, исправления и дополнительные упражнения.
https://pi.math.cornell.edu/~hatcher/AT/AT.pdf

Дополнительно: Spectral Sequences - отдельная расширенная глава к этой книге.
https://pi.math.cornell.edu/~hatcher/AT/ATch5.pdf

2. Vector Bundles & K-Theory
Короткая книга про векторные расслоения, топологическую K-теорию и характеристические классы. Сейчас онлайн выложено около 120 страниц: основы vector bundles, часть K-theory, Bott periodicity, characteristic classes и stable J-homomorphism.
https://pi.math.cornell.edu/~hatcher/VBKT/VB.pdf

3. Topology of Numbers
Необычное введение в теорию чисел через геометрию и картинки. Много внимания уделено квадратичным формам, диаграмме Фарея, цепным дробям, уравнению Пелля, quadratic reciprocity и topograph Конвея. PDF примерно на 350 страниц доступен бесплатно.
https://pi.math.cornell.edu/~hatcher/TN/TNbook.pdf

Читать полностью…

Linux Books

`O_DIRECT`: когда база данных обходит page cache

В Linux флаг O_DIRECT позволяет читать и писать файл почти напрямую, минуя page cache ядра.

Зачем это нужно базам данных?

У PostgreSQL, MySQL, RocksDB и других систем часто уже есть свой buffer pool.
Если ещё и ядро будет кэшировать те же страницы, получится двойное кэширование и лишняя трата памяти.

Но у O_DIRECT есть неприятное условие: всё должно быть выровнено по блоку.

• buffer
• file offset
• размер чтения / записи

Например, под 4 KB блоки нельзя просто так прочитать 123 байта в любой `malloc`-буфер.
Промахнулся с alignment — read() вернёт EINVAL.

Именно поэтому низкоуровневый I/O в базах выглядит таким странным: там важны не только данные, но и то, как они лежат в памяти.

Читать полностью…

Linux Books

⚡️🖥 Наруто учит параллельной работе в Linux


Три команды которые экономят часы ручной работы. find с xargs и grep ищет error сразу во всех логах, parallel конвертирует пачку PNG в WEBP в несколько потоков, rsync синхронизирует папку с бэкапом и показывает прогресс.

Настоящий шиноби автоматизирует рутину и всегда делает бэкап. Сохраняй чтобы не потерять.

Читать полностью…

Linux Books

Запустил новый Linux-сервер? Не спеши сразу ставить сайт, бота или базу.

Сначала закрой базу безопасности.

Обнови систему, чтобы убрать старые уязвимости. Создай отдельного пользователя и не работай постоянно из-под root. Защити SSH: отключи root-вход, убери пароли и используй ключи.

Дальше включи firewall и оставь открытыми только нужные порты. Поставь Fail2ban, чтобы сервер сам блокировал подозрительные попытки входа.

И обязательно настрой бэкапы, логи и мониторинг. Сервер без резервных копий это лотерея.

Эти шаги занимают немного времени, но сильно снижают риск взлома и проблем в будущем.

Читать полностью…

Linux Books

⚡️ Linux Roadmap: подробный практический курс от нуля до уверенного администратора

Это пошаговый маршрут изучения Linux с упором на практику. Каждый раздел содержит объяснение «почему это устроено именно так», разбор команд и обязательные задания, которые нужно выполнить руками в терминале. Чтение без повторения навыка не даёт — держите терминал открытым рядом с этим текстом.

Как работать с этим курсом: идите сверху вниз, не перепрыгивайте разделы; каждую команду набирайте руками, а не копируйте; в конце каждого блока выполняйте задание; специально ломайте систему в виртуалке и чините — это лучший способ учиться.

https://github.com/justxor/linuxfullroadmap/

Читать полностью…

Linux Books

🖥 C# Roadmap: с нуля до профи

Практическое руководство по росту в C#-разработке. Материал собран для тех, кто хочет получить инженерную глубину, а не просто накликать CRUD по туториалам.

Здесь последовательность изучения, лучшие практики, ресурсы и трезвый разбор того, как работать с ИИ-инструментами и оставаться востребованным.

https://github.com/Develp10/Csharp_Roadmap/

Читать полностью…

Linux Books

Редкий Linux-приём: найди, кто держит удалённый файл и почему место не освобождается

Иногда ты удаляешь огромный лог, проверяешь директорию - файла уже нет. Но df -h всё равно показывает, что диск забит.

Это не мистика. В Linux файл может быть удалён из директории, но место не освободится, пока какой-то процесс всё ещё держит его открытым.

Так часто бывает с логами, временными файлами, crashed-сервисами и контейнерами.

Вместо того чтобы перезагружать сервер, проверь удалённые, но всё ещё открытые файлы через lsof.

Смотри на строки с пометкой deleted. Там будет видно, какой процесс держит файл, его PID, размер и путь.

Дальше уже понятно, что делать: перезапустить конкретный сервис, аккуратно закрыть процесс или пересоздать лог через logrotate.

Это один из тех багов, где файл “удалён”, но место не вернулось. И если знать про открытые file descriptors, проблема находится за минуту.

Читать полностью…

Linux Books

Венец open-source эволюции: кто-то создал Shreknux - Linux-дистрибутив, полностью посвященный Шреку.

Тут все как надо: болотная эстетика, интерфейс в стиле мультфильма и вход в систему через кнопку «Enter the swamp». Не баг, а культурное наследие.
Кажется, у нас наконец появился действительно веский повод перейти на Linux.

https://archive.org/details/ShrekLinux-x86-64

Читать полностью…

Linux Books

⚡️ Девушка нашла баг в Linux, который существовал дольше неё самой

21-летняя разработчица просто готовилась к лекции. Открыла PDF - и система зависла. Не первый раз, но в этот раз она решила не перезапускать, а разобраться.

Оказалось, проблема сидит в оконном менеджере Enlightenment E16. Это код из 90-х. Баг, судя по всему, жил там больше 20 лет. И всё это время его никто не трогал.

Ни комьюнити, ни мейнтейнеры, ни тысячи пользователей, которые с этим сталкивались.

Она просто пошла глубже. Нашла причину, разобралась в старом коде и исправила ошибку, которую десятилетиями обходили стороной.

Можно иметь огромный open source проект, миллионы пользователей и длинную историю, но внутри всё равно будут жить старые баги, до которых просто никто не добрался.

Не потому что они нерешаемые. А потому что неудобные, неочевидные или просто никому не хотелось в них лезть.

И в какой-то момент приходит один человек, без команды и ресурсов, и закрывает этот вопрос.

Вот так на самом деле работает open source. Не за счёт корпораций и масштаба, а за счёт людей, которые готовы копаться в системе до конца.

И самый неприятный вывод здесь простой.

Иногда баг живёт десятилетиями не потому что его сложно исправить. А потому что никто всерьёз не пытался это сделать.

https://www.cnews.ru/news/top/2026-04-16_yunaya_devushka_izbavila_linux

🖥 Полезные Linux ресурсы 🚀 Max

Читать полностью…

Linux Books

🐧 Лайфхак по Linux, который реально экономит время

Команда find умеет не только искать файлы, но и сразу что-то с ними делать через -exec.

Пример:
$ find ~/ -type f -exec ls -lah {} \;

Что происходит:
find находит все файлы и для каждого запускает ls, показывая права, размер и метаданные.

Как работает -exec:
- exec ls - команда, которую нужно выполнить
- -lah - формат вывода (права, скрытые файлы, размеры)
- {} - подставляет имя каждого найденного файла
- \; - завершает команду (экранируем, иначе shell сломает)

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

Важно:
вместо \; можно использовать +
тогда команда будет применяться сразу к группе файлов — быстрее и эффективнее

Пример с несколькими командами:
$ find . -name "*.txt" -exec wc {} \; -exec du -sh {} \;

Считает слова и сразу показывает размер каждого файла.

Сохрани — это база для работы с файлами в Linux.

Читать полностью…

Linux Books

Шпаргалка по Linux

🖥 Полезные Linux ресурсы 🚀 Max

Читать полностью…

Linux Books

🖥 Большинство “парсеров” умирают через 2 дня.
Ты научишься делать те, которые живут в проде.

Это не про BeautifulSoup ради галочки.
Это про системы сбора данных, которые:

• не падают от мелких правок на сайте
• собирают данные в разы быстрее
• обновляют всё сами по расписанию
• обходят ограничения и баны
• выглядят как сервис, а не хаос из файлов

Ты начнёшь видеть сайты не как страницы, а как источники данных, к которым можно подключиться.

В итоге ты сможешь:

• забирать данные для своих проектов
• автоматизировать чужую рутину
• делать инструменты для аналитики
• брать коммерческие заказы на сбор данных

Это навык, который напрямую превращается в деньги.
Не “знаю Python”, а умею добывать данные из интернета профессионально.

🎁 48 часов скидка 50% на Stepik: https://stepik.org/a/269942/

Читать полностью…

Linux Books

🔥На Stepik вышел курс: Linux: полный апгрейд твоих скиллов

Хочешь реально понимать, что происходит под капотом твоей системы, а не просто кликать по GUI?

Без глубокого знания базы ты не инженер - ты просто пользователь.

🔹 В курсе ты:

- Освоишь bash, grep, sed, awk - инструменты, которыми живут админы.
- Разберёшь права, процессы, сеть, файловую систему и научишься чинить всё, что падает.
- Настроишь SSH, firewall, systemd, crontab, демоны и автозапуск.
- Научишься анализировать логи, следить за нагрузкой, и не паниковать при 100% CPU.

💡 Формат: пошаговое объяснение базы и разбор важных практик по работе с Linux.

🎯 После курса ты: будешь чувствовать Linux как родную среду и забудешь, что такое “permission denied”.

🚀 24 часа действует скидка 30%

👉 Учиться со скидкой

Читать полностью…

Linux Books

Linux® commands Notes for Professionals book

Шпаргалка

Читать полностью…

Linux Books

💡 Маленький bash-трюк, который может спасти файлы

По умолчанию в shell команда с > молча перезаписывает файл.

Пример:


echo "This is a sample line" > hello.txt


Файл создастся или будет перезаписан без предупреждения.

Как защититься

Включаем режим защиты от перезаписи:


set -o noclobber


Теперь попытка перезаписать существующий файл через > даст ошибку:


echo "New lines to replace" > hello.txt
# bash: hello.txt: cannot overwrite existing file


То есть shell не даст случайно затереть файл.

А если всё-таки нужно перезаписать

Используется специальный оператор:


echo "New lines to replace" >| hello.txt

>| игнорирует noclobber и осознанно разрешает перезапись.

Вывод

> - опасен, перезаписывает молча


set -o noclobber - защита от случайных потерь


>| - осознанное "да, я точно хочу перезаписать"

Отличная привычка для серверов, продакшена и работы с важными логами.

Читать полностью…

Linux Books

Linux Совет: как следить за выводом команды в реальном времени

Есть команда, вывод которой постоянно меняется? Не нужно запускать её руками снова и снова.

Используйте watch:


watch command


Например:


watch df -h


Команда будет запускаться каждые 2 секунды, а вывод будет автоматически обновляться в терминале.

Остановить можно через:


Ctrl+C


Что ещё удобно мониторить:


watch free -h
watch date
watch ls -l
watch "ps aux | grep nginx"
watch "ip addr"


Полезно для диска, памяти, процессов, сети и любых системных изменений, которые нужно видеть почти в реальном времени.

Читать полностью…

Linux Books

Нашёл хорошую бесплатную книгу по x86-64 Assembly под Ubuntu.

x86-64 Assembly Language Programming with Ubuntu - это не «ассемблер за 10 минут», а нормальный учебник для тех, кто хочет понять, что реально происходит ниже C, Go, Rust и Python.

Разбираются базовые вещи:

• архитектура x86-64

• представление данных

• формат программы

• toolchain

• debugger

• instruction set

• addressing modes

• process stack

• macros и functions

• system services

• floating-point instructions

• parallel processing

• interrupts

Самое полезное - книга учит смотреть на программу не как на текст, а как на работу процессора, регистров, памяти, стека и системных вызовов.

Это особенно полезно для тех, кто хочет лучше понимать:

• C/C++

• компиляторы

• reverse engineering

• performance

• Linux internals

• low-level debugging

Да, материал не самый свежий по Ubuntu, но фундамент x86-64 от этого не исчезает.

Хорошая база, если хочется наконец понять, что происходит «под капотом».

PDF:
http://egr.unlv.edu/~ed/assembly64.pdf

Читать полностью…

Linux Books

⚡️ Kali Linux Roadmap: с чего начать в этичном хакинге

Нашёл нормальный roadmap по Kali Linux для тех, кто хочет не просто «поставить Kali и открыть терминал», а постепенно разобраться, как всё это работает.

Внутри маршрут по базовым темам: установка, настройка окружения, работа с терминалом, Linux-команды, сеть, безопасность, инструменты Kali и практика.

Это полезно тем, кто только заходит в кибербезопасность и не понимает, за что браться первым. Kali часто выглядит как набор страшных утилит, но без базы по Linux, сетям и правам доступа эти инструменты быстро превращаются в хаос.

Хороший подход здесь простой: сначала понять систему, потом сеть, потом инструменты, и только после этого переходить к практике в легальных лабораториях и CTF.

Такой roadmap удобно проходить как чек-лист: открыл раздел, разобрал команды, повторил руками, закрепил на тестовом окружении.

Для старта в Kali Linux это намного лучше, чем хаотично смотреть ролики и копировать команды без понимания.

https://github.com/justxor/Kalilinuxroadmap/tree/main

Читать полностью…

Linux Books

Линус Торвальдс мог быть богаче Илона Маска. Но он выбрал другой путь.

В 2005 году его команда внезапно потеряла доступ к инструменту, с помощью которого управляла кодом Linux. Один разработчик сделал реверс-инжиниринг этой системы, и компания, которой она принадлежала, просто отключила проект без предупреждения.

Тысячи разработчиков. Никакого нормального способа совместной работы. Никакого запасного плана.

Торвальдс не стал паниковать. Он сел и написал собственную систему контроля версий с нуля.

За 10 дней.

Он назвал её Git. Уже в первый день Git отслеживал собственный исходный код. Через несколько недель на нём управлялся весь проект Linux. К концу 2005 года официально вышел Git 1.0.

А потом Линус просто отдал его бесплатно. Open source. Без компании. Без патентов. Без монетизации.

Через несколько месяцев он передал проект другим людям и вернулся к Linux, будто ничего особенного не произошло.

Зато другие быстро поняли, что он оставил на столе.

На Git вырос GitHub: 100 млн разработчиков, покупка Microsoft в 2018 году за $7,5 млрд. GitLab вышел на биржу в 2021 году с оценкой почти $12 млрд. Сегодня Git контролирует больше 85% рынка систем контроля версий.

Каждое приложение в вашем телефоне. Каждый сайт, который вы открываете. Почти всё это создаётся с помощью Git.

Торвальдс не заработал на этом $0.

Он создал самый используемый инструмент для разработчиков в истории просто потому, что его достала существующая система.

А потом отдал его бесплатно, потому что считал: такой инструмент должен быть доступен всем.

И он ни разу публично не сказал, что жалеет об этом.

Читать полностью…

Linux Books

io_uring без розовых очков: 5 граблей, которые сожгли мне неделю, и где он реально быстрее epoll

Прод. Сервис на Go, 80k RPS, p99 latency 12 мс. Читаю Phoronix, новость: "io_uring быстрее epoll в 2-4 раза". Решаю переписать сетевую часть. Через неделю - откат в master. p99 не упал, а вырос до 18 мс, CPU подскочил на 15%, под нагрузкой иногда залипает на 200-400 мс. Эта статья - не про "io_uring - будущее async I/O", а про то, что в этом будущем реально работает в 2026 году, что нет, и где меня обманули бенчмарки.

https://habr.com/ru/articles/1039820/

Читать полностью…

Linux Books

Rust Roadmap на русском - это не очередной список ссылок, который хочется закрыть через 10 секунд.

Это понятная карта прокачки Rust от нуля до уровня, где ты уже не просто пишешь println!, а понимаешь ownership, lifetimes, borrow checker, async, unsafe, FFI, многопоточность и реальную экосистему.

Внутри - пошаговый маршрут на 6-12 месяцев:

- подготовка окружения;
- базовый синтаксис;
- ownership и borrowing;
- структуры данных и трейты;
- ошибки и тестирование;
- умные указатели;
- многопоточность;
- async / await;
- макросы;
- unsafe Rust и FFI;
- реальные проекты;
- уровень профи.

Нормальный маршрут, где понятно, что учить сначала, что потом и какие проекты собирать по пути.

Если давно хотел зайти в Rust, но тонул в хаосе из книг, документации и туториалов - этот roadmap сильно экономит время.

GitHub:
github.com/Develp10/rust-roadmap-ru

Читать полностью…

Linux Books

🖥 На Stepik обновили курс «C# с нуля до профи»

Представьте: через четыре месяца вы открываете чужой .NET-проект и читаете его как книгу.

IServiceCollection не вызывает ступора. async Task<IActionResult> пишется на автомате. Вы точно знаете, почему EF Core сгенерировал именно такой SQL - и как переписать запрос, чтобы он летал.

Это не фантазия. Это результат после 16 модулей, в которых каждая концепция объясняется через код и закрепляется практикой.

ООП, SOLID, LINQ, async/await, DI, EF Core, ASP.NET Core, Docker, Kubernetes - всё, что казалось магией, станет рабочим инструментом.

А бонусом - портфолио проектов: от CLI-утилит и REST API до собственного SaaS с multi-tenancy, JWT и деплоем в Kubernetes под TLS.

Скидка - 58% доступна 48 часов: https://stepik.org/a/282984/

Читать полностью…

Linux Books

Быстрый Linux совет 🐧

Заканчивается место на диске и непонятно, куда оно ушло?

Эта команда покажет самые «тяжёлые» директории:

$ du -h / --max-depth=1 2>/dev/null | sort -rh | head -10

Что происходит:

du - считает размер
--max-depth=1 — только первый уровень
sort -rh - сортирует по размеру
head -10 - выводит топ 10

Быстро находишь, где лежит основной объём данных.

Сохрани, пригодится.

Читать полностью…

Linux Books

👣 На Stepik обновили курс «Rust: полный курс разработчика. С нуля до профи»

Представьте: через три месяца вы открываете чужой Rust-код и читаете его как книгу.

Arc<Mutex<T>> не вызывает панику. impl Future не пугает. Вы точно знаете, почему компилятор ругается и как это починить за 10 секунд.

Это не фантазия. Это результат 50 уроков, в которых каждая концепция объясняется через код и закрепляется практикой.

Ownership, traits, generics, async, unsafe - всё, что казалось магией, станет рабочим инструментом.

А бонусом - портфолио проектов: от CLI-утилит до REST API и WebAssembly.

Вы и так знаете, что Rust - ваш следующий язык. Этот курс просто сделает это реальностью.

Сегодня - 55% процентов от цены, торопись: https://stepik.org/a/269250/

Читать полностью…

Linux Books

🔥 Лучшие БЕСПЛАТНЫЕ ресурсы по Linux в 2026 году

1. Linux Foundation Training
https://training.linuxfoundation.org/training/introduction-to-linux/

2. Linux Journey
https://linuxjourney.com

3. Ubuntu Tutorials
https://ubuntu.com/tutorials

4. Red Hat Training Resources
https://developers.redhat.com/learn

5. Документация GNU
https://gnu.org/manual

6. OverTheWire Bandit (Linux-варгеймы)
https://overthewire.org/wargames

7. Книга The Linux Command Line
https://linuxcommand.org/tlcl.php

8. MIT Missing Semester (Linux и CLI)

https://missing.csail.mit.edu

9. Туториалы по Linux от DigitalOcean
https://digitalocean.com/community/tutorials

10. Linux From Scratch
https://linuxfromscratch.org

11. Arch Linux Wiki
https://wiki.archlinux.org

12. Курс по Linux от freeCodeCamp
https://freecodecamp.org/news/tag/linux

13. Linux Survival (интерактивное обучение)
https://linuxsurvival.com

14. NDG Linux Essentials
https://netacad.com/courses/os-it/ndg-linux-essentials

15. Bash Guide (руководство по Bash)
https://tldp.org/LDP/Bash-Beginners-Guide/html

Читать полностью…

Linux Books

🖥 Энтузиаст запустил Linux на PS5 - и превратил консоль в полноценную Steam Machine.

После установки Linux на приставке начали работать игры из Steam со всеми преимуществами ПК-версий: настройки графики, моды и привычная экосистема ПК.

Для такого «апгрейда» понадобилась PS5 со старой прошивкой и кастомный патч для видеокарты.

Фактически за пару вечеров он сделал то, к чему Microsoft и Valve шли годами.

https://github.com/PS5Dev/Byepervisor

Читать полностью…

Linux Books

Linux-совет дня 💡

Запуск rm — рискованная операция.
Запуск rm с * — в 10 раз опаснее.

В некоторых случаях полезно заранее посмотреть, какую команду он выполнит после раскрытия шаблонов. Например:


$ echo rm -rf /*


Эта команда выведет в stdout уже развёрнутый результат — по сути, это «пробный запуск» (dry run) для rm -rf /*.

Читать полностью…

Linux Books

⚡️ grep по-настоящему - практическое руководство с примерами

Если вы используете grep только для простого поиска по файлам — вы теряете половину его возможностей.

Разбор *grep by example* — это набор реальных сценариев, которые показывают, как использовать инструмент для повседневных задач разработчика и DevOps.

Что можно делать с grep

- Поиск по нескольким файлам и каталогам
- Фильтрация логов и больших текстов
- Поиск по шаблонам и регулярным выражениям
- Игнорирование регистра
- Подсветка совпадений
- Показ строк до и после совпадения

Полезные примеры

Поиск слова во всех файлах:

antonz.org/grep-by-example/

Читать полностью…

Linux Books

🔥 Полезная подборка каналов только код, практика и самые передовые инструменты, которые используют разработчики прямо сейчас.👇

🖥 ИИ: t.me/ai_machinelearning_big_data

🖥 Python: t.me/pythonl

🖥 Linux: t.me/linuxacademiya

🖥 C++ t.me/cpluspluc

🖥 Docker: t.me/DevopsDocker

🖥 Хакинг: t.me/linuxkalii

🖥 Devops: t.me/DevOPSitsec

👣 Golang: t.me/Golang_google

🖥 Аналитика: t.me/data_analysis_ml

🖥 Javascript: t.me/javascriptv

🖥 C#: t.me/csharp_ci

🖥 Java: t.me/javatg

🖥 Базы данных: t.me/sqlhub

👣 Rust: t.me/rust_code

🤖 Технологии: t.me/vistehno

💰 Экономика и инвестиции в ИИ t.me/financeStable

💼 Актуальные вакансии: t.me/addlist/_zyy_jQ_QUsyM2Vi

🖥 Chatgpt бот в тг: t.me/Chatgpturbobot

📚 Бесплатные ит-книги: /channel/addlist/HwywK4fErd8wYzQy

🖥Подборка по Golang: /channel/addlist/MUtJEeJSxeY2YTFi

⚡️ Лучшие ИИ ресурсы: /channel/addlist/2Ls-snqEeytkMDgy

Самое лучшее в этом: ты учишься даже тогда, когда “нет времени, просто потому что читаешь правильную ленту.

Читать полностью…

Linux Books

🔥 Смартфон превращается в мини-ПК - Arch Linux теперь запускается на Android буквально в один тап.

Без старых схем с VNC и тормозами. Всё переписано на Rust и работает через нативный Wayland, поэтому система ощущается живой, а не как удалённый рабочий стол.

Что это даёт на практике:
- можно кодить прямо с телефона
- поднимать локальные серверы
- тестировать и дебажить проекты в полноценном Linux-окружении

Как устроено внутри:
- используется Arch Linux ARM64
- система запускается через Proot, без рутования
- уже работают XFCE и даже KDE Plasma через XWayland

За счёт нативного кода на Rust и отсутствия лишних прослоек оверхед минимальный по сравнению со старыми X11/VNC-решениями.

Фактически - у тебя в кармане полноценная Linux-машина, а не эмуляция терминала.

Arch теперь реально везде.

https://localdesktop.github.io/

Читать полностью…
Subscribe to a channel