LINUX.ORG.RU

Избранные сообщения qulinxao3

Зависимость скорости работы циклов от выравнивания кода

 , ,

Обнаружил сильную зависимость скорости работы одной вычислительной функции от того, на каком адресе она начинается. Локализовал проблему с помощью вставки NOP-ов в разные её места, выяснилось что корень всех странностей находится в этом цикле (подозреваю, что различие в скорости работы тоже локализовано в нём, хотя как это точно проверить не знаю):

00000000000016b9 <.bL11>:
    16b9:       48 8b 04 ce             mov    rax,QWORD PTR [rsi+rcx*8]
    16bd:       48 19 04 cf             sbb    QWORD PTR [rdi+rcx*8],rax
    16c1:       48 ff c1                inc    rcx
    16c4:       75 f3                   jne    16b9 <.bL11>
    16c6:       48 83 1f 00             sbb    QWORD PTR [rdi],0x0
^ вот так всё работает с «обычной» скоростью. А так (всё сдвинуто на 1 байт вниз) - на 30-35% медленнее:
00000000000016ba <.bL11>:
    16ba:       48 8b 04 ce             mov    rax,QWORD PTR [rsi+rcx*8]
    16be:       48 19 04 cf             sbb    QWORD PTR [rdi+rcx*8],rax
    16c2:       48 ff c1                inc    rcx
    16c5:       75 f3                   jne    16ba <.bL11>
    16c7:       48 83 1f 00             sbb    QWORD PTR [rdi],0x0
двигаем дальше, всё медленно, вплоть до сюда:
00000000000016c5 <.bL11>:
    16c5:       48 8b 04 ce             mov    rax,QWORD PTR [rsi+rcx*8]
    16c9:       48 19 04 cf             sbb    QWORD PTR [rdi+rcx*8],rax
    16cd:       48 ff c1                inc    rcx
    16d0:       75 f3                   jne    16c5 <.bL11>
    16d2:       48 83 1f 00             sbb    QWORD PTR [rdi],0x0
Если сдвинуть ещё на 1 байт вниз - лаги исчезают.

Собственно, если отметить первый лагающий вариант (где .bL11=0x16BA) за точку отсчёта, то итоги такие:

-7..-1 - хорошая скорость
0..11 - замедление на 30-35%
12..15 - хорошая скорость
16..23 - замедление на 15-20%
24..31 - хорошая скорость
32..32+11 - замедление на 30-35%
32+12..32+31 - хорошая скорость
Именно так, 30-35% замедление циклично повторяется через 32 байта (и дальше тоже повторяется), а вот второе замедление, сдвинутое на 16 байт от первого, и меньше по величине, и короче по байтам, и отсутствует во втором цикле. Более того, оно отсутствует и при сдвиге на 64+16, и 96+16, и 128+16, но опять появляется на 256+16 (на 512+16 его опять нет, промежуточные уже не проверял) - странно. А ещё оно появляется/исчезает в зависимости от изменений в других линкуемых модулей. Например, простое дописывание к линкеру -lm (без изменений исходников) может на него повлиять. 30-35% же замедление присутствует стабильно на своём месте.

Ещё я проверил что будет если вставлять NOP-ы внутрь цикла. Так вот, добавление например 2 NOP-ов приводит к тому, что лаги начинаются на 2 байта раньше (т.е. при той же позиции JNE как и раньше начинались), а вот заканчиваются на том же месте как раньше, т.е. при той же позиции метки (т.е. лаги от -2 до 11). Вторая зона лагов стала какой-то размазанной с усилившимся пиком в самом начале, а так же она появилась таки во втором цикле на 32+16-2.

