Действительно ли возможно использовать libc на самом этапе загрузчика?

Это возможно, с помощью схемы разрешения Linux, чтобы позволить пользователям создают файлы, но не редактируют или удаляют их в более позднее время?

НЕТ

Но у Вас есть другие опции, как предложено @Fredrik в комментарии к Вашему вопросу. Посмотрите здесь.

0
01.02.2011, 10:33
3 ответа

Необходимо будет, скорее всего, записать собственные версии функций, которые Вы хотите, хотя в некоторых случаях Вы можете использовать libc исходный код в качестве начальной точки. Функции в самом libc записаны под всеми предположениями о программе пространства пользователя UNIX, включая:

  • присутствие ядра (или более конкретно, syscall взаимодействуют через интерфейс к ядру),
  • модель сплошной памяти
  • инфраструктура динамического подключения (если статически не связано)

и на этапе загрузчика, у Вас нет ни одного из них. Вместо этого (по умолчанию, под Intel) у Вас есть BIOS, сегментированная модель памяти, никакая защита памяти и полное господство машины.

Это - та же причина, Вы видите пользовательское printk() функция в ядре кодирует вместо printf() - предположения, что libc's printf() делает просто не применяются в пространстве ядра.

4
28.01.2020, 02:15

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

Какие функции - они? Необходимо понять, что Вы не можете использовать их, если они полагаются на системные вызовы для выполнения их обязанности.

2
28.01.2020, 02:15
  • 1
    Могли Вы объяснять это немного больше глубже: самый легкий путь состоял бы в том, чтобы скопировать код, в котором Вы нуждаетесь к загрузчику. –  Sen 01.02.2011, 16:15
  • 2
    @Sen: Вы знаете, как скопировать и вставить текст между файлами? Насколько глубже Вам нужен он? :D –  alex 01.02.2011, 17:04

Просто используйте статическое подключение. Динамическое подключение не будет работать в той точке.

0
28.01.2020, 02:15

Теги

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