Сожалею, что статья не принесла вам удовольствие. Учту это в будущих статьях. Я понимаю, что все это субъективно, но вы можете сказать как бы вы выстроили повествование?
Сложно эту разницу понять, я пытался объяснить в статье , на примере терминалов и консолей PDP. Но в моем понимании: терминал для пользователя, консоль для операционной системы и админа. Терминал подразумевает многопользовательский режим, консоль - это куда пишет ядро кольцевой буфер.
Важно только понимать, что делаешь и делать осторожно, чтобы не повесить ядро, на котором работаешь, ну или запускать уже в отдельной виртуальной машине.
Спасибо за комментарий. Загрузить через uboot можно , но из-за особенностей схемы загрузки, первый загрузчик все равно должен быть проприетарный от малинки, в котором нужно указать, что ядром является образ uboot. От initramfs я отказался, чтобы упростить подачу материала.
Скорее всего ядро, которое запускал автор, можно просто взять и запустить из UEFI Shell, или даже просто его может загрузить UEFI, если прописать в NVRAM, где лежит ядро и initramfs, так как большинство современных ядер для x86_64 собирается с CONFIG_EFI_STUB.
Статья дает лишь поверхностное представление о ядре Linux с явными упрощениями и неточностями. У новичка она убирает страх перед неизвестным, а у более опытных - неточности и упрощения сразу бросаются в глаза.
Я думаю, в статье желательно было бы указать целевую аудиторию и честно сказать, что в реальности не так все просто.
Р.S. Указывать на недостатки и ошибки всегда проще, чем их не допускать и исправлять.
Смотря что вы понимаете под обычной программой Linux и как запустить. Если консольные приложения и команды Linux, то можно воспользоваться эмулятором терминала Termux
Я своих одноплатников не разрабатывал и могу ошибаться.
Но насколько понимаю, сначала нужно определиться на каком SoC ты будешь делать.
Информацию, необходимую для разработки часто ты получишь только подписав NDA. Потом тебе нужны знания в схемотехнике, в проектировании и разводке печатных плат.
Далее тебе нужно разработать Device Tree для твоего одноплатника, скорее всего адаптировать для него загрузчик, часто это u-boot.
Весь процесс трудозатратный и не делается в одиночку.
Но, думаю, собрать что-то типа своего Raspberry Pi Pico можно и самому. Но это немного другой уровень и там уже Linux не будет.
Исходя из аннотации, в книге изложено, как собрать Linux для уже существующего одноплатника, используя, Yocto и Buildroot, добавить переферию и пропатчить Device Tree для поддержки этой переферии.
Согласен, что можно поступить как вы предлагаете. В продакшене никто не будет делать, как описано в статье, лучше использовать решение, которое разрабатывается годами несколькими разрабочиками, проверенное временем. Но я просто хотел показать, что именно делается, и получить ощущение контроля над тем, что происходит.
Я посчитал, что рассказывать про оверлейные файловые системы и squashfs в статье, где создается минимальный Linux, усложнит восприятие. Но забыл про них упомянуть в выводах, исправлю
Мне самому больше нравится dd, но я считаю, что balenaEtcher удобней для новичка тем, что меньше вероятности угробить систему, да и в Windows я им пользуюсь. Но сам удивлен его размером)
Если я правильно понимаю, это будет сивольное устройство tty.
Сожалею, что статья не принесла вам удовольствие. Учту это в будущих статьях. Я понимаю, что все это субъективно, но вы можете сказать как бы вы выстроили повествование?
Сложно эту разницу понять, я пытался объяснить в статье , на примере терминалов и консолей PDP. Но в моем понимании: терминал для пользователя, консоль для операционной системы и админа. Терминал подразумевает многопользовательский режим, консоль - это куда пишет ядро кольцевой буфер.
Исправил
Я всегда думал, что eBPF в основном для мотиторинга и работы с сетью.
Если на уровня ядра, то ее драйвер виртуальной консоли переключает, на основании key_map
Спасибо за внимательное чтение. Действительно опечатался, перепроверю и исправлю.
Это не вирус. Был вдохновлен. Ностальгия
Важно только понимать, что делаешь и делать осторожно, чтобы не повесить ядро, на котором работаешь, ну или запускать уже в отдельной виртуальной машине.
А разве при статическом связывании включается весь код библиотек в бинарный файл? Вроде как включается только код используемых функций
Для изолированного и переносимого окружения для разработки и тестирования сборок Linux.
Вы про то, что можно было просто настроить выдачу адреса tftp-сервера на роутере и малинку тоже к роутеру подключить?
Спасибо за комментарий. Загрузить через uboot можно , но из-за особенностей схемы загрузки, первый загрузчик все равно должен быть проприетарный от малинки, в котором нужно указать, что ядром является образ uboot. От initramfs я отказался, чтобы упростить подачу материала.
ping, nmap работают даже без рутования. Для ip, ifconfig - я думаю, просто нужно рутануть андроид
Скорее всего ядро, которое запускал автор, можно просто взять и запустить из UEFI Shell, или даже просто его может загрузить UEFI, если прописать в NVRAM, где лежит ядро и initramfs, так как большинство современных ядер для x86_64 собирается с CONFIG_EFI_STUB.
Статья дает лишь поверхностное представление о ядре Linux с явными упрощениями и неточностями. У новичка она убирает страх перед неизвестным, а у более опытных - неточности и упрощения сразу бросаются в глаза.
Я думаю, в статье желательно было бы указать целевую аудиторию и честно сказать, что в реальности не так все просто.
Р.S. Указывать на недостатки и ошибки всегда проще, чем их не допускать и исправлять.
Смотря что вы понимаете под обычной программой Linux и как запустить. Если консольные приложения и команды Linux, то можно воспользоваться эмулятором терминала Termux
Я своих одноплатников не разрабатывал и могу ошибаться.
Но насколько понимаю, сначала нужно определиться на каком SoC ты будешь делать.
Информацию, необходимую для разработки часто ты получишь только подписав NDA. Потом тебе нужны знания в схемотехнике, в проектировании и разводке печатных плат.
Далее тебе нужно разработать Device Tree для твоего одноплатника, скорее всего адаптировать для него загрузчик, часто это u-boot.
Весь процесс трудозатратный и не делается в одиночку.
Но, думаю, собрать что-то типа своего Raspberry Pi Pico можно и самому. Но это немного другой уровень и там уже Linux не будет.
Исходя из аннотации, в книге изложено, как собрать Linux для уже существующего одноплатника, используя, Yocto и Buildroot, добавить переферию и пропатчить Device Tree для поддержки этой переферии.
Согласен, что можно поступить как вы предлагаете. В продакшене никто не будет делать, как описано в статье, лучше использовать решение, которое разрабатывается годами несколькими разрабочиками, проверенное временем. Но я просто хотел показать, что именно делается, и получить ощущение контроля над тем, что происходит.
Я сделал скрипты и makefile для сборки моего линукса и у помянул про него в статье: https://github.com/artyomsoft/robinson-linux
Я посчитал, что рассказывать про оверлейные файловые системы и squashfs в статье, где создается минимальный Linux, усложнит восприятие. Но забыл про них упомянуть в выводах, исправлю
Мне самому больше нравится dd, но я считаю, что balenaEtcher удобней для новичка тем, что меньше вероятности угробить систему, да и в Windows я им пользуюсь. Но сам удивлен его размером)