Можно ли запустить Busybox без установленной ОС на машине?

Не уверен, что полностью понимаю то, что вы пытаетесь сделать. Однако вам может оказаться полезным создать файл с содержимым архива. то есть:tar tf test.tar > /tmp/listing_of_test-tar.txt. Вы даже можете передать его через grep или sed до или после создания файла, чтобы удовлетворить ваши потребности.

Затем вы можете создать отдельный файл (s ), чтобы использовать параметры -I для включения или -X для исключения tar.

0
12.02.2020, 12:10
2 ответа

If it can be run without an explicit OS, who will handle the stuff like CPU scheduling, user & role management, etc.

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

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

Ближе всего к тому, что вам нужно, может быть какой-нибудь минималистичный дистрибутив Linux, например ядро ​​Linux (всего 11 МБ ).

Если вы не хотите никакого взаимодействия с пользователем после загрузки, вы можете даже выбросить кое-что из ОС, но я предполагаю, что вам нужен хотя бы терминал, чтобы вы могли взаимодействовать с системой.


So the root of the confusion was, I read that it is installed on small embedded devices. What I conclude is that these devices should come with some lightweight OS installed on top of which we can add basic unix functionalities with busybox.

У этого вопроса есть несколько аспектов:

  • Что такое встроенное устройство? В наши дни вы можете легко запустить полный дистрибутив Linux на Raspberry Pi, который технически все еще является «маленьким встроенным устройством», и вы, очевидно, можете запустить на нем busybox, чтобы сделать его более легким. Я подозреваю, что эта цитата относится к этому.

  • Возможно, вы могли бы модифицировать busybox, чтобы он работал без ядра; насколько сложной будет задача, зависит от того, насколько она зависит от вызовов ядра и хотите ли вы, чтобы все ее функции работали или только некоторые из них.

  • Насколько это вообще имеет смысл? Busybox реализует несколько программ, описанных в стандарте POSIX, которые предназначены для использования в сочетании с ядром типа unix -. Например, какой смысл в chroot, если у вас даже нет файловой системы, не говоря уже о корневом каталоге?

Also by platform-agnostic above, I mean underlying OS agnostic. For example, can I run BusyBox over windows and if so how can that be possible?

Да, но нет; В Windows есть другой API для программ, взаимодействующих с ядром. Он также использует другой двоичный формат для исполняемых файлов. Невозможно просто запустить busybox в Windows без какого-либо уровня совместимости.

Обычно для этого используется что-то вроде mingw, который реализует API-интерфейсы Linux таким образом, что они под капотом перенаправляются на соответствующие API-интерфейсы Windows. Это позволяет компилировать и запускать простые программы для Linux без каких-либо серьезных изменений исходного кода.

Начиная с Windows 10, Microsoft также предоставляет один такой уровень совместимости с Подсистемой Windows для Linux , что, на самом деле. теперь запускает все виртуализированное ядро ​​​​Linux в Windows для запуска приложений Linux «по умолчанию».

2
28.04.2021, 23:23

Это зависит от определения ОС:

Ему нужно ядро, но не нужна остальная часть ОС. Ядро (Linux )является меньшей частью ОС (Gnu/Linux в большинстве Unix-подобных систем, использующих Linux ). Вы можете использовать busybox/Linux :, который является просто busybox и Linux (без Gnu, без чего-либо ).

3
28.04.2021, 23:23

Теги

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