V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
tim9527
V2EX  ›  程序员

请教一下谁搞过 Linux arm64 位的操作系统?

  •  
  •   tim9527 · 2024-05-10 11:58:37 +08:00 · 3979 次点击
    这是一个创建于 488 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近在搞国产系统的适配,龙芯系统架构是 loongarch64 ,查了下应该就是 arm64 。但是之前只编译了 linux-arm32 位的 lib 包做动态引用。 请教谁搞有 arm64 位的 lib 包。

    第 1 条附言  ·  2024-05-10 14:10:50 +08:00
    感谢各位朋友支持。
    我确实是写上层的,平时就是写写 demo ,对接指令,为什么把这个看成 arm64 是自己瞎猜的,因为确实不懂。
    我先去研究下论坛上的编译工具链,谢谢!
    26 条回复    2024-07-15 15:51:44 +08:00
    HojiOShi
        1
    HojiOShi  
       2024-05-10 11:59:49 +08:00   ❤️ 19
    你是怎么查到 loongarch64 == arm64 的?
    ZZ74
        2
    ZZ74  
       2024-05-10 12:05:53 +08:00
    都说了 loongarch64 怎么就 arm 了.....
    iceheart
        3
    iceheart  
       2024-05-10 12:08:42 +08:00 via Android
    龙芯是 mips64 的
    unclemcz
        4
    unclemcz  
       2024-05-10 12:09:44 +08:00 via Android
    龙芯官方应该有提供技术支持的
    sbldehanhan
        5
    sbldehanhan  
       2024-05-10 12:15:20 +08:00
    loongarch64 不是 arm64 。他们有自己的编译工具链。
    guanzhangzhang
        6
    guanzhangzhang  
       2024-05-10 12:24:04 +08:00   ❤️ 6
    老龙芯是 mips 的,新龙芯是 loongarch64 的
    新龙芯给 linux 内核,llvm ,gcc ,golang ,python ,qemu 之类好多上游都提交了支持的
    你需要的是龙芯的交叉编译工具链,http://www.loongnix.cn/zh/toolchain/GNU/
    我的龙芯一些 golang 编译 https://github.com/zhangguanzhang/compile-and-packages/tree/master/loong64
    龙芯 dockerfile 仓库 https://github.com/Loongson-Cloud-Community/dockerfiles
    FranzKafka95
        7
    FranzKafka95  
       2024-05-10 12:29:52 +08:00 via Android
    龙芯是龙芯,arm 是 arm ,这架构差远了,兄弟你做 APP 的吧
    ecloud
        8
    ecloud  
       2024-05-10 12:40:40 +08:00   ❤️ 1
    你是怎么把大象认成猫的...
    NessajCN
        9
    NessajCN  
       2024-05-10 12:41:24 +08:00
    rust 已经有 loongarch64 的 target
    rustup target loongarch64-unknown-linux-gnu
    系统的话 Gentoo 自己编译,Arch 有人打好了包 https://mirrors.wsyu.edu.cn/loongarch/archlinux/iso/latest/
    gcc 工具链楼上有
    yolee599
        10
    yolee599  
       2024-05-10 12:42:30 +08:00 via Android
    龙芯是龙芯架构的,不是 ARM 架构的,要用龙芯的交叉工具链编译
    futurejunjie
        11
    futurejunjie  
       2024-05-10 12:42:32 +08:00
    龙芯有两款 CPU 架构,一个是 MIPS64 ,一个是自主架构 LoongArch64 ,后期应该走自主架构。
    noahlias
        12
    noahlias  
       2024-05-10 12:55:17 +08:00
    你是不是看错了单词哈哈哈

    https://en.m.wikipedia.org/wiki/AArch64
    flyqie
        13
    flyqie  
       2024-05-10 13:13:16 +08:00
    loongarch64 要像你所说是 arm64 的话,那很多东西就没那么复杂了。。。
    flyqie
        14
    flyqie  
       2024-05-10 13:13:58 +08:00
    @flyqie #13

    现在某些产品根本迁不到 loongarch64 ,因为只有 arm64 。。。
    gfanny
        15
    gfanny  
       2024-05-10 13:45:51 +08:00
    国产系统从技术层面说还是比较坑的,很都没有相应的上下游环境
    unclemcz
        16
    unclemcz  
       2024-05-10 13:53:51 +08:00 via Android
    @gfanny #15 国产桌面系统主流麒麟和统信就是普通 linux 发行版,其实也没什么坑,也就龙芯改的稍微多一点。
    ltkun
        17
    ltkun  
       2024-05-10 14:19:29 +08:00
    @unclemcz #16 统信除了 x86 还要适配各种国家架构呢 不然干嘛收 500 大洋
    unclemcz
        18
    unclemcz  
       2024-05-10 14:48:14 +08:00 via Android
    @ltkun #17 x86 和 arm 是业界主流,也是国产芯片主流,剩下就是龙芯的 mips 和 loongarch 比较小众。linux 对 x86 和 arm 的支持已经不用说了,成熟的不能再成熟了,无非就是龙芯要做的工作有点多,但龙芯不是主流。总的来说,所谓国产系统就是 linux 发行版,再多支持一下龙芯。
    Wyearn
        19
    Wyearn  
       2024-05-10 14:48:19 +08:00
    我建议你们适配飞腾或者华为鲲鹏,感觉 arm 会好适配一些的。
    agagega
        20
    agagega  
       2024-05-10 14:49:34 +08:00   ❤️ 2
    - x86/i386/i486/i586/i686/ia32 是 32 位 x86 ,x64/x86_64/amd64/intel64 是 64 位 x86 ,ia64 是当年 intel 推出的一个不向后兼容的 64 位架构,已废弃
    - arm/arm32/armv7/armv8/aarch32 是 32 位 ARM ,arm64/aarch64 是 64 位 ARM
    - 其他 arch 名称相对规范,比如龙芯就是 loongarch32 和 loongarch64 ,早期龙芯是基于 MIPS 指令集做的扩展,所以当时是 mips32/mips64 ,还有 powerpc/powerpc64 以及 riscv32/riscv64 等
    james122333
        21
    james122333  
       2024-05-10 14:59:00 +08:00 via Android
    我本来也很想买台 loongarch 但很可惜只有 linux 能用只好先观望
    felixlong
        22
    felixlong  
       2024-05-10 17:17:37 +08:00
    不用搞什么编译工具链了。找台龙芯的机器,装好 gcc , 直接把代码放到那台机器上去。用那台机器的 gcc 编译就好了。
    w568w
        23
    w568w  
       2024-05-10 18:45:04 +08:00   ❤️ 2
    有些朋友对 Arm 的称呼感到迷惑。之前博客写过一篇 Arm 相关术语命名的文章,摘几段过来供参考:

    ====分割线====

    1. 「 Arm 架构」是一组精简指令集架构( RISC )的统称(注意,是一组,不是一个)。

    2. 英国公司「 Arm Limited 」是这个架构的设计公司。

    3. 字母全大写的「 ARM 」在很久以前是对橡果 RISC 机器和高级 RISC 机器两家公司的架构的称呼,这些架构今天已经不再使用,如果你想避免歧义,请尽量称呼「 Arm 」。

    4. 「 Armv9 」和「 Armv8 」等是指 Arm 公司发布的一个架构版本 。

    5. 「 Armv9.4-A 」是 Armv9 的一个最新的扩展,相当于架构的打补丁版本。后面的 -A 是指一个子版本,-A 指这个架构是用于应用场景( Application Profile )的,比如手机、电脑,还有 -R 用于实时场景( Real-time Profile ),例如无人驾驶和工业自动控制,-M 用于微控制器( Micro-controller Profile ),例如树莓派。

    6. 「 AArch64 」是 Arm 处理器的一种执行状态 (注意,不是指令集,也不是架构!不要再说「 aarch64 架构」了!),在这个状态下,可以使用 64 位的寄存器,这一状态在 Armv8 中首次引入(所以 Armv7 及以前都是 32 位架构);相对应的,原先的 32 位状态被称为 AArch32 。同一个处理器可以通过设置一个专门的寄存器,在这两种状态之间切换,这就是为什么你可以在 64 位的系统上运行 32 位的程序。

    7. 「 A64 」是 AArch64 状态下唯一的指令集 (注意,它才是指令集的名字);相应地,「 A32 」现在用来指代早期的 32 位指令集;「 T32 」是 A32 的一个子集,它特指 Thumb2 指令集(指令 16 位和 32 位长混合)。

    8. 「 arm64 」这个说法,Arm 公司从来没有在正式文件中提过,这似乎是苹果、微软和 Linux 喜欢使用的简便称呼。我个人把它理解成一种移植( Port ),即一组指令集和架构的统称。

    9 。 其他移植名还包括:armel 、armhf 、armv7hl 、armv7l 、armv8l 等。其中 armel 面向 armv4-v7 的 armeabi 接口,的兼容性最好(但性能可能最低)。再强调一次:这些名称不是标准,不同的发行版、公司、系统和项目都可能有不同的定义。例如,同一个架构,苹果设备上可能叫「 arm64 」,但在一些 Linux 中可能又叫「 aarch64 」了,非常混乱。如果你和别人交流移植相关的问题,务必明确你在说什么。目前比较通行的称呼一般来自 LLVM 和 Debian 。
    masterclock
        24
    masterclock  
       2024-05-10 20:21:47 +08:00
    @w568w 树莓派只有 pico 是 MCU
    mark2025
        25
    mark2025  
       2024-05-11 19:29:46 +08:00
    龙芯是源自 mips64 ,现在是自有知识产权的 loongArch 龙架构指令。和 ARM 八杆子打不到关系。
    gfanny
        26
    gfanny  
       2024-07-15 15:51:44 +08:00
    @unclemcz 那估计你没有开发过桌面端的软件。
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2558 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 15:48 · PVG 23:48 · LAX 08:48 · JFK 11:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.