сдвиг   время выполнения бенчмарка
-6       511.9 +- 14.8
-5       515.2 +- 12.3
-4       511.6 +- 8.9
-3       507.3 +- 7.2
-2       683.0 +- 9.2    <-- первый круг
-1       672.1 +- 12.3
0        670.5 +- 8.6
1        674.8 +- 17.1
2        669.4 +- 7.4
3        672.5 +- 11.0
4        675.0 +- 9.1
5        669.9 +- 8.9
6        675.5 +- 8.8
7        679.1 +- 7.6
8        696.9 +- 23.6
9        691.6 +- 14.8
10       680.5 +- 9.5
11       684.0 +- 9.0
12       516.5 +- 7.9
13       517.2 +- 11.6
14       792.3 +- 36.8   <--
15       605.4 +- 37.5
16       575.8 +- 24.2
17       566.0 +- 16.0
18       555.8 +- 21.6
19       562.0 +- 14.5
20       555.7 +- 8.7
21       537.2 +- 10.7
22       534.4 +- 11.2
23       549.9 +- 14.6
24       522.1 +- 10.6
25       517.8 +- 9.5
26       515.5 +- 8.4
27       517.0 +- 4.2
28       512.2 +- 7.4
29       516.8 +- 8.6
30       680.3 +- 9.2  <-- второй круг
31       675.0 +- 19.7
32       671.7 +- 8.9
33       669.2 +- 9.1
34       668.3 +- 10.8
35       667.0 +- 9.6
36       669.0 +- 8.9
37       671.0 +- 9.5
38       670.6 +- 10.8
39       676.5 +- 10.1
40       681.0 +- 10.5
41       682.1 +- 12.7
42       693.5 +- 16.7
43       689.8 +- 13.5
44       512.5 +- 4.9
45       516.9 +- 7.1
46       685.5 +- 12.3   <--
47       515.2 +- 7.6
48       519.0 +- 8.7
49       513.2 +- 7.9
50       512.4 +- 6.2
51       510.8 +- 4.7
52       510.3 +- 7.3
53       507.4 +- 7.0
54       509.2 +- 6.9

Вообще мне казалось что для более быстрой работы кода надо выравнивать начала циклов по 16-байтным границам, но тут ничего подобного незаметно, все адреса не пойми какие. Есть замеченная закономерность: когда JNE доползает до адреса 0x16c5 - лаги начинаются, когда до него доползает и начало цикла - заканчиваются. Но JNE двухбайтовый, т.е. когда он на 0x16c4 то второй его байт на 0x16c5 и лагов ещё нет.

Есть ли шанс объяснить почему так? А то мне совсем не нравится что код рандомно теряет треть скорости на ровном месте, тут я заметил, где-то не замечу, да и на разных процах это может быть по-разному, что делать?

---------------

Почти итог: адреса в дампах выше считал от начала объектного модуля, оказывается модуль автоматически (если явно не указать) по 16-байт границе не выравнивается, и адреса в бинарнике уплыли. Реальное замедление получается если тело цикла пересекает 32-байт границу (кроме случая когда за неё вылезает только один байт последней инструкции, почему-то), выглядит логично.

firkax
()

Два винта, две системы: пропробсить новую в старую

 , ,

Привет, ЛОР

Дано: два винта, две арчебазед системы. Одна старая и необновляемая уже пару лет, в виду того, что там ведро 5.15 и легаси драйвер невидии 340.108, который уже нигде без боли и лютых костылей не установишь да и смысла уже не вижу красноглазить.

Но речь не об этом.

Так вот, естественно, на старой системе все древнее: openvpn, gnutls, gcc, все короче.

Есть два конфига VPN на два сервака. На один оно работает без проблем (потому что там тоже старые openvpn и gnutls), а на второй коннектится, но через минуту рвет соединение. Там свежее все.

Вопрос к знатокам: можно как-то «пробрасывать» новую систему в старую? Либо chroot в новую, там поднимать впнку, но чтобы она работала для старой системе, в которой сижу. Есть какие-то варианты? Я нубас в этом, так что сорян, если что.

ВНИМАНИЕ: не надо предлагать шаманить конфиг у себя либо на серваке. Это исключено в силу обстоятельств.

Вопорос КОНКРЕТНО в «пробросе» новой системы в старую (либо chroot, либо еще что-то, хз). Такое вообще возможно?

Чтобы лайтово так: оп, запустил пару команд, примаунтил, включил, отключил, отмаунтил :)

Перемещено hobbit из general

Gonzo
()

домашний сервер без движущихся частей

 ,

Всех приветствую.

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

Хочется дискуссии на указанную тему:

  1. Какой вычислитель, чтобы мог быть достаточно мощным и при этом с пассивным охлаждением?
  2. какой БП?
  3. какой корпус?

Как я это вижу в идеале:

  1. как минимум 4-6 мест под диски: nvme и/или sata. Лучше максимальная гибкость. Диски либо 2,5" либо 2280. Может даже пару мест под 3.5"
  2. Вычислитель максимально мощный для пассивного охлаждения. Дома не бывает выше 24 градусов. Архитектура не важна, но хочется, чтобы проц не был узким местом, чтобы сетевая и дисковая часть была максимально отзывчивая.
  3. БП достаточный для питания всего этого. Чтобы спокойно справлялся со стартом 4-6 блинов.
  4. Корпус без дырочек с ребрами для пассивного охлаждения. Форма-фактор не важен. Если это будет лопата 40*60см и толщиной в 4 см вполне годится. Повешу на гвоздь на стену.

