C Tutorial

Open-source C projects categorized as Tutorial

Top 21 C Tutorial Projects

  • raspberry-pi-os

    Learning operating system development using Linux kernel and Raspberry Pi

  • ffmpeg-libav-tutorial

    FFmpeg libav tutorial - learn how media works from basic to transmuxing, transcoding and more. Translations: 🇺🇸 🇨🇳 🇰🇷 🇪🇸 🇻🇳 🇧🇷

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

  • bare-metal-programming-guide

    A bare metal programming guide (ARM microcontrollers)

    Project mention: STM32MP2: ST’s first Linux capable 64-bit MPU with NPU, GPU and TSN | news.ycombinator.com | 2023-08-26

    What cruftware? STM32 will run your code right away after reset clears[0].

    0. https://github.com/cpq/bare-metal-programming-guide

  • xdp-tutorial

    XDP tutorial

    Project mention: Learn BPF... Where? | /r/linuxquestions | 2023-05-29

    You're probably interested in https://github.com/xdp-project/xdp-tools and https://github.com/xdp-project/xdp-tutorial. BPF programs are (usually) written in a restricted subset of C, it's not really as simple as nft add rule inet filter input tcp dport 80 accept.

  • Hypervisor-From-Scratch

    Source code of a multiple series of tutorials about the hypervisor. Available at: https://rayanfam.com/tutorials

  • bpf-developer-tutorial

    eBPF Developer Tutorial: Learning eBPF Step by Step with Examples

    Project mention: eBPF Tutorial by Example 9: Capturing Scheduling Latency and Recording as Histogram | dev.to | 2024-01-20

    Complete source code can be found at: https://github.com/eunomia-bpf/bpf-developer-tutorial/tree/main/src/9-runqlat

  • IdeasNProjects

    *That Project's project repository

    Project mention: stack canary watchpoint triggered | /r/ArduinoProjects | 2023-06-17

    Project Github link: https://github.com/0015/ThatProject/tree/master/ESP32_MICROPHONE/ESP32_INMP441_SPEECH_TO_TEXT

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

  • lsh

    Simple shell implementation. Tutorial here -> (by brenns10)

  • PortableGL

    An implementation of OpenGL 3.x-ish in clean C

  • baremetal-arm

    An ebook about bare-metal programming for ARM

  • react-ssd1306

    📟 A React Renderer for SSD1306 OLED chip on Raspberry Pi.

    Project mention: Jest not recommended to be used in Node.js due to instanceOf operator issues | news.ycombinator.com | 2023-06-30

    It’s often cheaper to couple things tightly. Abstractions and interfaces have costs. However, they also have benefits. Perhaps React and Preact is one such example.

    React is a tiny fully agnostic library that does components, props, hooks and all that jazz. You can use it anywhere, from DOM to CLI. To tie it to DOM, a separate library exists—named, unimaginatively, ReactDOM—and that’s where the 100KB heft comes in.

    Preact is the opposite: smaller, but coupled to DOM. The architecture probably doesn’t facilitate cool stuff like render components to embedded LCD[0], and even to do SSR you would have to add extra libraries.

    [0] https://github.com/doodlewind/react-ssd1306/blob/master/docs...

  • hamt

    A hash array-mapped trie implementation in C

    Project mention: Visual Introduction to Hash-Array Mapped Tries (HAMTs) | news.ycombinator.com | 2023-08-24

    This isn't a very good explanation. The wikipedia article isn't great either. I like this description:

    https://github.com/mkirchner/hamt#persistent-hash-array-mapp...

    The name does tell you quite a bit about what these are:

    * Hash - rather than directly using the keys to navigate the structure, the keys are hashed, and the hashes are used for navigation. This turns potentially long, poorly-distributed keys into short, well-distributed keys. However, that does mean you have to compute a hash on every access, and have to deal with hash collisions. The mkirchner implementation above calls collisions "hash exhaustion", and deals with them using some generational hashing scheme. I think i'd fall back to collision lists until that was conclusively proven to be too slow.

    * Trie - the tree is navigated by indexing nodes using chunks of the (hash of the) key, rather than comparing the keys in the node

    * Array mapped - sparse nodes are compressed, using a bitmap to indicate which logical slots are occupied, and then only storing those. The bitmaps live in the parent node, rather than the node itself, i think? Presumably helps with fetching.

    A HAMT contains a lot of small nodes. If every entry is a bitmap plus a pointer, then it's two words, and if we use five-bit chunks, then each node can be up to 32 entries, but i would imagine the majority are small, so a typical node might be 64 bytes. I worry that doing a malloc for each one would end up with a lot of overhead. Are HAMTs often implemented with some more custom memory management? Can you allocate a big block and then carve it up?

    Could you do a slightly relaxed HAMT where nodes are not always fully compact, but sized to the smallest suitable power of two entries? That might let you use some sort of buddy allocation scheme. It would also let you insert and delete without having to reallocate the node. Although i suppose you can already do that by mapping a few empty slots.

  • zephyr-rtos-tutorial

    Zephyr: Tutorial for beginners

  • dynamic-programming

    A tutorial aimed to give an understanding of common dynamic programming problems

  • DTLS-Examples

    Examples for DTLS via SCTP and UDP using OpenSSL

  • Unity_Projects

    That Project's Source Code

  • sdlamp

    A tutorial on writing a simple media player with SDL.

  • revolving-doors

    A tutorial on the illumos Doors API

    Project mention: Revolving Doors: Learning the Illumos Doors API | news.ycombinator.com | 2023-05-03
  • SuperGreenOSBoilerplate

    ESP32 Boilerplate code generator - See README ->

  • Multipipe_tutor

    C multi-pipe implementation, dissection and explanation.

  • kuroko-wasm-repl

    In-browser REPL for Kuroko

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

NOTE: The open source projects on this list are ordered by number of github stars. The number of mentions indicates repo mentiontions in the last 12 Months or since we started tracking (Dec 2020). The latest post mention was on 2024-01-20.

C Tutorial related posts

Index

What are some of the best open-source Tutorial projects in C? This list will help you:

Project Stars
1 raspberry-pi-os 12,818
2 ffmpeg-libav-tutorial 9,440
3 bare-metal-programming-guide 2,382
4 xdp-tutorial 2,184
5 Hypervisor-From-Scratch 1,929
6 bpf-developer-tutorial 1,817
7 IdeasNProjects 1,632
8 lsh 1,366
9 PortableGL 898
10 baremetal-arm 564
11 react-ssd1306 357
12 hamt 256
13 zephyr-rtos-tutorial 220
14 dynamic-programming 147
15 DTLS-Examples 129
16 Unity_Projects 84
17 sdlamp 50
18 revolving-doors 37
19 SuperGreenOSBoilerplate 27
20 Multipipe_tutor 26
21 kuroko-wasm-repl 8
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com