Консультация № 191882
25.11.2017, 02:48
0.00 руб.
0 5 1
Уважаемые Игорь Витальевич, Константин Николаевич и эксперты,
здравствуйте,

1) читаю и знакомлюсь постепенно с книгой С.В.Зубкова - где для ДОСа даны описания многих команд, что является полезным для новичков,

2) в Интернете (Wikipedia) прочитал об операционных системах (ОС) Menuet и Kolibry, написанных чисто на Ассемблере FASM. меня заинтересовала данная информация.

3) у меня вопросы -
а) можно ли используя МASM или TASM попытаться разработать пусть даже примитивную-простую ОС ? или для этой цели необходимо установить Linux на компьютере и уже в Линуксе использовать ассемблер GAS для разработки-написания ОС для 16/32/64-битного микропроцессора ?

б) можно ли используя МASM или TASM попытаться разработать драйверы для либо внутренних карт (видеокарты, звуковые карты), либо для внешних-сопряженных электронных устройств-приборов (либо это принтеры и сканеры, либо какие-то другие электронные приборы, подсоединенные к компьютеру через АЦП-ЦАП (например для научно-производственных целей ядерных станций или космических аппаратов или для бортовых приборов самолетов, кораблей и военных ракет)) ?

в) меня также интересует разработка ОС жесткого реального времени - как разрабатываются (детальное описание) ОСРВ (RTOS), какая начинка ОСРВ, что такое ядро ОС, и вообще как разрабатываются различные ОС и ОСРВ.
в Интернете я нашел книгу А.Таненбаума, Разработка операционных систем - где он всего-лишь дает идеи (а не детали) разработки ОС Minix, используя Си-программирование. меня же интересует разработка ОС и ОСРВ на Ассемблере.

г) Константин Николаевич и Игорь Витальевич, вообще говоря, в дальнейшем у меня есть интерес и желание самому, с помощью Ваших консультаций и с помощью Интернета, разработать от принципиальной радио-схемы какого-либо военного прибора (для космических кораблей, или бортовых электронных приборов военной авиации) и до ОСРВ (включая) для внедрения (запрограммирования) в данные электронные приборы.
в настоящее время я смутно (практически ничего ) представляю военную электронику (приборы) и разработку для них ОСРВ (жестких и мягких).

поэтому мне и хотелось бы с Вами посоветоваться - как и с чего начать такие проекты, которые (детальное описание) неизвестны для меня пока в настоящее время.

буду Вам благодарен если сможете проконсультировать меня по данным вопросам.

Спасибо.

Обсуждение

давно
Посетитель
7438
7205
25.11.2017, 13:22
общий
это ответ
Здравствуйте, ialmiev!
Давайте по порядку...
1) Книга полезная - спору нет.
2) Да, были такие попытки написать ОС на Ассемблере.
3а) Попытаться, конечно, можно. Причем совершенно без разницы, под какой ОС писать. Все равно, эта новая ОС должна запускаться после перегрузки.
3б) Вот тут начинается самое интересное. Все можно, но при этом надо помнить, что все устройства, для которых Вы хотите написать драйвер, уже имеют некий программный интерфейс, который надо знать, и которого надо придерживаться. Задача узнать, как общаться с устройством, далеко неочевидна. Кроме того, устройств и их разновидностей накопилось такое огромное количество, что всех их охватить - практически нереальная задача.
Можно, конечно, поставить задачу переписать драйвера только под конкретные устройства. Это значительно сужает объем работ, но даже эта задача, поверьте, требует значительно больших знаний, чем те, которые Вы сможете подчерпнуть у того же Зубкова. Как минимум, надо писать в защищенном режиме процессора, малейшая ошибка приведет у сбросу процессора. Не говоря уже об знании интерфейса необходимых устройств. Надо будет перерыть массу datasheet-ов, в основном на английском языке (при условии, что Вы их еще найдете).
3в) ОСРВ - эта такая ОС, которая работает четко по реальному времени, с четкой привязкой к временным интервалам. Что такое ядро ОС? Хороший вопросВы даже не представляете себе, насколько сложна внутренняя организация ОС, сколько там существует взаимодействующих механизмов! В ядро входит вся эта совокупность всех этих механизмов, обеспечивающих жизнедеятельность системы. Могу назвать часть их, крупными мазками: менеджмент памяти, ввод-вывод, файловая система, взаимодействие с драйверами, с пользовательскими программами, защита.
На каком языке вести разработку ОС, на Си или на другом - как раз не важно. Важны именно идеи, что и как реализовать... Уж поверьте мне, там есть есть над чем поломать голову. Поэтому важны именно идеи. Если Вы не видите этого, то значит Вам рано даже думать об этом
И вообще, если Вы не знаете Си, настоятельно рекомендую его выучить... Если и найдете какой-то код, то, скорее всего, на Си. Перевести с Си на Асм - пара пустяков
3г) Я хотел бы, чтобы Вы определились, над чем Вы хотите работать: либо над созданием ОСРВ на компьютере, либо над некими "электронными приборами", которые должны что-то там делать. Если первое, то это, прямо скажу, неподъемное и неблагодарное дело. Те же примеры, которые Вы привели, так и умерли, т.к. не имеют НИКАКОГО реального применения и развития. Если второе, т.е. хотите управлять неким устройством, то там управляющая программа apriori должна быть реального времени, иначе не справится с поставленной задачей. Но тогда настоятельно рекомендую отказаться от х86 и посмотреть на что-то другое, типа AVR или ARM

