Главная

GSoC проект: Портирование Haiku на ARM архитектуру

Оригинал статьи можно найти здесь.

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

О том, что такое ARM, можно почитать на википедии.

Портирование Haiku на ARM архитектуру

Студент: Johannes Wischert
Наставник: Francois Revol

Краткая биография – Я обучаюсь компьютерной науке в Германии. Сейчас мне 25 лет. Я написал свою первую программу в 8 или 9 лет и с тех пор не останавливаюсь. После учебы я хочу участвовать где–нибудь в разработке встроенных систем, но сейчас мне нравится учиться, и я хочу доучиться до конца.

Описание проекта:
Чтобы система работала на ARM–процессоре, в первую очередь нам нужен работающий Haiku ARM–инструментарий для компиляции кода. Я уже сделал инструментарий для запуска и подготовил рабочий бинарник (тестировалось под qemu), так что эта часть уже более менее рабочая (смотри: http://dev.haiku–os.org/ticket/3633)
После завершения этого, следующим шагом будет загрузчик. Для загрузки ядра, я хочу использовать u–boot загрузчик. Использование u–boot загрузчика имеет преимущества, поскольку он уже предоставляет все важные данные и функции для загрузки ядра, такие как, загрузка serial–драйверов и драйверов для всех типов памяти, так же предоставляет простой платформо–независимый API. Это также облегчит портирование на другие архитектуры, которые используют u–boot.
Загрузчик будет запускаться, как отдельное приложение, в конце загрузки u–boot для использования его особенностей, а затем прямой доступ к железу для запуска ядра. Для того чтобы u–boot загружал ядро, я должен встроить BFS в u–boot, либо реализовать поддержку BFS в загрузчике. Если после встраивания BFS кода в загрузчик не придется менять код u–boot, то я выберу этот путь, т.к. изменение u–boot слишком рискованно.

Я должен признаться в том, что я не слишком много знаю о внутреннем устройстве ARM, так что я пока не могу дать больше информации о том, как я буду портировать MMU зависимые вещи и т.д.
Драйвера для Serial–порта и SD–карты особенно необходимы т.к. они зависимы непосредственно от процессора (по крайней мере в Beagleboard так), так же существует множество открытых драйверов (конечно же мы будем уделять пристальное внимание лицензиям).
Т.к. Beagleboard не имеет ISA или PCI шины, можно использовать похожий код порта m68k для установки встроенных устройств в PCI шину. Ещё лучше было бы написать некую системную шину для встроенных устройств, это помогло бы портировать большинство встроенных устройств, которые не имеют системной шины.
Следующим шагом может стать написание драйвера для встроенного USB–контроллера и Фреймбуфера, при условие, что портирование пойдет легко.

Почему вы решились взяться за этот проект?
Мне очень нравится концепция Haiku, и я хотел бы пускать её на встроенных железках, как это делает Linux на ARM`ах. Т.к. ARM–процессоры используются в самых различных устройствах, таких как, нетбуки, медиаплееры, смартфоны было бы неплохо портировать Haiku, как мультимедийную систему на эти устройства.
У меня уже есть опыть программирования встроенных систем, например, портировал ОС с MSP430 на SuperH архитектуру для университета (речь идет о нано–ядре ОС, которая называется SmartOS), так что я знаю обо всех проблемах, которые могу возникнуть.
Я в курсе, что процесс портирования — это чрезвычайно тяжелое занятие, но у меня есть время на то, чтобы сконцентрировать на данном проекте и это не первая моя работа над встроенными системами (но, возможно, самая большая).
Другие проекты, над которыми я работал – написание драйвера для r4ds flash–карты для использования под DSLinux на Nintendo DS и другие подобные вещи.
Я знаю, что этот проект не будет полезным для достижения первого альфа релиза Haiku, но я думаю, ARM–порт будет интересным дополнением Haiku и возможно привлечет больше разработчиков.

Список целей проекта:

  • Реализовать общий загрузчик, использующий u–boot API, насколько это возможно, чтобы облегчить портирование на другие платформы, которые используют u–boot.
  • Ядро, которое работает на ARM–процессоре и поддерживает все функции, которые применимы к x86 ядру.
  • Драйвер устройства, хотя бы для SD–карты и Serial–порта.
  • Получить рабочую систему на Beagleboard или аналогичном устройстве.

Отличная

Отличная новость! Этому проекту я от всей души желаю успеха. Давно назрела необходимость, ИМХО.

… с учётом

… с учётом того, что в ближайшее время ожидаются ноутбуки на ARM + Ubuntu (последнюю сейчас активно переносят на ARM), есть шанс получить возможность попользовать «гайку» на энергоэффективном портативном железе… но в такую драку парень ввязался… это не просто сложная работа, это мегасложная работа

Ну он же

Ну он же не финализированно безумен. Или нет? :)

… не назвал

… не назвал бы его безумцем… скорее романтик 8)

Не так страшен

Не так страшен черт как его малюют :)
Парень вроде как много и не обещает. Я так понял, он возмется за загрузчик, а уж компиляция исходников кросс–компилятором под ARM–платформу для человека, знакомого с ее особенностями — рутина. Все что не будет работать — выкинет ;)

У гайки

У гайки нет конкурентов по своей молодости 8) у её сил на много лет вперёд

Вопрос в том,

Вопрос в том, есть ли у неё эти много лет впереди. :–D

А куда

А куда им деться, годкам то? Никто ее как Be inc. не закроет начальственным росчерком пера, опенсурц вообще практически неубиваем на всех этих интернетах. Будут клепать потихоньку, ну а наш брат он терпеливый пуще черта. «Самое страшное, что может случиться» — настанет майковский 2012 год и всех накроет один большой былинный EPIC FAIL. Но там уже не до Гаек с Виндосами будет :–)

Epic Fail будет

Epic Fail будет в 2039–м. :)

Тем более. «у

Тем более. «у нас еще куча времени!» :)

Какие проблемы,

Какие проблемы, дружище? Подключайся к работе, допиливай, приближай к народу!

Говорят скоро

Говорят скоро дохнуть все будут от неизвестной эпидемии…)

Портировали,

Портировали, блин, CIH на аппаратную модель ДНК… :(

SwineChih? Чето

SwineChih? Чето не похоже на собрата — тот целый год скрытно позиции занимал для атаки, чтобы в один день завалить работой службы поддержки и компо–сервисы. А тут, гляди, только–только люди в белых халатах его в народ пустили — как сразу резонанс пошел — журнашлюшки цепи натянули, ошейники грызут да с поводков рвутся. Определенно Господь Бог куда как лучший программист и схемотехник чем люди. :–) Проблема обнаружилась на ранних этапах распространения вредоносного компонента в силу самой архитектуры платформы на которой он распространяется. Вот так надо компы стриоить и программы писать. ;–)

вы по русски

вы по русски можете?)

Напился —

Напился — так будь человеком! ;–) Тут тебе не лекция по введению в embedded терминологию. Кто в курсе — тот и так понял, а остальным следует благоговейно радоваться десять минут тому факту, что гайка имеет дело с такими мудрёными и безусловно архиважными вещами. Такова силява, друх!

У меня есть

У меня есть development board cirrus logic на базе ARM. Так что будем потестить.

СвинойЧИХ —

СвинойЧИХ — а мне пофиг както я как пил РедДевил так и буду пить, а от отрыжки моей даже мухи на подлете дохнут, америку накроет вместе с мелкософтом…

Длинноват

Длинноват запой — выходи давай, пора уже.

НАс русских

НАс русских ничто не повалет кроме воДки)

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

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Allowed HTML tags: <a> <em> <i> <img> <strong> <b> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Строки и параграфы переносятся автоматически.

Подробнее о форматировании

CAPTCHA
Введите перечисленные символы, чтобы мы убедились, что вы не робот. Не требуется для зарегистрированных пользователей.
S
a
N
j
q
9
Enter the code without spaces and pay attention to upper/lower case.