Установка Windows на компьютер без диска и флешки

Как запустить программу без операционной системы? [закрытый]

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

Как вы запускаете программу самостоятельно без операционной системы?

вы помещаете свой двоичный код в место, где процессор ищет после перезагрузки (например, адрес 0 на ARM).

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

общий ответ на вопрос: это может быть сделанный. Это часто предлагается как «программирование голого металла». Чтобы читать с флеш-накопителя, вы хотите знать, что такое USB, и вы хотите иметь драйвер для работы с этим USB. Программа на этом диске также должна быть в определенном формате. В какой-то конкретной файловой системе. Это то, что обычно делают загрузчики. Многие доски ARM позволяют вам делать некоторые из этих вещей. У некоторых есть загрузчик, который поможет вам с базовой настройкой.

здесь вы можете найти большой учебник как сделать основную операционную систему на Raspberry PI.

изменить: Эта статья и вся wiki.osdev.org will anwer большинство ваших вопросов http://wiki.osdev.org/Introduction

кроме того, если вы не хотите экспериментировать непосредственно на оборудовании, вы можете запустить его как виртуальную машину с помощью гипервизоров, таких как qemu. См. как запустить «hello world» непосредственно на виртуализированном оборудовании ARM здесь.

Runnable примеры

технически, программа, которая работает без ОС, является ОС. Итак, давайте посмотрим, как создать и запустить некоторые крошечные hello world OSes.

код всех приведенных ниже примерах присутствует это GitHub РЕПО. Все было протестировано на Ubuntu 14.04 AMD64 QEMU и реальном оборудовании ThinkPad T430.

загрузочный сектор

на x86 самая простая и низкая вещь, которую вы можете сделать, это создать главный загрузочный сектор (MBR), тип загрузочный сектор, а затем установите его на диск.

здесь мы создаем один printf звоните:

main.img содержит следующее:

4 в восьмеричной == 0xf4 в hex: кодировка для hlt инструкция, которая говорит CPU прекратить работу.

поэтому наша программа ничего не будет делать: только начать и остановка.

мы используем восьмеричный потому что x шестнадцатеричные номера не указаны POSIX.

мы могли бы легко получить эту кодировку с:

но 0xf4 кодировка также документирована в руководстве Intel, конечно.

%509s произвести 509 мест. Необходимо заполнить файл до байта 510.

52 в восьмеричной == 0x55 следовал по 0xaa : волшебные байты требует аппаратура. Они должны быть байтами 511 и 512.

если нет, аппаратное обеспечение не будет рассматривать это как загрузочный диск.

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

работы на реальном оборудовании

эмуляторы-это весело, но аппаратное обеспечение-это реальная сделка.

сжечь изображение на USB-накопитель (уничтожит ваши данные!):

подключите USB к компьютеру

скажите ему загрузиться с USB.

это означает, что прошивка выбирает USB перед жестким диском.

если это не поведение по умолчанию вашей машины, продолжайте нажимать Enter, F12, ESC или другие такие странные клавиши после включения питания, пока не получите меню загрузки, где вы можете выберите для загрузки с USB.

очень часто можно настроить порядок поиска в этих меню.

Привет, мир

теперь, когда мы сделали минимальную программу, давайте перейдем к hello world.

очевидный вопрос: как сделать IO? Несколько вариантов:

  • попросите прошивку, например BIOS или UEFI, сделать, если для нас
  • VGA: специальная область памяти, которая печатается на экран при записи. Может использоваться в защищенном режиме.
  • напишите драйвер и поговорите непосредственно с оборудованием дисплея. Это «правильный» способ сделать это: более мощный, но более сложные.
  • используйте функции отладки чипов. ARM называет их semihosting например. На реальном оборудовании это требует дополнительной аппаратной и программной поддержки, но на эмуляторах это может быть бесплатный удобный вариант. пример.

здесь мы сделайте пример BIOS, как это проще. Но заметьте, что это не самый надежный метод.

вот газовый код:

кроме стандартных инструкций по сборке userland, у нас есть:

.code16 : говорит газу вывести наружу 16-разрядный код

cli : отключить прерывания программного обеспечения. Они могут заставить процессор начать работать снова после hlt

int x10 : делает a Вызов BIOS. Это то, что печатает символы один за другим.

.org 510 и .word 0xaa55 : места волшебные байты в конце

быстрый и грязный способ скомпилировать это с:

и работать main.img как и раньше.

здесь есть два важных флага:

—oformat binary : выведите исходный двоичный код сборки, не деформируйте его внутри файла ELF, как в случае обычного userland выполнимые программы.

-Ttext 0x7C00 : мы должны сказать компоновщику ld где будет размещен код, чтобы он мог получить доступ к памяти.

в частности, это используется на этапе перемещения. Подробнее об этом здесь.

лучший способ компиляции-использовать чистый скрипт компоновщика как это. Сценарий компоновщика также может размещать магические байты для США.

прошивка

по правде говоря, ваш загрузочный сектор не первое программное обеспечение, которое работает на процессоре системы.

то, что на самом деле работает первым, является так называемым прошивка, который является программным обеспечением:

  • сделано производителями оборудования
  • обычно закрытый источник, но, вероятно, c-based
  • хранится в памяти только для чтения, и поэтому сложнее / невозможно изменить без согласие продавца.

хорошо известные прошивки включают в себя:

  • BIOS: старая прошивка x86. SeaBIOS-это реализация с открытым исходным кодом по умолчанию, используемая QEMU.
  • UEFI: преемник BIOS, лучше стандартизированный, но более способный и невероятно раздутый.
  • Coreboot: благородный крест арка с открытым исходным кодом попытка

прошивка делает вещи например:

петля над каждым жестким диском, УСБ, сетью, ЕТК. пока не найдешь что-нибудь загрузочное.

когда мы запускаем QEMU, -hda говорит, что main.img — это жесткий диск, подключенный к оборудованию, и

hda является первым, который будет опробован, и он используется.

загрузите первые 512 байт в адрес оперативной памяти 0x7c00 , поместите туда RIP процессора, и пусть он работает

показать все например, меню загрузки или вызовы печати BIOS на дисплее

прошивка предлагает OS-подобные функции, от которых зависит большинство OS-es. Например. подмножество Python было портировано для работы в BIOS / UEFI:https://www.youtube.com/watch?v=bYQ_lq5dcvM

можно утверждать, что прошивки неотличимы от ос, и что прошивка является единственным «истинным» голым металлическим программированием, которое можно сделать.

сложно

при включении ПК чипы, составляющие чипсет (northbridge, southbridge и SuperIO), еще не инициализированы должным образом. Несмотря на то, что BIOS ROM настолько удален от ЦП, насколько это возможно, это доступно ЦП, потому что это должно быть, иначе у ЦП не было бы инструкций для выполнения. Это не означает, что BIOS ROM полностью сопоставлен, как правило, нет. Но достаточно сопоставлено, чтобы получить процесс загрузки продолжается. Любые другие устройства, просто забудьте об этом.

когда вы запускаете Coreboot под QEMU, вы можете экспериментировать с более высокими уровнями Coreboot и с полезными нагрузками, но QEMU предлагает небольшую возможность экспериментировать с низкоуровневым кодом запуска. Во-первых, RAM работает с самого начала.

начальное состояние Post BIOS

как и многие вещи в аппаратном обеспечении, стандартизация слаба, и одна из вещей, которые вы должен!—196—>не полагаться-это начальное состояние регистров, когда ваш код запускается после BIOS.

поэтому сделайте себе одолжение и используйте некоторый код инициализации, например:https://stackoverflow.com/a/32509555/895245

регистры как %ds и %es имеют важные побочные эффекты, поэтому вы должны обнулить их, даже если вы не используете их явно.

обратите внимание, что некоторые эмуляторы лучше, чем реальные оборудование и дать вам хорошее начальное состояние. Затем, когда вы идете работать на реальном оборудовании, все ломается.

GRUB Multiboot

загрузочные сектора просты, но они не очень удобны:

  • вы можете иметь только одну ОС на диск
  • код загрузки должен быть очень маленьким и вписываться в 512 байт. Это можно решить с помощью int 0x13 BIOS вызов.
  • вам нужно сделать много запуска себя, как переход в защищенный режим

именно по этим причинам GRUB создал более удобный формат файла под названием multiboot.

если вы подготовите свою ОС как многозадачный файл, GRUB сможет найти его внутри обычной файловой системы.

это что делают большинство дистрибутивов, помещая изображения ОС под /boot .

Multiboot файлы в основном файл ELF со специальным заголовком. Они указываются GRUB по адресу:https://www.gnu.org/software/grub/manual/multiboot/multiboot.html

