Практикум по ассемблеру в среде Линукс

Тема в разделе "Группа пользователей Линукс МИФИ - MEPhI Linux Use", создана пользователем Станислав Кутепов, 17 мар 2011.

  1. Станислав Кутепов

    Станислав Кутепов Активный корумчанин Преподаватель МИФИ

    На прошлой неделе прошло предварительное обсуждение переноса практикума по курсу ассемблер в среду Линукс.
    Часть практикума, посвященную изучению прерываний DOS и BIOS, предполагается выполнять с помощью dosbox. Правда надо точно выяснить, все ли прерывания полностью реализованы в этой виртуальной машине. На вики пишут, что там проблемы с реализацией защищенного режима.
    Для программирования под Линукс планируется использовать gasm. С графическим отладчиком пока не определились.

    Так же, для полноты картины не плохо было бы добавить в курс лабораторные по ассемблеру под Windows. То есть надо обеспечить доступ из линксовой среды в виндовс, с разделением между ними содержимого домашнего каталога пользователя. (Тут конечно никаких проблем вообще нет, винда вероятно будет на виртуалке).
  2. RPG

    RPG Активный корумчанин

    Эх, если бы раньше это произошлоB) Но боюсь изменения нашей кафедры не коснутся.

    Я для изучения использовал fasm в винде — ассемблер со средой разработки, достаточно удобен и прост в освоении. Не составило труда на нём сделать анимацию множества жюлиа:)

    Про гасм не слышал, что это за зверь и где его искать? Не гуглицца<_<
  3. Станислав Кутепов

    Станислав Кутепов Активный корумчанин Преподаватель МИФИ

    Опечатался, имеется ввиду GNU Assembler (GAS), хотя выбор еще не сделан, и NASM тоже рассматривается как вариант. Про fasm под линукс не слышал. Надо глянуть.
  4. Станислав Кутепов

    Станислав Кутепов Активный корумчанин Преподаватель МИФИ

    Сейчас еще глянул репозитории, есть зверь под именем Yasm
    Так, что надо думать и пробовать. <_<
  5. lopatoid

    lopatoid Осваивается на коруме

    Студенты не успеют изучить ассемблер, понять защищённый режим, переключиться на Windows, затем на Linux, да ещё всё это с разными отладчиками и с разными синтаксисами ассемблера.
  6. Станислав Кутепов

    Станислав Кутепов Активный корумчанин Преподаватель МИФИ

    Логично.
    Значит надо использовать один синтаксис во всех системах.
    С отладчиками конечно проблема.
    С защищенным режимом вообще беда. Когда я учился у нас был отдельный курс "программирование ввода-вывода" (кажется так) Где мы по мимо всего прочего и изучали защищенный режим. А сейчас все это объединяют в один семестр.

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

    Станислав Кутепов Активный корумчанин Преподаватель МИФИ

    Конечно инициатива только внутри кафедральная.
    За рамки кафедры врядли выйдет.
    Для тех кто будет делать разные доклады: Конечно надо помнить, что 12-я кафедра это дааалеко не весь МИФИ, это ооочень небольшая его часть. А МИФИ это еще не весь НИЯУ!
  8. RPG

    RPG Активный корумчанин

    Вот это больше похоже на правду, в проектах вроде mplayer или x264 именно он. Но у фасма много примеров и он очень хорошо документирован, без него я бы так быстро не освоил ассемблер. Образовательную ценность пакета тоже лучше учитывать.

    Никто не мешает писать на x86 синтаксисе под вин и линукс, как раз fasm это позовляет, отличие линукса от винды в том, что нужно создать секцию ELF и системные вызовы другие. В остальном раницы никакой, если писать для консоли, а что касается графического режима, то я к сожалению не в курсе, в досе есть «удобный» режим 320Ч200 пикселей где можно напрямую рулить видеопамятью в пределах одного машинного слова, в линуксе этого может не быть.

    Ну на прошлом ЛУГе и физика проскакивала и микроэлектроника. А то что про ЛУГ знают лишь выпускники 12 кафедры это другой уже вопрос.
  9. Kabancho

    Kabancho Корумчанин Преподаватель МИФИ

    оно-то, конечно, хорошо.

    правда, есть несколько вопросов:

    1. Зачем ассемблер в Линукс?

    2. Цель курса "Программирование на ассемблере" - не изучить команды языка, прочитать Финогенова и Рудакова и вызубрить таблицу прерываний Ральфа Брауна. Цель - изучить архитектуру процессоров на начальном уровне, чтобы затем углубиться в ее изучение на последующих курсах. Вы это учтете? Если просто писать лабы на ассемблере под Линукс - смысла нет никакого.

    3. После ассемблера следует курс "Программирование устройств ввода-вывода" и "Микроконтроллеры". Вы их тоже на Линукс переведете?

    Ну и еще немного дегтя... Со статистикой на дневном отделении не знаком, а вот на вечернем студенты еле-еле делают тот минимум, который от них требуется. Не уверен, что после перевода всего под Линукс статистика улучшится
  10. Станислав Кутепов

    Станислав Кутепов Активный корумчанин Преподаватель МИФИ

    Тут есть классный аргумент: Национальная Суперкомпьютерная Технологическая Платформа ориентированна на Линукс или другие проекты с открытым кодом.
    Линукс - основная платформа для Эльбруса, а МЦСТ - наш большой стратегический партнёр.
    Лабы по курсу СПО (и в будущем по курсу Компиляторы) проходят в лаборатории UNIX
    Наверно должно быть все равно под какой ОС писать. Какая разница через какой прерывание взаимодействовать с ОС, через 21 или 80-е. Конечно главное понять принципы.
    Плюс они будут разбирать формат исполняемого файла, и делать примитивный дизассемблер.
    В любом случае, я к содержанию курса и лаб по ассемблеру отношения не имею.

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

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

    По поводу линукса, надо учитывать, что с сентября у нас будет два линуксовых класса, и надо посмотреть (и протестировать) какие практикумы туда можно безболезненно перенести.
    И уж точно могу сказать, никто никому руки выкручивать и насильно переводить на Линукс не будет.
  11. Kabancho

    Kabancho Корумчанин Преподаватель МИФИ

    ну это еще бабушка надвое сказала. Учитывая, что наш куратор забыл про МИФИ при составлении заявок и только чудо (в моем лице, приставшего к Цыбину, а потом к Петровскому) напомнило ему об этом....

    а копыта? :crazy:

    Ну все курсы в 2 класса по любому не поместятся. Да и зачеты всем в 2-х классах сложно будет сдавать

    Кстати, а как насчет Android'a? Вот тут бы я поддержал, учитывая, что около 30% УИР пишутся под эту ОС
  12. ArrK

    ArrK Активный корумчанин Преподаватель МИФИ

    Ну это как раз не принципиально, хотя nix'ы тут несколько удобней, т.к. не надо искать порты инструментов, которые там есть изначально, или ставить cygwin. Ну и некий плюс - это достаточно удобная инфраструктура нашей лаборатории, хотя стоило это тебе усилий не мало B)
    Абсолютно не принципиально, согласен.
    Это было и у нехалявных преподов в Win/DOS лабораториях.
    Хм, а как же идеи перенести на Линукс и 210А? А в будущем и все остальные. Тут некоторые паникуют <_< А вообще-то и одна UNIX-ая лаборатория сейчас недозагружена, да и значительное большинство к 3-4 курсу ходит на лабы со своими ноутами. Тут лаборатория критична только, если предоставляется доступ к некоторому уникальному ПО или аппаратуре, в остальном народ делает программистские лабы на чем им ближе.
    Ну да, клиент какой-то квелый пошел :)
  13. bircoph

    bircoph Осваивается на коруме

    Разница есть, AT&T синтаксис защищает от ряда коллизий и является более самосогласованным, но он менее распостранён.

    Ну не только 12-я, я вот с 7-й.
  14. lityushkin

    lityushkin Осваивается на коруме


    Глупый вопрос - существует ли способ компиляции (ассемблирования) из Intel ассемблера в исполняемые фалы формата ELF?
  15. bircoph

    bircoph Осваивается на коруме

    Есть, тот же yasm.

Поделиться этой страницей