V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
x97bgt
V2EX  ›  职场话题

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

  •  
  •   x97bgt · 73 天前 via iPhone · 2191 次点击
    这是一个创建于 73 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

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

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

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

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

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

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

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

    因此不能一概而论。

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

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

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

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

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

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

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

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

    妥善管理硬件资源,语言不是什么问题。
    gongguowei02
        12
    gongguowei02  
       73 天前
    如果一个人使用 C 语言,那往往不是因为他选择了 C 语言,而是 C 语言选择了他。
    如果你开发的是操作系统、编译器、硬件驱动,那么你没有选择,只能使用 C 语言。
    wfish53111
        13
    wfish53111  
       68 天前
    我在看《操作系统真象还原》已经搞到硬盘驱动这里了,也是从汇编重新学起来的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3048 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 13:56 · PVG 21:56 · LAX 05:56 · JFK 08:56
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.