В тред приглашается @ncrmnt, как любитель тишины отсутствия пыли.

yax123
()

Рекомендации по использованию AI при разработке открытого кода

 , , , ,

https://www.opennet.ru/opennews/art.shtml?num=65754:

Правозащитная организация Software Freedom Conservancy (SFC), предоставляющая юридическую защиту свободным проектам и отстаивающая необходимость соблюдения лицензии GPL, подготовила список рекомендаций по использованию AI-систем на базе генеративных моделей машинного обучения при подготовке кода для открытых проектов. Рекомендации касаются юридических, этических и социальных особенностей применения AI при разработке кода под открытыми и свободными лицензиями, а также отражают взаимодействие разработчиков c AI, учитывая противоположные мнения в сообществе о допустимости применения AI в открытых проектах. Рекомендации пытаются свести к минимуму проблемы, которые могут возникнуть из-за использования AI-систем по своей инициативе или по требованию работодателя.

  1. Сообщество должно поддерживать, а не просто терпимо относиться к участникам, выступающим против применения генеративных AI-систем.
  2. Каждый участник имеет право на самоопределение в вопросах использования AI и никто не должен вынуждать применять подобные системы под давлением. Принятие политики недискриминации в отношении тех, кто отказывается от AI, и недопустимость принуждения работников компаний к использованию AI.
  3. Открытые проекты не должны отталкивать участников, применяющих AI, даже если проект ввёл запрет на принятие созданного через AI кода. В подобных проектах созданные через AI патчи следует рассматривать как слабую пробу пера и корректно отклонять их, приветствуя при этом само желание участвовать в разработке и вежливо объясняя, почему проект не принял патч.
  4. В случае создания материалов через AI, участник обязан потратить время на рецензирование, разбор сути и внесение доработок. Разработчики должны полностью понимать суть изменений и разбираться в передаваемом коде.
  5. Раскрытие в примечании к коммитам информации об использовании AI при подготовке изменений с детализацией уровня участия AI, используемых AI-систем и их версий.
  6. Код, сгенерированный AI-системой на основе промпта и не прошедший проверку человеком, допускается отправлять только в специально оговорённых случаях. Если возможность передачи подобного непроверенного кода не обозначена, то его следует считать нежелательным.
  7. Разработчики должны подробно и точно документировать своё взаимодействие с AI-моделью в процессе генерации кода и сохранять информацию о промптах наравне с исходным кодом.
  8. Юридические нормы, связанные с лицензированием и авторским правом на код, генерируемый при помощи AI, ещё находятся на стадии становления, поэтому не следует делать поспешные заключения о допустимости переписывания кода при помощи AI для замены лицензии с копилефт на пермиссивную или смены имущественных прав на код.
  9. Обрабатываемые в AI входные данные влияют на лицензирование результата. Вопросы влияния лицензий на код, используемый при обучении модели, пока остаются не решёнными. Но при генерации кода не «с нуля» (на основе голого промпта), а при работе с существующей кодовой базой, например, при подготовке патча или доработке кода, результат должен распространяться под копилефт-лицензией, если он создан при обработке кода c копилефт-лицензией.
  10. В качестве наиболее безопасного и жизнеспособного варианта рекомендуется использование копилефт-лицензий для нового кода, создаваемого при участии AI. Подобный подход снижает риски нарушения копилефт-лицензий на код, использованный при обучении AI-моделей. Судебных решений в этой области ещё не было и пока не сложилась юридическая практика, определяющая влияние на результат лицензий, под которыми распространяются материалы, используемые при обучении AI-моделей.
  11. Использование AI-систем, включая проприетарные, рассматривается как допустимый стратегический компромисс, если они способствуют ускорению развития открытого ПО.
  12. При разработке AI-систем рекомендуется развивать платформы, более дружественные к идеям открытого и свободного ПО.
  13. AI-системы должны расширять инструменты и опыт разработчика, а не заменять их и приводить к деградации навыков. Разработчики должны сохранять любопытство и желание разбираться в том, почему код ведёт себя так, а не иначе, и это любопытство должно распространяться на результаты работы AI.
  14. Разработчики должны осознанно подходить к использованию AI-систем, не обращаться к ним по мелочам и избегать бессмысленных вычислений, понимая, что выполнение AI-моделей приводит к значительному потреблению ресурсов и косвенно влияет на окружающую среду.
