最近在学 c ,希望找个 c 的开源项目看看,最好是网络 tcp/ip 相关的开源项目,其他的也可以,星星多点的,希望各位大佬推荐一下。
ps: 1.如果有点汇编也行,我也想再学学汇编 2.物联网相关的也行,单片机方向 3.nginx 就算了,一口吃不了个胖子,希望能有个总体的代码量少点的。
![]() | 1 gpt5 2023-10-23 00:07:00 +08:00 ![]() c 语言知名项目 https://github.com/torvalds/linux |
![]() | 2 BeiChuanAlex OP ![]() @gpt5 这个我要是能看懂,就不用学 c 了 |
![]() | 3 yolee599 2023-10-23 01:03:42 +08:00 via Android 那就 lwip 啊,单片机常用的网络库 |
![]() | 4 Hsinyao 2023-10-23 01:19:36 +08:00 via iPhone dpdk/vpp/f-stack |
5 lsry 2023-10-23 01:53:27 +08:00 redis 吧,我得可以看 |
6 kakki 2023-10-23 02:03:58 +08:00 via Android redis ,和 nginx ,如果嫌代码多,可以把版本拉到最早期 0.0.1 那种。 |
7 components 2023-10-23 02:31:54 +08:00 ![]() |
![]() | 9 levelworm 2023-10-23 04:15:35 +08:00 via Android @BeiChuanAlex 看大项目最早的版本。kernel 一开始没啥东西的。 |
![]() | 10 BeiChuanAlex OP @levelworm 看 kernel 感觉没信心啊,毕竟刚学 c 不久。。。 |
11 hankai17 2023-10-23 07:52:19 +08:00 看起来只有 luajit 符合你的要求了 另外推荐一个 luajit 相关的项目 https://github.com/hankai17/luajit2 给 luajit 添加了 nogc bggc 功能 |
![]() | 12 Lemonadeccc 2023-10-23 08:25:43 +08:00 https://github.com/rtlabs-com/p-net 小众行业的开源项目 |
![]() | 13 NealLason 2023-10-23 08:29:34 +08:00 FreeRTOS 、LWIP 、Lua ,代码量都不大 |
![]() | 14 dw2693734d 2023-10-23 08:38:04 +08:00 不用刻意学,实战项目练手+ChatGPT 就行了 |
15 DiamondY 2023-10-23 08:45:46 +08:00 uIP 吧,lwip 的简化版,lwip 对于初学者还是不算简单的 推荐一些大项目和 luajit 的这种专业项目的,有点过了,哈哈 |
![]() | 16 BeiChuanAlex OP @dw2693734d 关键就是没有练手的项目。。。没有需求写不出来代码。。。 |
![]() | 17 heiher 2023-10-23 09:00:13 +08:00 via Android tun2socks 项目有兴趣不: https://github.com/heiher/hev-socks5-tunnel |
![]() | 18 bruce0 2023-10-23 09:02:12 +08:00 redis 吧, 结合命令文档, 我感觉是挺好理解的 |
![]() | 19 BeiChuanAlex OP 网上都说 redis 源码写的很好,不知道是不是真的,有看过的可以说一说。 nginx 嘛,网上有个梗 《 void****》 我感觉以我对指针的了解程度,够呛能看懂。。。。 其他的 lua 源码好像也还行,不过我个人对 lua 不是很感兴趣,剩下的项目太小众了,有看不懂估计也没啥人能问一下。 |
20 morebrave 2023-10-23 09:21:33 +08:00 mongoose |
21 rahuahua 2023-10-23 09:58:35 +08:00 redis 吧,nginx 源码复杂了而且对 http 等知识要求高 |
22 FlashEcho 2023-10-23 09:58:45 +08:00 |
24 huiwang520 2023-10-23 10:00:19 +08:00 awesome-c 上面一大堆 自己是做数据库的,推荐一下 SQLite 和 Redis |
25 rqzrqh 2023-10-23 10:05:05 +08:00 先看《 unix 系统编程》打好基础,不然很多概念以后都不懂的。 写个最简单的客户端访问服务端。单线程的。且了解超时是怎么处理的。 写一些多线程的程序。 熟悉一些网络编程模型。比如 leader-follower ,reactor 这种模型。 看 libuv 、libev 、libevent 这种,项目越简单越好。 最后是看和你工作相关的网络项目 |
26 timewarp 2023-10-23 10:05:50 +08:00 最好的就是 redis 了,没什么太多前置知识,就是个大号的哈希表,里面涉及了一堆好玩的数据结构之类的,推荐看一本书《 redis 设计与实现》 |
27 buffzty 2023-10-23 10:15:10 +08:00 《 TCP/IP 网络编程》此贴终结 |
28 ButcherHu 2023-10-23 10:18:34 +08:00 redis, 底层一点的就 dpdk |
29 besto 2023-10-23 10:32:36 +08:00 你是看 C 又不是看业务,kernel 不是刚好么(又不是一口全看完,要看什么看什么)。。。而且都学汇编了,那就要先定体系架构,如果是 arm 都可以看看 atf 这类 code 了 |
![]() | 30 rb6221 2023-10-23 10:42:44 +08:00 lua 可以看看,评价都挺高 |
31 artnowben 2023-10-23 10:45:33 +08:00 推荐 dperf ,代码量 10K ,实现了一个小型的 TCP 协议栈,是性能非常高,非常流行的网络测试仪,9 月份还受邀参加 DPDK 峰会。 https://github.com/baidu/dperf https://dperf.org/ |
32 scorpion91 2023-10-23 11:11:29 +08:00 shttpd-1.4.2 ,过时项目,但学习还行 |
33 3d22qCFSP087xAV8 2023-10-23 11:29:08 +08:00 |
![]() | 34 TonyG 2023-10-23 11:39:14 +08:00 |
35 dayeye2006199 2023-10-23 11:53:14 +08:00 sqlite |
![]() | 36 mikewang 2023-10-23 12:05:17 +08:00 via iPhone OpenWRT 的 uhttpd https://github.com/openwrt/uhttpd |
37 sakura6264 2023-10-23 12:24:50 +08:00 tcc tiny c compiler |
38 echoechoin 2023-10-23 12:32:09 +08:00 以下都是 TCP / IP 相关的 C 语言项目: 入门: tapip 自己写一个协议栈: https://github.com/chobits/tapip libpcap 解析 pcap 文件 深入学习: dpdk 网卡用户态驱动: https://github.com/DPDK/dpdk 生产环境会用到的的框架: https://github.com/FDio/vpp https://github.com/ntop/nDPI https://github.com/OISF/suricata https://github.com/F-Stack/f-stack ... |
39 zzzkkk 2023-10-23 12:35:59 +08:00 via Android 看源码学 c 如大海捞针 浪费时间和大脑 不如看书 <c 陷阱与缺陷> <c 专家编程> <深入理解 linux 内核> <apue> 还有很多 |
![]() | 40 fortitudeZDY 2023-10-23 12:41:04 +08:00 可以考虑了解一下 fdio.vpp ,这个是一个完整的协议栈,有助于对于系统网络加强理解,tcp/ip 在这里有很完整的支持。 |
![]() | 41 junmoxiao 2023-10-23 12:44:16 +08:00 |
![]() | 42 Bown 2023-10-23 17:05:16 +08:00 |
![]() | 43 Neur2n 2023-10-24 21:18:11 +08:00 |
![]() | 44 BeiChuanAlex OP 综合大家的建议,我决定去看 redis 的源码了。 综合考虑吧: 1.代码量尚可,看起来不太费劲。 2.对找工作有帮助,我是后端。 3.网上有很多看源码的心得和书籍,很多人已经整理了很多资料。 4.还没想到。。。等看了再说吧。 估计花个半年时间吧。。。估计会鸽。。。貌似是一个漫长的过程。。。。。。。 |
45 alqaz 2023-10-25 13:42:11 +08:00 |
46 jiaxinbinggan 2023-12-18 01:31:14 +08:00 |
![]() | 47 xiaoke0718 2024-05-10 14:57:58 +08:00 可以写分析股票的基本面技术面比价系统? |