CVE-2018-8897

Изумительная, как ни крути история. Разработчики (ВСЕ!!!) неправильно поняли описание инструкции в мануале по 64 разрядным процессорам, в результате чего в ядрах ВСЕХ ОС дыра.

К счастью заштопали уже. Так что срочно обновляться.

Примечательно что, линукс крышится, а в винде можно повысить привелегии.

https://www.opennet.ru/opennews/art.shtml?num=48569
https://security-tracker.debian.org/tracker/CVE-2018-8897

CVE-2016-5696

В начале июня этого года стало известно о уязвимости в tcp/ip стеке ядра linux версия от 2.6 до 4.7 (в 4.7 пофиксили). Суть уязвимости в возможности удаленно сбрасывать tcp сессию, подбирать номер пакета в tcp последовательности. Исследователи обнаружившие уязвимость сообщают о возможности проведения атака типа mitm.

Для Debian/Ubuntu заплатка выпущена, обновленные пакеты уже в репозитории.

https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-5696

Если под ваш дистрибутив нет патча, есть еще вот такой вариант:

This RFC 5961 has allegedly only been implemented on Linux, not Windows or Mac OS.

The fix allegedly is to enter the following in your sysctl.conf (mine is in /etc)

#—————————————————————
# Fix RFC RFC 5961 problem
#—————————————————————

net.ipv4.tcp_challenge_ack_limit = 999999999

The (as root) run sysctl -p (or reboot)

Отсюда: https://www.linkedin.com/groups/49301/49301-6169443184947519488

Linux порталы рапортуют о скором релизе Linux Kernel 4.0

Собственно, как и в прошлый раз, причина смены мажерного номера – исключительно эстетическая, т.е. каки-то серьезных нововведений в 4.0 не будет.

НО. Особо порадовало следующее (цитата с лора):

Весомым аргументом в пользу ядра 4.0 также стало желание как можно скорее увидеть выпуск 4.1.15 – это номер версии ядра Linux, показанный в фильме Терминатор, при демонстрации интерфейса киборга T-800.

Что тут скажешь, до 2015 мы дожили, но машины по прежнему ездят по дорогам (Back to The future). До 4.1.15 тоже доживем.

Падение скорости записи USB на Ubuntu 12.04

Пару дней не мог понять, какого хрена скорость записи на USB HDD падает до 2 Мб\с. Причем проблема не постоянная. После перезагрузки работает вроде нормально. Проблемы начинаются через некоторое время.

Перебрал самые очевидные варианты, после, изучив логи, нашел там: “assuming drive cache: write through”.

Начал разбираться, пришел к мысли, что нужно попробовать сменить ведро.

Оказалось, что не зря я подозревал в нехорошем, ядро из Hardware Enablement Stack.

Откатился к ядру 3.2 из 12.04. Проблема исправилась.

По поводу того, как удалять эту гадость, не я один вопросом задавался: http://askubuntu.com/questions/265999/how-to-remove-kernel-lts-enablement-stack

UPD: Убил кучу времени на разгребание зависимостей, поэтому хочу сразу предупредить, если соберетесь удалять эту напасть, примите во внимание, что возможно XORG не запустится, и придется все редать в консоли. Запаситесь мануалами.

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

Вчера выхватил забавный баг. Оказывается на некоторых ядрах, если нажать 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.11. В шутку новому ядру присвоено кодовое имя “Linux for Workgroups”, по аналогии с Windows 3.11 for Workgroups. Среди наиболее заметных улучшений: технология сжатого кэширования раздела подкачки Zswap; флаг O_TMPFILE для создания “невидимых” временных файлов; возможность упаковки ядра с использованием сжатия LZ4; экспериментальная поддержка кластерной файловой системы Lustre; спящий режим IRST; динамическое управление питанием GPU Radeon; NFS 4.2; применение SELinux для NFS; порт KVM и Xen для архитектуры ARM64. В новую версию принято 10.7 тысяч исправлений от 1239 разработчиков, размер патча – 44 Мб (изменения затронули 10475 файлов, добавлено 789 тысяч строк кода, удалено 341 тысяч строк). Около 43% всех представленных в 3.11 изменений связаны с драйверами устройств, примерно 23% изменений имеют отношение к обновлению кода специфичного для аппаратных архитектур, 11% связано с сетевым стеком, 5% – файловыми системами и 5% c внутренними подсистемами ядра. 9.1% изменений внесено сотрудниками компании Intel, 8.5% – Red Hat, 8.3% – Linaro, 4.5% – Samsung, 3.9% – IBM, 3.0% – Texas Instruments, 2.9% – SUSE, 2.6% – AMD, 2.1% – Google, 1.3% – Oracle, 1.3% – ARM, 1.1% – Cisco.

Доступен первый кандидат в релизы ядра 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. Практически все остальное рассматривается как дополнительное оборудование и управляется в пользовательском режиме. У микроядер есть преимущество в переносимости, так как вам не нужно беспокоится о смене видеокарты или даже операционной системы, до тех пор, пока операционная система обращается к оборудованию тем же образом. Микроядра очень малы, как в смысле занимаемой памяти, так и в смысле занимаемого места на диске при установке, и, как правило, они более безопасны, потому что большинство процессов, в том числе системных, выполняются в режиме пользователя, что не требует (и не предоставляет) многих прав доступа, в отличие от работы в режиме ядра.

Читать

Con Colivas и планировщики в Linux

http://romaha.livejournal.com/

 

Не так давно в комментариях к моему посту [info]al_zatv написал: «Читал недавно про дядьку, который обиделся что его крутой планировщик задач выкинули из ядра линукс и заменили на почти такой же только хуже. Мотивировали тем, что этот дядька хирург и может бросить поддерживать свой планировщик». Информация заинтересовала. Что за человек? Что за планировщик такой он написал?

Для тех кто не в курсе, планировщик (sheduler) наверное самая ключевая технология в современных операционных системах. Очень упрощенно ее можно объяснить так. Если один процессор может обрабатывать только одну инструкцию за определенный момент времени, то как же организовать многозадачность? Очевидно, что надо выполнять их попеременно, так, чтобы у конечного пользователя сложилась иллюзия, что все выполняется одновременно. Указанная задача как раз и возлагается на планировщик.

Читать