
Линус Торвальдс, в соответствии с графиком, в воскресенье вечером выпустил новое ядро Linux 3.18. В этой версии ядра пользователи смогут найти довольно много обновлений и новых возможностей. Осталось дождаться пока новое ядро интегрируют в репозитории и дистрибутивы. Хотя, опытные пользователи могут установить ядро прямо сейчас.
Читать полностью »
Рубрика «kernel» - 6
Вышла финальная версия ядра Linux 3.18
2014-12-08 в 9:26, admin, рубрики: kernel, linux, Настройка LinuxКак использовать список ядра Linux для создания очереди
2014-12-02 в 7:45, admin, рубрики: kernel, системное программированиеПриветствую!
В данной статье рассматривается использование реализации двусвязного списка ядра Linux.
Двусвязный список в ядре Linux реализован в файле include/linux/list.h. Мы будем использовать адаптированный вариант list.h [1], который отличается от оригинального возможностью использовать его в userspace. Например, создадим очередь — структурe данных с доступом к элементам по принципу «первый пришёл — первый вышел» для произвольного типа данных на основе list.h.
Читать полностью »
Protothread и кооперативная многозадачность
2014-11-27 в 15:57, admin, рубрики: kernel, multithreading, системное программированиеПродолжаем изучать планирование маленьких потоков. Я уже рассказала про два средства в ядре Linux, которые часто используются для отложенной обработки прерываний. Сегодня речь пойдет о совсем другой сущности — protothread Adam Dunkels, которые хоть и выбиваются из ряда, но в контексте рассматриваемой темы совсем не лишние.
А также:
- Многозадачность в ядре Linux: прерывания и tasklet’ы
- Многозадачность в ядре Linux: workqueue
- Protothread и кооперативная многозадачность
Многозадачность в ядре Linux: workqueue
2014-11-25 в 14:38, admin, рубрики: kernel, linux kernel, multithreading, workqueue, системное программирование Продолжаем тему многопоточности в ядре Linux. В прошлый раз я рассказывала про прерывания, их обработку и tasklet’ы, и так как изначально предполагалось, что это будет одна статья, в своем рассказе о workqueue я буду ссылаться на tasklet’ы, считая, что читатель уже с ними знаком.
Как и в прошлый раз, я постараюсь сделать мой рассказ максимально подробным и детальным.
Статьи цикла:
- Многозадачность в ядре Linux: прерывания и tasklet’ы
- Многозадачность в ядре Linux: workqueue
- Protothread и кооперативная многозадачность

