简历警察同志,请纠正我的简历问题,告诉我 Linux +c 还需要学习哪些方面 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
kiraskyler
V2EX    求职

简历警察同志,请纠正我的简历问题,告诉我 Linux +c 还需要学习哪些方面

  •  
  •   kiraskyler 57 天前 3092 次点击
    这是一个创建于 57 天前的主题,其中的信息可能已经有所发展或是发生改变。
    工作技能
    精通 C 语言,熟练使用 C++、Python 、eBPF(CO-RE)
    熟练使用 gdb 、bpftrace 、ftrace 、pdb(python)等技巧调试疑难问题,熟悉 linux 性能追踪与定位,具备复杂问题解决能力

    工作内容
    公司内部组件开发
    license 组件开发,负责操作系统许可证授权管理。licensed 后台服务提供 unix socket 接口提供服务能力由 C 语言开发,前台 python 提供命令行终端控制功能。
    wlm 组件开发,python/C/C++混合开发,多线程度量指定文件获取文件 hash 发送到内核。

    软件包升级 elf 二进制兼容性评估
    操作系统中评估某个软件包升级对依赖此软件包的 elf 二进制影响。分别基于待升级软件包新旧版本两次构建依赖此软件包的其他软件包。分析 elf 中每个节的变化。.text 节比对汇编内容,过滤加载地址类型指令所加载内容一致项,生成软件包评估报告。

    eBPF 调试追踪工具开发
    capsnoop ,追踪进程在系统调用前后的权能变化,辅助公司定制不同用户赋予不同权能功能中的开发。
    processtree ,追踪进程 clone/execve 行为,启动时收集 proc 中进程命令行,运行时收集 task->mm 收集新任务的命令行,并在工具退出时打印一颗进程调用关系树。可以实时收集一段时间内的所有进程创建关系。
    vfssnoop ,vfs_open 时解析 dentry 获取完整的绝对路径,并在文件系统调用处绑定信息,可以以系统调用视角展示对文件绝对路径的处理。解决传统 BCC 工具不能解析完整绝对路径问题。

    开源贡献
    有良好的开源社区沟通贡献意识,在工作学习中发现上游 bug 均会在社区中提出 issue 与 pr 。节选两条上游贡献。其余亦有多次向 fedora bcc 等根社区贡献的已合并 pr 。

    dix: Fix segfault if CreateGC() failed in XaceHook()
    https://gitlab.freedesktop.org/xorg/xserver/-/issues/1625

    Fix loongarch linux_iterate_over_regset_sections wrong
    https://gitee.com/src-anolis-os/gdb/pulls/22

    发明专利

    大概 7 篇专利,ebpf 追踪类居多,因为查询简历能检索到私人信息就不放这里了

    文章
    工作学习中喜欢钻研,有良好的记录文档习惯。四篇节选文章前两篇为语法特性钻研,从更深入的视角反驳常识观点,后两篇侧重解决问题的能力,使用不同的工具与思路解决不同问题。其余文章可从链接内跳转个人主页查看。

    c++,lambda 是匿名函数也可能不是函数
    https://blog.csdn.net/weixin_42544902/article/details/149539407

    eBPF ,tracepoint 真的比 kprobe 开销更小吗???
    https://blog.csdn.net/weixin_42544902/article/details/146226813

    抓虫:chown 失败 Couldn't change ownership of savefile
    https://blog.csdn.net/weixin_42544902/article/details/139476184

    抓虫:申威编译 gcc 过程中 f951 程序 dump
    https://blog.csdn.net/weixin_42544902/article/details/144579745
    32 条回复    2025-08-14 13:43:12 +08:00
    hwdq0012
        1
    hwdq0012  
       57 天前
    竞对都这么优秀,我怎么和别人竞争 (挫败
    WispZhan
        2
    WispZhan  
       57 天前
    突然反应过来,好家伙,直接把网友当免费 AI 用啊
    Satoshl
        3
    Satoshl  
       57 天前
    警察来了!要我说这份简历最拉低水平的就是 csdn 链,我建议最好自建站或者发到别的博客平台。(滑稽)
    kiraskyler
        4
    kiraskyler  
    OP
       57 天前
    @Satoshl 明白 CSDN 很 low ,我平常用有道云笔记记录,公司平台也有记录,没有尝试过自己搭建网站,因为不是做 web 的,不太熟悉,有道云笔记能分享但其他人看不到其他文章了,公司平台无法分享。只能 csdn ,这样能点到主页看到其他文章,其他文章也有二十篇左右。我在简历里写上,csdn 仅用于公司外平台分享吧,谢谢大佬
    kiraskyler
        5
    kiraskyler  
    OP
       57 天前
    @WispZhan 网友比 AI 强多了,AI 问不出来什么,今天想看看容器知识,搜容器面试题都是太基础的,实际面试时不会问那么浅的。现在挺迷茫,不知道看哪些方面的东西
    Satoshl
        6
    Satoshl  
       57 天前
    @kiraskyler 不不不您是大佬,csdn 只是在能翻墙的程序员群体很被鄙视,我也是抖机灵
    coolxll
        7
    coolxll  
       57 天前
    量化成果不足: 简历描述了“做了什么”,但没有突出“做出了什么成果”。

    太偏执行了,思考深度不足。 所有的描述都停留在“我做了什么”,而不是“你做的事情带来了什么影响”
    kiraskyler
        8
    kiraskyler  
    OP
       57 天前
    @coolxll Get
    swananan
        9
    swananan  
       57 天前
    我也觉得技术深度上,op 已经很猛了,反而是工作项目上或者业务方向上,可以挖掘一下。我和楼上看法类似,工作项目上需要表现出以下的特质,即主动发现问题,然后用合适的技术解决问题,最后拿到结果。
    最后好奇问个问题,用户态使用 ebpf 追踪的时候,如果遇到缺页错误这种,读不到用户态虚拟地址上的数据,有什么好的解法吗。
    zzz22333
        10
    zzz22333  
       57 天前
    工作技能这儿吧,少了点,既然搞 Linux ,对内存管理,进程调度这些模块是否有了解呢?
    kiraskyler
        11
    kiraskyler  
    OP
       57 天前
    @coolxll 大佬,我这边把工作分为了三类,第一类是公司内部组件开发,这一部分确实只是“我做了什么”,属于公司让做什么就做什么,这部分只是简单两句话描述了下。后两部分属于我在公司里做的不一样的东西,我把这两部分调整了下:

    **软件包升级 elf 二进制兼容性评估工具**
    操作系统中评估某个软件包升级对依赖此软件包的 elf 二进制影响。分别基于待升级软件包新旧版本两次构建依赖此软件包的其他软件包。分析 elf 中符号内容的变化,生成软件包升级对其他软件包精确到符号位置的影响评估报告。相比于传统 elf 对比工具,此工具更加准确,可获取升级软件包如结构体成员变化、数据段值变化等造成的影响确切位置,减少软件包维护人员工作量。

    **eBPF 调试/追踪工具开发**
    capsnoop:追踪进程在系统调用前后的权能变化,辅助公司定制不同用户赋予不同权能功能中追踪进程权能变化。
    processtree:追踪进程 clone/execve 行为,启动时收集 proc 中进程命令行,运行时收集 task->mm 收集新任务的命令行,并在工具退出时打印一颗进程调用关系树。用以实时收集一段时间内的所有进程创建关系。在如桌面环境启动过程中追踪大量进程创建关系中提升工作效率。
    vfssnoop:fs_open 时解析 dentry 获取完整的绝对路径,并在文件系统调用处绑定信息,以系统调用视角展示对绝对路径文件的操作。解决传统 BCC 工具不能解析完整绝对路径问题。用于定位文件被哪些进程访问。
    kiraskyler
        12
    kiraskyler  
    OP
       57 天前
    @swananan
    工作项目上,我把我的工作分为了三类,第一类是“公司让我做什么我就做什么”确实一笔带过,公司规模小平常没什么活,也没什么深度。后面两类工作都是我主动发掘,主动开发解决问题的,我把这一块在简历中描述一下,属于主动发掘解决问题的吧


    ebpf 追踪,读不到用户态内存数据,是指“bpf_probe_read_user”这样的 bpf 帮助函数不能读取吗,这个可能性不大吧,如果你能提供一个简单例程我可以帮你看一下。可以用 ftrace/搭建一个 kenel 调试环境追一下。
    kiraskyler
        13
    kiraskyler  
    OP
       57 天前
    @zzz22333 对进程调度和 ext4 文件系统两个模块熟悉一些,但并不精通,所以没敢写,ext4 如超级块,inode ,文件数据位置查找,文件夹文件内容,软连接硬链接,拓展属性,这些看过内核实现,自己用 python 实现了一个简易的读取 ext4 文件系统的工具。进程调度仅仅是一些基本知识,对 debugfs 中提供的调度追踪点有了解,如 ttwu 唤醒进程,switch 切换任务。

    由于对这些并不精通,所以没敢写,我现在补充一些,阅读过吧,这是我写过的相关方面文章:

    linux 内核从源码详解 ext4 文件系统
    https://blog.csdn.net/weixin_42544902/article/details/144266799
    BCC-调度组件分析
    https://blog.csdn.net/weixin_42544902/article/details/146504741
    kiraskyler
        14
    kiraskyler  
    OP
       57 天前
    @swananan 感谢大佬指导,我在工作内容后面跟一行摘要:

    包含第一部分公司基础业务工作内容,第二部分独立开发工具提升公司业务能力,第三部分在追踪调试过程中独立开发追踪工具
    podel
        15
    podel  
       57 天前
    我这边恰好需要一个像楼主这样的人。
    能加个好友聊聊不。 微信 id.
    https://tttemp.oss-cn-shanghai.aliyuncs.com/pubic/wechat_id.txt
    zzz22333
        16
    zzz22333  
       57 天前
    @kiraskyler #13 确实很强,现在是打算换工作吗
    kiraskyler
        17
    kiraskyler  
    OP
       57 天前
    @zzz22333 还没有,最近比较迷茫不知道看什么方向,就整理下自己简历,请大佬们指点迷津
    wuruxu
        18
    wuruxu  
       57 天前   1
    可以把简历用 latex 重新整理下,看起来会更体面
    img src="https://cdn.v2ex.com/gravatar/a817b12290d7dc014fa055a821246214?s=48&d=retro" class="avatar" border="0" align="default" alt="kiraskyler" data-uid="544796" />
        19
    kiraskyler  
    OP
       57 天前
    @wuruxu 好的谢谢,我用 markdown 写的,但是 v 站的 md 格式换行有些问题,排版比较乱,所以粘贴时候取消了格式
    zzz22333
        20
    zzz22333  
       57 天前
    @kiraskyler #17 我觉得一个点就是在阅读 Linux 的几大组件的源码。
    kiraskyler
        21
    kiraskyler  
    OP
       57 天前
    @zzz22333 好的,我再把 cfs 调度器和内存管理的源码再详细看看,内存管理发现很多面试都会问,但是平常 debug 又从来没发现过这方面的问题,导致没详细看过这方面
    jukanntenn
        22
    jukanntenn  
       57 天前
    我一般喜欢这种格式:
    eBPF 调试追踪工具开发:开发工具为团队提升调试效率 x%,减少 y% 的内存问题,巴拉巴拉。
    zzz22333
        23
    zzz22333  
       57 天前
    @kiraskyler #21 我最近再看内存管理,建议不要从高版本看,我从高版本看,有些细节读着很费劲。
    zzz22333
        24
    zzz22333  
       57 天前
    @kiraskyler #21 可以加 V 探讨学习下。
    kiraskyler
        25
    kiraskyler  
    OP
       56 天前
    @jukanntenn 上大学时候申请过一个创新创业项目,就是这么写的,然后评审问,你这个百分比怎么证明?所以谢谢你的好意,这个就不采纳了。
    kiraskyler
        26
    kiraskyler  
    OP
       56 天前
    @zzz22333 我用的 qemu 搭建的调试环境,5.10 内核,我的 id 就是我的 v
    swananan
        27
    swananan  
       56 天前
    @kiraskyler
    我是看了一些文章注意到这个的 https://lists.iovisor.org/g/iovisor-dev/topic/accessing_user_memory_and/21386221
    除了上面的复现场景,我记得看过一个公众号,说过进程刚启动的时候,去读静态字符串的时候,也是读不到,也是一个复现场景
    kiraskyler
        28
    kiraskyler  
    OP
       56 天前
    @swananan 里面提到的示例刚好我用到了:“task->mm 收集新任务的命令行”,不过看起来文章里提到的内存管理方面我还不太懂,我还需要学的更深才能深入这个问题。。。
    gullitintanni
        29
    gullitintanni  
       56 天前
    我也是 Linux+C 方向,现在求职屡屡碰壁。如果水平能有楼主的哪怕一半就好了
    kiraskyler
        30
    kiraskyler  
    OP
       56 天前
    @gullitintanni 我看了大佬的 “骑驴找马,Linux 面试凉经分享 t/1148016”,提到的 ioctl 控制 pty ,pty/pts/session 这些也都是我的知识盲区,我就没看出来题目考的是 ioctl 。。。
    kiraskyler
        31
    kiraskyler  
    OP
       56 天前
    @gullitintanni 大佬还是刚毕业,我已工作六年,惭愧
    zzz22333
        32
    zzz22333  
       56 天前
    @kiraskyler #26 有些地方代码不能调试也没用。比如说我在看 page fault 中的代码,其中会把 current 设置为 running 。为什么会设置为 runnig 呢,page falut 本来就是同步异常,current 本来就是 running 状态。
    div class="inner">
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1043 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 17:58 PVG 01:58 LAX 10:58 JFK 13:58
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86