Программное обеспечение может быть выполнено в машине без операционной системы? [дубликат]

Этот вопрос уже имеет ответ здесь:

Я просто задаюсь вопросом, мы можем выполнить программу на машине без операционной системы?

Кроме того, я слышал, что ядро Linux записано на языке C, и ядро выполняется во время начальной загрузки, таким образом, я просто задаюсь вопросом, как компьютер понимает язык без первой компиляции?

10
задан Jørn Schou-Rode 20 January 2010 в 08:27
поделиться

7 ответов

Из Википедии:

Когда компьютер сначала включается, у него нет операционной системы в ROM или RAM. Компьютер должен изначально выполнять небольшую программу, хранящуюся в ROM, а также минимум голых данных, необходимых для доступа к нетолярным устройствам, из которых программы и данные операционной системы загружаются в ОЗУ. Небольшая программа, которая запускает эту последовательность нагрузки в ОЗУ, известна как загрузочный загрузчик, загрузочный или загрузчик. Эта небольшая работа загрузки программы загрузчика - загрузить другие данные и программы, которые затем выполняются из оперативной памяти.

Компьютер может понять ядро ​​Linux, потому что он уже был скомпилирован и сохранен (обычно) на диске. Загрузчик дает компьютеру достаточно функциональности для загрузки предварительнокомдационного ядра в память.

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

10
ответ дан 3 December 2019 в 13:40
поделиться

Короче, да.

Linux по-прежнему является программной программой, в машинном коде, который работает на голой металлической машине. Хотя вы можете выполнить программную программу без операционной системы, ваша программа должна будет реализовать весь код, который используется для разговоров с различными кусками оборудования на компьютере к различным градусам - например, Вывод данных на дисплей, интерпретация входа из клавиатуры / мыши / сетевой карты и т. Д. (Некоторые из самых низких уровней реализуются прошивкой в ​​компонентах компьютера, но остальная программа должна будет реализовать). Это делает его очень трудоемким и трудным для вас, чтобы написать то, что запускается полностью без операционной системы.

10
ответ дан 3 December 2019 в 13:40
поделиться

Просто посмотрите на любую игровую консоль до 32-битных. Почти все из них вообще не хватало какого-либо загрузочного кода и просто загружаются непосредственно из вставленного картриджа.

1
ответ дан 3 December 2019 в 13:40
поделиться

Да, и это сделано сегодня для небольших микроконтроллеров с несколькими КБ памяти.

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

8
ответ дан 3 December 2019 в 13:40
поделиться

Ядро Linux может быть написано в C. Он все еще скомпилирован на MachineCode. И именно этот машинный код выполнен во время загрузки

, вы также можете написать программное обеспечение, которое запускается во время загрузки. Таким образом, вы можете сделать собственную пользовательскую ОС или сделать свое собственное программное обеспечение, которое может работать без ОС напрямую. Остерегайтесь, хотя, что ОС дает вам большую функциональность, которую вам придется сделать себя. Такие вещи, как поддержка драйверов, дисковые процедуры IO, NetworkStacks, MultisSacking и Management Management, вы должны сделать сами.

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

8
ответ дан 3 December 2019 в 13:40
поделиться

Что такое операционная система, если не работает программное обеспечение на «голой» машине? Вуду? XD

4
ответ дан 3 December 2019 в 13:40
поделиться

1-й: Конечно. На самом деле вам не нужна операционная система только для того, чтобы сжечь несколько циклов.

Вам может понадобиться какая-то поддержка ОС, если вы хотите загружать или хранить файлы или данные, управлять вводом или выводом, но это также можно сделать, вызвав функции BIOS напрямую: читать ключ с клавиатуры, писать на какой-либо экран или светодиод или последовательный интерфейс. Только когда вы хотите запустить несколько программ или иметь дело с прерываниями извне, конфликтующие ресурсы или что-то в этом роде, тогда вам отчаянно нужна ОС.

2-й: Ядро компилируется в машинный код, который выполняется во время загрузки. Нет никаких C задействован при запуске ядра. C помогает только написать ядро ​​или любую программу который должен работать, если в ядре или на "голом железе".

2
ответ дан 3 December 2019 в 13:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: