Операционная система для умного дома на C++ c полного нуля. Как?

Короче говоря Я и еще 5 ребят собрались и решили сделать КОММЕРЧЕСКУЮ систему умный дом.
Брать что-то за основу для подобного проекта - не солидно, и поэтому было решено делать свою ОС. Но тут же столкнулись с вопросами:
- Как?
- Что учить?
- В каком направлении работать? (Дизайн --- Функциональность)

Разработка будет вестись на ARM процессорах (Raspberry PI или Banana PI или CubieBoard точно пока не определились)

Прошу знающих людей подсказать, какую литературу можно почитать по написанию ОС.
Прошу заметить, что разработка будет вестись с полного нуля.
Файловая система, ядро и т.п. будем делать сами. К трудностям готовы.
Если нужны уточнения - напишу непосредственно по требованию я на подобном ресурсе в 1-й раз.
  • Вопрос задан
  • 2987 просмотров
Пригласить эксперта
Ответы на вопрос 8
GavriKos
@GavriKos
А почему арм и малина? Это ж несолидно. Делайте свои микроконтроллеры! Добывайте кремний, разрабатывайте схему. А там и свой ASM и ось подтянутся.
Вот ваш вопрос примерно из той же категории, если что.
Ответ написан
Комментировать
@LiguidCool
По моему задавая подобный вопрос, даже не стоит начинать ... Просто "умный дом" это зоопарк из технологий, с кучей нюансов.

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

А с таким подходом стоит подумать о смене профессии. Серьезно.

было решено делать свою ОС

Еще один бред ... Хотя ноги оттуда же. ОС вам не нужна, пишите софт для готовой. В вашем случае под Linux.

0) Определите бюджет конечного продукта (цена на выходе). Вы сюда будете часто возвращаться и тут ждет не мало не приятных сюрпризов.
1) Как минимум определитесь с железом. Малина и аналоги конечно круто, но что будет исполнительным оборудованием? Выбор очень большой и не очевидный. А это как раз основной вопрос.
2)
- Как?

Найдите ответ на этот вопрос. И тут вам кто-то врядли поможет, потому что не ясно что вы хотите получить на выходе.
3)
- Что учить?

Ну раз собрались писать на сях, то их и учите. Много учите. МНОГО! Но я бы выбрал язык попроще типа PHP, Node JS, Go. В этом случае МНОГО будет несколько меньше.
4) Раз вас много, постарайтесь разбиться по разным направлениям.
5)
- В каком направлении работать? (Дизайн --- Функциональность)

Во всех, но по классике сначала пилят функционал, а потом уже натягивают картинку.
Ответ написан
CityCat4
@CityCat4
//COPY01 EXEC PGM=IEBGENER

КОММЕРЧЕСКУЮ систему умный дом.
Брать что-то за основу для подобного проекта - не солидно, и поэтому было решено делать свою ОС


Дальше можно не читать... Но если в порядке бреда предположить, что это не толстый-толстый троллинг, то начинать надо с бизнес-плана. А вовсе не с выбора железа, софта, ЯП и т.д. Вы же хи-хи, КОММЕРЧЕСКУЮ систему собираетесь пилить :ROFL: Поэтому, прежде чем делать очередной недо-линух, сядьте и подумайте:
- кто потребитель
- каковы затраты
- каковы предполагаемые продажи
- какая схема лицензирования
...
и если после всех вопросов еще не barf от всей этой скуууууучной совсем не технической нудной ерунды - дерзайте. Поди еще и протоколы взаимодействия будете сами разрабатывать? А чо? Существующие протоколы - несолидно...

:ROFL:
Ответ написан
Комментировать
chupasaurus
@chupasaurus
Сею рефлекторное, злое, временное
  1. Берете язык программирования (хоть Javascript, компилированный V8), пишете, PROFIT.
  2. Классика жанра же: Танненбаум, Современные операционные системы.
  3. Работать в направлении MVP, дальше уже накручиваете свистелки. В случае ОС, это: загружается, не падает само по себе, приемлемая работа, поддерживает весь необходимый функционал (сеть, ФС, драйверы для датчиков и пр.).


Картинку с троллейбусом пока не буду прикладывать, но вопрос "Зачем, когда есть Linux kernel который под GPL2?" всё равно задам.
Ответ написан
devalone
@devalone
̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
spoiler
Вы что фейки регаете или какое-то весеннее обострение? Такой же вопрос был N дней назад

Тут пришла ванга и сказала, что у вас ничего не получится. А по сабжу, бросьте эту глупую идею. Чем вас не устраивает зоопарк готовых решений на базе linux и unix? Сделайте очередной дистрибутив линукса, только напичканный софтом для взаимодействия с микроконтроллерами, датчиками, камерами и всем умным в вашем доме. Т.е. ядро умного дома, а потом уже расширяйте его модульно. Можете сделать распределённую отказоустойчивую систему, в общем простор для фантазии большой и вовсе не нужно писать свою ОС.
Ответ написан
edinorog
@edinorog
Троллей не кормить!
3e67d2d27e634f5faf8fa95f798d3b7e.jpg
Ответ написан
Комментировать
alexsandr0000
@alexsandr0000
Программист C#/C++/C
Для любой идеи нужна прежде всего концепция, а также понимание, что вы ожидаете получить в конце. Могу сразу сказать, что вам потребуется понять, кто из вас каким направлением будет заниматься.
Думаю Вам стоит посмотреть, как разрабатывается простейшее устройство (система), обычно разработка включает в себя:
- создание ТЗ
- создание эскизного проекта
- разработка Э1 (создание структурной схемы устройства (системы))
- разработка Э2 (создание функциональной схемы устройства (системы))
- разработка принципиальной схемы и программ
- предварительные испытания (используется прототип устройства (системы))
- заключительные

Для разработки нужно будет изучить следующие основные направления:
- Работа с встраиваемыми решениями (МК, периферия, оборудование и т.п.)
а. разработка Э1, Э2, подбор компонентов и создание Э3, выбор протоколов взаимодействия
б. создание прототипа на отладочных платах
в. разработка прошивки для МК
г. тестирование
- Работа с сервером и клиентом
а. разработка структурной и функциональных схем
б. разработка сервера и клиента (Использование готового решения / использование готового решения, но с изменениями учитывающих специфику вашего проекта / создание собственного решения)
в. тестирование взаимодействия сервера и клиента
- Сетевое взаимодействие
- Интеграция встраиваемых решений в информационные системы (здесь в основном выбор протокола)

Еще важным пунктом является конечный интерфейс и стабильность работы системы. Конечный клиент должен получить красивый и простой интерфейс управления.
Ответ написан
Комментировать
DanielDemidko
@DanielDemidko
Программист
Я так и вижу вашу компанию чётких пацанов. Верю в ваш успех, удачи, сейчас во всем мире как раз наблюдается нехватка операционных систем на коммерческой основе. Посоветую начать с разработки своих микроконтроллеров и ассемблера для них, а оттуда плавно двигаться к написанию своей ОС. Более подробно вы можете проконсультироваться у известного разработчика операционных систем с нуля Дениса Попова.
spoiler
P. S.
Сначала вам нужно добыть руду в шахте для производства своего железа под свою ос.
Могу помочь с выбором оптимальной кирки, посоветовать лопату.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы