V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
tim9527
V2EX  ›  程序员

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

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

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

    第 1 条附言  ·  198 天前
    感谢各位朋友支持。
    我确实是写上层的,平时就是写写 demo ,对接指令,为什么把这个看成 arm64 是自己瞎猜的,因为确实不懂。
    我先去研究下论坛上的编译工具链,谢谢!
    26 条回复    2024-07-15 15:51:44 +08:00
    HojiOShi
        1
    HojiOShi  
       198 天前   ❤️ 18
    你是怎么查到 loongarch64 == arm64 的?
    ZZ74
        2
    ZZ74  
       198 天前
    都说了 loongarch64 怎么就 arm 了.....
    iceheart
        3
    iceheart  
       198 天前 via Android
    龙芯是 mips64 的
    unclemcz
        4
    unclemcz  
       198 天前 via Android
    龙芯官方应该有提供技术支持的
    sbldehanhan
        5
    sbldehanhan  
       198 天前
    loongarch64 不是 arm64 。他们有自己的编译工具链。
    guanzhangzhang
        6
    guanzhangzhang  
       198 天前   ❤️ 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  
       198 天前 via Android
    龙芯是龙芯,arm 是 arm ,这架构差远了,兄弟你做 APP 的吧
    ecloud
        8
    ecloud  
       198 天前   ❤️ 1
    你是怎么把大象认成猫的...
    NessajCN
        9
    NessajCN  
       198 天前
    rust 已经有 loongarch64 的 target
    rustup target loongarch64-unknown-linux-gnu
    系统的话 Gentoo 自己编译,Arch 有人打好了包 https://mirrors.wsyu.edu.cn/loongarch/archlinux/iso/latest/
    gcc 工具链楼上有
    yolee599
        10
    yolee599  
       198 天前 via Android
    龙芯是龙芯架构的,不是 ARM 架构的,要用龙芯的交叉工具链编译
    futurejunjie
        11
    futurejunjie  
       198 天前
    龙芯有两款 CPU 架构,一个是 MIPS64 ,一个是自主架构 LoongArch64 ,后期应该走自主架构。
    noahlias
        12
    noahlias  
       198 天前
    你是不是看错了单词哈哈哈

    https://en.m.wikipedia.org/wiki/AArch64
    flyqie
        13
    flyqie  
       198 天前
    loongarch64 要像你所说是 arm64 的话,那很多东西就没那么复杂了。。。
    flyqie
        14
    flyqie  
       198 天前
    @flyqie #13

    现在某些产品根本迁不到 loongarch64 ,因为只有 arm64 。。。
    gfanny
        15
    gfanny  
       198 天前
    国产系统从技术层面说还是比较坑的,很都没有相应的上下游环境
    unclemcz
        16
    unclemcz  
       198 天前 via Android
    @gfanny #15 国产桌面系统主流麒麟和统信就是普通 linux 发行版,其实也没什么坑,也就龙芯改的稍微多一点。
    ltkun
        17
    ltkun  
       198 天前
    @unclemcz #16 统信除了 x86 还要适配各种国家架构呢 不然干嘛收 500 大洋
    unclemcz
        18
    unclemcz  
       198 天前 via Android
    @ltkun #17 x86 和 arm 是业界主流,也是国产芯片主流,剩下就是龙芯的 mips 和 loongarch 比较小众。linux 对 x86 和 arm 的支持已经不用说了,成熟的不能再成熟了,无非就是龙芯要做的工作有点多,但龙芯不是主流。总的来说,所谓国产系统就是 linux 发行版,再多支持一下龙芯。
    Wyearn
        19
    Wyearn  
       198 天前
    我建议你们适配飞腾或者华为鲲鹏,感觉 arm 会好适配一些的。
    agagega
        20
    agagega  
       198 天前   ❤️ 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  
       198 天前 via Android
    我本来也很想买台 loongarch 但很可惜只有 linux 能用只好先观望
    felixlong
        22
    felixlong  
       198 天前
    不用搞什么编译工具链了。找台龙芯的机器,装好 gcc , 直接把代码放到那台机器上去。用那台机器的 gcc 编译就好了。
    w568w
        23
    w568w  
       198 天前   ❤️ 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  
       198 天前
    @w568w 树莓派只有 pico 是 MCU
    mark2025
        25
    mark2025  
       197 天前
    龙芯是源自 mips64 ,现在是自有知识产权的 loongArch 龙架构指令。和 ARM 八杆子打不到关系。
    gfanny
        26
    gfanny  
       132 天前
    @unclemcz 那估计你没有开发过桌面端的软件。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1145 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 18:12 · PVG 02:12 · LAX 10:12 · JFK 13:12
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.