Средства выделения, которые Вы упоминаете, являются средствами выделения пространства пользователя, совершенно отличающимися от средств выделения ядра. Возможно, некоторые базовые понятия могли использоваться в ядре, но оно должно будет быть реализовано с нуля.
Ядро уже имеет 3 средства выделения, ПЛИТУ, SLUB, СЛЯКОТЬ, (и был SLQB). SLUB в особенности разработан для работы хорошо над системами мульти-ЦП.
Как всегда, если у Вас есть идеи о том, как улучшить ядро, Ваши определенные предложения, предпочтительно в форме патчей, приветствуются на LKML :-)
Для передачи элементов массива как аргументов функции используйте ksh синтаксис для расширения элементов массива как список.
work_on_array "${myarray[@]}"
[@]
суффикс делает это расширением массива. Двойные кавычки защищают каждый элемент от дальнейшего расширения (разделение и globbing). Результатом расширения не является в целом одно слово как он, обычно с двойными кавычками, но столькими же слов, сколько существуют элементы в массиве.
Энный элемент массива затем ${N}
. Для доступа к нему необходимо использовать eval
; посмотрите Использование ссылка на переменную "в" другой переменной
Зависит от оболочки Korn ... последние версии AT&T ksh93 и mksh поддерживают это:
function echo_idx_array {
nameref arr=$1
idx=$2
echo "${arr[idx]}"
}
set -A test -- a b c
echo_idx_array test 1
В моей текущей оболочке это выводит «b».
Можно использовать UDEV для получения сведений об аккумуляторе системы.
подключен к питанию$ upower -i /org/freedesktop/UPower/devices/battery_BAT0
native-path: /sys/devices/LNXSYSTM:00/device:00/PNP0A08:00/device:0a/PNP0C09:00/PNP0C0A:00/power_supply/BAT0
vendor: Panasonic
model: 42T4801
serial: 624
power supply: yes
updated: Sat Oct 18 13:17:16 2014 (2 seconds ago)
has history: yes
has statistics: yes
battery
present: yes
rechargeable: yes
state: fully-charged
energy: 80.5788 Wh
energy-empty: 0 Wh
energy-full: 80.9892 Wh
energy-full-design: 84.24 Wh
energy-rate: 0.00372912 W
voltage: 12.224 V
percentage: 99.4933%
capacity: 96.141%
technology: lithium-ion
от батареи
$ upower -i /org/freedesktop/UPower/devices/battery_BAT0
native-path: /sys/devices/LNXSYSTM:00/device:00/PNP0A08:00/device:0a/PNP0C09:00/PNP0C0A:00/power_supply/BAT0
vendor: Panasonic
model: 42T4801
serial: 624
power supply: yes
updated: Sat Oct 18 13:37:36 2014 (22 seconds ago)
has history: yes
has statistics: yes
battery
present: yes
rechargeable: yes
state: discharging
energy: 79.9524 Wh
energy-empty: 0 Wh
energy-full: 80.9892 Wh
energy-full-design: 84.24 Wh
energy-rate: 17.172 W
voltage: 11.94 V
time to empty: 4.7 hours
percentage: 98.7198%
capacity: 96.141%
technology: lithium-ion
History (charge):
1413653856 98.720 discharging
1413653826 98.893 discharging
1413653796 99.080 discharging
1413653766 99.293 discharging
History (rate):
1413653856 17.172 discharging
1413653826 17.399 discharging
1413653796 17.453 discharging
1413653766 17.345 discharging
Я никогда не видел ничего, что бы показывало время, прошедшее от батареи, поэтому вам придется рассчитать его по приведенному выше выходу. Кроме того, этот выходной сигнал обычно показывает «время зарядки», которое является грубым показателем того, как долго он находился на мощности.
-121--89430-Если известен PID процесса, можно задать количество ядер ЦП, как описано здесь .
Если у вас нет набора задач
, вы можете установить его как,
sudo yum install util-linux
Например, чтобы назначить процесс ядру CPU 0 и 4, выполните следующие действия: следующее.
набор задач -cp 0,4 9030
С помощью опции «-c» можно указать список цифровых идентификаторов ядра ЦП, разделенных запятыми, или даже включить диапазоны (например, 0,2,5,6-10).
Также можно запустить программу с указанием конкретных ядер ЦП. Так что все эти детали присутствуют в вышеуказанной ссылке.
-121--100628-Существует способ в bash 4.3 +, который, вероятно, происходит от ksh:
echo_idx_array () # array index
{
local -n array=$1 # add nameref attribute
local idx=$2
echo "${array[idx]}"
}
$ names=(one two three four)
$ echo_idx_array names 2
three
$ days=([monday]=eggs [tuesday]=bread [sunday]=jam) # associative array
$ echo_idx_array days sunday
jam
См. также объявить -n
.
myarray=("hello world" wibble)
(2 элемента, первый из которых содержит пространство):work_on_array "${myarray[@]}"
передачи 2 параметраhello world
иwibble
;work_on_array ${myarray[@]}
передачи 2 параметраhello
,world
иwibble
. И сmyarray=(*)
,work_on_array ${myarray[@]}
передает список файлов в текущем каталоге. (Следовательно это - один из многих случаев, где мой совет имеет практическое значение.) – Gilles 'SO- stop being evil' 24.06.2012, 00:47hello
,world
иwibble
сделайте 3 параметра.) различие ABI – Gilles 'SO- stop being evil' 24.06.2012, 01:56