dataman
()

Как задавать в скриптах имя вкладки screen?

 , , ,

В screen (и tmux) название каждой вкладки '0 bash', '1 bash' ... и тд.

Что прописывать (echo ...?) в скрипте, чтоб там было не 'bash', а то что я хочу?

Перемещено hobbit из general

teod0r
()

Цифровая криминалистика в Айфоне лучше?

 , , ,

Смотрю тут видосики на тему смерти Лисан Фрон и её подруги в южноамериканских джунглях в 2014г. Но это тема не про оффтопик, а про айфон. Один из тех, кто следил плотно за расследованием, написал книгу, в которой подробно описывались результаты изучения памяти Айфона. Оказалось, что там все события довольно подробно журналируются, и даже скриншоты сохраняются каких-то изменений настроек. И это было уже в 2014г. на тогдашней версии iOS.

Интересно, как с этим дела у Андроида в 2026г. Или каждый производитель трубки мочит, как хочет?

seiken
()

Самый простой код

 

Снежинка в терминале. 1 штука.

#include <stdio.h>
#include <stdlib.h>
//Снежинка в консоли
void main ()
{
    system("clear");    
    system("sleep 1");
    printf("❄\n");
    system("sleep 2");
    system("clear"); 
    printf("\n\n\n ❄\n");
    system("sleep 2");
    system("clear"); 
    printf("\n\n\n\n❄ \n");
    system("sleep 2");
    system("clear"); 
    printf("\n\n\n\n\n\n ❄ \n");
}


AnonymUser
()

Энтузиасты дизассемблировали микрокод i386 и создали открытый CPU z386

 , , , z386,

Энтузиасты дизассемблировали микрокод i386 и создали открытый CPU z386
Группа Hardware and Drivers

Энтузиасты смогли успешно извлечь и дизассемблировать микрокод процессора Intel 80386, который из-за отсутствия документации считался «чёрным ящиком». Бинарный образ микрокода был воссоздан с привлечением AI по фотографиям кристалла в высоком разрешении, а логика работы разобрана через трассировку соединений на кристалле. Постепенно были определены структура микрокоманд (μ-ops), поля, порядок исполнения и маркеры конца инструкций. Наработки проекта опубликованы на GitHub как общественное достояние.

Выявлено, что в CPU 80386 каждая инструкция полностью исполняется через микрокод, в то время как в 8086 и современных процессорах часть инструкций обрабатывается напрямую. Кроме того, в отличие от процессоров 8086, в 80386 микрокод не реализует алгоритмы напрямую, а в основном настраивает аппаратные ускорители (умножитель, делитель, быстрый сдвиг, PTU (Protection Test Unit)).

( читать дальше... )

>>> Подробности на opennet (opennet.ru)

PunkPerson
()

Guile Scheme Web IDE

 , , ,

guIDE — полнофункциональная IDE для GNU Guile, работающая полностью в браузере. Компилирует и выполняет код Scheme с помощью среды выполнения Guile 3.0 WASM (Emscripten + pthreads), поэтому ничего устанавливать не нужно.

Характеристики:

  • IDE: Редактор с подсветкой синтаксиса (Tree-sitter + fallback lexer), файловый браузер, вкладки, функции поиска и замены, мини-карта.

  • Guile WASM Runtime: Поддерживает версию GNU Guile 3.0.11 и выше, скомпилированную в WebAssembly с поддержкой многопоточности.

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

  • ИИ-помощник: Проверка кода, оценка заданий, диалоговая помощь.

  • Совместная работа в реальном времени: Синхронизация Yjs CRDT, курсоры в реальном времени, командный чат, блокировка файлов.

  • Более 15 SRFI: Включает множество стандартных расширений, таких как SRFI-1, 8, 9, 11, 13, 16, 26, 28, 39, 41, 43, 64, 69 и другие.

  • Система расширений: Поддерживает Pure Scheme расширения с 7 типами аннотаций (команды, темы, грамматики, среды выполнения, LSP, модули, преобразования).

  • Торговая площадка: Пользователи могут публиковать, делиться и устанавливать расширения, созданные сообществом.

  • Git Sync: Функции отправки и получения изменений в удаленных репозиториях с обнаружением конфликтов.

  • Сквозное шифрование: Использует AES-256-GCM для шифрования файлов проекта на стороне клиента.

  • API для разработчиков: Предоставляет REST и GraphQL-эндпоинты, поддержку OAuth2 и персональные токены доступа, а также SDK для различных языков, включая JavaScript, Python, PHP и Scheme.


