bexsder FreeBSD是bsd类os里,更趋于通用os的类Unix系统,它的内核和基本系统自成体系,bsd软件许可更为宽松,ports里软件比netbsd和openbsd也要丰富一些。目前它稳定版本的构建基于llvm11,结合loongarch开始向上游提交补丁,已经基本具备了移植的基础条件。 相关链接: [FreeBSD] https://www.freebsd.org/ https://github.com/freebsd https://github.com/freebsd/freebsd-src.git [NetBSD] https://netbsd.org/ https://github.com/netbsd https://github.com/NetBSD/src.git [OpenBSD] https://www.openbsd.org/ https://github.com/openbsd https://github.com/openbsd/src.git
木棉 非常支持 bsd系统内核组织结构整体上大同小异,移植到loongarch架构的关键是内核中与机器相关的代码部分。 我调研了netbsd、openbsd系统往risc-v架构移植的方案,其中的方法可以借鉴过来。 其中,openbsd移植到risc-v的文档比较详细。以openbsd为例,内核中需要移植的部分包括: 系统启动部分(bootstrap) 内存管理(UVM虚拟内存系统) 异常处理(trap) 进程上下文管理(Process) 设备(device) 基本就是下面这个图里面的内容
木棉 杜比 是的,可以先不考虑提交上游,并且就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 看了你贴的链接,又是熟悉的腔调,LA是MIPS的拷贝那些。说实话地球转到今天这样子,我真不觉得有什么必要求这些上游的爷爷们,难道就是为了让他们也贡献工作量?那要我们干什么?找老胡捐几台机器给头上长天线的天才老外不就行了。