вы можете превратить мультизагрузочный файл в загрузочный диск с помощью grub-mkrescue .

Эль Torito С

также возможно произвести гибридное изображение которое работает на или ИСО или УСБ. Это можно сделать с помощью grub-mkrescue (пример), а также выполняется ядром Linux на make isoimage используя isohybrid .

руку

ARM-land имеет свои собственные соглашения (или больше отсутствия соглашений, так как ARM лицензирует IP поставщикам, которые его изменяют), но общие идеи те же:

Подготовка к установке

Для успешной инсталляции необходимы следующие компоненты:

  1. Программа Daemon Tools. Пробную бесплатную версию можно скачать на официальном сайте разработчика;
  2. Образ операционной системы, созданный при помощи Daemon Tools;
  3. Утилита EasyBCD, задача которой заключается в работе с загрузочной записью.

Программа Daemon Tools

Уделять внимание этому моменту не будем, а сразу перейдем к ответу на вопрос как установить Windows без привлечения внешних устройств.

Использование Dev-канала тестирования Windows Insider

Еще одна уловка для установки Windows 11 на неподдерживаемом оборудовании связана с программой предварительной оценки Windows Insider и Dev канала тестирования. Изначально Microsoft разрешила участникам программы предварительной оценки Windows Insider с неподдерживаемым оборудованием принять участие в тестировании Windows 11. Разрешенный период в течение которого Microsoft разрешала участниками программы тестирования принять участие в тестировании Windows 11 на неподдерживаемом оборудовании составлял – до конца июля, но с тех пор ситуация изменилась и была «заблокирована» со стороны Microsoft. Теперь, когда вы попытаетесь зарегистрироваться на неподдерживаемом оборудовании, вы увидите, что ваше устройство больше не поддерживает Windows 11.

В какой-то момент был обнаружен обходной путь для обновления до Windows 11 на неподдерживаемом оборудовании. Вы можете попробовать зарегистрировать свое устройство в программе тестирования Windows Insider канала Release Preview, а затем переключиться на канал тестирования Dev с помощью скрипта OfflineInsiderEnroll. Однако, встречаются отзывы сообщающие о невозможности данным способом переключиться на канал Dev.

Выбор системы windows при загрузке в настройках конфигурации системы

Заходим в настройки конфигурации системы, в меню «Пуск» в строке поиска пропишите команду msconfig.

Появится окно конфигурации системы. Нажмите на пункт «Загрузка».

В этом окне выберите систему windows, которая будет загружаться по умолчанию, нажмите кнопку «Использовать по умолчанию», далее кнопку «Применить» и «Ok».

После следующей перезагрузки системы, окна с выбором загрузки не будет и будет загружаться та система windows, которою Вы выбрали по умолчанию в настройках конфигурации.

Как проверить сколько ОС на компьютере?

При загрузке компьютера необходимо нажимать клавишу F8 до появления списка. Список будет состоять из всех ОС, которые видит компьютер. Из этого списка мы можем выбрать виндовс для загрузки, ну или другую систему.

В данном случае нужно его увеличить.

Для Windows XP — выбираем «Свойства» у компьютера (ПКМ по значку). На вкладке «Дополнительно» щёлкаем по «Загрузка и восстановление» и там «Параметры». Откроется такое окно —

1360739778_vibor-sistemy-pri-zagruzke[1]

3

Для Windows 7 — «Свойства» у значка моего компьютера. Слева «Дополнительные параметры системы». На вкладке «Дополнительно» выбираем «Загрузка и восстановление». Далее, думаю, понятно, что необходимо редактировать. По умолчанию даётся 30 секунд на выбор, можно уменьшить или увеличить этот параметр под свои нужны, чтобы успевать выбирать windows или другую ОС при загрузке.

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

Работа компьютера — сложный процесс, который задействуем много процессов и соответственно данных, которые часто остаются в системе, даже когда не используются. Эта статья посвящена чистке виндовс 7 2-мя разными.

Часто при запуске компьютера мы запускаем одни и те же программы, поэтому для экономии времени можно указать, какие программы запускать при загрузке ОС. В этой статье я расскажу о том, как настроить автозапуск в Windows 7. Существует 2 способа.

Оцените статью
Fobosworld.ru
Добавить комментарий

Adblock
detector