加载论坛时出错,请强制刷新页面重试。

LoongArch Slackware current bootstrap 项目启动

大道无形若水

LoongArch Slackware current bootstrap 项目启动

1. Slackware是什么?

Slackware历史悠久且优秀,它始于1992年,在1993年首次发布,是现存最古老的商业Linux发行版。Slackware致力于成为一个简单整洁的Linux发行版并尽可能的向UNIX靠拢,这使它非常适合想学习Linux或其他类UNIX系统的人。

Slackware的设计理念以简单性,软件纯度,而核心设计则强调上游资源应保持不变。Slackware 中的许多设计选择可以看作是继承了传统 Unix 系统的简单性和KISS 原则的示例。

2. LoongArch Slackware current bootstrap 项目建立的原因是什么?

首先需要介绍下为什么选择 Slackware current :Slackware 官方维护着一个开发版本(Slackware Current),并且不断有新的软件被加入到这个源,用户可以实现类似 Arch Linux 的滚动升级,等到一个开发版本足够稳定,便会发布一个稳定版。

项目的建立原因有两个:

(1)跟进 LoongArch 上游社区最新状态,让LoongArch开发者和使用者可以使用上游社区最新的技术成果。

(2)丰富 LoongArch 平台发行版系统的种类,可以让大家在LoongArch平台上可以开心的玩耍Slackware(后面也希望可以推动上游Slackware支持LoongArch平台)。

现在LoongArch 新世界里有:CLFS for LoongArchgentooarchlinuxArchlinux loongarch64 bbs讨论帖子)、武老师制作的Archlinuxdebian还在进行中

3. LoongArch Slackware current bootstrap 项目是做什么的,解决什么问题?

LoongArch Slackware current bootstrap 项目是把Slackware进行移植到LoongArch平台,项目的目标是在LoongArch平台使用Slackware可以和x86平台一样的用户体验。

4. LoongArch Slackware 的 ARCH 选择与思考:BBS讨论帖:此问题详细讨论地址

个人见解是distro的ARCH讨论还需要继续,问题还可以深入讨论的必要,这个问题会影响后续上游LoongArch 发行版规范,但此项目需要继续前进,所以本人决定,先以"ARCH=loongarch64" 验证构建方法可靠性,后续会有变化,此ARCH非最终定论

综合考虑,本项目移植LoongArch Slackware 选择ARCH=loong64

5. 项目源码地址:https://github.com/slackwarecn/slackware-loongarch64
6. 发布v0.1:LoongArch-slackware64-current-bootstrap-20220708:详细信息请看 Release v0.1

7. Slackware LoongArch 20220708桌面图形构建完成:基于v0.1:LoongArch-slackware64-current-bootstrap-20220708 状态,图形桌面截图展示

8. 发布 v0.3:slackware-current-bootstrap-2022.10.12-loong64

9. 发布slackware current mini install 镜像:slackware64-current-loong64-20221122-mini-install.iso

后面我会在此处,放上我从头移植LoongArch Slackware的成果和展示,欢迎大家来此处讨论 LoongArch Slackware ,此帖持续更新中

最后感谢上游LA开发者们的讨论,让我对移植到新架构上发行版,有了更多的认识,过程中有很多注意事项,比如代码规范、各核心基础软件和发行版ARCH的选择、上游社区的沟通方式等,这些问题的思考让我对发行版的整体有了更深的认识。


时空质能

大道无形若水 龙芯64位架构

lx64类比 sw64


大道无形若水

4.LoongArch Slackware 的 ARCH 选择与思考:

欢迎大家针对发行版ARCH的名字选择在此讨论:

最近看到LA开发者们对发行版ARCH的讨论,事后我对ARCH进行了思考。因为现在考虑64位,LoongArch Slackware 的 ARCH 有以下几个选择,我把当时讨论的几个ARCH列出来:

(1)ARCH=loongarch64 ,我从开始就喜欢loongarch64,所以我之前移植好的LoongArch archlinux使用的是loongarch64,现在想想它的长度太长了,所以我需要再慎重考虑下ARCH的选择

loongarch64) export ARCH=loongarch64

(2)ARCH=loong64 上游社区LoongArch 的go、v8使用了ARCH=loong64,并且上游LoongArch gentoo(WANG Xuerui (xen0n) 大佬推动维护的LoongArch gentoo)也是使用 loong64(首次使用)的发行版

loongarch64) export ARCH=loong64

(3)ARCH=la64 ,和ia64太像了

loongarch64) export ARCH=la64

