请教一下,阅读 Linux Kernel 最快的解决方案(@Windows)是啥呢?

2020-03-26 11:46:36 +08:00
 nevin47

最近在看 Kernel 相关的源码,但是因为 Kernel 中各种神级 arch,花式宏封装,试了好几个工具( VSC,CLion,SI,Vim ...)都觉得不得劲

尤其是遇到一个xxx_arch_xxx接口的时候,全局搜索( ag 、ack 、各种自带全局搜索全试过了)慢的让人崩溃( nvme 盘、Ramdisk 全试过了)

想问问万能的 V 友们,有没有比较优雅的阅读 Kernel 代码的方案可以推荐的……

8942 次点击
所在节点    Linux
49 条回复
james122333
2020-03-26 14:31:42 +08:00
自己写个 parser
byaiu
2020-03-26 15:07:43 +08:00
@nevin47 #20
Eclipse 的快捷键多用用,ctrl+alt+h
nevin47
2020-03-26 15:18:19 +08:00
@byaiu #22 和 IDE 用法无关的,痛点在于全局搜索太慢了……
byaiu
2020-03-26 15:19:03 +08:00
那看来只能上 ssd 了哈
nevin47
2020-03-26 15:25:05 +08:00
@byaiu #24 已经是 M.2 了……我连 RamDisk 都试过了
fuis
2020-03-26 15:26:08 +08:00
Rheinmetal
2020-03-26 15:31:01 +08:00
4 个 IDE 窗口( or 4 个屏)分别删得只剩一个 arch 如何?
shujun
2020-03-26 16:51:43 +08:00
和 ramdisk 有啥关系

先熟悉目录结构吧
然后 source insight 就够了 创建工程的时候注意导入源码不要全部塞进去 arch 的选择一个 driver 的选择一部分自己关注的即可
nmap
2020-03-26 17:10:27 +08:00
当然是神器 source insight 啊!
nevin47
2020-03-26 17:14:57 +08:00
@shujun #28
@nmap #29

现在感觉最快的就是 SI+RamDisk 了,但是 SI 的弊端就是必须要鼠标配合,同时在几个 Arch 中轮番换的时候,如果搜索限定为符号还好,但是有些接口必须要搜到 asm 或者.s 里面,这个时候搜索速度还是很慢了
james122333
2020-03-26 17:17:44 +08:00
james122333
2020-03-26 17:18:30 +08:00
甚换系统 (滑稽
james122333
2020-03-26 17:18:43 +08:00
甚至
nevin47
2020-03-26 17:23:03 +08:00
@james122333 #31 实际上如果在 Linux 上面,我可以开个 10G 的 Hugepage,然后自己做个驱动就有一个巨型 ramdisk 了,那这个问题基本就迎刃而解了。。。然而 Windows 上面并不支持这么做
james122333
2020-03-26 17:29:05 +08:00
@nevin47
这么厉害(滑稽)
zoumouse
2020-03-26 20:17:33 +08:00
SourceInsight
mingl0280
2020-03-26 22:41:28 +08:00
@nevin47 IMDisk Virtual Disk 可以挂很大的 ramdisk 。
另外为什么不试试 vs 的打开文件夹呢 lol
Mirana
2020-03-27 00:07:13 +08:00
linux 内核细节太多 感觉不如看更简单点的内核 自己照着写一个
oddtux
2020-03-27 00:41:40 +08:00
这都 0202 年了, 还有那么多人用祖传的 ctags.
SourceInsight 确实是 windows 下可用的*不编译*的最好方案了。

但绝对不是目前最舒服的解决方案了。
我现在是这么看内核代码的( Linux 平台),
1. 编个 bzImage, 然后执行 scripts/gen_compile_commands.py 生成 compile_commands.json 这个文件
2. 安装 clang
3. vscode + clangd 插件

(备注: 不喜欢 clang 或者安装困难可以用 ccls, 关键是要有 compile_commands.json
哪里有问题可以回复我,有时间会帮忙看 )
james122333
2020-03-27 08:35:14 +08:00
@oddtux
ctags 还是可以用 毕竟支持语言多
缺点就是能分析的少 看来自写 parser 好

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/656319

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX