【概念版】Linux相关教程(一)

本文介绍了银河麒麟操作系统的背景和发展历程,详细阐述了其产品系列和技术特点,包括生态丰富性、国产平台优化、图形显示优化等,并提供了安装教程。

一、参考资料

Linux日常使用技巧(一)

二、Linux操作系统

银河麒麟

银河麒麟(KylinOS)原是在“863计划”和国家核高基科技重大专项支持下,国防科技大学研发的操作系统,后由国防科技大学将品牌授权给天津麒麟,后者在2019年与中标软件合并为麒麟软件有限公司,继续研制的Linux操作系统。银河麒麟是优麒麟(Ubuntu Kylin)的商业发行版,使用UKUI桌面。

银河麒麟操作系统V10是中国电⼦集团研发的操作系统,该系统充分适应5G时代需求,打通手机、平板电脑、PC等,实现多端融合。麒麟操作系统独创的kydroid技术,可以原生支持海量安卓应用,成功将300万余款安卓适配软硬件无缝迁移到国产平台上来。

2020年8月13日,中国电子发布银河麒麟操作系统V10。

2021年10月27日,麒麟软件正式发布了“银河麒麟操作系统V10 SP1 版本”。

银河麒麟的产品

银河麒麟桌面操作系统V4

银河麒麟桌面操作系统V10

银河麒麟服务器操作系统V4

银河麒麟高级服务器操作系统V10

中标麒麟的产品

麒麟高级服务器操作系统软件V7.0

中标麒麟安全操作系统软件V7.0

中标麒麟桌面操作系统软件V7.0

银河麒麟特点

https://www.kylinos.cn/scheme/desktop/2.html

生态丰富

首先是安全。其次是生态。银河麒麟操作系统V10集成了丰富的软件生态,包括办公、图形、游戏等11类3500款小程序,桌⾯版本中集成了安卓兼容生态以及兼容了丰富的外设等,这些都是使⽤者日常所需,也是国产操作系统获得公众认可的⾸要条件之⼀。

国产平台优化

针对国产CPU平台的特点和不足,在功耗管理、内核锁、内核页拷贝、网络、VFS、NVME等方面开展优化,实现了CPU动态频率调节和温度监控,有效支撑某型国产笔记本使⽤电池实现连续视频播放4小时,⽀持了多个国产桥片与国产网卡、提升了I/O性能、网络处理能力以及NVME的吞吐率。

图形显示优化

针对XORG实现BMC显卡和radeon显卡同时显⽰,构建中间层实现国产显卡软件栈的互兼容,GCN架构显卡重构EXA 2D加速框架,2D显⽰提升40%以上;优化图形状态、 OpenGL 指令提交⽅式以及窗⼝管理器,使⽤ dri3 机制,解决GPU lockup等问题,3D显⽰提升100%以上;⽀持并优化景嘉微、709所等多款国产显卡。

内生安全体系

提供核内外⼀体化防护的安全体系,实现⾃研Kysec、BOX等安全机制和开源强访控制兼容管控。对⾮法导⼊的软件⾃动识别并阻⽌;可实现私有数据不被超级⽤户获取;提供⽀持指纹、指静脉、虹膜和声纹等多种⽣物特征的认证等。

轻量桌面环境

统⼀界⾯风格和操作体验,提供类似Win 7风格的⽤户体验,操作简便,上⼿快速,降低Windows切换的学习成本,满⾜不同⼈群的视觉和交互需求;基于插件模式将系统主题、桌⾯、任务栏、开始菜单等桌⾯组件并⾏加载,优化桌⾯图形加载速度;基于组件的桌⾯环境管理⽅式,组件之间基于⾼可靠进程间通信,有效提⾼系统稳定性。

统⼀软件商店

精选数百款办公、开发、图形、视频等常⽤软件,集成麒麟影⾳、麒麟助⼿、麒麟刻录等⾃研应⽤,和搜狗输⼊法、⾦⼭WPS等合作
办公软件,⽀持Windows软件替换导航,具备应⽤搜索、在线安装、在线更新、⼀键卸载、评分评论等功能特性,并定期从服务器推
送新精选和适配软件。

安卓兼容环境

构建⾼性能安卓运⾏时环境,形成完整的国产平台安卓应⽤⽣态迁移解决⽅案,实现⾼效的图形中间层、统⼀设备接⼝中间层、多实例多窗⼝化运⾏机制、数据共享、提升安卓APP体验和安全防护增强等功能,具有原⽣性、⾼兼容性、⾼融合性等特点,解决⽤户的多样化应⽤需求,将丰富且成熟的安卓⽣态迁移到国产平台下,⽬前可以⽀持2000余款安卓应⽤(如微信、QQ、办公、股票、游戏等)。版本兼容升级构建了多个CPU平台统⼀的在线软件仓库,并通过版本默认集成的更新管理器客户端提供在线更新功能,⽀持软件更新和版本补丁升级,⽀持向联⽹⽤户推送系统更新包和安全补丁。所有软件更新和补丁都通过严格的兼容性测试验证,保证版本和应⽤更新升级的兼容。

安装教程

银河麒麟桌面操作系统v10安装教程

麒麟V10系统安装教程

银河麒麟操作系统的安装方式与Ubuntu安装方式类似,也可以在VMWare虚拟机中安装。

EulerOS

欧拉操作系统,是华为自研的基于Linux标准内核的操作系统,eulerOS与centos指令相似。

Debian系统

Release Notes for Debian 13 (trixie)
附录 B. 使用预置自动进行安装
Debian “trixie” 发行信息
Debian 全球镜像站

下载 debian依赖包:https://packages.debian.org/en/sid/libdevel/

三、相关介绍

1. RPM与Deb软件包格式

手把手教你玩转 openEuler 开源社区

在 Linux 的世界,有两种基本的安装包格式:RPMDeb

1.1 RPM格式

这个格式是 redhat, suse, WindRiver, openEuler 等所选用,目前在企业市场,基本是以这些厂家为主,因此 rpm 格式在商用企业市场用的比较多。

1.2 Deb格式

这个格式是 debian, Ubuntu, android 使用的,目前在 desktop终端侧用的比较广泛。

1.3 总结

这两种格式本身没有什么优劣之分,只是不用厂商的选择而已。

binutils

binutils是二进制文件的处理工具,它主要包含了一些辅助开发工具,例如,objdump显示反汇编码、nm列出符号表、readelf显示elf文件信息及段信息、strip将不必要的代码去掉以减少可执行文件大小等。这些工具在嵌入式开发初期,尤其是在移植调试操作系统时非常有用。

GNU编译器

GNU编译器集合(GCC)是C,C ++,Objective-C,Fortran,Ada,Go和D编程语言的编译器和库的集合。许多开源项目包括GNU工具和Linux内核都是用GCC编译的。

/usr

usr 是指 Unix System Resource,而不是User。

/usr/bin vs. /usr/local/bin

/usr/bin 下面的都是系统预装的可执行程序,会随着系统升级而改变。

/usr/local/bin 目录是给用户放置自己的可执行程序的地方,推荐放在这里,不会被系统升级而覆盖同名文件。

如果两个目录下有相同的可执行程序,谁优先执行受到PATH环境变量的影响,比如我的一台服务器的PATH变量为

echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

这里 /usr/local/bin 优先于 /usr/bin, 一般都是如此。

fstab

linux之fstab文件详解

tmpfs

linux下的tmpfs和devtmpfs分别是什么啊?

概述

默认的linux发行版中的内核配置都会开启tmpfs,映射到了 /dev/ 下的shm目录。/dev/shm/是linux下一个非常有用的目录,因为这个目录不在硬盘上,而是在内存里。因此在linux下,就不需要大费周折去建ramdisk,直接使用 /dev/shm/ 就可达到很好的优化效果。默认系统就会加载 /dev/shm ,它就是所谓的tmpfs,有人说跟ramdisk(虚拟磁盘),但不一样。象虚拟磁盘一样,tmpfs 可以使用您的 ram,但它也可以使用您的交换分区来存储。

# 查看tmpfs
df -h
[forlinx@ok3568:~]$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root       5.9G  1.2G  4.5G  21% /
devtmpfs        978M     0  978M   0% /dev
tmpfs           986M     0  986M   0% /dev/shm
tmpfs           986M  460K  986M   1% /tmp
tmpfs           986M  280K  986M   1% /run
/dev/mmcblk0p7  124M   13M  106M  11% /oem
/dev/mmcblk0p8  8.4G  501M  7.6G   7% /userdata

tmpfs优势

  1. 动态文件系统的大小,/dev /shm/需要注意的一个是容量问题,在linux下,它默认最大为内存的一半大小,使用df -h命令可以看到。但它并不会真正的占用这块内存,如果 /dev/shm/ 下没有任何文件,它占用的内存实际上就是0字节;如果它最大为1g,里头放有 100m文件,那剩余的900m仍然可为其它应用程序所使用,但它所占用的100m内存,是绝不会被系统回收重新划分的。
  2. tmpfs 的另一个主要的好处是它闪电般的速度。因为典型的 tmpfs 文件系统会完全驻留在 ram 中,读写几乎可以是瞬间的。
  3. tmpfs 数据在重新启动之后不会保留,因为虚拟内存本质上就是易失的。所以有必要做一些脚本做诸如加载,绑定的操作。

glic相关教程