(4)ARCH=l64 ,容易和数字“164”*(一六四)看混,增加了观看人的辨识难度

loongarch64) export ARCH=l64

下面是使用上面列举的 ARCH 打包后的表现:

0 root:~/binutils # ls -al  /tmp/binutils-2.38-*

-rw-r--r-- 1 root root 4347652 Jun 27 09:42 /tmp/binutils-2.38-l64-3.txz

-rw-r--r-- 1 root root 4344636 Jun 27 09:36 /tmp/binutils-2.38-la64-3.txz

-rw-r--r-- 1 root root 4304680 Jun 27 09:52 /tmp/binutils-2.38-loong64-3.txz

-rw-r--r-- 1 root root 4304728 Jun 27 09:37 /tmp/binutils-2.38-loongarch64-3.txz

所以综合考虑,本项目移植LoongArch Slackware 选择ARCH=loong64 (待定)

欢迎大家针对发行版ARCH的名字选择在此讨论


杜比

建议使用 loongarch64


杜比

尤其是在一些上游代码使用loongarch来判断平台的时候,架构名称上的统一,不容易产生疑义


大道无形若水

杜比 哈哈,我理解你的顾虑,这个发行版里的ARCH涉及打包后缀的变化,和代码中的架构判断不相关,所以代码里的判断是loongarch,现在也还是判断loongarch


杜比

大道无形若水 go 使用 loong64 有其不得已而为之,但就发行版系统架构而言,和内核高度统一总是好的!


大道无形若水

杜比 感觉需要@xen0n 白老师给我们普及下发行版ARCH的选择与思考 😀


杜比

在我看来,这不需要选择,除非不得已


aa

大众认知都是loongarch ,极少数使用loong ,我选择loongarch64(除非能统一到loong64)


冲天飞豹

loongarch64或者la64


冲天飞豹

论相似,loong我觉得跟long也挺像的。


REDEAST

个人建议,简写loong64,完整写loongarch64 。


zl2019

建议统一loongarch64


xen0n

在 arch 标识符这种地方使用 loongarch 的主要坏处是——长。

以 Gentoo 为例:

Gentoo 的 eshowkw 工具,keywords 是纵列渲染的:

packages.gentoo.org 的 keywords 表格,横向空间很宝贵:

GLEP 53 明确提到:

Note that no limit on the length of both fields in the keyword are imposed. However, we cannot overemphasize our preference to keep keywords small and sensible.

“keyword 两个字段的长度没有限制。尽管如此,我们保持 keywords 短而靠谱的倾向性再怎么强调也不过分。”

因为我们一般称呼放置 Gentoo keyword 的配置项叫 ARCH,已经有 arch 四个字母了,那么叫 loongarch 就很冗长。事实上,最早的 Gentoo port 确实使用了 ARCH=loongarch,是上游讨论下来要改 loong 的。当时的讨论串在这里(从 In-Reply-To 字段可以链接到先前的邮件,一小串讨论)。

Go 项目采用 GOARCH=loong64 而非 GOARCH=loongarch64,也是相同原因。在 Go 上游的 porting issue 提出伊始,就有 Go 官方维护者指出

I think "loong64" is good; a GOARCH value that itself contains the substring "arch" is redundant, we don't do that for any other.

“我觉得‘loong64’不错;一个自己就包含‘arch’子串的 GOARCH 取值显得冗余,我们在别的架构从未这么做。”

因此,出于尊重上游项目既有规范、秩序的考虑,对于那些有需求使用较短的架构标识符的场合,使用 loongloong64 是比较好的选择。

(肯定有人会提议 la64。绝大多数地方不使用 la64 是因为我们这些认识 ia64 的老家伙还没入土。某种程度上这也是尊重不同群体。)


大道无形若水

还有一个头疼loongarch太长的原因是,slackware在各mirror中,会在目录上进行区分架构,比如:“slackware”(默认是x86)、“slackwarearm”(里面是arm的slackware,里面会进一步区分区分是arm还是aarch64)

下面是截图清华mirror的截图,

假如LoongArch Slackware的架构宏选择和在mirror中目录的体现是:

# 选择 loongarch64
slackware          # 这是 x86
slackwarearm       # 这是 arm
slackwareloongarch # 这是 LoongArch,长度就很震惊,心惊胆颤。。。
# 为啥不选择 la64 的原因是因为和ia64太像了
# 选择 loong64
slackware       # 这是 x86
slackwarearm    # 这是 arm
slackwareloong  # 这是 LoongArch,长度也还是长但也还能接收,
                # 但选择loong的话,会让爱好者搞混(开发者大概率会懂)记错loong和loongarch,引起分裂。。。           

