Вопрос или проблема
Мы знаем, что операционные системы требуют вычислительных единиц и хранения. Мы понимаем, что вычислительная единица включает в себя различные компоненты в зависимости от типа компьютера, который она определяет. Мы, очевидно, можем назвать основные компоненты, такие как процессор, оперативная память, материнская плата и хранилище, и большинство из нас понимают, зачем они существуют, и мы можем представить себе, как они взаимодействуют друг с другом, чтобы создать машину.
Что раздражает в наши дни, так это то, что трудно понять, для чего была создана операционная система: для оборудования или наоборот.
Я едва пытался понять, почему мы не можем установить любую операционную систему на любую машину. Казалось бы, все машины построены на одной и той же архитектуре (материнская плата, ЦПУ, ОЗУ, хранилище и другие модули), но вы почти не можете установить Linux на любую машину, не говоря уже о Windows или Mac OS.
Можем ли мы получить четкий ответ, почему это так невозможно?
Я использую Linux как основную операционную систему, и это случилось с того дня, как я впервые его установил. Мне понадобилось не более шести месяцев, чтобы удалить Win10 из меню двойной загрузки grub.
Но как это работает… Например, я использую ультрабук на базе AMD, который имеет процессор, способный запускать любую ОС. Что привлекает меня, так это то, что я хотел бы установить Linux и на свой планшет. Я использую Galaxy Tab S4 (с клавиатурой и мышью). Да, DEX потрясающий, но я думал: “ЭТОТ УСТРОЙСТВО МОЖЕТ БЫТЬ ЛИНУКС МАШИНОЙ!” И я начал искать способы установки Linux на него. Пока что я установил версию Ubuntu Linux, которая работает из терминала. Неужели невозможно установить полноценный дистрибутив Linux на машину с процессором ARM, оперативной памятью и хранилищем?
Позвольте мне понять, почему это невозможно и есть ли какие-либо обходные пути! И если есть кто-то, кто может объяснить правильно, почему Linux не может быть установлен на этой машине так же просто, как если бы он устанавливался на ноутбук или настольный компьютер.
почему это так невозможно?
Linux может поддерживать что угодно под солнцем, если написать патчи для поддержки конкретной архитектуры и аппаратных компонентов. В настоящее время Linux портируется на устройства Mac, работающие на SoC M1.
На самом деле причина, по которой я пишу все эти сентиментальные предложения, заключается в том, чтобы понять, как Linux на самом деле работает.
Фундаментально здесь мало что понимать. Есть архитектуры, начиная с ЦПУ, у ЦПУ есть своя ISA, и чтобы поддержать Linux на конкретной архитектуре, нужен компилятор, который может генерировать код для этой ISA, и поддержка этой ISA в ядре. После того как вы имеете поддержку ISA, вы начинаете поддерживать более высокоуровневые примитивы, такие как доступ к памяти, многопроцессность, ввод/вывод хранилища и т. д.
Например, я использую ультрабук на базе AMD, у которого процессор может запускать любую ОС.
Это неверно. Ультрабуки на базе AMD только запускают операционные системы, которые нативно поддерживают ISA x86(-64).
Что привлекает меня, так это то, что я хотел бы установить Linux и на свой планшет.
И вы вполне можете это сделать. Фактически, ваш планшет уже работает на ядре Linux (значительно пропатченном производителем, но это все еще ядро Linux). Разница с десктопным Linux заключается в том, что Android-устройства имеют очень разные пространства пользователей.
“ЭТОТ УСТРОЙСТВО МОЖЕТ БЫТЬ ЛИНУКС МАШИНОЙ!”
Десктопный Linux не так хорош для умных устройств с сенсорным вводом. Есть причина, по которой все эти устройства работают на Android или его производных – это потому, что Android был специально адаптирован для них.
Пока что я установил версию Ubuntu Linux, которая работает из терминала. Это удивительно, но все же… Неужели невозможно установить полноценный дистрибутив Linux на машину с процессором ARM, оперативной памятью и хранилищем?
Да.
Пожалуйста, позвольте мне понять, почему это невозможно и есть ли какие-либо обходные пути сделать это возможным!
Google – ваш лучший друг.
И если есть кто-то, кто может объяснить правильно, почему Linux не может быть установлен на этой машине так же легко, как если бы он устанавливался на ноутбук или настольный компьютер.
Устройства ARM имеют очень специфичную архитектуру и для ее использования ядро Linux должно знать, как с ней работать. Ядро Linux на базе Android уже пропатчено для полной поддержки такого оборудования. Но одного ядра недостаточно: вам нужны драйвера и прошивка для модема сотовой связи (которые чаще всего предоставляются только в бинарной форме из-за патентов), WiFi-адаптера, графического процессора, датчиков и т. д. и т. д. и т. д. Ядро ванильного Linux часто не знает, как работать с такими устройствами, и даже если у него есть драйвера для них, вам все равно понадобится прошивка, которая их правильно инициализирует.
Все, что я написал, можно найти в Google за полчаса. Пожалуйста, проявите усердие и начните обучаться, если действительно заинтересованы.
Чтобы упростить другой ответ…
Так же, как существуют разные ЦПУ (x86/AMD64, ARM, M68K, 65×02, Z80 и многие другие, не включая многочисленные подгруппы), существуют и многие другие способы “соединения” компонентов между собой. ОЗУ 8- или 16-битная? Сколько бит в адресном пространстве? Есть ли дополнительная схема между ЦПУ и ОЗУ для “отображения” логического адреса памяти на физический чип ОЗУ?
Разные устройства имеют разные способы решения этих задач. Ваш смартфон делает это иначе, чем ваш ноутбук. Ваш ноутбук делает это иначе, чем ваш настольный компьютер. Ваш тостер делает это иначе, чем ваш настольный компьютер. И ваш морозильник, кофеварка и так далее все делают вещи по-другому. (Я упоминаю их, потому что должно быть очевидно, что они также служат совершенно разным целям, поэтому глупо сравнивать тостер с морозильником, если смотреть только на то, насколько хорошо он делает тосты.)
Тем не менее, многие вычислительные устройства на самом деле действительно работают с чем-то вроде ядра Linux на нижних уровнях. Затем они строят собственную операционную систему (например, Android OS) поверх этого, которая специально разработана для работы с конструкцией оборудования и назначения устройства (платформа/окружение). Например, у вашего планшета обычно есть сенсорный экран для взаимодействия и ввода данных пользователя, но нет клавиатуры и мыши. У вашего настольного компьютера обычно нет сенсорного экрана, но, вероятно, есть клавиатура и мышь. Оба могут добавить опции/периферийные устройства, чтобы расширить их, но тогда вам нужны правильные аппаратные интерфейсы и драйвера для этого.
Так что возможно сделать то, что вы упомянули, и в некоторых случаях это, вероятно, уже было сделано. Но потом вещи модифицируются, чтобы работать в ожидаемой рабочей среде. То же самое, как вы можете, вероятно, модифицировать морозильник, чтобы добавить “тостерную насадку”. Но они не будут продаваться на местном рынке, если на них не будет популярного спроса.
.
Ответ или решение
Сравнение ядра Linux и дистрибутива, процесс установки и требования (ARM vs x86)
Понимание различий между ядром Linux и дистрибутивом
Ядро Linux — это сердце операционной системы, предоставляющее низкоуровневые взаимодействия между оборудованием и программным обеспечением. Оно отвечает за управление ресурсами и аппаратными ресурсами, такими как процессор, память и устройства ввода/вывода. Однако дистрибутив Linux включает в себя не только ядро, но и множество других программ, утилит и интерфейсов пользователя, формируя полноценную операционную систему.
Процесс установки на ARM и x86 архитектурах
Архитектуры ARM и x86 различаются по своей структуре и принципам работы. x86 (и его 64-битная версия x86-64) — это архитектура, используемая в большинстве настольных компьютеров и ноутбуков. Она поддерживается множеством операционных систем, таких как Windows, различные дистрибутивы Linux и macOS для Intel-процессоров.
Архитектура ARM обычно используется в мобильных устройствах, таких как телефоны и планшеты, а также в встраиваемых системах. Установка Linux на устройства с архитектурой ARM часто требует дополнительных усилий, поскольку такие устройства могут иметь специфичное аппаратное обеспечение и прошивки, которые не поддерживаются стандартным дистрибутивом Linux.
Почему установка Linux на ARM может быть сложной
-
Драйверы и прошивки: Множество компонентов, таких как GPU, модемы и сенсоры, могут требовать специфичных драйверов и прошивок, которые недоступны в открытом доступе. Иногда производители предоставляют такие драйверы только в бинарной форме, что затрудняет их использование в свободных дистрибутивах Linux.
-
Разнообразие платформ: Существует огромное количество разных SoC и аппаратных конфигураций для ARM, и каждый из них может требовать своих особых настроек и патчей ядра.
-
Отличия в интерфейсах: Устройства на ARM часто проектируются для управления с помощью сенсорных экранов, что отличается от традиционного ввода с клавиатуры и мыши, привычного для настольных систем.
Возможности обхода ограничений
Есть проекты, такие как LineageOS или другие операционные системы на базе Linux для мобильных устройств, которые позволяют устанавливать Linux на устройства с ARM. Однако процесс может быть сложным и требует базовых знаний в области программирования и конфигурации системы.
Заключение
Установка полного дистрибутива Linux на ARM-устройство может быть сложной задачей из-за аппаратных ограничений и недостатка поддержки драйверов. Однако активное сообщество разработчиков Linux постоянно работает над тем, чтобы расширять поддержку различных платформ. Пользователям рекомендуется тщательно изучать информацию и, возможно, пробовать альтернативные подходы для достижения желаемого результата.
Эта информация дает общее понимание различий между ядрами и дистрибутивами Linux и сложностями установки на разные архитектуры. Используя SEO-оптимизированные ключевые слова, такие как "ядро Linux", "дистрибутив", "архитектура ARM", "x86", вы повышаете видимость вашего контента в поисковых системах, удовлетворяя запросы пользователей.