bexsder 还没有玩过freebsd
大道无形若水 以前也有人试图把mips移植到freebsd上,不过大多因为mips的历史包袱比较重,所以mips的相关支持一直不完备,而LoongArch却是轻装上阵,机遇和挑战并存
非常支持
bsd系统内核组织结构整体上大同小异,移植到loongarch架构的关键是内核中与机器相关的代码部分。
我调研了netbsd、openbsd系统往risc-v架构移植的方案,其中的方法可以借鉴过来。
其中,openbsd移植到risc-v的文档比较详细。以openbsd为例,内核中需要移植的部分包括:
系统启动部分(bootstrap)
内存管理(UVM虚拟内存系统)
异常处理(trap)
进程上下文管理(Process)
设备(device)
基本就是下面这个图里面的内容
木棉 netbsd的可移植框架是不错的,FreeBSD上也是可以借鉴risc-v的移植方案,上游提交或许困难非常大,但想让它跑起来,基本条件是具备的,起码做个验证,然后联系下大飞机
杜比 是的,可以先不考虑提交上游,并且就bsd来说,不提交上游也没问题。参考基于bsd系统的商业产品,ps游戏机、mac电脑等,龙芯也可以做类似产品,特别是一体机,盒子电脑这种,不需要适配很多硬件设备,跑bsd系统感觉非常合适。
木棉 即便如此,代码量也是不少的,如果能联系到更多的人,能在一个共同的代码库下做移植,形成一个代码基,会更好!
杜比 是的,参与的人越多越好。freebsd系统设计与实现一书里,机器平台相关的代码量在5万8千多行,openbsd和netbsd内核的平台相关代码量应该比这个少。openbsd移植risc-v的项目,是4个人做的。参考的话,6个人左右的团队比较合适,沟通成本也不会太高
木棉 我很原始的想法是,把loongson提交的llvm补丁,先导入进FreeBSD的源代码树里,然后给Makefile打补丁,交叉编译 make world,若能行得通,再借鉴loongson的linux内核代码,往FreeBSD的内核里导入,尝试make kernel,若这两步能跑通,再试着往3A5000上make install。
杜比 我的思路也差不多。kernel机器相关部分代码是避不开的,我意见是先从kernel下手。openbsd的内核里有专门支持loongson架构的部分,应该是对应龙芯2e,逸龙的笔记本。
bsd内核比较好的一点,每一个架构都有对应的内核conf文件,参考files.loongson文件进行修改
龙芯linux内核源码肯定是要参考的,看龙芯是否能全部放出来。如果有缺的部分,尝试参考loongson的mips源码修改
木棉 netbsd的代码读过一些,也是在2F上安装netbsd时,关注过几天。相比freebsd,netbsd使用的是gcc12,初始编译时,需要交叉工具链,clfs提供的交叉工具链是否能拿来就用有待验证,netbsd的基础系统是可以包含xorg的基本组件的,若内核能跑起来,那么相对于freebsd和openbsd,粗估会更便利些。 再者netbsd的移植框架确实也是它的强项。所以就确定公共代码基这块,openbsd过于严苛,netbsd做代码基或许更加合适。而且在以往bsd系列的os移植实践里,似乎从netbsd起手的比较多,然后互相借鉴,甚至可以拿来就用。
报名参加,还差几个人可以开始?
xied75 欢迎,先等等看
主题一楼更新了“相关链接”
https://forums.freebsd.org/threads/ports-loongarch.84404/
看了你贴的链接,又是熟悉的腔调,LA是MIPS的拷贝那些。说实话地球转到今天这样子,我真不觉得有什么必要求这些上游的爷爷们,难道就是为了让他们也贡献工作量?那要我们干什么?找老胡捐几台机器给头上长天线的天才老外不就行了。
xied75 一来按照开源惯例,打个招呼,表达下意愿。二来,成见总是要打破的,他怼他的,我怼我的,你不说,成见会越来越深。
bump up
支持!
看到Switch,PS都是基于BSD开发的。支持龙芯搞移植!
本站文章除其作者特殊声明外,一律采用CC BY-NC-SA 4.0许可协议进行授权。进行转载或二次创作时务必以相同协议进行共享,严禁用于商业用途。