Предупреждение: большая часть этого приложения написана с помощью ИИ.

Ссылка
Исходный код

Перемещено hobbit из development

err
()

Хакерство: Введение в профессию

 

Какие книжки стоит прочитать чтобы стать профессиональным хакером/крякером/пентестером и etc? Чтобы на рынке труда тебя с руками и ногами оторвали. Если есть здесь обладатель этой квалификации то прошу: отзовись! Ну и вопрос пищи для размышлений ради: «Нужно ли хорошим хакерам быть хорошим программистом и если да то где бы она применима была бы?»

posternack01
()

Книги и материалы по Computer Science (CS)

 , , , ,

Всех приветствую!

Хотел попросить вас поделиться материалами по CS, от книг до различных видео материалов. В основном меня интересуют тематики «Как работает CPU» и «Как работает OS»

[upd]

Из полезного что я нашел (спасибо всем тем, кто посоветовал):

Introduction To OS Abstractions Using Plan 9 From Bell Labs

Tanenbaum Modern Operating Systems

qoil_ghost
()

Моя новая теория по поводу ИИ-хайпа

 , ,

В том числе по мотивам недавнего обсуждения на LOR:

https://bykozy.me/blog/attention-economics-and-software-engineering/ ­— Attention Economics and Software Engineering

В данном случае маш перевод читать будет попроще, но, судя по всему, по итогу мало кто понимает, о чём оно. А если начать пояснять и вываливать первоисточники, то там на книгу выйдет.

Если кратко:

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

Новости аля
Разработчики Godot столкнулись с наплывом «нейрослопа»
подтверждают мою позицию, но я всё-таки иду дальше в выводах.

Перемещено hobbit из talks

byko3y
()

Ant: создание среды выполнения JavaScript за один месяц

 , , , ,

Это перевод поста building a javascript runtime in one month от второго января 2026 года.

TLDR: Я создал Ant, небольшую (2 МБ) среду выполнения JavaScript. Полный исходный код, а также тесты и документацию можно найти на моем github.

Когда я начал этот проект в начале ноября, у меня была простая идея: а что, если я смогу создать движок JavaScript, достаточно маленький, чтобы его можно было встроить в программу на C, но достаточно полный, чтобы на нём можно было запускать реальный код? Что-то, что можно было бы распространять, не таская с собой сотни мегабайт V8 или Node. Я уже пробовал это раньше с минимальными копиями Deno, но этого было недостаточно.

Я не думал, что это займет месяц. Я не думал, что это будет возможно за месяц. Но вот в чём дело – когда создаёшь что-то без сроков, ты просто продолжаешь работать.

( читать дальше... )

dataman
()

Нейронные сети нетрадиционного возбуждения

 , , ,

Данная статья не стремится к научной полноте и не содержит формул, однако включает ссылки на исследования, которые были использованы при её подготовке. Статья призвана познакомить читателя с тем, как биологические механизмы могут применяться при разработке искусственных нейронных сетей для создания сильного искусственного интеллекта (AGI).

В прошлой статье [1 (linux.org.ru)] мы рассмотрели сложную структуру нейронной сети в виде кортикальных колонок. Однако передача сигнала в ней осталась такой же, как в обычных искусственных нейронных сетях. Давайте заменим её на биологический вариант.

( читать дальше... )

Перемещено hobbit из development

Obezyan
()

Линукс - отстой

 

Вот допустим у меня образ диска, сделанный dd if=/dev/sda if=image.img. А вот теперь, как в ваших хваленых Линуксах мне подмонтировать _раздел_ с этого образа, не разворачивая его? В Венде у меня есть программа PassMark OSF Mount. А у вас что? В тред приглашается vbr

lenin386
()

Luau - Lua с «батарейками», написанный на C++17

 , ,

Luau (GitHub) - встраиваемый, Lua 5.1-совместимый (и частично с Lua 5.2-5.4), язык со следующими улучшениями (или «улучшениями»?):

function foo(x: number, y: string): boolean
    local k: string = y:rep(x)
    return k == "a"
end
type Point = { x: number, y: number }
type Array<T> = { [number]: T }
type Something = typeof(string.gmatch("", "%d"))
for k, v in {1, 4, 9} do
    assert(k * k == v)
