Пакет исходного кода ядра Ubuntu

При помощи strace, Я видел что строка

number=$(expr $number + 1)

вызывает ветвление, поиск пути и должностное лицо expr. (Я использую удар 4.2.45 на Ubuntu). Та файловая система, диск и процесс, наверху ведомый колотить только обходящий 28% ЦП.

Когда я изменил ту строку для использования только оболочки встроенные операции

((number = number + 1))

удар использовал приблизительно 98% ЦП, и сценарий работал через половину часа. Это было на Celeron единственного ЦП 1.5 ГГц.

Сценарий, как, не делает ничего, что работает параллельно, так наличие 32 свободных центральных процессоров не поможет многому. Однако можно, конечно, параллелизировать его, например, разделив его на 10 1 миллион итеративных циклов, которые работают параллельно, пишущий в 10 различных файлов и затем использование cat объединить их.

Следующий пример программы был добавлен @Arthur2e5:

max=1000000 step=40000 tmp="$(mktemp -d)"
# Spawning. For loops make a bit more sense in a init-test-incr pattern.
for ((l = 0; l < max; l += step)); do (
    for ((n = l + 1, end = (step + l > max ? max : step + l);
      n <= end; n++)); do
        # Putting all those things into the `buf` line gives you a 1.8x speedup.
        fname="FirstName LastName \$"
        lname=""  
        email="fname.lname.$n@domain.com"  
        password="1234567890"  
        altemail="lname.fname.$n@domain.com"  
        mobile="9876543210"
        buf+="$fname,$lname,$email,$password,$altemail,$mobile"$'\n'
    done
    printf '%s\n' "$buf" > "$tmp/$l" ) &
done # spawning..
wait
# Merging. The filename order from globbing will be a mess,
# since we didn't format $l to some 0-prefixed numbers.
# Let's just do the loop again.
for ((l = 0; l < max; l += step)); do
    printf '%s\n' "$(<"$tmp/$l")" >> /opt/list.csv
done # merging..
rm -rf -- "$tmp" # cleanup
2
23.04.2014, 02:17
2 ответа
[1120468]В вашем первом списке присутствует один каталог (вверху, строка, начинающаяся с [1120789]d[1120790] - это giveaway) и 3 файла. Из файлов последний выглядит как дерево исходников Linux для Ubuntu 13.04, первый отличается (разница между предыдущим деревом исходников и Ubuntu 12.04. Файл [1120791].dsc[1120792] является метаданными для первого файла.

В Makefile вряд ли придется указывать на какой-либо из этих [1120793]файлов[1120794], но, возможно, придется указывать на каталог, если он содержит распакованный [1120795].tar.gz[1120796] с применением [1120797].diff[1120798].[1120471].

3
27.01.2020, 22:00

Пакет исходных текстов в Debian и производных (Ubuntu, Mint, ...) состоит из трёх файлов:

  • NAME_VERSION. orig.tar.gz является оригинальным (восходящим) исходным кодом.
  • NAME_VERSION-REVISION.diff. gz или ИМЯ_VERSION-REVISION.debian.tar.gz - это патч, используемый Debian.
  • ИМЯ_VERSION-REVISION. dsc - небольшой текстовый файл, содержащий некоторые метаданные о других файлах.

VERSION - номер версии вверх по течению и REVISION ---. Дополнительную информацию о версиях пакетов см. в Руководстве по политике Debian.

Для пакетов, сопровождаемых непосредственно Debian или производной, нет файла .diff.gz или .debian.tar.gz, и нет -REVISION -компонента в версии пакета.


Здесь находится пакет с исходным кодом ядра. Пакет lts-raring - это бэкпорт ядра с Ubuntu 13.04 raring до предыдущей версии поддержки, Ubuntu 12.04 accuracy.

Исходный текст ядра - это то, что вам нужно, если вы хотите просмотреть исходный текст ядра или перекомпилировать ядро с различными опциями компиляции или различными исправлениями. Это не то, что вам нужно для компиляции внешних модулей. См. modpost.h:12:23: фатальная ошибка: elfconfig.h: Нет такого файла или каталога

1
27.01.2020, 22:00

Теги

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