Всегда являются размер страницы памяти и размер кластера файловой системы тем же?

[118068] В предыдущей жизни я делал [118558] аккуратно [118559] редактирование исполняемого файла для замены строк (замена должна быть короче, заполняться нулевыми символами!), используя двоичный редактор (например, [118560]hexl-mode[118561] в emacs/xemacs).

Если исполняемый файл содержит фиксированные пути, их часто можно переопределить переменными окружения (например, TMPDIR, EDITOR/VISUAL или подобные). или давая одобренные аргументы. Когда путь действительно фиксирован, я бы спросил причину. Могут быть объяснения по поводу безопасности или конфигурации, которые просто не должны быть переопределены. Конечно, это может быть просто [118562]лень [118563], но это маловероятно с программным обеспечением, упакованным вашим дистрибутивом, и предположительно проверенным...[118071].

1
01.01.2015, 22:35
2 ответа

Можно применить (GNU) cut к выходу bc с помощью пользовательского разделителя вывода:

$ echo 'obase=2;5989809752836966' | BC_LINE_LENGTH=0 bc | rev \
  | cut --output-delimiter=' ' \
     -c$(echo -n 1-4; for i in $(seq 5 4 100); do echo -n ,$i-$((i+3)); done ) \ 
  | rev
1 0101 0100 0111 1011 0011 0100 0010 1001 0111 0000 1011 0110 0110

Конструкция cut LIST, поставляемая через -c , использует тот факт, что неиспользуемые части этих списков не сообщаются как ошибка.

Версия dc :

$ echo '5989809752836966 2 o p' | DC_LINE_LENGTH=0 dc | rev \
  | cut --output-delimiter=' ' \
     -c$(echo -n 1-4; for i in $(seq 5 4 100); do echo -n ,$i-$((i+3)); done ) \
  | rev  
1 0101 0100 0111 1011 0011 0100 0010 1001 0111 0000 1011 0110 0110
-121--96067-

Вы также можете попробовать GraphicalMagick , который является хорошо поддерживаемой вилкой ImageMagick, используемой, например, в Flickr и Etsy:

$ gm identify a.jpg
a.jpg JPEG 480x309+0+0 DirectClass 8-bit 25.2K 0.000u 0:01

Это быстрее, чем идентификация ImageMagick (в моих тестах около двух раз).

-121--9746-

Нет, размер страницы и размер кластера не обязательно совпадают.

  • Страница Википедии на страницах памяти , на которую вы ссылаетесь, уже содержит список того, что одна и та же архитектура компьютера может переключаться между различными размерами страниц. Например, x86_64 могут иметь размеры страниц 4KiB, 2MiB или 1GiB (в зависимости от поддержки ОС, рабочей нагрузки и т.д.).
  • Размер кластера зависит от физического носителя места хранения. В статье Википедии о кластерах данных уже упоминаются различные размеры. Использование твердотельных накопителей не позволяет использовать кластеры в традиционном смысле.
1
27.01.2020, 23:17

Нет, они не обязательно одинаковые. Во времена 100-миллиметровых дисков, файловые системы linux, как правило, использовали только 1 кластер KiB. В наши дни нормой является 4КиБ, потому что чем больше размеры, тем меньше накладных расходов. Размер системной страницы составляет 4 килобайта на процессорах x86 (включая 64 бита). Некоторые системы на базе ARM используют размер страницы 64 килобайта. Файловые системы FAT16 используют до 64 кластеров KiB.

4
27.01.2020, 23:17

Теги

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