Loongnix 操作系统是龙芯开源社区推出的 Linux 操作系统,作为龙芯软件生态建设的成果验证和展示环境,集成了内核、工具链、龙芯浏览器、Java 虚拟机、音视频库、图形环境、云计算、打印驱动等操作系统基础设施方面的最新研发成果,可直接应用于日常办公、生产、生活等应用环境,同时可供合作厂商、科研机构及爱好者在龙芯平台上研发其品牌软件或专用系统。
Loongnix 包括 Loongnix-Server、Loongnix-Client 以及 Loongnix-Cloud 三个产品系,分别面向服务器、个人计算机和云计算领域。应用于个人计算机、服务器、云计算等通用信息化领域,实行 “以开源社区版为基础支持商业版和定制版发展” 的生态模式,即龙芯中科发布开源的社区版操作系统
Loongnix,以此作为技术和产品源头,一方面支持品牌操作系统厂商研发其商业发行版产品,另一方面支持云厂商、OEM 等企业根据需求研发其定制版操作系统。Loongnix 的发展采用了 “遵循统一系统架构和规范 API 应用编程环境” 的技术路线。其中 “系统架构” 是操作系统和整机硬件间的界面,“API 编程环境” 是操作系统与应用软件间的界面。基于《龙芯 CPU 统一系统架构规范》,发布支持 ACPI 标准的 UEFI 固件和系统,实现操作系统跨主板整机兼容和 CPU 代际兼容,达到 “任意一套龙芯操作系统可以安装在不同厂商不同时期龙芯整机” 的目标。
龙芯中科为此建立了专业团队,研发和维护 Java 虚拟机、浏览器、图形库等重要 API,通过规范 API 应用编程环境,建立操作系统平台对 API 环境支持的版本识别度,在技术创新的同时保持 API 兼容。
在云计算方面,龙芯平台完备支持 Openstack/KVM、Docker/K8S 等典型云计算方案;发布了 Loongnix 以及 Alpine 等龙芯平台操作系统容器镜像,用户可以直接下载使用。
Loongnix 还推出三维地球显控中间件 LoongEarth,性能大幅优于已有三维地球显控软件。
破茧边缘 发布的最新帖子
-
龙芯开源操作系统Loongnix
-
功能管理发布解决方案FeatureProbe
FeatureProbe 是一个开源的 『功能』管理 服务。它包含灰度放量、AB 实验、实时配置变更等针对『功能粒度』的一系列管理操作。这里的『功能』包含业务功能、技术改造、运营活动等任何涉及代码开发的『功能』。它可以让开发人员、运营人员、运维人员安全、高效的完成线上变更,同时精细控制变更风险。传统的灰度发布,是以版本为粒度,做 A/B 版本的灰度测试,发布策略比较简单,一旦出问题,影响范围会很大。而 FeatureProbe 以产品功能为粒度,可以提前部署代码,后台一键开关控制功能发布与关闭,秒级别生效,真正地做到低风险、轻松地渐进式迭代交付。
-
架构设计
RocketMQ总体最组件分为 NameServer BrokerPorducer Consumer
-
NameServer 名称服务:NameServer类似于Zookeeper这种角色 负责管理集群组件,简单来说NameServer可以查询到Broker有哪些、Topic在哪些Broker机器上 队列是如何分布的,它就像一颗大脑 管理者 收集者。相当于是一个topic路由管理中心,NameServer可以多实例分别独立部署、相互之间不产出数据交换,每个Broker在启动的时候会向所有的NameServer上报信息,所以他们之间可以相互独立,完全无状态。就算挂掉1个也不影响集群。
-
Broker 消息存储代理服务:Broker才是真正托管消费存储、投递查询的服务,这个是非常核心的服务,大部分的性能优化都是针对这个服务进行。Broker分为master slave角色 在配置文件中brokerId=0表示Master 不为0表示slave。
broker启动后和NameServer建立了长连接 定期向NameServer上报Topic信息自身信息。 -
producer 生产者:生产/发送消息服务,一般是程序自己编写的业务发送消息端,启动后首先会和NameServer建立连接,定时从NameServer获取Topic路由信息,定时查询Broker服务信息 同时会和Broker master角色建立长连接。producer 也是无状态的。
-
consumer 消费者:消费者服务 一般是由自己业务程序编写实现。启动后和NameServer建立连接 定时从NameServer获取topic信息和Broker信息,获取到Broker的信息后会和broker中的master salve角色也建立长连接 所有consumer中可以订阅master和slave。
-
-
现代仓库管理系统OpenWMS.org
OpenWMS.org 是一个用于构建现代仓库管理系统的软件项目,使用 Apache-2.0 许可证分发,由仓库管理部分 (WMS)、传输管理 (TMS) 和其他系统的连接器组成,带有用于自动和手动仓库的物料流控制 (MFC) 系统。WMS 部分连接到 ERP 系统,而运输管理系统控制现场控制器,如 Raspberry Pi 或 PLC。还考虑了系统可用性、性能和可靠性等非功能性要求。
-
嵌入式Linux系统生成工具Buildroot
Buildroot 是 Linux 平台上一个构建嵌入式 Linux 系统的框架。整个 Buildroot 是由 Makefile 脚本和 Kconfig 配置文件构成的。你可以和编译 Linux 内核一样,通过 buildroot 配置,menuconfig 修改,编译出一个完整的可以直接烧写到机器上运行的 Linux 系统软件 (包含 boot、kernel、rootfs 以及 rootfs 中的各种库和应用程序)。
项目地址:https://www.oschina.net/p/buildroot
-
数据分片
我们的一个数据库中通常是有很多数据表的,不过可能由于我们的分类不到位,就会出现涝的涝死旱的旱死的局面,比如某些数据表的读写操作十分频繁,而我的这个库中大量的集中了这种
读写操作频繁的表,那么整体的吞吐量就会降低,而某个库中又集中了读写不频繁的表,吞吐量十分的高(但是好像没什么卵用),所以我们应该合理的分配,以保证整理的吞吐量达到最大值,
下图将数据表各分到了一个数据库中。
不过垂直分片不能从根本上解决读写瓶颈,因为不管你再怎么分,所有的数据始终都集中在一张表里面,就算数据库的性能再好,也解决不了这个问题。所以我们需要进行更加细粒度的划分,下面我们来讲解水平分片。水平分片又可以叫做横向拆分,就是将一张大表拆分为若干张小表,比如我一张表中有1亿条数据,那么我拆分为10张表,每张表中存1000万条数据,那么效率就会变高,还有些数据需要进行分类和归档,那么我们也需要进行分表,之前我们系统中一个表用来存储文档信息,有十多年因为数据量十分庞大,在业务中需要对文档进行排序等操作,本来查询就比较耗时了,再加上需要进行逻辑上的处理,所以就更加耗时,于是就进行了分表,将每一年的数据存进一个表,这样就提高了查询效率,并且更加容易对数据进行追踪和管理,如下就是水平
分片的图例。
-
Linux虚拟屏幕创建工具
VirtScreen 是一个易于使用的 Linux GUI 应用程序,创建一个虚拟的二次屏幕,并通过 VNC 共享它。VirtScreen 在 Python 端基于 PyQt5 和 asyncio,并使用了 x11vnc 和 XRandR。可将平板、手机作为电脑第二屏幕(Linux 系统下)。没有更多的输入命令 - 创建第二个 VNC 屏幕从 GUI 点击几次。但是对于 CLI 爱好者来说,也有命令行选项。有着高度可配置 - 分辨率,肖像模式,和 HiDPI 模式。适用于任何 Linux 发行版与 Xorg,轻量级、系统托盘图标。
-
Linux兼容内核Longene
兼容内核是一个自由、开源的操作系统项目,目的是要把 Linux 的内核扩充成一个既支持 Linux 应用、也支持 Windows 应用,既支持 Linux 设备驱动、也支持 Windows 设备驱动的兼容内核;使用户可以直接在 Linux 操作系统上高效运行 Windows 应用。
通过兼容内核,我们希望原来习惯于 windows 操作习惯的用户可以在 Linux 上延续他们的操作习惯。用户购买的第三方软件可以变成与操作系统无关,对 于用户来说,本来是一旦购买了 Windows 的应用软件,从此只能选择 Windows 操作系统,而现在却还可以有选择,这对于 Linux 当然是意义重大,可以提高桌面 Linux 的市场竞争力。
兼容内核开发组是由浙大网新资助的开源项目,我们将遵守 GPL 规定,公开那些按规定应予公开的源代码。我们欢迎世界各地的广大网友与爱好者的参与,形成一个 Linux 兼容内核的开源社区。
-
对象映射
说到对象映射框架,大家想到的最多的是AutoMapper,可能很多人连Mapster都没听过,但不可否认的是Mapster确实是一个很好的对象映射框架。
Mapster是一个使用简单,功能强大的对象映射框架,自2014年开源到现在已经过去8个年头,截止到现在,github上已经拥有2.6k的star,并保持着每年3次的发版频率,其功能与AutoMapper类似,提供对象到对象的映射、并支持IQueryable到对象的映射,与AutoMapper相比,在速度和内存占用方面表现的更加优秀,可以在只使用1/3内存的情况下获得4倍的性能提升,
Masa.Contrib.Data.Mapping.Mapster是基于Mapster的一个对象到对象的映射器,并在原来Mapster的基础上增加自动获取并使用最佳构造函数映射,支持嵌套映射,减轻映射的工作量。映射规则:目标对象没有构造函数时:使用空构造函数,映射到字段和属性。目标对象存在多个构造函数:获取最佳构造函数映射。
最佳构造函数: 目标对象构造函数参数数量从大到小降序查找,参数名称一致(不区分大小写)且参数类型与源对象属性一致目前Masa.Contrib.Data.Mapping.Mapster的功能相对较弱,当前版本与Mapster的相比仅仅增加了一个自动获取并使用最佳构造函数的功能,让我们在面对无空构造函数且拥有多个构造函数的类时也能轻松的完成映射,不需要额外多写一行代码。
但我觉得Masa版的Mapping最大的好处是项目依赖的是BuildingBlocks下的IMapper,而不是Mapster,这也就使得我们的项目与具体的映射器实现脱离,如果我们被要求项目必须要使用AutoMapper,只需要实现AutoMapper版的IMapper即可,无需更改太多的业务代码,仅需要更换一下引用的包即可,这也是BuildingBlocks的魅力所在