• Stars
    star
    216
  • Rank 176,644 (Top 4 %)
  • Language
    C
  • License
    GNU General Publi...
  • Created about 11 years ago
  • Updated over 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Framework and Plugin design in C

Professional C programming : Framework and plugin design in C

I first met the C language 20 years ago. I have been working with C language for 12 years. I have read several C programming books, but their purpose is to teach how to start programming in C. There is no book about program in C practically for a real product. Fortunately, I have learned good C programming skill when working for companies that have good C programmers and good development process. I have also seen how great C programmers develop large scale software, from the Linux kernel sources.

This document is some part of what I have learned and seen.

For students, this document takes one or two weeks. Please focus on how the C basics, such as function pointer, pointer, macro and etc, are used in the real product. If you are already a professional C programmer, you could compare the source of this document and your product. I would be happy if you find something that can be applied to your product.

Please let me know if you have any tips for practical C programming skills. Please register your tips in the ticket of this repository. I will write a document for it and add here with your name.

I am not a native English speaker. Please inform me if you find any broken English.

  • First version in Korean: Feb. 12 2019
  • Start translation: Feb. 23 2019
  • Finish translation: Mar. 12 2019

INDEX

TODO

  • pdu allocation
  • atomic counter => per_cpu counter
  • test_and_set_bit_lock
  • function pointers -> virtual abstract layer (kernel: virtual filesystem interface)

More Repositories

1

lowlevelprogramming-university

How to be low-level programmer
9,597
star
2

book_assembly_8086

Learn 16bit x86 Assembly with emulator
324
star
3

book_assembly_8086_ko

94
star
4

book_linuxkernel_blockdrv

Learn how multi-queue block device in Linux kernel v4.4 works
CSS
76
star
5

caos

Calcium OS project for x86_64
C
38
star
6

linuxdeveloptip

38
star
7

book_assembly_64bit

26
star
8

sicp_exercise

exercises for Structure and interpretation of computer program
Scheme
12
star
9

mybrd

C
7
star
10

book_linuxkernel_blockdrv_ko

korean
6
star
11

tcppl_exercise

exercise solutions for The c++ programming language 4th edition
C++
6
star
12

my_leetcode

C
5
star
13

book_linuxkernel_md

4
star
14

assembly_64bit

Assembly
3
star
15

rust-for-linux-practice

Rust
2
star
16

yfs

C++
2
star
17

my-rust-book

Rust
2
star
18

my-cs110l-spr-2020-starter-code

Rust
2
star
19

vmm

vmm example
C
2
star
20

dlfs

Deep Learning from Scratch
Python
2
star
21

Coursera-AlgorithmsOnGraphs

C++
2
star
22

rust_tokio

Rust
2
star
23

gurugio

C
2
star
24

cka-study

1
star
25

book-rust

Rust
1
star
26

onlisp_korean

Korean translation of "on Lis"
HTML
1
star
27

hackerrank

www.hackerrank.com exercise
C
1
star
28

opentutorials_lectures

lectures uploaded in opentutorials.org
HTML
1
star
29

deltalog

Rust
1
star
30

rust-http-server

1
star
31

landoflisp_exercise

exercises of Land of Lisp
1
star
32

apss

Book of Algorithmic Problem Solving Strategies
C
1
star
33

leetcode_rust

Rust
1
star
34

linux_drv

driver exercise
C
1
star
35

professional-cpp

exercises of Professional C++ 5th
C++
1
star
36

my-paip-lisp

Common Lisp
1
star
37

cloud-infra-and-api

1
star
38

remu8086

Rust
1
star
39

ttabe-docker-study

1
star
40

practicalcommonlisp

exercise of Practical Common Lisp
HTML
1
star
41

testframe

Python
1
star
42

Coursera-FunctionalProgrammingPrinciplesinScala

Scala
1
star
43

disk_perf_with_dd

Python
1
star
44

eudyptula

C
1
star
45

rust-concurrent-prog

Rust
1
star
46

code-memorizer

Python
1
star
47

fence

C
1
star
48

ldd

linux device driver
C
1
star