Здравствуйте, cures, Вы писали:
C>Всё уже украдено до нас: малинка для чего-то похожего и придумана, насчёт Ц не уверен.
скорее arduino. но там такая простая схемотехника, что самому можно собрать прямо на макетике меньше чем из десятка деталей. малинка это полноценный компьютер с полноценной осью (по умолчанию там клон дебиан, хотя можно выбрать и другую ось).
дебиан грузится ужасно долго. а вот arduino сразу же готов к работе. достаточно запрограммировать и все. программа будет стартовать автоматом при подаче питалова. у малинки есть GPIO, но в линух оно доступно через ЖПУ и нужно объяснять как адресное пространство портов памиться на виртуальное адресное пространство и как его юзать. ИМХО слишком сложно для начала. к тому же самому малину не собрать. в отличии от микроконтроллеров.
C> Проблемка в том, что не все хотят учиться экономить байты и микросекунды,
C> особенно в свете того, что для работы подавляющего большинства это нафиг не нужно.
для учебных программ памяти хватит и без экономии. да и не в экономии дело, а в простоте. у микроконтроллеров нет оси и потому нет сложной и непонятной "прокладки". что такое ось и зачем она нужна лучше всего объяснять когда вы попробовали программировать без оси. даже при моргании светодиодами уже возникает задача реализовать многозадачность самому (если хочется мигать асинхронно) и задача как загрузить туда больше одной программы. тогда при переходе на ось, которая сама разделяет общие ресурсы между программами наступает блаженство
C> Опять же, если мы тратим время и силы на подробное изучение низкоуровневых особенностей,
C> у нас не остаётся оных на изучение алгоритмов и парадигм. Теорию компиляторов, например
какие низкоуровневые особенности микроконтроллеров? там кошерный си. интерфес портов ввода/вывода даже проще чем printf("hello, world!\n");
C> С другой стороны, засадка в том, что считанные килобайты и килогерцы не дают изучать современные алгоритмы,
килобайты оперативы. размер кода там достаточно большой.
C> в которых как раз очень важна производительность,
C> но которым требуются много памяти и хорошая производительность,
я ж не предлагаю использовать _только_ микроконтроллеры. с них начать, а не ими закончить. начать с простого. от простого к сложному.
C> Как пример — распределённые вычисления, в том числе линейка.
на малине построено множество учебных кластеров. потому что она дешево стоит. например такой (ниже). да и сам я сейчас работаю над симулятором инетернета для демонстрации хакерских атак, включая DDoS. раньше использовал VMWare, но виртуальная сеть все-таки очень ограничена по возможностям, равно как и ограничено кол-во инстансов виртуальных машин на одной физической.
https://youtu.be/i_r3z1jYHAc
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.