
Извините, но в 2025 году — это просто смешно:
$ time ./configure: 13.80s user 12.72s system 69% cpu 38.018 total
Пишем под *nix
Извините, но в 2025 году — это просто смешно:
$ time ./configure: 13.80s user 12.72s system 69% cpu 38.018 total
Линус Торвальдс сегодня в привычной для себя прямой и резкой манере высказался о файловых системах с поддержкой case folding (регистронезависимых файлов и папок).
Поводом послужила проблема с поддержкой case folding в Bcachefs, обнаруженная на этой неделе и уже имеющая фикс для Linux 6.15. Линус написал огромное сообщение в рассылке разработчиков Linux (LKML), изложив своё мнение о реализации case folding.
Стоит отметить, что проблема с case folding в Bcachefs — не первая для Linux: ранее уже возникали баги, связанные с обработкой эмодзи и других специальных символов Unicode.
Многие разработчики работают в Linux-среде, но не всегда глубоко понимают, как взаимодействие с ОС происходит на низком уровне. На собеседованиях всё чаще спрашивают про системные вызовы Linux. В этой статье мы рассмотрим, какие вызовы встречаются чаще всего и как они работают.
Исторически первая версия far2l — порта Far Manager на Linux, BSD и Mac, была реализована как графическое приложение. Терминалы той эпохи не умели ни передавать приложению некоторые сочетания клавиш (такие как Control+Enter), ни давать ему возможность взаимодействия с буфером обмена. Кому же нужен Far без этих возможностей? Поэтому пришлось сделать своё собственное консольное окно со своим собственным рендерингом текста — да, усложнение, зато всё сразу заработало «как-в-Винде» (а потом и консольную версию сделали тоже). И сегодня мы празднуем историческое событие: графическая версия, наиболее полная в плане соответствия UX Windows-версии, попала, наконец, в официальные репозитории Ubuntu:
Страшно вспомнить, сколько часов в день я проводил, работая в терминалах Unix и выполняя команды оболочки. По какой-то причине у разных людей сноровка при работе с оболочкой разительно отличается. Я знаю тех, кто даст мне в этом сто очков вперёд. В то же время, попадался мне один профессионал на зарплате, не знавший, что достаточно нажать клавишу «вверх», чтобы выяснить предыдущую команду.
Я неслучайно привёл такой пример: те команды, которые нам, как правило, приходится выполнять в оболочке, то и дело повторяются. Мне обычно доводится иметь дело с 50-100 уникальными (т.e., синтаксически неидентичными) командами оболочки в типичный рабочий день. Но среди этих команд можно выделить и крошечную подгруппу (напр., cargo test) таких, которыми я пользуюсь сотни раз в день.
На дворе 1994й год, Джей и Молчаливый Боб только начинают тусить «у фасада одного магазина» в Джерси, а компьютеры Apple продаются с настоящим юниксом.
Увы, но 90е давно закончились, Джей и Боб постарели — внезапно Джею уже за 50 (и двое детей), зато осталась возможность оживить давно умершее и насладиться духом тех удивительных лет.
Что мы сейчас и будем делать.
Линус Торвальдс, создатель (и великодушный диктатор) Linux, всегда с особой критикой относился к C++, объясняя почему он отвергает его в разработке ядра Linux. Но он не просто резко высказывается против использования C++, а приводит ряд аргументов, которые мы с вами сегодня и рассмотрим.
Что если можно было бы подключить своё AXI-устройство на FPGA к Linux через PCIe за вечер? В этой статье рассказываю, как написать драйвер для UARTLite через XDMA, собрать свою TTY и начать работать с GPS прямо из терминала!
В данной статье расскажем про ключевые процессы обслуживания клиентов, и смежные процессы управления — контроль качества и аналитику. Основной акцент сделаем на искусственном интеллекте. Рассмотрим также речевые технологии, вскользь коснемся классических подходов к построению автоматических сервисов.
Повышение привилегий через Disk Group — это метод, при котором злоумышленники используют членство в группе управления дисками в системах Linux. Основной целью таких атак является диск /dev/sda — основной жесткий диск. Атакующие пытаются использовать ошибки в настройках или уязвимости, чтобы получить доступ к данным и повысить свои права в системе.
Вопрос: В декабре 2024 года на полях открытой конференции ИСП РАН вы получили награду в номинации «Лучшая командная работа по статическому анализу» от ФСТЭК России и Центра исследований безопасности системного ПО ИСП РАН. Расскажите об этой награде и о вашей команде.
Николай Костригин: С 2021 года при координации со стороны Института системного программирования РАН ведется работа по проверке свободного программного кода. В деятельности Консорциума сейчас участвуют более 60 организаций — это и институты, и коммерческие компании. Мы подключились с самого начала.
Всё это делается с целью повышения доверия к программным компонентам, которые в мировом сообществе признаны критическими.
Награждение в этом году происходило впервые, это подведение первых итогов деятельности Консорциума.
Вопрос: Кто входит в Консорциум и какую он роль играет в обеспечении безопасности ПО?
Н. Костригин: Основная роль Консорциума — организационная, координационная. Через Консорциум распределяются задачи, можно отслеживать, чтобы не было дублирования, когда мы что-то проверяем по собственной инициативе. Также Консорциум накапливает и систематизирует экспертизу в области проведения исследований. Она становится доступной участникам при присоединении.
Работа по повышению безопасности отечественного ПО строится на совместных исследованиях, обмене результатами анализа, доработке и освоении новых инструментов выявления уязвимостей.
Чтобы дать собеседнику представление о масштабах проблемы лежащей перед исследователями безопасности ПО, довольно часто прибегаю к количественному описанию GNU/Linux дистрибутива: в репозиторий свободного ПО входят десятки тысяч бинарных пакетов. В дистрибутиве, который включает около двух-трех тысяч пакетов, на поверхности атаки оказываются десятки пакетов.
Давно хотели научиться работать с Wine в Linux или Mac Для запуска Windows приложений? Мой обзор-гайд для вас. Я в подробностях расскажу о том как запускать прилоежния, дебажить их, решать проблемы и покажу различные wine-loaders для работы.
Приятным событием на этой неделе стала покупка нового телевизора. Гуляя по магазину и любуясь ценниками, я заметил, что у моделей Philips и AOC в графе операционной системы стоит доселе неизвестная для меня Titan OS. Про Android TV, Tizen и WebOS был наслышан, поэтому подумал, что это просто какой-нибудь переделанный вендором Android, не более. По большому счету мне было все равно: источником изображения я планировал сделать компьютер. В итоге взял Philips 9000er series — UHD 4K телевизор с фирменной подсветкой Ambilight и Mini-LED дисплеем на 144 Hz. Но главное, внутри живет та самая Titan OS. Дальше о ней и расскажу.
Прошел ровно год с момента, когда мир с открытым ртом следил за расследованием одного из самых изощрённых бэкдоров в истории Linux. История с библиотекой xz Utils напоминала триллер: внедрение под реальным именем, доверие сообщества, закладки в коде — и случайное обнаружение в самый обычный рабочий день.
29 марта 2024 года программист Андрес Фройнд проснулся, как обычно, рано. На кухне уже фыркала кофемашина, а ноутбук мигал знакомым индикатором обновлений. Андрес любил утренние часы: пока город только-только просыпался, он уже погружался в привычную рутину — тесты, логи, графики загрузки процессора.
Утром он запустил стандартный набор тестов. Всё выглядело штатно: графики ровные, CPU не перегружен, багов не видно. И вдруг — странность. Незначительная ошибка, но не из тех, что просто игнорируешь. Андрес нахмурился. «Что это было?» — пробормотал он. Он подключился по SSH к серверу, чтобы проверить детали, и заметил ещё одно отклонение: задержка отклика в 500 миллисекунд. Полсекунды. Для большинства — ерунда. Но для Андреса — первый тревожный звонок. Он начал копать глубже.
Не так давно ко мне в руки попала игровая ретро-консоль и у меня возникло желание написать для неё свою игру. А возникало ли у вас желание написать свою игру под игровую консоль?
Сколько себя помню, меня всегда привлекали счётчики памяти в Linux: смотришь в условный htop
– в плане потребления CPU вроде всё +/- понятно, а вот память всегда считалась как-то не так, как ты это на первый взгляд ожидаешь, и долгое время у меня было довольно наивное и ошибочное представление о механизмах её работы.
Со временем некоторые вещи прояснялись, приходило понимание, как именно оно работает под капотом (до определённой степени). В какой-то момент возникла рабочая необходимость понять, куда уходит память на реальной системе – и этот случай в очередной раз показал, что местами оно устроено довольно неочевидно, и на этот вопрос не всегда просто дать ответ. Ну а помимо рабочей необходимости у меня дома давно стоит сервер, обвешанный метриками, и всегда хотелось высветить себе их в понятной форме, чтобы потом в реальном времени наблюдать, как ведёт себя система, когда в ней происходят те или иные процессы.
В этой статье я попробую разобрать, как сделать такой мониторинг и как интерпретировать его результаты. Сразу оговорюсь, что никогда не занимался разработкой ядра – вся информация ниже исключительно из личного опыта, поверхностного чтения исходников ядра и обильного гугления. Поэтому не исключено, что где-то могу быть неточным или вовсе неправым, но будем надеяться, что не сильно.
Есть множество сервисов и программ по сборке программных пакетов: OpenSuse Build Service (OBS), koji. Fedora copr, rpmbuild, mock.
Все они позволяют организовать сборку программных пакетов, релиз пакетов в репозиторий и пр. Большинство систем обладают обширным функционалом, например тот же OBS позволяет собирать как deb пакеты, так и rpm, так и AppImage и т. д. Koji позволяет разбить сборку по разным машинам и управляя билдерами организовать сборку огромного числа тяжелых пакетов, многие комплексы типа OBS и Copr вообще организованы в виде сервисов в сети и позволяют различным пользователям собирать пакеты и публиковать их в публичных репозиториях.
Зачем же еще понадобилось дополнительное средство по организации сборки rpm пакетов и репозиториев?
Объясню - хотелось бы что-то простое в установке и настройке, как например gitea, такое, что можно просто поднять на локальной машине и организовать сборку из проектов, которых не так много и которые не такие монструозные, требующие несколько билдеров.
Двоичная совместимость в Linux омрачена одним аспектом, который часто упускают из виду при рассмотрении выпуска ПО для Linux. В этой статье я расскажу, как можно увидеть этот аспект, как решать эту проблему при выпуске современного ПО и что же именно нужно сделать, чтобы устранить её полностью.
Поскольку прошлая статья про «особенную» Java вызвала интерес, мы решили продолжить праздник. Настало время познакомить разработчиков С# с темной стороной любимой технологии — сегодня шатаем .NET!
Как сделать высоконагруженную систему хранения данных в сжатые сроки? Чтобы она не падала через день, не теряла данные и не поглощала ресурсы, как Гулливер провизию в амбаре лилипутов. А еще нужно реализовать дедупликацию и заложить будущий функционал на этапе создания архитектуры. Неплохо бы и стоимость хранения гигабайта снизить до минимума, а скорость передачи данных наоборот, увеличить до второй космической.
Меня зовут Ростислав, я эксперт по разработке ПО отдела систем обработки данных в YADRO. Расскажу о вкладе нашей команды в разработку TATLIN.BACKUP: как мы с нуля создали дедуплицирующую файловую систему, а также какие вызовы преодолели за два года разработки и 200 тысяч строк кода.