Новости в 2.6.25 Linux kernel

Във версия 2.6.25 на linux ядрото е въведена поддръжка на нова архитектура (MN10300/AM33) и на Orion SoC, нов интерфейс за по-точно измерване на използваната памет от процесите, управление на използваната памет на група от процеси, планиране на реалновремеви процеси с групиране, RCU с прекъсване, инструмент за измерване на латентности (latencytop), ново системно извикване timerfd(), нова работна рамка (framework) за сигурност МАС, наречена SMAC, обновена е файловата система ext4, EFI поддръжка при x86-64, нов мрежов протокол CAN, разбира се подобрена е поддръжката на някои устройства и други по-малки подобрения.

Както написах по-горе управлението на паметта вече е групово (cgrups) базирано. Cgroups, или "Control Groups" бяха въведени във версия 2.6.24 на ядрото и се използват за управление на различни ресурси в системата като планиране на процесорното време и разпределяне на паметта. Също така предлага унифициран интерфейс, базиран на виртуална файлова система, в която администраторите могат да прилагат ограничения на групи от задачи. Например в 2.6.24 ядрото са въведени два типа управление на ресурси „cpusets“ и „group scheduling“. Първия позволява прикрепяне на възли от процесор(и) и памет към произволна група от задачи (cgroup), а втория позволява прикрепяне на политики за процесорно време към cgroup.

Управлението на паметта с изолиране на памет за група от задачи може да се използва за:
  • изолиране на приложения или група от приложения. Гладните за памет приложения могат да бъдат изолирани и ограничени да използват по-малко памет;
  • създаване на cgroup с ограничено количество памет като алтернатива на зареждане на системата с mem=XXXX;
  • при виртуализация за задаване на количество памет за всяка виртуална машина;
  • при записване на дискове за контролиране на количеството памет, което се използва от останалата част от системата за да се предотвратят грешки поради недостиг на достатъчно памет.
Конфигурационният интерфейс, както и групите влизат в сила при монтиране на файловата система cgoup с опция „-o memory“. Създава се директория с произволно име (името на с-групата), добавят се задачи към групата с записване на техните PID (идентификаторите на процесите) във файла на задачата в директорията и се записват стойности в следните файлове: memory.limit_in_bytes, memory.usage_in_bytes (статистики за паметта на групата), memory.stats (повече статистики: RSS, кеш, активни и неактивни страници), memory.failcnt (колко пъти cgroup е превишила лимита си) и mem_control_type.

Във версия 2.6.24 на linux ядрото беше въведено планиране на процесорното време на групи. Това позволява разпределяне на процесорното време по различен начин от този с nice. Например, ако двама потребителя използват компютър едновременно , може да се зададе по 50% от процесорното време на всеки, независимо кой колко задачи е пуснал. До сега нямаше такава възможност и ако един потребител беше пуснал 10 задачи силно използващи процесора, а другия само 1, то тогава вторият потребител щеше да „изпитва процесорен глад“. Тази опция е „group tasks by user id“ при избор на групово разпределяне на процесорното време в конфигурационния файл на ядрото. Опцията „group tasks by Control Groups“ позволява да се задават на група от процеси приоритети. Новото в 2.6.25 е възможността за групиране на реалновремеви задачи.

За да се подобри подобри производителността на компютърни системи с повече от един процесор в 2.6 се използва RCU (read-copy-update). Това е технология за заключване на четене и запис. Новото е, че вече е с прекъсване, а целта е в linux да се постигнат подобрения при реалновремеви задачи.

Измерването на колко памет използва даден процес звучи лесно, но не е точно така и по-точно в случаите, кога процеси си споделят памет. За тази цел може да се използва /proc/$PID/smaps , но това не помага достатъчно. Затова в настоящата версия на ядрото са добавени статистики, които улесняват изчисляването. За всеки процес се създава файл /proc/$PID/pagemaps, в който се експортира (в бинарен формат) физическото разположение на всяка страница от паметта, която използва процеса. Сравняването на тези файлове на различните процеси които си споделят памет, позволява да се разбере, кои страници си споделят. Друг файл /proc/kpagemaps предоставя друг тип статистики PSS и USS. Първата разделя споделената памет на броя на процесите. Например, ако един процес има 200 страници само за себе си и 100 споделени, тогава неговата PSS ще е 250. Тази статистика се извежда също така и в /proc/$PID/smaps. USS е броят на страниците, които не са споделени. За наблюдение на статистиките са създадени както конзолни, така и графични програми.

Най-използвания „ задължитен контрол за достъп “ (Mandatory Access Control) е SELinux. SMAC (от simple) е алтернативно решението, което не е толкова мощно, но за сметка на това е по-лесно за конфигуриране.

