Главная

GSoC 2010: Порт ядра Haiku на платформу x86_64

Nathan Mentley, студент EMU

Порт ядра Haiku на платформу x86_64

Студент: Натан Ментли

Я двадцатилетний студент Восточного Мичиганского Университета США в области компьютерных наук. Мое знакомство с BeOS R5 началось около 8 лет назад, и до сих пор я являюсь ее фанатом. Кроме того, мне было крайне интересна разработка ядра ОС и я написал простую любительскую операционку с нуля[1]. А теперь мне не терпится поработать в серьезном проекте, таком как Haiku.

Описание проекта:

Целью данного проекта является полный порт ядра Haiku на платформу x86_64 к концу лета.

На данный момент, Haiku «застряла» в мире 32–битных приложений. Это нормально, пока мы говорим о системе, совместимой с BeOS R5. Но это весьма ограничивает систему в будущем. Вполне резонной целью для Haiku должен стать завершенный порт на 64–bit x86–платформу ко времени релиза R2. И, если заниматься этой работой полный рабочий день в течении лета, то, вполне вероятно, порт будет завершен в разумные сроки, тщательно протестирован и готов к релизу R2.

Этапы проекта
1. Добавление задания сбоки Haiku x86_64 для компилляции GCC бинарных файлов x86_64 [2]:

  • Добавление вывода в формат ELF x86_64 для ld;
  • Обновление заголовочных файлов в headers/posix/arch/ для поддержки x86_64;

3. Обновление текущего загрузчика для поддержки ядра Haiku формата 64bit ELF:

  • Инициализация системы в «длинный» режим на втором этапе загрузчика;
  • Добавление платформы x86_64 в код загрузчика, на основе bios_ia32;
  • Добавление поддержки загрузки бинарных файлов ELF64 в загрузчике.

2. Портирование ядра на 64–битную платформу:

  • добавление кода в /src/system/kernel/arch/x86_64 по примеру существующего кода для x86;
  • чистка любого кода с учетом 32–битных целых / указателей или любых других 32/64–битных несовместимостей.

Почему я выбрал этот проект?

Как я упомянул ранее, у меня был опыт в разработке простой ОС под архитектуру x86 с нуля. Это подогрело мой интерес к низкоуровневому программированию и разработке ядра. В дополнение к моему разработческому интересу, мне очень интересен и проект Haiku. Много лет назад я был пользователем BeOS R5 и следил за Haiku еще когда она называлась OpenBeOS. Мне очень хотелось помочь в воссоздании более современной версии R5. Поэтому я выбрал работу над ее 64–битной реализацией. Главной идеей оригинальной BeOS было создание мультимединой системы. Я думаю, если мы хотим чтобы такой системой стала Haiku, нам придется использовать все возможности и преимущества современных компьютеров.

Даже если я не успею завершить порт к концу лета, работа в конечном счете будет доведена до конца.
____________________

Примечания
[1] Operating System from Scratch
[2] По словам автора, работа над этим этапом уже ведется.

Как он сам

Как он сам пишет в рассылке завершил несколько академических проектов на Java, C++, C, и x86 ASM и несколько персональных на PHP, Java, C, and C++. Так что есть надежда увидеть Гайку 64–битной.

«НоВ

«НоВэто весьма ограничивает систему вВбудущем.»(C)

В чём это ограничивает гаику? Кластеры на гаике будем делать.

А вот и глюки

А вот и глюки вэбпозитива на литсо)))

По–любому

По–любому объем работ такой, что за лето даже мега–кодер на цпп не управится. Вопрос кросс–платформенной совместимости — с большего это вопрос культуры программирования. Какие–то программы пересоберутся просто — какие–то с проблемами и большим количеством правок. В общем, практически ничем не отличается от обычного портирования. Обычный рабочий процесс — определенно не на один сезон.

Ну допустим

Ну допустим ядро он переведет, а что с приложениями делать?
Обычные приложения достаточно пересобрать. Возможно придётся править серверы и стандартные библиотеки(libbe и. т. п.) и скорее всего придётся править драйверы.

Странно вообще зачем этим до R1 занялись…

Это чтобы потом

Это чтобы потом не было мучительно больно. Хотя меня все еще более интересует ARM–порт Haiku, который вроде копают, но как–то совсем тихо. Столько всяких маленьких кавайных няшек на базе ARM появилось в последнее время, даже если нетбуки и таблетки не считать…

толком на x86

толком на x86 блин не грузится а они портируют уже….

Сколько багов

Сколько багов по проблеме «нетолковой загрузки» ты уже записал в Trac? Ни одного? Значит нету такой проблемы.

Куплю новый

Куплю новый винт тогда начну решать проблемы), места ноль…, денег даже на болванки нету)), с работой разбираюсь)

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

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

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

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