end
  • улучшенный repl (используется C-альтернатива readline Isocline)
  • и другие изменения ;)

По соображениям безопасности отсутствуют io, os, package и debug.

(En|Destr)oy!

dataman
()

Вышла библиотека CrazyCPM

 , , , ,

Вышла библиотека CrazyCPM
Группа Open Source

Состоялся первый релиз библиотеки CrazyCPM.

Библиотека написана на Python, C, Cython и предназначена для сетевого моделирования проектов и работ методом критического пути (CPM (wikipedia.org)), а также методом анализа и оценки программ (PERT).

Особенности CrazyCPM:

  1. Построение сетевых моделей типа «работы-дуги» (в большинстве существующих систем управления проектами используются сетевые модели типа «работы-вершины»).
  2. Для моделирования детерминированных проектов и работ реализован метод CPM.
  3. Для моделирования проектов и работ, сопряжённых с рисками реализован метод PERT.
  4. Для расчётов статистических параметров проектов и работ используется модифицированное PERT-распределение, что позволяет использовать библиотеку для моделирования малых и средних проектов (<100 работ на критическом пути).
  5. Библиотека позволяет строить модели с учётом особенностей назначенных на работы ресурсов (производительность, доступность во времени и т.д.)
  6. Возможен экспорт данных построенных моделей в pandas.Dataframe или в словарь.
  7. Для визуализации сетевых графиков используется Graphviz.
  8. Наиболее тяжёлые операции (построение сети) реализованы на C.

Библиотека CrazyCPM используется в прототипе системы управления проектами VibePM.

>>> Страница проекта на GitHub (github.com)

shkolnick-kun
()

Опубликован эмулятор архитектуры Эльбрус на основе QEMU

 , , ,

Группа Разработка

МЦСТ выпустила эмулятор QEMU для архитектуры E2K. Теперь программы для Эльбруса можно запускать на компьютерах с архитектурой x86‑64. Это откроет платформу для профессионалов, исследователей и энтузиастов, а также упростит разработчикам сборку и тестирование ПО.

Эмулятор qemu-e2k обеспечивает возможность, используя операционную систему семейства Linux запускать прикладные программы для операционных систем семейства Linux в машинных кодах Эльбрус (e2k) на компьютере архитектуры x86-64.

( читать дальше... )

>>> Исходные тексты QEMU от АО "МЦСТ" (openelbrus.ru)

IvGrad
()

Изучить С

 , ,

Всем привет! Надоели мне эти скриптовые аркадные языки, повесточка, докеро-голанги и тп, решил заняться изучением С. Тем более что вспомнил о том, что по факту это единственный язык который доставлял удовольствие.

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

NorthernBlow
()

Senior C-разработчик (ядро Linux, СХД), удалённо

 , ,

Привет! Ищу Senior C программиста в IT-аккредитованную компанию, разрабатывающую системы хранения данных и системы виртуализации.

Чем предстоит заниматься:

• Разработка системного программного обеспечения: гибридная СХД; scale-out СХД c поддержкой серверной виртуализации; система мониторинга; внутренние инструменты разработки;

• Разработка уровня ядра Linux: модули файловых, блочных и сетевых подсистем;

• Исследования стороннего ПО;

• Работа с чужими исходниками на разных языках программирования;

• Документирование исходного кода, методик и исследований;

• Сопровождение ПО (разработка патчей, консультирование инженеров).

Требования:

• Коммерческий опыт работы от 5 лет;

• Опыт системного программирования на C, ASM;

• Уверенное знание двух из перечисленных скриптовых языков (Bash, Python, sh, ksh);

• Уверенное знание архитектуры ядра Linux/UNIX/BSD;

• Опыт системного программирования в одном из вариантов Linux/UNIX/BSD;

• Знание английского языка на уровне чтения и восприятия документации.

Что мы предлагаем:

• Официальное трудоустройство по ТК РФ; достойный уровень оплаты труда от 300 т.р. net + квартальные премии;

• Оплачиваемые отпуск и больничные (включая внутренний больничный до 10 дней в год);

• Обучение за счёт компании: внешние курсы, конференции, внутренние тренинги;

• Оплата мобильной связи;

• Подарок на День рождения;

• Корпоративный мерч;

• Удаленный формат работы (для Москвы есть возможность периодически приезжать в офис);

• Технику предоставляем.

Резюме, рекомендации, вопросы в телеграм @olesya_sayhire

Olesya_HR
()