Что контролирует буферизацию stdout stderr?

Из https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/3/html/Reference_Guide/s1-grub-whatis.html

US/Red_Hat_Enterprise_Linux/3/html/Reference_Guide/s1-grub-whatis.html

GRUB загружает себя в память на следующих этапах:

Stage 1 или первичный загрузчик считывается в память BIOS'ом из MBR[1]. из MBR[1]. Первичный загрузчик занимает менее 512 байт дискового пространства в MBR и способен загружать либо Stage 1.5 или Stage 2 загрузчика.

Загрузчик Stage 1.5 считывается в память загрузчиком Stage 1. при необходимости. Некоторые аппаратные средства требуют промежуточного шага, чтобы чтобы перейти к загрузчику стадии 2. Иногда это происходит, когда раздел /boot/ находится выше 1024 цилиндра жесткого диска или при использовании режима LBA. использовании режима LBA. Загрузчик Stage 1.5 находится либо в разделе /boot/ разделе, либо на небольшой части MBR и /boot/ раздел.

Загрузчик Stage 2 или вторичный загрузчик считывается в память. На сайте вторичный загрузчик отображает меню и командную среду GRUB. Этот интерфейс позволяет выбрать ядро или операционную систему для загрузки, передавать аргументы ядру или просматривать системные параметры.

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

Я бы попробовал сделать:

dd if=/dev/zero of=/boot/stage2

Дополнительные данные:

Проверка /boot/grub:

копия загрузчика stage1:

stage1

Файлы для stage1_5:

e2fs_stage1_5  
fat_stage1_5  
jfs_stage1_5  
minix_stage1_5  
reiserfs_stage1_5  
xfs_stage1_5

Файл для stage2:

stage2

Ссылка на образ grub:

grub

1
23.04.2019, 08:26
1 ответ

Ваш язык программирования

Такое поведение является артефактом библиотеки времени выполнения C и требованием языка программирования C. Другие языки программирования исторически были построены поверх библиотеки времени выполнения C и получили от нее такое поведение. Это справедливо, например, для программ на C++. Глава и стих языковых стандартов C и C++ довольно часто цитируются в Stack Overflow (q.v. ).

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

Инструменты для изменения поведения программ, использующих семантику языка по умолчанию (без изменения и перекомпиляции программ )представлены в двух формах :зависимой от языка -(и иногда библиотеки времени выполнения --специальные )инструменты, которые встраиваются в среду выполнения и изменяют буферизацию, а также инструменты, которые выполняют стандартный ввод-вывод в файлы, которые библиотеки среды выполнения определяют как интерактивные устройства. Инструменты последнего класса не зависят от языка -и включают Bernstein ptybandage.

Дополнительная литература

Несколько примеров вопроса о буферизации:

4
27.01.2020, 23:30

Теги

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