Кстати, никто не запрещает потом связать разработанные устройства с компьютером по любому из доступных и реализованных в устройстве интерфейсов (COM, USB, LAN, WiFi,...), чтобы настраивать, показывать всю необходимую информацию на экране компьютера. Я, собственно, так и делаю
5
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
давно
Посетитель
401339
51
26.11.2017, 03:35
общий
Адресаты:
Уважаемый Игорь Витальевич,
здравствуйте,

спасибо за Ваше сообщение.

мне удалось посмотреть некоторые интересные сайты по микроконтроллерам - это то, что меня интересует в настоящее время, так как микроконтроллеры имеют практическое применение в реальной электронике (промышленность, транспорт, военные приборы, домашние приборы и т.д.), то есть, то, что "что-то делает" .

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

в настоящее время, пока, постараюсь "порыться" в Интернете, чтобы иметь какое-либо базовое представление о микроконтроллерах. полагаю, что в дальнейшем у меня будут возникать вопросы по программированию микроконтроллеров на Си и Ассемблерах - поэтому Ваши консультации были бы очень важны для меня, так как у Вас имеется значительный-большой опыт программирования микроконтроллеров и на Си и на Ассемблере.

Спасибо.
давно
Посетитель
7438
7205
27.11.2017, 11:37
общий
Адресаты:
Здравствуйте! Вот теперь Вы думаете в правильном направлении!
Контроллеры одного направления (те же AVR или ARM) имеют одинаковую структуру, одинаковую систему команд.
Но, естественно, каждый из представителей отличается от других, в основном, наличием портов, интерфейсов и т.п.
Поэтому на каждый контроллер надо иметь свой datasheet, чтобы знать возможности конкретного контроллера.
Все эти datasheet-ы легко находятся в Интернете.
Чтобы выбрать на чем делать и конкретный контроллер, надо определиться с тем, что проектируемое устройство должно делать.
Можете написать здесь, попробую помочь подобрать контроллер.
Кроме того, на выбор направления контроллера частенько оказывает влияние наличие (цена) программатора, наличие плат, возможность их разработки, изготовления и т.п. вопросы..
Контроллеры надо, что называется, "шить" специальными программаторами.
И да, разумеется, спрашивайте, поможем, чем сможем
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
давно
Посетитель
401339
51
30.11.2017, 00:35
общий
30.11.2017, 00:37
Адресаты:
Уважаемый Игорь Витальевич,
добрый вечер,

спасибо за Ваше сообщение-консультацию.