我现在很纠结,咱们继续再讨论讨论吧,感觉这个问题会影响后续上游LoongArch 发行版规范。。。

我现在已经整好了个slackware current loongarch64的基础系统了(在跑通流程,后面确定好 ARCH,可以很快 bootstrap 出 LoongArch Slackware)

下面我放一下“ARCH=loongarch64 ”(现在为了先验证构建方法可靠性,后续会有变化,此ARCH非最终定论)slackware current loongarch64 的图片,请大家欣赏:


杜比

大道无形若水LoongArch 发行版规范”,这说到了点子上,上游的约定成俗确实要考虑,但同时也是要尊重龙芯的规范,目前新老世界几个发行版,loongnix,uos,kylin,archlinux ,大多使用的都是loongarch,linux上游提交使用的也是loongarch,难道这还不够明显么。

个人或者一些群体做发行版,对loongarch生态是好事,但是在一些关键字的选择上,有规范的用词不用,岂不是舍近求远,至于字长排版上的考虑,简直是丢了西瓜拣芝麻,削足适履!


aa

长度根本不是主要问题,主要是取名字带了arch,让老外有了简写的机会,造成规范不统一。打包格式应该统一,因为面向新手和用户。在mirror长度也有好处,在众多架构中能直接选最长就完。


大道无形若水

aa

我理解你说的这种更利于新手使用,但我们不能为了做事情而做事情,

我们需要做的东西符合slackware哲学,这样更有利于更多的人认可和使用LoongArch,要不然就只能自娱自乐

就像LA基础软件,为什么要提交到上游?为什么他们会改版多次上游才接受部分patch?我们不光要自己玩好,还有带着大家一起玩,所以我们需要考虑的更全面些


xen0n

我近期发现很多人不认为 ARCH=loongarch 冗长,是否这和思维方式不同有关?因为按照英语语感,这很冗余,并不像汉语思维中“架构=龙架构”似乎不太显得冗余。但我觉得尊重各个上游的现存实践是有价值的。

至于“在众多架构中能直接选最长”,这完全就是因为(1)不完全懂英语,一串英文不想看具体意思,只看长度;(2)不打字,等你需要在各种地方不断重复 LoongArch loongarch loongarch64 loongarch64-unknown-linux-gnu ARCH=loongarch GOARCH=loongarch64 的时候就疯掉了。你可以说自己是最终用户你有理,但不把开发者观点当回事也是很令人震惊的。


冲天飞豹

那就la64呗。


aa

在众多架构中能直接选最长,是指能一眼分辩出来,至于打字一般用补全的,选loongarch是想着官方用的时 loongarch64-unknown-linux-gnu,能统一尽量统一,并没有不把开发者观点当回事,最终决定哪个的是你们,最后有什么说错的,请多多包涵。


xen0n

aa 在众多架构中能直接选最长,是指能一眼分辩出来

这个论据有些弱:名字长,以至于能一眼分辨出来,好像并不是一个值得夸耀的点(这里可能有个人好恶的区别)。至少对我个人而言,三个字母(arm)、五个字母(loong、riscv)、九个字母(loongarch)并没太大区别;字母多了还要仔细看看确认没拼错。

aa 打字一般用补全的

没有补全的地方也有很多。不是所有打这种字的时候都在命令行。。当你在写代码的时候经常要打这九个字母,甚至经常要调整周围一些行的纵向缩进来适应 XXX_LOONGARCH64_XXX 的时候,可能就不会觉得名字长很方便了

aa 选loongarch是想着官方用的时 loongarch64-unknown-linux-gnu,能统一尽量统一

实际上大家基本还是能用全称就用全称的。例如 linuxsystemdqemu,你不会看到我或者任何其他社区人士在阻挠。你仔细看我前面回复也会发现,所有改 loong 的地方都是为了遵循相应上游现有的取名风格。

费劲解释这些当然不是为了单纯争论个是非对错,搞得脸红脖子粗。但作为不直接参加开发、沟通、协调等上游工作的最终用户,既然都决定在这个架构的襁褓时期就入坑使用了,应该做好面对施工现场的心理准备。在这个阶段就加入讨论的话,大家会预期你要了解许多事情的来龙去脉的,至少要对讨论内容的上下文有所了解。一面墙的英文是你不想看也得看完的。


下一页 »

知识共享许可协议
本站文章除其作者特殊声明外,一律采用CC BY-NC-SA 4.0许可协议进行授权。
进行转载或二次创作时务必以相同协议进行共享,严禁用于商业用途