Очень волшебная кнопка.

Вчера выхватил забавный баг. Оказывается на некоторых ядрах, если нажать Alt + SysRq + J. Ведро начинает спамить в сислог и кернел лог сообщением типа:

Oct  6 00:54:45 citadel kernel: [43044.278885] Emergency Thaw on sdd1

После чего кончается место на разделе, и система тухнет.

Вот тут https://bugzilla.kernel.org/show_bug.cgi?id=47741 есть небольшой список подверженных багу версий ядер.

А вот тут https://bugs.launchpad.net/ubuntu/+source/linux/+bug/984273 этот же баг в багтрекере убунты. Если не лень, тыкайте на This bug affects you and 3 other people Edit , и выбирайте “Yes, affect me too”. Таким образом можно привлечь внимание девелоперов к этому делу.

Доступен первый кандидат в релизы ядра Linux 3.1

Линус Торвальдс объявил выпуске тестовой версии ядра Linux 3.1-rc1. Окно по приему изменений для будущего релиза ядра будет открыто еще около двух недель. 75% представленных в новом тестовым выпуске изменений касаются драйверов устройств, а 12% – поддержки аппаратных архитектур (большинство изменений связано с x86, ASoC и ARM). 40% всех изменений в драйверах относятся к тестовому дереву “staging”, 20% – к драйверам сетевых устройств, 10% – к звуковой подсистеме ALSA. Достаточно большое число коммитов зафиксировано в подсистемах KVM, iwlagn и SCSI.

Читать

Линус Торвальдс намерен выпустить вместо Linux-ядра 2.6.40 версию 3.0

Линус Торвальдс опубликовал в списке рассылки разработчиков Linux-ядра сообщение, в котором кроме обычного напоминания о необходимости своевременной отправки патчей для будущей версии Linux ядра указал на то, что число выпусков в рамках ветки 2.6.x уже слишком велико, поэтому возможно имеет смысл выпустить вместо версии 2.6.40 релиз 2.8.0. В отличие от ранее возникавших дискуссий, не ушедших дальше обсуждений, переход к новой нумерации на этот раз можно приурочить к празднованию двадцатилетия с момента появления ядра Linux и завершению работы по реорганизации кода, связанного с платформой ARM.

В процессе обсуждения некоторые разработчики склоняются к мысли, что вместо 2.8.0 следует выпустить релиз 3.0.0 или кардинально реформировать процесс нумерации ядра. Тем не менее для обеспечения совместимости с различными системами сборки и системными скриптами в дистрибутивах, общее представление X.Y.Z планируется сохранить. Например, возможна привязка номеров к дате выпусков без изменения привычного трехзнакового представления (номер 3.1.1 можно рассматривать, как первый выпуск в 2011 году, 3.1.2 – как второй и т.п.). Другой вариант – отбрасывание префикса “2.6.” и разбиение последних двух цифр номера (вместо 2.6.39 использовать версию 3.9, а вместо 2.6.40 – 4.0). Некоторые разработчики предлагали перейти к формату версий “Год.Номер.Корректирующий_номер” или “Год.Месяц.Корректирующий_номер” (например, 2011.0.0, 11.0.0 или 2011.5.0), но подобные схемы были отклонены, как нарушающие привычное представление версий ядра.

В итоге, был выделен наиболее оптимальный вариант, который скорее всего будет принят в качестве окончательного. В соответствии с предложенным методом, вместо версии 2.6.40 будет выпущен релиз 3.0.0, при этом вторая цифра будет указывать на номер версии, а третья на корректирующий выпуск. Т.е. после 3.0.0 будет представлен выпуск 3.1.0, за ним 3.2.0, 3.3.0 и т.д. В процессе накопления патчей корректирующие обновления будут представлены как 3.0.1 вместо 2.6.40.1, 3.0.2 вместо 2.6.40.2 и т.д. В будущем не исключено появление ветки 4.x.y, в качестве критериев выпуска которой названы нарушающие совместимость кардинальные изменения или накопление примерно 40 обычных версий. Цифра 40 выбрана, так как при текущем темпе разработки на выпуск 40 версий уходит примерно 10 лет, таким образом версия 4.0.0 будет выпущена в 2021 году, после того как ядру исполнится 30 лет.

Читать

Ядро Linux и его функции

Ядро Linux — один из самых крупных проектов с открытым исходным кодом, содержащий более 13-ти миллионов строк кода, но что это такое и для чего нужно?

Итак, что такое Ядро?

Ядро — самый нижний уровень легкозаменяемого ПО, взаимодействующий с оборудованием компьютера. Оно отвечает за взаимодействие приложений, работающих в пользовательском режиме, с реальным оборудованием и позволяет процессам, известным как “серверы”, получать информацию друг у друга, используя межпроцессное взаимодействие (IPC).

Разные виды ядер

Естественно, есть разные подходы к построению ядра и разнообразные архитектурные особенности, которые надо учесть при разработке ядра с нуля. В целом, большинство ядер можно разделить на три вида: монолитное, микроядерное и гибридное. У Linux ядро монолитное, в то время, как OS X (XNU) и Windows 7 (на самом деле – все Windows NT-семейства – прим. пер.) используют гибридные ядра. Давайте кратко рассмотрим эти категории, и позже углубимся в детали каждой из них.

Микроядро

Подход микроядра заключается в управлении только тем, чем должно управлять ядро – процессор, память и IPC. Практически все остальное рассматривается как дополнительное оборудование и управляется в пользовательском режиме. У микроядер есть преимущество в переносимости, так как вам не нужно беспокоится о смене видеокарты или даже операционной системы, до тех пор, пока операционная система обращается к оборудованию тем же образом. Микроядра очень малы, как в смысле занимаемой памяти, так и в смысле занимаемого места на диске при установке, и, как правило, они более безопасны, потому что большинство процессов, в том числе системных, выполняются в режиме пользователя, что не требует (и не предоставляет) многих прав доступа, в отличие от работы в режиме ядра.

Читать

Про память: OOM Killer

Стырнечено с catap.ru

 

Начинаю новый цикл «про память». Первой темой будет магический OOM Killer.

OOM Killer – это способ ядра решить проблему, когда памяти недостаточно. Известно, что виртуальной памяти может быть бесконечно много (в пределах адресации), а вот физической – вполне конечное число. Иногда процессы системы съедают ее всю, и системе надо кого‑то убить, чтобы продолжить работу. Текущая реализация OOM Killer в Linux стремится выбрать наименее важный процесс. Он выбирает среди всех процессов, кроме init и kernel threads, самый негодный (badness).

Читать