home.social

#c_language — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #c_language, aggregated by home.social.

  1. Тетрис в ядре Linux

    Вероятно, вы знаете, что если запустить ядро Linux без корневой файловой системы или файла initramfs, то оно упадет с сообщением о панике ядра. Но возможна ли работа ядра Linux без этих, вроде бы обязательных компонентов? Ответ на вопрос - да, возможна, но использовать такие возможности в конечном продукте не стоит. При запуске ядра ему могут передаваться параметры через командную строку. Одним из параметров является rootwait , указывающий ядру на то, что нужно подождать появление корневой файловой системы. В этом случае ядро ожидает появление корневой системы, а не завершается выполнение ядра с ошибкой. Формально ничто не мешает написать модуль ядра, который взаимодействует с клавиатурой и дисплеем и временно выполняет функции пользовательского приложения, пока ядро ожидает корневую файловую систему. Пользовательским приложением может быть, например, игра Тетрис. Она из-за своей простоты в реализации и зрелищности добавляет наглядности в изучении темы и дает чувство завершенности. А мысль о том, что тетрис, работает в ядре, усиливает эффект.

    habr.com/ru/companies/timeweb/

    #linux #linux_kernel #linux_modules #qemu #c_language #lowlevel #ненормальное_программирование #timeweb_статьи

  2. Chrome, Xfce и очень страшное кино

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

    habr.com/ru/articles/971828/

    #chrome #linux #systemd #inhibit #xfce #xfce4 #c_language

  3. Парсим XML и JSON на ассемблере

    Отобрал для вас несколько крайне интересных, но малоизвестных проектов, реализующих работу с XML и JSON. Кроссплатформенных и без зависимостей. На чистом С и ассемблере.

    habr.com/ru/articles/964522/

    #json #xml #nasm #assembler #c_language #simd #simdjson #freebsd

  4. Корутины? Простейшая имплементация на C, protothread и Arduino

    *иногда хочется уйти от управляемых будней Корутины — это функции, которые могут приостанавливать своё выполнение и возобновлять его позже, сохраняя своё состояние между вызовами. Это позволяет выполнять несколько задач одновременно без необходимости создания отдельных потоков или процессов.

    habr.com/ru/articles/841472/

    #arduino #c_language #protothreads #duff's_device #coroutines #программирование