Я не думаю, что Вы нашли бы общий стандартный ответ на этот вопрос. Истина, только Вы знаете ответ на нее.
Некоторые случайные точки для учета:
Избегайте экзотических дистрибутивов
Существуют твердые дистрибутивы вокруг (debian
, centos
, opensuse
, ubuntu
, fedora
...) к выбрал из. Никакая потребность рассмотреть получение Вашего собственного LFS или чего-то как Gobolinux. Не только основные дистрибутивы больше протестированного поля, но и они также легче получить справку для.
Что находится на Вашем сервере?
Может быть легче получить тот же дистрибутив (или debian-человечность близкого родственника, centos-мягкая-фетровая-шляпа...) к Вашим рабочим станциям. Можно ли вообразить несовместимость между ENV разработчика и рабочим сервером?
Спросите своих разработчиков
Никакая потребность наложить дистрибутив, который "лучше", если ни один из Ваших программистов не знает, как использовать его. Попросите у них мнения, это было бы намного более точно.
Рассмотрите заплаченную поддержку
Иногда, даже у самого квалифицированного гуру Linux нет времени для поддержки десятков рабочих станций. Канонический, Red Hat и столь многие другие, предложение заплатило поддержку. Даже при том, что это кажется дорогим, делегирование поддержки третьей стороне позволит Вам фокусироваться на своем основном бизнесе, что Вы прилагаете все усилия.
Постарайтесь не прокручивать выпуски
Это - маленькое изменение первой точки. Нет ничего худшего, чем поддержка продукта версии меньше. Дуга Linux, Sabayon, хинду является большими дистрибутивами, но так как они испытывают недостаток в надлежащем управлении версиями, очень легко потеряться. Помните, если Вы задаете этот вопрос здесь, Вы, вероятно, надеетесь объединять рабочую среду своих разработчиков. Версии - необходимость.
Читайте на специфических особенностях
Ваш бизнес, вероятно, полагается на некоторые определенные пакеты (как PHP, MySQL, мерзавец, memcached...). Просмотрите документацию существующего дистрибутива, ища общие/известные проблемы прежде, чем принять его.
На стороне архитектуры Вам нужны больше, чем система команд и архитектура ЭВМ. Вы также должны иметь:
На стороне программного обеспечения Вам будет нужно:
Whow, Вы имеете самостоятельно в большую работу, которую я предполагаю (Это походит на много-проект года, если Вы спрашиваете меня). Вы на самом деле не собираетесь делать все это, правильно?
Да, следующий шаг должен был бы записать (или лучше: порт), своего рода компилятор (я предполагаю сначала Вас, хотят использовать кросс-компилятор от Вашего текущего ПК).
Я' предполагаю, что портирование существующего компилятора (как gcc) могло бы быть более легкой задачей (это уже поддерживает много архитектуры, однако я никогда не делал чего-то как этот, возможно, документы внутренностей GCC помогут Вам).
После того, как у Вас есть свой компилятор и выполнение, я пошел бы с испытанием некоторых основных подобных микроконтроллеру программ (например, разрешение вовлеченному флэш-памяти портов данных, и т.д.) и некоторых программ тестирования только, чтобы видеть, работает ли все как ожидалось.
Следующий шаг мог реализовывать загрузчик, который в конечном счете загрузит Ваше ядро. Я не знаю, собирается ли Ваша архитектура использовать BIOS/EFI или что-то подобное, но это - другая вещь рассмотреть при разработке загрузчика.
После этого пора добраться до ядра. Запустите с минимальной конфигурации ядра и попытайтесь разбудить ее и выполнение. Необходимо будет портировать ядро на архитектуру (который включает конфигурирование всех зависимых от дуги заголовочных файлов, запись модулей для доступа к аппаратным средствам, последовательный драйвер так, чтобы можно было получить доступ к оболочке, и т.д.), снова довольно обширный процесс.
Btw.: Я надеюсь, что Ваша архитектура имеет единицу размещения в ОЗУ, или Вы столкнетесь с некоторой серьезной проблемой позже (если она не будет иметь, изучают µClinux, который может выполнить mmu-меньше ядра, но я серьезно сомневаюсь, что Вы смогли бы выполнить полную настольную ОС).
Вы могли бы хотеть взглянуть на андроид или ядро OpenWRT, которое оба работают на встроенных устройствах.
После того как ядро портировано (много лет с этого времени, при попытке сделать это самостоятельно), то Вы продолжите пространство пользователя. Я запустил бы с портирования busybox, компилятора и затем некоторых основных инструментов Unix как openssh, крон, и т.д.
После этого (принимающий Вы уже присоединили рабочий GPU к Вашей системе), необходимо было бы записать драйвер GPU и попытаться получить X-сервер (или его замена Уэйленд). Следует иметь в виду, что необходимо будет реализовать 2D/3D ускорение для подъема рабочего стола Ubuntu и выполнения.
Наконец, задача состоит в том, чтобы портировать как можно больше пакетов человечности на Вашу платформу.
Таким образом завершить: Вы только что провели много своего времени, разработав Вашу собственную архитектуру ЦП, но Вы просто правы в начале того, чтобы заставлять полноценный дистрибутив Linux работать на ней. Я надеюсь, что Вы просто пишете книгу о процессе и не собираетесь на самом деле делать это, потому что Вы вовлекаете себя в серьезную загрузку работы в течение следующих лет.
Однако я надеюсь, что мог дать Вам беглый взгляд в процесс (и я надеюсь, что не пропустил ничего важного).Удачи.