龙芯loong64架构国产指令集合
龙芯loong64架构国产指令集合, 在国内目前最有可能成为国产化标准。 以软件思维
建立生态
建立指令集生态:
试水阶段
:前几代先从mips64
开源指令集,扩展指令mips64le
兼容阶段
:龙芯自主指令系统架构LoongArch
,保持与MIPS、X86、ARM
的兼容性生态扩展
:- 操作系统层面:
内核kernel 5.19+
- 编译器层面:
java
、rust
、golang
编译器; - 编译生态:
qemu
仿真器;docker buildx/buildkit
工具; - 语言生态包:基础软件包等领域齐头并进
- 操作系统层面:
Link:
- kernel 5.19
- golang release 1.19
- Qemu v7.1 rc1
- 基础软件生态完善中:
编译案例使用base image
alpine loong64 base image
dockerhub地址:alpine 3.11.11
$ docker pull --platform linux/loong64 dongjiang1989/alpine:3.11.11
代码代码工程
# Builder
FROM dongjiang1989/alpine:golang-1.19.0-alpine as builder
RUN mkdir -p /go/src/server
WORKDIR /go//src/server/
COPY main.go main.go
COPY vendor/ vendor/
COPY go.sum go.sum
COPY go.mod go.mod
RUN export GOPATH=/go/src
RUN export GO111MODULE=off
RUN go build -o /demo-server main.go
# Server
FROM dongjiang1989/alpine:golang-1.19.0-alpine
EXPOSE 8080
COPY --from=builder /demo-server /demo-server
ENTRYPOINT ["/demo-server"]
地址:https://github.com/kubeservice-stack/muti-arch/blob/master/Dockerfile.loong64
其他不足之处
- Golang周边生态软件package跟进比例不足10%
- Qemu仿真器,目前只是支持 3A4000 和 3A5000; 并且 github Action 的 docker/setup-qemu-action 未跟进 (
核心:这个导致在github上项目不能批量更新
) - Golang、Rust等目前还不支持交叉编译(
cross compile
) - 基础镜像支持不够全面 并且 没有官方权威支持:比如
alpine
、bullseye
「如果这篇文章对你有用,请随意打赏」
FEATURED TAGS
agent
apiserver
application
bandwidth-limit
cgo
cgroupfs
ci/cd
client-go
cloudnative
cncf
cni
community
container
container-network-interface
containerd
controller
coredns
crd
custom-controller
deployment
docker
docker-build
docker-image
drop
ebpf
ecology
egress
etcd
gitee
github
gitlab
golang
governance
hpa
http2
image
ingress
iptables
jobs
kata
kata-runtime
kernel
kind
kubelet
kubenetes
kubernetes
library
linux-os
logging
loki
metrics
monitor
namespace
network
network-troubleshooting
node
nodeport
pingmesh
pod
prestop
prometheus
proxyless
pvc
rollingupdate
schedule
scheduler
serverless
sidecar
sigtrem
systemd
throttling
timeout
tools
traceroute