V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  hhjuteman  ›  全部回复第 3 页 / 共 3 页
回复总数  59
1  2  3  
既然你已经看了 ULK ,那么看代码已经是一个比较好的选择了。
https://www.kernel.org/doc/gorman/html/understand/

这里有一份材料,相比 ULK 更加深入的介绍了 mm 的各个部分,但因为材料基于 2.6 ,作为看代码的辅料进行。

https://github.com/chenshuo/linux-study

我这里推荐使用这个项目来学习 Linux 内核,这个项目抽离 Linux 代码,使得 Linux 可以像程序一样编译调试,这样看起来会更加的清晰。

后面是学习 Linux 内核最最最最重要的部分了:

学习 Linux 内核,到底是在学习什么?什么是 Kernel ,我的理解是内核是一系列算法和模型的集合,这些算法和模型是用来调配硬件的,调配硬件不一定要懂硬件模型,因为内核中的算法和模型集合抽象程度已经相当高了。

学习内核,及学习其中的算法,我举个例子,比如说学习 zfs ,我们吧 zfs 中的加到数据库的容灾中去,改造数据库,这是一个例子。比如说学习 mm ,mm 中的 slab 内存分配原理,再看看市面上另外优秀的内存分配算法实现,如 mimalloc ,从而定制更加精细的内存分配算法,这是一个点。你说从什么启动,什么 bootloader 开始学起,没有意义,舍近求远,因为 mm 和这些完全无关,这就是独立的算法和设计模块。很多市面上所谓的那种简易操作系统书,总喜欢大篇幅再 loader 上做文章,这也是舍近求远的做法。我们学习的是 modern os ,"modern"这个词至关重要。

你可以根据我给的第一个 link ,结合第二个连接源码看看 Nodes ,Zones ,TLB ,Slab 等等结构,更多的精细算法我就没研究过了,我研究过 net 和 ext 部分。
每个平台不一样,qt 好像没有统一 api 。

https://github.com/paullouisageneau/libjuice/blob/62b88fb776b1a79638c683192744f3ec0b430c6f/src/udp.c#L428


贴了个大概的参考,可以看看
2022-02-28 09:59:13 +08:00
回复了 SIEMENS 创建的主题 Telegram 4G 网络下 telegram 无法语音通话
1 对 1 的话我估计是 p2p 的问题。

telegram 通过 mtproto2 交换信令信息,信令信息包含了 ice candidate 。

ice candidate 的优先级如下:
host candidate
reflx candidate
relay candidate

最后进行 candidate pairs 的连通性检查。
一般来说发信息正常,candidate 的信令交换没问题,但是最后的连通性检查很有可能不成功,但是都用 relay candidate 的时候不成功就比较诡异了。
就事论事,telegram 的 build doc 你肯定没读过。win64 generator 脚本最后生成出来的就是 sln 文件,虽然是用 cmake 生成的。既然是用 cmake 生成的,在 Clion 里面一样可以配置,不过参数比较多。
2022-02-23 09:50:58 +08:00
回复了 unco020511 创建的主题 程序员 鹅厂三面被面试官说的一无是处,开始怀疑人生了
面试官不合格
2022-02-18 15:06:03 +08:00
回复了 movq 创建的主题 程序员 CS 技术书籍/课程中英文的割裂,造成的尴尬情况
找工作面试很多专有名词说英文也可以,基本都知道是什么意思。技术博客可以脱离中文,中文技术博客很多都是搬过来搬过去,没啥意思。
@iamqiwei 可以。哪里买都可以,只要是正版,保修一年
a 键断触属于是通病了,我二代手柄一年内换了两个,终于换了个没什么大毛病的。

换手病建议直接微软官网申请,别找京东
2022-01-26 16:02:58 +08:00
回复了 zzlhr 创建的主题 WebRTC webrtc 有什么封装比较好的 c/c++库吗
2022-01-24 11:25:16 +08:00
回复了 idealhs 创建的主题 问与答 如何在不用 https 的情况下使用 WebRTC?
除了你这个方法几乎没有了,这里的限制是加在 getUserMedia 这个函数上的。也许降级 Chrome 的版本到 46 之前有用?我不记得是不是 46 了。
2022-01-12 16:59:23 +08:00
回复了 Coelacanth 创建的主题 C++ 《深度探索 C++对象模型》这部分还值得看嘛?
@kgdb00
您可以试试 clangd 这个插件,是 clang 官方出的,也是配置 compile command 。