я сделал небольшое исследование в интернете по поводу микроконтроллеров - это очень интересное и нужное занятие с точки зрения электронных-технических приложений.
однако, для того, чтобы достичь каких-либо успехов по микроконтроллерам - необходимо работать руками, то есть самому (!!!!!) пытаться разрабатывать радио-схемы, понимать физическое строение и функционирование не только аналоговых элементов-деталей, но и цифровых радио-деталей (микросхем, микроконтроллеров, озу, пзу и т.д.) на микроэлектронном уровне, также необходимо самому (!!!!!) подбирать микросхемы и микроконтроллеры и ... далее делать плато и паять-паять-паять. при этом будут технологические ошибки - некоторые (на первом этапе - многие) радио-детали будут сгорать из-за отсутствия опыта работы с ними и с радио-схемами - это все естественно - каждый начинающий радио-мастер должен делать ошибки, иначе он не научиться искусству электроники - наверное это справедливо для любой другой области, где работают люди (мы же с Вами не роботы ). параллельно (или чуть позже) с электроникой микроконтроллерных радио-схем необходимо проводить опыты с программированием самих микроконтроллеров - а для этого необходимо только самому (!!!!!) разрабатывать программатор(ы), а также попытаться самому (!!!!!) разработать АЦП-ЦАП - сначала с использованием аналоговых радиоэлектронных деталей, а потом и цифровых радиодеталей. опять же - здесь необходимо самому (!!!!!) разрабатывать принципиальные радио-схемы и самому (!!!!!) же разводить и паять реальный радиоприбор - сначала, например, для USB, потом, для COM, для LPT и для других портов, и т.д. и конечно же надо учиться программировать радио-прибор, где используе(ю)тся микроконтроллер(ы), сначала на Си, и потом на Ассемблере, свойственном для данного (!!!!!) микроконтроллера.

Игорь Витальевич, чтобы стать профессиональным радио-инженером (электронщик и программист в одном лице) в настоящее (!!!!!) время, нужны большие финансовые-денежные затраты - книги, радиодетали, электронные приборы, лицензионные IDE и софт для полноценного программирования, которые будут ломаться-перегорать и нужно будет покупать новые детали-приборы - это все естественно. каждый человек, учась, делает ошибки.

Игорь Витальевич, такое многообразие-комплексность проблемы, чтобы разбираться в радио-инженерии (электроника и программирование "железа" на Ассемблере) - не пугает меня, а, наоборот, заинтересовывает - наверное также как и Вы и как Константин Николаевич, я имел отношение к основам радиоэлектроники обучаясь в одном из экс-Советских вузов.

Игорь Витальевич, здесь я должен сказать, что я не осилю , такое комплексное самообразование из-за нехватки (отсутствия) финансовых-денежных средств у меня в современной России.

Игорь Витальевич, я должен поблагодарить Вас и Константина Николаевича за Вашу помощь-консультации, оказанные мне в течение моего освоения основ Ассемблера для x86.
конечно-конечно, мне хотелось бы продолжить профессиональное общение с Вами и с Константином Николаевичем via Internet (Ассемблеры, Си, микроконтроллеры ...). однако, надеюсь, что Вы поняли, что я не из семьи американского магната Рокфеллера, и, поэтому, не обладаю денежными запасами для полноценного продолжения самообразования по радио-инженерии (электроника и программирование на специфичных Ассемблерах).

Спасибо, еще раз,
и удачи Вам и Константину Николаевичу.
давно
Старший Модератор
31795
6196
30.11.2017, 17:48
общий
Адресаты:
1)Список книг, которые я Вам давал(листинг папки), есть в интернете(у меня есть папка "Assembler" и туда я закачивал все что встречал по ассемблеру в сети). Да Вы не Рокфеллер, но интернет оплатить можете. Т.о. можете скачать и прочитать.

2)Есть программы конструкторы. Бесплатные просто моделируют работу схемы которую Вы создали, платные ещё и генерируют саму плату, правда без учета емкости параллельных соединений(может влиять на работу), но это мелочь.

3)Вас никто не принуждает осилить все и сразу,
а)занимайтесь самообразованием;
б)становитесь экспертом портала;
в)идеи для реализации Ваших целей будут давать студенты, своими вопросами;
г)наберетесь опыта;
д)А дальше будем посмотреть.
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

Форма ответа