Можете ли вы помочь улучшить один из классов моего колледжа по программному обеспечению низкого уровня и периферийным интерфейсам? - PullRequest
0 голосов
/ 10 октября 2010

Я студент 2 курса португальского Инженерного факультета Университета Порту . В настоящее время я учусь на совместную степень (5 лет старшекурсник + магистры) по информатике и вычислительной технике (которая в основном программная инженерия: P).

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

Для класса Computer Labs ( ссылка на учебный план, английский ) мы должны использовать устаревшее программное обеспечение - Windows 98 / MS-DOS (из-за ограничений защищенного режима в XP +). Я думаю, что в 2010 году здесь нет места - даже если мы не примем во внимание тот факт, что мы должны учиться многоплатформенному программированию! Все мои лекторы позаботились о том, чтобы выбранное ими программное обеспечение / технологии были 1. обновлены, 2. совместимы, по крайней мере, с тремя большими ОС (Mac / Win / Lin), и теперь с этим.

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

Могу ли я узнать ваше мнение и некоторые предложения по альтернативам, которые мы можем обсудить с нашими лекторами? Пожалуйста, примите во внимание программу.

Спасибо, что уделили время!

PS: дополнительная информация о классе здесь (англ.)

Ответы [ 3 ]

8 голосов
/ 10 октября 2010

Я посмотрел на учебную программу, и я думаю, что эта установка соответствует целям класса. Проблема с более современными компьютерами для класса сопряжения заключается в том, что операционная система отделена от аппаратного обеспечения. HAL (уровень аппаратной абстракции), Direct-X (графическая абстракция) и современные наборы инструментов для разработки драйверов устройств означают, что взаимодействие с современной машиной Windows (по моему опыту) является скорее задачей понимания требований безопасности и инфраструктуры, чем его изучает, как сделать код взаимодействующим с электронными схемами. Это курс, который устанавливает основу для того, что вы узнаете, когда получите работу. Это не должен быть курс, который научит вас тому, что вы будете использовать на работе - через десять лет никто не будет беспокоиться, если у вас будет школьный курс, взаимодействующий с Windows Server 2010. Но добавить интерфейс управления роботом в новейшую ячейку с интерфейсом мозга Телефон все еще потребует понимания того, как код взаимодействует со схемой.

2 голосов
/ 10 октября 2010

ДОС все еще жив и здоров, активно используется в банкоматах (банкоматах), кассовых аппаратах, газовых насосах и тому подобном. В основном это одна из наиболее широко используемых встроенных операционных систем. Инструменты и (использованные) книги, веб-информация и т. Д. По-прежнему доступны, недороги и т. Д. Баланс всего необходимого количества системных вызовов со свободой доступа к аппаратному обеспечению без вмешательства ОС. Ядра на базе Windows 3.x (Windows 3.x до Windows 98 или, может быть, я) также легко позволяют прямой доступ с минимальным вмешательством операционной системы. Linux, ядра на основе Windows NT (Windows NT, 2000, XP и т. Д.) Не имеют этих функций, слишком высокий уровень в своих драйверах, слишком много операционной системы в пути. Соединение между dos / win3x и существующими окнами все еще существует, и тогда ученик может понять и использовать более продвинутую / сложную современную операционную систему.

Поощрение DOS, AmigaOS, ассемблера pdp-11, ассемблера 6502 и тому подобного в учебной программе - хорошая вещь для будущих поколений, а не плохая вещь. Возможно, если хотите, называйте это историей компьютеров, но важно получить всестороннее образование в области разработки программного обеспечения. Студенты лучше поймут язык C, например, когда увидят платформу, на которой он был разработан (pdp-11 / lsi-11). pdp11 - это, вероятно, один из лучших первых языков ассемблера для обучения (или msp430), а x86 - последний, который вы когда-либо будете учить. (хорошо, кратко касаясь отображенной памяти ввода-вывода по сравнению с отображенной памятью, важно, также важны также сегментированные архитектуры и то, как они использовались вместо mmus, возможно, наряду с некоторыми гарвардскими и другими ныне менее популярными архитектурами).

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

Если вы хотите заменить этот класс чем-то другим, тогда работает микроконтроллер не операционной системы (не-rtos). MSP430 или ARM являются хорошими платформами для обучения C-прерываниям, имеют хорошие инструменты, являются хорошими наборами команд для обучения некоторой требуемой сборке. ARM, являющийся наиболее широко используемым процессором на сегодняшний день, означает, что учащийся сразу же сможет продавать свои устройства, использующие эту платформу (mp3-плееры, мобильные телефоны, почти все, что можно использовать в карманах). AVR и ARDUINO неплохи, охватывают одну и ту же букву C и прерывания, но не являются отличным набором инструкций для обучения.

2 голосов
/ 10 октября 2010

Такое низкоуровневое программирование не может быть совместимым с несколькими платформами. По определению, это зависит от платформы.

С точки зрения "работы на дому", ситуация ухудшается: это аппаратное обеспечение специфическое.

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

С точки зрения учебной программы, которую вы связали, мы рассмотрели почти точно такой же материал, с той лишь разницей, что мы использовали язык ассемблера CPU12 / Motorola, а не IA32 и другой набор инструментов. Вы можете предложить использовать более простой процессор (такой как HC11 или HCS12), но главное преимущество заключается в том, что люди ожидают , что он будет простым, и понимают, что они не могут использовать его дома: ваша ситуация не ' изменить, но легче принять.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...