使用之前需要先安装 clangd 。apt install clangd 之类的
我的建议是不要用 compile_commands.json 。

这类工具都是基于 clang ast macher 或者 libclang 做出来的符号索引工具。compile_command 是一个编译记录的数据库,ast_matcher 读到数据库以后会对语法进行 ast 树解析并生成文件,Linux kernel 代码太大,ast 匹配占用的 cpu 时间太长。

使用 clangd 会因为符号太多导致索引崩溃,这个也很正常。如果电脑性能不是特别好我建议使用传统的 gtags 或者 ctags 来阅读 Linux kernel 的源码。我以前用笔记本的时候从来没有用 compile_commands 的方式成功阅读过 kernel 源码,现在用台式机了,用 compile_commands 阅读过 chromium 的源码,不过我电脑的性能特别高。

所以我还是建议使用 tags 的方式, 我这里用搜索了一下,不知道有没有用:
https://blog.jaycetyle.com/2018/10/vscode-gnu-global/
2021-12-24 09:32:44 +08:00
回复了 Prio 创建的主题 Android 有没有人用过 Unihertz titan 手机?
当作备用机,实际体验并不好。大多数 app 都没有适配,输入法拉跨导致键盘输入有点难受。我都想出了
2021-12-21 13:30:01 +08:00
回复了 glumess 创建的主题 程序员 Window 下 FFmpeg 和 LibX264 的编译和配置
其实你执行过一次就可以做成脚本了。

SET PATH_BACKUP_=%PATH%
SET PATH=%ROOT_DIR%\\ThirdParty\\msys64\\usr\\bin;%PATH%
set CHERE_INVOKING=enabled_from_arguments
set MSYS2_PATH_TYPE=inherit

bash --login ../patches/build_ffmpeg_win.sh

https://github.com/desktop-app/patches/blob/master/build_ffmpeg_win.sh


我这里发了一段 telegram 里用到的脚本。全自动化

另外我做 c++音视频开发从来不用 mac ,只用 windows 。vs 的调试是所有 ide 里面最强最好用的,vs 多线程调试图表清晰明了。

我不知道 windows 开发不友好是从哪里来的,vs 调试图形程序是可以抓帧一帧一帧调试的。

另外 windows 对 cpu 支持总是最新的,我以前在公司用 10700k ,后来还闲太慢了申请了 5800x 。每次在 mac 上搞点什么那弱鸡的 cpu 和狗屎一样的 xcode 总想让我砸电脑。
2021-12-09 14:59:38 +08:00
回复了 yttsam 创建的主题 推广 C/C++学起来难,还是 Rust 学起来难呢?
多年 C++ 程序员,Rust 对我吸引力很小 +1 。
更期待 Module Range Coroutines Concepts , 以及 23 可能加入的 executors
2021-12-07 17:56:17 +08:00
回复了 proxytoworld 创建的主题 问与答 c++新手 求问 c++项目头文件检索问题
target_include_directories(PATH) <=> g++ -I${PATH}
如果用的 vscode c++插件,里面应该有 compiler_command.json 相关的选项。

插件根据 compiler command 的数据进行符号索引
推荐使用 clangd
2021-11-26 16:00:59 +08:00
回复了 csulyb 创建的主题 程序员 公司商用项目推荐用 QT 吗
使用 lgpl 版本的 qt ,动态连接 qt 就不会有任何问题。如果最后所有的东西编译成一个 exe ,需要代码开源。
2021-11-18 10:55:19 +08:00
回复了 FreeWong 创建的主题 问与答 RUST 的性能, GO 的简单性
c
1  2  3  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1969 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 35ms · UTC 16:15 · PVG 00:15 · LAX 09:15 · JFK 12:15
Developed with CodeLauncher
♥ Do have faith in what you're doing.