多种方式解决交叉编译中glibc版本不兼容导致的编译问题(libc.so.6: version `GLIBC_xxx‘ not found问题)

概述

glibc是GNU发布的libc库,即c运行库。glibc是linux系统中最底层的api,几乎其它任何运行库都会依赖于glibc。glibc除了封装linux操作系统所提供的系统服务外,它本身也提供了许多其它一些必要功能服务的实现。由于 glibc 囊括了几乎所有的 UNIX 通行的标准,可以想见其内容包罗万象。而就像其他的 UNIX 系统一样,其内含的档案群分散于系统的树状目录结构中,像一个支架一般撑起整个操作系统。

重要说明:Ubuntu/Centos 为了稳定使用的glibc版本通常比较低。而安装有些程序需要依赖新版本。升级glibc需要慎重,因为升级失败后导致系统不能用了。原则上不推荐升级glibc

查询GLIBC版本

# 查询是否缺失相应的GLIBC版本
strings /usr/lib64/libstdc++.so.6 | grep GLIBC
strings /lib/x86_64-linux-gnu/libc.so.6 |grep GLIBC_
strings /lib/x86_64-linux-gnu/libc-2.23.so | grep GLIBC

或者
ldd --version
yoyo@yoyo:~/MyDocuments/PyProjects/example-app/build$ strings /lib/x86_64-linux-gnu/libc.so.6 |grep GLIBC_
GLIBC_2.2.5
GLIBC_2.2.6
GLIBC_2.3
GLIBC_2.3.2
GLIBC_2.3.3
GLIBC_2.3.4
GLIBC_2.4
GLIBC_2.5
GLIBC_2.6
GLIBC_2.7
GLIBC_2.8
GLIBC_2.9
GLIBC_2.10
GLIBC_2.11
GLIBC_2.12
GLIBC_2.13
GLIBC_2.14
GLIBC_2.15
GLIBC_2.16
GLIBC_2.17
GLIBC_2.18
GLIBC_2.22
GLIBC_2.23
GLIBC_PRIVATE
GNU C Library (Ubuntu GLIBC 2.23-0ubuntu11.3) stable release version 2.23, by Roland McGrath et al.

安装glibc(自动)

通过 glibc-all-in-one 工具来管理glibc版本,推荐这种方式。

安装glibc(手动)

下载glibc:https://ftp.gnu.org/gnu/glibc/

linux安装指定版本glibc,适配降级

# 解压文件
tar -xvf glibc-2.17.tar
cd glibc-2.17

# 新建build目录
mkdir build
cd build

# 编译
../configure --prefix=/opt/glibc-2.17

# 安装
make && make install

# 设置环境变量
vim /etc/profile
# 末尾添加
export LD_LIBRARY_PATH =  $LD_LIBRARY_PATH:/opt/glibc-2.17/lib

# 使设置生效
source /etc/profile

升级glibc(不推荐)

version `GLIBC_2.34‘ not found简单有效解决方法
Centos7 glibc库升级到2.23

重要说明

系统默认的glibc版本是稳定版本,升级可能会带来各种问题,如果升级失败可能导致系统崩溃,请谨慎升级。

如果交叉编译程序,导致编译生成的可执行文件无法运行,提示glibc版本不支持,可降低交叉编译工具链的版本,用低版本的交叉编译工具链重新编译即可

在遇到glibc库问题时候,可以先考虑下为什么要升级GLIBC库,能够通过其他影响性相对小的方式:

  • 在低版本的系统编译自己的产品,如果自己的产品确实不需要新版才支持的新特性。
  • 用版本高的系统来编译,比如ubuntu,和centos的新版,但可能需要部署到较低版本,那么可以考虑用mock等技术制作更好的安装包,把依赖打入包内。
  • 利用容器技术,如Docker,在低版本的操作系统内,轻量级的隔离出一个虚拟运行环境,适应你的程序。

关键步骤

# 编辑源
sudo vi /etc/apt/sources.list

# 添加高版本系统的源
deb http://th.archive.ubuntu.com/ubuntu jammy main    #添加该行到文件

# 更新源
sudo apt update
sudo apt install libc6

# 查看GLIBC
strings /lib/x86_64-linux-gnu/libc.so.6 |grep 

输出结果

strings /lib/x86_64-linux-gnu/libc.so.6 |grep GLIBC_
GLIBC_2.2.5
GLIBC_2.2.6
GLIBC_2.3
GLIBC_2.3.2
GLIBC_2.3.3
GLIBC_2.3.4
GLIBC_2.4
GLIBC_2.5
GLIBC_2.6
GLIBC_2.7
GLIBC_2.8
GLIBC_2.9
GLIBC_2.10
GLIBC_2.11
GLIBC_2.12
GLIBC_2.13
GLIBC_2.14
GLIBC_2.15
GLIBC_2.16
GLIBC_2.17
GLIBC_2.18
GLIBC_2.22
GLIBC_2.23
GLIBC_2.24
GLIBC_2.25
GLIBC_2.26
GLIBC_2.27
GLIBC_2.28
GLIBC_2.29
GLIBC_2.30
GLIBC_2.31   //以下为新增
GLIBC_2.32
GLIBC_2.33
GLIBC_2.34
GLIBC_2.35
GLIBC_PRIVATE
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

花花少年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值