• Конец Золотого Века. История процессоров поколения Intel Pentium III. Часть 2


      Это вторая часть статьи — история Pentium III оказалась слишком насыщена событиями и уместить их в одну статью, не сделав ее чрезмерно тяжеловесной не получается. Давайте вспомним, что было в первой части:

      • Мы сравнили поздний Pentium II (Deschutes) и ранний Pentium III (Katmai) и почти не нашли отличий.
      • Удивились производительности встроенного видео i810.
      • Вытерли скупую слезу, вспоминая горькую судьбу i820.
      • Искали медь в медных рудниках и не нашли.
      • Рассмотрели весь спектр чипсетов других производителей.
      • Не в последний раз помянули добрым словом i440BX.
      • Нашли компромисс в i815.

      А теперь нас ждут новые приключения! На старт, внимание, марш!
      Читать дальше →
    • Второе интервью с разработчиком Reiser4 Эдуардом Шишкиным

        Недавно со мной связался Эдуард Шишкин и попросил опубликовать второе интервью (что я с радостью и делаю).

        С первым интервью (2010-го года) можно ознакомиться здесь.

        Читать далее
      • Релиз CLion 2021.1: глобальный анализ потоков данных, улучшения для удаленной работы, постфиксное автодополнение

          Привет, Хабр!

          В JetBrains стартовал новый релизный год: все наши десктопные продукты обновились или обновятся в самое ближайшее время. Сегодня мы хотим поговорить о CLion 2021.1 — новейшей версии нашей кроссплатформенной IDE для разработки на C и C++.

          В этом обновлении много яркого и интересно
        • POHMELFS: NFS по-новому

            Те, кто следил за обновлениями ядра, могли заметить, что в релиз 2.6.30 была добавлена поддержка POHMELFS.
            Что же это такое — Похмельная файлуха?
            Изучение окрестностей странички проекта позволило предположить, что разработку ФС ведет московский программист Евгений Поляков (и только он!), у которого на том же сайте есть немало других интересных проектов, таких, например, как порт CARP под Linux. В общем, сложилось впечатление, что программист на редкость грамотный и упорный.
            Вернемся к PohmelFS. статья в Википедии подтверждает причастность похмелья к названию, которое для приличия расшифровывается как Parallel Optimized Host Message Exchange Layered File System. Документация на страничке проекта говорит о том, что в перспективе PohmelFS — распределенная ФС с избыточностью, контролем доступа и прочими прелестями, разрабатываемая так, чтобы не сильно отставать по производительности от локальных ФС. Этакая альтернатива разнообразным GFS, GlusterFS и прочим Coda. Но это все будет после интеграции проекта с двумя другими — DST и Elliptics. На текущий момент PohmelFS — это альтернатива старому недоброму NFS, почти всюду показывающая бо́ льшую производительность (пруфлинк).

            под хабракатом процесс настройки на небольшом зоопарке
            Читать дальше →
          • Яндекс отключил расширения с аудиторией в 8 млн пользователей. Объясняем, почему мы пошли на такой шаг

              Сегодня мы приняли решение отключить расширения SaveFrom.net, Frigate Light, Frigate CDN и некоторые другие, установленные у пользователей Яндекс.Браузера. Совокупная аудитория этих инструментов превышает 8 млн человек.

              В этом посте мы расскажем о причинах и поделимся с сообществом результатами анализа деятельности расширений. Вы узнаете про тайное воспроизведение видео из онлайн-кинотеатров с целью накрутки просмотров. Увидите фрагмент кода, содержащий механизм для перехвата токенов социальных сетей. Мы покажем, как организована динамическая загрузка и выполнение произвольного кода без обновления расширений.



              Читать дальше →
            • Что делать, если «кина не будет» или как обойти блокировку сайта провайдером

                Настал мой законный выходной и, выбрав время для просмотра фильма (люблю я старую классику), я занялся его поиском. Зайшел на один из привычных для меня сайтов, и наткнулся на такую вот блокировку данного ресурса.

                блокировка

                «Вот те раз!» — подумал я. Ни в одном реестре запрещенных сайтов данный ресурс не присутствовал и, с чего билайн его заблокировал — непонятно. Естественно после таких вот «заявочек» в голову полезли страшные мысли: «а что если завтра любимого „кина“ не будет!». Данные мысли тут же подвигли меня начать искать способы борьбы с данной ситуацией, и написать, для тех кому будет интересно, маленький обзор нескольких решений по обходу блокировки сайтов. (под катом скрины)
                Читать дальше →
              • Поиск альтернатив для Flash Player на примере реального проекта

                  Надпись “Поддержка Flash Player будет прекращена в декабре 2020 года” в браузере способна вызвать различные эмоции у пользователей, начиная от облегчения, что де уязвимости решены, до осознания некоего предательства со стороны технологических гигантов. Первые, возможно, пострадали от вируса, некогда внедренного на сомнительном сайте, последние же вынуждены прикрывать проект, почти полностью зависящий от этой технологии.
                  В начале 2016 года, когда перспективы Flash все еще были радужными, автору этой заметки пришла идея реализовать контент сайта с применением встраиваемых SWF-роликов. К тому времени уже были звоночки, наподобие претензий Стива Джобса к Adobe в 2010, заключающиеся в том, что проприетарный продукт не достоин быть внедрен в проприетарные ОС. Здесь должен быть ироничный смайлик. В то время мобильный трафик не был таким заметным (а трава зеленее) и всерьез такие заявления мало кто воспринимал.
                  Читать дальше →
                • Групповой иск к WD по поводу тайного перехода на SMR

                    Хорошие новости по поводу SMR жестких дисков. Против WD подан групповой иск компанией Hattis Law, на групповых исках и специализирующейся. Ранее компания уже выигрывала иски, например против McAfee за автоматическое продление подписок по более высокой цене.

                    Иск для американцев и канадцев, россиян касается только косвенно. Но касается. Есть надежда, что (1) производители получат урок деньгами — думаю, за Seagate и Toshiba тоже при успехе с WD не заржавеет (2) само буквосочетание SMR приобретает выраженную токсичность и появляется надежда, что, как минимум, не все диски в будущем будут использовать эту технологию. Так что хотелось бы просить затронутых коллег-американцев поучаствовать в иске.
                    Читать дальше →
                  • Список известных SMR дисков

                    • Перевод
                    Англоязычный оригинал опубликован в форуме ixsystems и вряд ли широко известен всем, кто может столкнуться с проблемой. Хотя оригинал датирован 16 апреля 2020, он ссылается в том числе на более поздние публикации, то есть обновлялся.

                    Жесткие диски, которые записывают данные в перекрывающихся,
                    Читать дальше →
                  • Настройка squid или как не купить платное решение

                      image

                      Всем привет!

                      Часто в организациях используем разного рода прокси, прокси как составляющая программного шлюза или самостоятельный классический вариант squid + анализатор логов и т.п.

                      Мы пытались внедрить решение от Ideco и ИКС, в итоге остановились на squid. Под катом история пути и техническая информация по настройке старого доброго кальмара.
                      Читать дальше →
                    • Подключение управлямых блоков питания, сенсоров и реле к серверным материнским платам. Без Arduino

                        Подключение различных сенсоров, датчиков, реле, GPIO-расширителей и прочего «ардуиновского» хозяйства по шине I²C напрямую к серверным материнским платам через IPMI-интерфейс бортового контроллера (BMC). Практические примеры I²C-устройств и работа с ними из командной строки утилитой ipmitool. SMBus, PMBus и управление блоками питания. Не очень документированные ограничения и вопросы безопасности. Разоблачение проприетарщины.

                        После установки сервера в самодельную конструкцию порой хочется подключить к нему ещё чего-нибудь: например, датчики температуры, давления, влажности, ЖК-экранчики или даже ШИМ-драйверы моторчиков. Бывают глючные внешние устройства, которые приходится удалённо и жёстко сбрасывать с помощью реле, не уровнив при этом весь сервер целиком. А может, читателю просто захотелось гребёнку GPIO с гирляндой светодиодов? Если это не одноплатник типа Raspberry Pi, а полноразмерный сервер, приходится навешивать микроконтроллер и возиться с ним: писать прошивку, тестировать, налаживать стык с хостом и т.д. Иногда это интересно само по себе, но бывает и наоборот: скорей бы скриптину написать да запустить, наконец, лишь бы работало.

                        Необычные разъёмы на железе всегда вызывали у автора смешанные чувства инженерно-технического зуда и вентиляторного фетишизма. Об этих занимательных разъёмах здесь и речь.
                        Читать дальше →
                      • Выявляем процессы с дисковой активностью в Linux

                          TL;DR: статья рассказывает об удобном, быстром и надежном способе определения Linux-программ, записывающих данные на диск, что помогает в выявлении большой или аномально частой нагрузки на дисковую подсистему, а также позволяет оценить накладные расходы файловой системы. Это особенно актуально для SSD в ПК, EMMC и Flash-памяти в одноплатных компьютерах.
                          В ходе написания статьи обнаружилось, что запись нескольких килобайт данных на файловую систему BTRFS приводит к записи 3 мегабайт реальных данных на диск.

                          Введение

                          «Ой, ерунда, ячейки памяти на современных SSD выйдут из строя через десятки лет обычного использования, не стоит об этом беспокоиться, и уж тем более переносить swap, виртуальные машины и папку профиля браузера на HDD» — типичный ответ на вопрос о надежности твердотельных накопителей c гарантированными ≈150 TBW. Если прикинуть, сколько типичное ПО может писать данных, то кажется, что 10-20 ГБ в сутки — уже большая цифра, пусть будет максимум 40 ГБ, куда уж больше. При таких цифрах ответ вполне разумен — нужно 10 лет, чтобы достичь гарантированных значений по количеству перезаписи ячеек, при 40 ГБ записанных данных ежедневно.
                          Однако за 6 лет я пользуюсь уже третьим SSD: у первого вышел из строя контроллер, а второй начал перемещать данные между ячейками несколько раз в день, что оборачивалось 30-секундными задержками в обслуживании записи.

                          После 7 месяцев использования нового SSD я решил проверить количество записанных данных, как их сообщает сам диск через SMART.
                          19.7 ТБ.
                          Всего за 7 месяцев я использовал 13% от гарантированного количества записанных данных, притом, что он настроен в соответствии с рекомендациями по выравниваю разделов и настройке ФС, swap у меня почти не используется, диски виртуальных машин размещены на HDD!
                          Читать дальше →
                        • Как начать и не бросить писать ОС

                          Очередной велосипедЧитая Хабр в течении последних двух лет, я видел только несколько попыток разработки ОС (если конкретно: от пользователей pehat и iley (отложено на неопределённый срок) и Igor1024 (не заброшено, но пока больше походит на описание работы защищённого режима x86-совместимых процессоров, что бесспорно тоже необходимо знать для написания ОС под x86); и описание готовой системы от alman (правда не с нуля, хотя в этом нет ничего плохого, может даже наоборот)). Мне почему-то думается, что почти все системные (да и часть прикладных) программисты хотя бы раз, но задумывались о написании собственной операционной системы. В связи с чем, 3 ОС от многочисленного сообщества данного ресурса кажется смешным числом. Видимо, большинство задумывающихся о собственной ОС так никуда дальше идеи и не идёт, малая часть останавливается после написания загрузчика, немногие пишут куски ядра, и только безнадёжно упёртые создают что-то отдалённо напоминающее ОС (если сравнивать с чем-то вроде Windows/Linux). Причин для этого можно найти много, но главной на мой взгляд является то, что люди бросают разработку (некоторые даже не успев начать) из-за небольшого количества описаний самого процесса написания и отладки ОС, который довольно сильно отличается от того, что происходит при разработке прикладного ПО.

                          Этой небольшой заметкой хотелось бы показать, что, если правильно начать, то в разработке собственной ОС нету ничего особо сложного. Под катом находится краткое и довольно общее руководство к действию по написанию ОС с нуля.

                          Читать дальше →
                        • Патчим EDID телевизора из-под Linux

                          • Перевод
                          Мой телевизор («старая» модель LG 32LG5000) никогда не работал в Linux. Каждый раз, когда я подключал его через HDMI-порт, ядро сообщало мне ошибку:
                          kernel: [  869.677850] [drm:drm_edid_block_valid] *ERROR* EDI  has major version 2, instead of 1

                          и полностью игнорировало его.

                          Эта проблема меня не сильно-то и беспокоила, т.к. я не часто им пользовался, да и VGA-порт работал, хоть и с максимальным разрешением 1360×768. Однако сегодня, когда я решил посмотреть фильм, качество вывода через VGA было невероятно хреновым, и я решил с этим покончить.

                          Анализируем EDID


                          Для тех, кто не знает, EDID — небольшое количество данных, содержащих в себе информацию о возможностях монитора, в основном разрешения и тайминги, которые он поддерживает. Сообщение об ошибке интересно тем, что в нем говорится об EDID 2.0, которого (почти) никогда не существовало. Вот что нам говорит Wikipedia:
                          Структура EDID имеет версии от v1.0 до v1.4 размером в 128 байт, каждая последующая версия обратно совместима с предыдущей. Структура EDID v2.0 была размером 256 байт, однако позже была объявлена устаревшей и на замену ей пришла v1.3.

                          Похоже, EDID 2.0 был объявлен устаревшим где-то в 2000. Довольно забавно, что ТВ 2008 года использовал именно эту версию.
                          Читать дальше →
                        • std::atomic. Модель памяти C++ в примерах

                            Для написания эффективных и корректных многопоточных приложений очень важно знать какие существуют механизмы синхронизации памяти между потоками исполнения, какие гарантии предоставляют элементы многопоточного программирования, такие как мьютекс, join потока и другие. Особенно это касается модели памяти C++, которая была создана сложной таковой, чтобы обеспечивать оптимальный многопоточный код под множество архитектур процессоров. Кстати, язык программирования Rust, будучи построенным на LLVM, использует модель памяти такую же, как в C++. Поэтому материал в этой статье будет полезен программистам на обоих языках. Но все примеры будут на языке C++. Я буду рассказывать про std::atomic, std::memory_order и на каких трех слонах стоят атомики.

                            Читать далее
                          • Как писать книгу по физике в LaTeX. Cтатья 1

                            • Tutorial
                            Это моя первая статья на Хабре.

                            Глава 1. Введение


                            1.1 Позвольте представиться и почему я это пишу

                            Я — научный сотрудник, физик. Недавно выпустил книгу по спектроскопии объемом 880 страниц и весом 1560 грамм. Эту книгу я писал 9 лет, параллельно читая лекции по ее содержимому. Она отняла у меня очень много времени, что естественно. Что не естественно — это то, что громадная часть потраченного времени ушла на оформление, то есть на изучение языка Латех. И это при том, что я на Латехе пишу всю жизнь, лично написал и опубликовал около 50 статей в разных издательствах.

                            В этой статье (планируется продолжение, но это как пойдёт) я хотел бы поделиться с читателями своими, с большими затратами полученными знаниями. Если читатель пишет только статьи, то моя статья ему не очень нужна — в ней собрано то, что требуется авторам больших книг.

                            После публикации книги (пока, увы, только на русском языке) у меня возникло громадное желание написать ещё книгу "Как написать книгу по физике в Латехе"
                            Читать дальше →
                          • CLion 2020.2: поддержка проектной модели Makefile, больше C++20 и не только

                              Привет, Хабр!

                              У нашей команды выдалось очень насыщенное лето, результатами которого мы и спешим сегодня поделиться. Итак, встречайте новый релиз CLion 2020.2!

                              CLion release

                              Коротко о том, что вошло в новую версию:

                              • Поддержка проектной модели Makefile.
                              • Последние обновления в CMake.
                              • Новые возможности C++20: explicit(bool), назначенные инициализаторы (designated initializers), циклы for на основе диапазонов с инициализаторами.
                              • Обновленный статический анализатор кода: анализ на висячие указатели (dangling pointers), поиск возможностей упрощения кода, поиск неиспользуемого кода, анализ возвращаемого значения функции, ограниченной концептом.
                              • Юнит-тестирование: поддержка нового фреймворка doctest, новые возможности Catch2 и Google Test. А также упрощение сбора метрик покрытия кода.
                              • Обновления в плагине PlatformIO для разработки встроенных систем.
                              • Улучшения в поддержке систем контроля версий.
                              • Улучшения производительности редактора.
                              • Исправления в отладчиках.
                              Читать дальше →
                            • SCT Error Recovery Control

                                … или что такое на самом деле 'raid edition' для жёстких дисков



                                Немного теории


                                Существуют две стратегии поведения НЖМД при обнаружении ошибки:
                                • standalone/desktop — пытаться прочитать до последнего. Это ощущается как «тормозящий винт», который всё-таки работает, если это единичный сбой, то «затупило, но прошло», плюс характерный перестук перекалибрующихся головок.
                                • raid — отваливаться тут же. Это ощущается как «внезапно была ошибка диска но потом mhdd и т.д. НИЧЕГО НЕ НАШЁЛ ЧТО МНЕ ДЕЛАТЬ».
                                Статегии очевидным образом различаются по предназначению — десктоп лучше протупит, но ошибку не выдаст, в рейде есть запасной винт, и терпеть минутные тормоза на чтении никто не имеет никакой возможности. Не получилось прочитать? Читаем с запасных винтов, помечаем весь винт как сбойный, начинаем ресинк, а диск потом отправят в утилизатор. Возможно, незаслуженно, но нечего икать на ответственной должности.

                                Управление стратегиями поведения при ошибках — это фича дорогих винчестеров. В десктопных сериях её часто просто нет, или она есть, но без права включения — винчестер тупит над ошибкой столько, сколько сочтёт нужным. Второй важный момент — на рейдовых жёстких дисках эта опция включена по-умолчанию. Что может приводить к проблемам.

                                Расшифровка названия


                                Возможность управления поведением диска при ошибках называется очень и очень путанно: SCT ERC. Это расшифровывается как SCT Error Recovery Control. SCT в свою очередь название общего протокола SMART Command Transport. SMART в свою очередь расшифровывается как Self-Monitoring, Analysis and Reporting Technology, таким образом, полная расшифровка SCT ERC звучит так: Self-Monitoring, Analysis and Reporting Technology Command Transport Error Recovery Control (выдохнули).
                                Читать дальше →
                              • Говорящая машинка из старого мобильника

                                Привет, Хабр. Наверное у каждого человека дома валяются старые мобильники. Сдохла батарея, поцарапался экран, просто надоел.

                                В ряде случаев такой «старый» телефон — довольно продвинутое устройство.
                                Читать дальше →
                              • Время против памяти на примере хеш-таблиц на Java

                                  Эта статья иллюстрирует т. н. компромисс скорости и памяти — правило, которое выполняется во многих областях CS, — на примере разных реализаций хеш-таблиц на Java. Чем больше памяти занимает хеш-таблица, тем быстрее выполняются операции над ней (например, взятие значения по ключу).

                                  Читать дальше →