Многозадачность в ядре Linux: прерывания и tasklet’ы
2014-11-24 в 17:59, admin, рубрики: interrupts, irq, kernel, linux kernel, multithreading, tasklet, системное программирование
В предыдущей своей статье я затронула тему многопоточности. В ней речь шла о базовых понятиях: о типах многозадачности, планировщике, стратегиях планирования, машине состояний потока и прочем.
На этот раз я хочу подойти к вопросу планирования с другой стороны. А именно, теперь я постараюсь рассказать про планирование не потоков, а их “младших братьев”. Так как статья получилась довольно объемной, в последний момент я решила разбить ее на несколько частей:
- Многозадачность в ядре Linux: прерывания и tasklet’ы
- Многозадачность в ядре Linux: workqueue
- Protothread и кооперативная многозадачность
В третьей части я также попробую сравнить все эти, на первый взгляд, разные сущности и извлечь какие-нибудь полезные идеи. А через некоторое время я расскажу про то, как нам удалось применить эти идеи на практике в проекте Embox, и про то, как мы запускали на маленькой платке нашу ОС с почти полноценной многозадачностью.
Рассказывать я постараюсь подробно, описывая основное API и иногда углубляясь в особенности реализации, особо заостряя внимание на задаче планирования.
Читать полностью »
Реанимация D-Link NAS DNS-325
2014-10-09 в 8:31, admin, рубрики: diy или сделай сам, dns-325, kernel, linux, NAS, восстановление, Восстановление данныхДобрый день!
Хочу поделиться историей о том, как я чинил примус свой домашний NAS D-Link DNS-325.
Сам NAS у меня обычно в режиме минимального потребления электроэнергии с выключенными жёсткими дисками WD Green (установлен fun_plug на внешнюю USB флешку, об этой «прокачке» есть статья на Хабре). Однажды, после отпуска, я включил питание на NAS, чтобы просмотреть/загрузить фотографии. Он не включился. Cветодиод питания весело замигал, загорелись индикаторы сотояния HDD, но мигание продолжалось и продолжалось без признаков жизни. При нормальных условиях мигание означает процесс загрузки, который должен завершиться полной инициализацией и установлением стабильного свечения power LED. После многих попыток запустить устройство, отключения жёстких дисков, нажатия кнопки reset (которая, кстати, безполезна пока загрузка не завершится успешно), я с горечью осознал, что это не тривиальная проблема, с которой мне прийдётся справиться самому из-за истёкшей гарантии (12 месяцев).
Читать полностью »
Идентификация исходников как модуля ядра Linux
2014-08-15 в 15:09, admin, рубрики: code audit, kernel, linux, module В этом посте я расскажу о своих поисках признаков того, как можно определить, что из некоторых файлов исходных текстов собирается модуль ядра Linux, а не обычный исполняемый файл.
Допустим, что информации о назначении исходников нет или её пытаются преднамеренно скрыть.
#01 __KERNEL__
При сборке исходных текстов определён символ препроцессора __KERNEL__.
Что общего между ядром Linux и iOS?
2014-08-11 в 7:50, admin, рубрики: iOS, kernel, linux, разработка под iOSЕстественно, в двух больших системах всегда найдутся общие концепции. Например, сложно избежать использования базовых алгоритмов и структур данных. Таких, как списки, массивы, деревья. Но я хочу рассказать не об этом.
iOS является объектно-ориентированной штукой. Где-то ниже Objective-C (а скоро мы сможем говорить уже и о Swift) залегают огромные пласты не-объектного кода, и под ними — Unix (а точнее BSD) система. И на том уровне у Linux и у iOS много общего. Но я и не об этом.
Давайте сравним основные структуры ядра Linux с объектно-ориентированной частью iOS.
1. Основные структуры
В обеих системах присутствует некоторое количество фундаментальных структур. Например, в iOS это будут:
Строки (NSSrting);
Массивы (NSArray);
Коллекции (NSSet);
Словари (NSDictionary);
Представление числовых примитивов (NSNumber);
Скаляры (NSRange).
Читать полностью »
Sony публикует исходные коды ядра операционной системы
2014-07-09 в 11:44, admin, рубрики: android, github, kernel, sony, Xperia, Xperia Z, xperia z1, Xperia Z2, Блог компании Sony Mobile Communications, исходный код, Разработка под androidКомпания Sony Mobile уже давно зарекомендовала себя в качестве одного из самых открытых производителей, всячески приветствующего созидательную пользовательскую активность и сторонние разработки.
В качестве очередного шага навстречу энтузиастам в области разработки программного обеспечения, Sony публикует исходный код прошивок, используемой на флагманских смартфонах. Желающие могут абсолютно бесплатно ознакомиться с опубликованным кодом на Github.
Kdump — диагностика и анализ причин сбоев ядра
2014-06-17 в 9:58, admin, рубрики: kernel, linux, selectel, Блог компании Селектел, системное администрирование, ядро, метки: kernel, selectel, ядро 
Хотя в современных Linux-системах ядро отличается достаточно высоким уровнем стабильности, вероятность серьезных системных ошибок, тем не менее, имеется всегда. Когда происходит неисправимая ошибка, имеет место состояние, называемое паникой ядра (kernel panic): стандартный обработчик выводит на экран информацию, которая должна помочь в устранении неисправности, и входит в бесконечный цикл.
Читать полностью »

