想转方向做操作系统,前景如何? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
x97bgt

想转方向做操作系统,前景如何?

  •  
  •   x97bgt 2024 年 9 月 9 日 via iPhone 2989 次点击
    这是一个创建于 593 天前的主题,其中的信息可能已经有所发展或是发生改变。

    本人 30+大龄程序员,写过 Java 和 C++,用过一段时间 Rust ,工作基本都是偏服务端的工作。

    现在离职状态,准备给自己放空一段时间,最长时间一年。想想以后的方向,顺便精进一下自己。

    个人对底层比较感兴趣,尤其操作系统。自己写给一个迷你的操作系统。操作系统方向不只限于内核开发,应该也包括周边生态和工具等等。。但毕竟不是这行的,没有直接的开发经验。

    现在 Rust 做系统开发是热点话题,想着就往这一方面发展。

    不过兴趣归兴趣,也要考虑难度和糊口问题。毕竟岗位就少。所以想问问大家,这一行的前景如何,入门门槛如何?

    有没有相关经验的老哥出来现身说法一下。什么建议都可以提。谢谢大家了。

    13 条回复    2024-09-14 12:33:09 +08:00
    cJ8SxGOWRH0LSelC
        1
    cJ8SxGOWRH0LSelC  
       2024 年 9 月 9 日
    异想天开。30 岁还这么爱做梦。 如果是我可能会尝试给 Linux 修修 bug , 努力融入社区, 如果这个都做不好, 自己做系统岂不是扯蛋。
    x97bgt
        2
    x97bgt  
    OP
       2024 年 9 月 9 日 via iPhone
    @StinkyTofus 肯定不是自己做操作系统啊。只是从事这方向的工作。
    miscnote
        3
    miscnote  
       2024 年 9 月 9 日
    这个方向的确吃经验。我一个认识的哥们,清华的,50 多岁,还在从事嵌入式操作系统工作。他早就财务自由,工作纯粹是爱好。
    passive
        4
    passive  
       2024 年 9 月 9 日 via Android
    30 不是不行,我自己就是 30 之后,从 0 开始,进入过两三个门槛很高的小众行业。
    困难之处在如何找到一个老板,愿意付费让你学习。一般需要楼主有优于其他人的条件(比如有一项特别牛逼的相关技能,或者是老板的亲戚,或者是官员的亲戚)。通常来说,假如我是老板或者项目组长,招个或多或少懂一点底层原理的员工从头培训;肯定找个 20 出头刚毕业的小伙,精力好学得快;若是有缘,尽量培养成我队伍的忠实成员。
    zzz22333
        5
    zzz22333  
       2024 年 9 月 9 日
    "Rust 做系统开发是热点话题,想着就往这一方面发展" 企业还是用得少, 目前还是 C 和汇编居多。 其次,语言是操作系统中最不重要的一环,主要还是硬件特征,操作系统特性(中断,内存管理,进程,调度等等)。另外,企业招你是干活的,不是给钱让你学习的。
    x97bgt
        6
    x97bgt  
    OP
       2024 年 9 月 9 日 via iPhone
    @passive 我感觉摸爬滚打这么多年,理论基础肯定够用,但就是实战经验没有。这是我自己总结的优势和劣势。

    不过这一行一定需要老师傅带?我是想先参与一些开源项目
    x97bgt
        7
    x97bgt  
    OP
       2024 年 9 月 9 日 via iPhone
    @zzz22333 不是学习啊。我的计划是在空档期学习和积累经验。
    Maca
        8
    Maca  
       2024 年 9 月 9 日
    看过一本书,《 30 天自制操作系统》,是用 汇编 和 C 写的。
    不过对于理解“开发操作系统”这件事感觉会有帮助。

    https://book.douban.com/subject/11530329/
    zzz22333
        9
    zzz22333  
       2024 年 9 月 9 日
    @x97bgt #7 很吃经验的.... 你要学习架构知识( Intel or Arm ), 语言( C 和汇编),操作系统导论。 另外操作系统也会分很细的,比如说调优,BSP ,驱动,适配等等。
    wildlynx
        10
    wildlynx  
       2024 年 9 月 9 日
    去信创行业搞国产操作系统,养老还可以吧?
    UIXX
        11
    UIXX  
       2024 年 9 月 9 日   1
    问题很笼统,OS 覆盖面太广了:

    中大型设备的 Windows 、MacOS 、Linux (如 Ubuntu )及其他 Unix 系统
    移动设备的 Android 及其变体、iOS 及一些市场份额较小的其他系统
    嵌入式设备的轻量级 Linux (如 OpenWrt )、RTOS 及其他 Unix 系统

    各种系统在官方版本之外还有各种魔改版本:

    社区开源版、企业定制版、国产版...

    因此不能一概而论。

    ---------------------------------------------

    几个相对较火的相关工作是:

    1. 包括“开源国产化”在内的系统移植。主要是解决芯片与内核的适配问题,具体工作范围包含引导、BSP 、各种内核驱动。

    2. 系统魔改。最典型的例子就是各手机厂商自己的 OS 。

    3. 工控系统开发。这个可以由一些小型固件、轻量 OS 重写得来。

    4. 虚拟化。虚拟化技术我做得少,就不乱说了。

    这些工作对比较吃经验和行业深度,比如系统移植需要对目标系列的芯片及其架构比较熟悉,工控开发需要了解行业标准。至于一些 demo 书里面经常讲的内存管理机制与进程结构,开发中很少造轮子。因为改进是根据实务来的,自以为是的设计常常带来负优化。

    ---------------------------------------------

    妥善管理硬件资源,语言不是什么问题。
    gj69B3S92SZZ6767
        12
    gj69B3S92SZZ6767  
       2024 年 9 月 9 日
    如果一个人使用 C 语言,那往往不是因为他选择了 C 语言,而是 C 语言选择了他。
    如果你开发的是操作系统、编译器、硬件驱动,那么你没有选择,只能使用 C 语言。
    wfish53111
        13
    wfish53111  
       2024 年 9 月 14 日
    我在看《操作系统真象还原》已经搞到硬盘驱动这里了,也是从汇编重新学起来的
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3034 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 42ms UTC 02:31 PVG 10:31 LAX 19:31 JFK 22:31
    Do have faith in what you're doing.
    (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-11940834-2', 'v2ex.com'); ga('send', 'pageview'); ga('send', 'event', 'Node', 'topic', 'career'); ubao msn 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