大家有没有值得推荐的 c 语言的开源项目,用来学习或者贡献的。
最近在学 c ,希望找个 c 的开源项目看看,最好是网络 tcp/ip 相关的开源项目,其他的也可以,星星多点的,希望各位大佬推荐一下。
ps:
1.如果有点汇编也行,我也想再学学汇编
2.物联网相关的也行,单片机方向
3.nginx 就算了,一口吃不了个胖子,希望能有个总体的代码量少点的。
c 语言知名项目 github.com/torvalds/linux
这个我要是能看懂,就不用学 c 了
那就 lwip 啊,单片机常用的网络库
dpdk/vpp/f-stack
redis 吧,我覺得可以看
redis ,和 nginx ,如果嫌代码多,可以把版本拉到最早期 0.0.1 那种。
github.com/EZLippi/Tinyhttpd
可以从 kernel v0.1 开始看,代码量不多。
看大项目最早的版本。kernel 一开始没啥东西的。
看 kernel 感觉没信心啊,毕竟刚学 c 不久。。。
看起来只有 luajit 符合你的要求了另外推荐一个 luajit 相关的项目 github.com/hankai17/luajit2 给 luajit 添加了 nogc bggc 功能
github.com/rtlabs-com/p-net小众行业的开源项目
FreeRTOS 、LWIP 、Lua ,代码量都不大
不用刻意学,实战项目练手+ChatGPT 就行了
uIP 吧,lwip 的简化版,lwip 对于初学者还是不算简单的推荐一些大项目和 luajit 的这种专业项目的,有点过了,哈哈
关键就是没有练手的项目。。。没有需求写不出来代码。。。
tun2socks 项目有兴趣不: github.com/heiher/hev-socks5-tunnel
redis 吧, 结合命令文档, 我感觉是挺好理解的
网上都说 redis 源码写的很好,不知道是不是真的,有看过的可以说一说。nginx 嘛,网上有个梗 《 void**》 我感觉以我对指针的了解程度,够呛能看懂。。。。其他的 lua 源码好像也还行,不过我个人对 lua 不是很感兴趣,剩下的项目太小众了,有看不懂估计也没啥人能问一下。
mongoose
redis 吧,nginx 源码复杂了而且对 http 等知识要求高
github.com/DPDK/dpdk
这个恐怕要玩死 OP 哈哈哈,很多 C 语言写了十多年的人都不一定上来就看得懂内核在干啥
awesome-c 上面一大堆自己是做数据库的,推荐一下 SQLite 和 Redis
先看《 unix 系统编程》打好基础,不然很多概念以后都不懂的。写个最简单的客户端访问服务端。单线程的。且了解超时是怎么处理的。写一些多线程的程序。熟悉一些网络编程模型。比如 leader-follower ,reactor 这种模型。看 libuv 、libev 、libevent 这种,项目越简单越好。最后是看和你工作相关的网络项目
最好的就是 redis 了,没什么太多前置知识,就是个大号的哈希表,里面涉及了一堆好玩的数据结构之类的,推荐看一本书《 redis 设计与实现》
《 TCP/IP 网络编程》此贴终结
redis, 底层一点的就 dpdk
你是看 C 又不是看业务,kernel 不是刚好么(又不是一口全看完,要看什么看什么)。。。而且都学汇编了,那就要先定体系架构,如果是 arm 都可以看看 atf 这类 code 了
lua 可以看看,评价都挺高
推荐 dperf ,代码量 10K ,实现了一个小型的 TCP 协议栈,是性能非常高,非常流行的网络测试仪,9 月份还受邀参加 DPDK 峰会。 github.com/baidu/dperf dperf.org/
shttpd-1.4.2 ,过时项目,但学习还行
看看新手任务,优化类的 gitee.com/njet-rd/community/issues/I7GGDW gitee.com/njet-rd/community/issues/I7GGGR
GNU core utilities github.com/coreutils/coreutils
sqlite
OpenWRT 的 uhttpd github.com/openwrt/uhttpd
tcc tiny c compiler
以下都是 TCP / IP 相关的 C 语言项目:入门:tapip 自己写一个协议栈: github.com/chobits/tapiplibpcap 解析 pcap 文件深入学习:dpdk 网卡用户态驱动: github.com/DPDK/dpdk生产环境会用到的的框架: github.com/FDio/vpp github.com/ntop/nDPI github.com/OISF/suricata github.com/F-Stack/f-stack ...
看源码学 c 如大海捞针 浪费时间和大脑不如看书
可以考虑了解一下 fdio.vpp ,这个是一个完整的协议栈,有助于对于系统网络加强理解,tcp/ip 在这里有很完整的支持。
github.com/tboox/tbox github.com/Water-Melon/Melon
github.com/skywind3000/kcp
用 go 写代码刷题觉得太操蛋了,相比 c++/java ,语法非常繁琐,还有操蛋的指针、context 。也许优势就是实现了 M:N 线程系统吧 我 Go 伟大,无需多言 …
好像是安卓 13 才有的,我是 pixelexperience 的系统。 复制文本时会有一个提示(包括任何程序静默写入文本到剪贴板也会出现提示)。 提示中会显示复制的内容的摘要…
我以前写过一篇“我是怎么招聘程序员的”的文章(在CSDN那里有很多人进行了回复)。今天,我想再谈谈关于招聘和面试这方面的东西,主要是以下这些原因: 近半年来我在进行了大量的招…