LatencyTOP е програма за програмисти (без значение дали пишат за kernel или userspace), която може да им помогне да идентифицират, къде има голяма латентност.

От архитектурата MN10300/AM33 и мрежовия протокол CAN не съм се интересувал и затова няма да пиша за тях. Единствено за CAN знам, че има голямо бъдеще в автомобилите и е разработен от volkswagen.

Към ACPI е добавена поддръжка на WMI ( Windows Management Interface ).

В повечето Unix операционни системи има две състояния на сън – с прекъсване и без прекъсване. В linux 2.6.25 е добавено трето състояние - убиваем (killable). Когато процес е в състояние на прекъсваем сън може да бъде прекъснат от всеки сигнал. При убиваемо състояние може да бъде прекъснат само от фатален сигнал. За практическа имплементация може да се посочи, когато NFS бъде приспособен да го използва е възможно с kill -9 да се убие процес, който чака недостъпен NFS сървър.

Промените в ext4 от потребителска гледна точка са възможността за поддържане на по големи файлове и файлови системи.

Една интересна статия и една интересна новина.

Статията е на този адрес, а новината тук.

Петиция за оставане на българския език задължителен в България.

В България да отменят бългаският език ? Звучи ми като от приказка, но е почти реалност вече. Това е предложено от председателя на Комисията по образованието и науката господин Лютви Местан (по народност турчин)! На 20 март е прието на първо четене без възражение. Всеки желаещ може да се подпише на следният адрес: http://www.bgpetition.com/knijoven-balgarski/index.html

coreutils-6.10

Днес при опит за обновяване (update) на Gentoo се сблъсках със следният проблем:
[ebuild     UD] sys-apps/coreutils-6.9-r1 [6.10-r1] USE="nls*"
[blocks B ] sys-apps/mktemp (is blocking sys-apps/coreutils-6.10-r1)
[blocks B ] >=sys-apps/coreutils-6.10 (is blocking sys-apps/mktemp-1.5).

Причината е в това, че mktemp e част от coreutils-6.10. До версия 6.9 това не е така. Решението е деинсталиране на mktemp (emerge -C mktemp) и след това се инсталира новата версия на coreutils.

Интересен ден на борсите

Изминалият ден беше интересен, напрегнат и изпълнен с много новини. Еврото достигна нов исторически връх спрямо америкия долар с цена 1.5912. Цената на петрола също продължава да се покачва и да покорява нови върхове.
Започнах да пиша как си инсталирах Gentoo от stage 1 на лаптопа и се надявам скоро да съм готов и да публикувам творението си тук.

Ден на Microsoft в БСУ

На 7-ми април трябваше да се състои "ден на Microsoft" в БСУ. Очаквах малко повече от това, което чух и видях... Цялото шоу продължи по-малко от два часа. Представиха доста елементарно и маркетингово новите си продукти Windows 2008 Server, Visual Studio 2008 и SQL Server 2008, както и нещото наречено LIVE@edu. Единственото, което ми хареса е отговора на риторичния въпрос на лектора „каква е разликата между IIS 6 и IIS 7? -7 е следващата версия на 6“.
Останах учуден, когато чух за уникалните e-mail акаунти, направени съдружно с IT специалистите на университета. Университета не бил отделил нито стотинка за хардуер, защото хардуера е на Microsoft и всеки има на разположение 5 гигабайта ... За тази цел е било необходимо просто университета да сподели част от базата си данни. Не съм се замислил да използвам пощата, но възникна друг въпрос откъде накъде Microsoft ще знае по всяко време колко студенти учат в БСУ и ще има друга може би лична информация за тях? А това ще се случи във всеки университет, който е партньор на „микрософтуера“...
Windows Live@edu e е програма, насочена към всички академични среди по целия свят,а от Microsoft се гордеят с това, че са приложили големият си опит от hotmail. Целта е да се осигури комуникационна инфраструктура между студентите, преподавателите и служителите в университетите. Основата на програмата е Windows Live Mail, с всички ексти предлагани от други пощи и с важното преимущество, че студенти и преподаватели могат да ползват акаунта си и след напускане на университета и ще получават съобщения за събирания на випуски например. Дали не е поредния опит да се обвържат потребителите с услугите на "миксрософтуера"?:). Предвидили са и други услуги, които са в още по дълбок бета стадий и затова все още не всеки има достъп до тях като например споделяне на файлове и онлайн офис.
Забравих да напиша, че момичето, презентиращо Windows Live@edu, не знаеше къде може да види MAC адреса на безжичната си мрежова карта на лаптопа за да ползва мрежата на университета (причината - не била IT специалист, а философ или психолог не помня точно:))