1.Gentoo 安装基本系统全过程记录
2.Atoms 是源码一个可以让你轻松管理 Linux Chroot 环境的 GUI 工具 | Linux 中国
3.源码解析kafka删除topic
4.开源代码交叉编译操作流程
5.å¦ä½å®è£
gentoo linux
6.详解Linux系统中的usr目录
Gentoo 安装基本系统全过程记录
下载iso 从Gentoo官网下载最新版的minimal镜像,并通过rufus或dd命令刻录为iso文件。源码在Windows系统中推荐使用rufus,源码它是源码开源免费且操作简单的工具。在Linux系统中,源码利用dd命令进行iso文件刻录。源码zookeepercreate源码 配置无线网 确认U盘已正确安装,源码并通过输入lsblk查看对应设备。源码使用dd命令将Minimal镜像写入U盘,源码完成时间约为几分钟。源码重新启动计算机,源码从U盘启动,源码过程中选择键盘模式并确认,源码之后会进入红色提示符界面。源码 联网配置 如果使用有线网络,源码网络已默认连接。通过ping命令确认网络连接状态。若使用无线网络,需手动配置。使用lspci -k检查设备驱动是否加载,使用dmesg | grep firmware查看内核中固件信息。使用iwconfig查看无线网卡名称,通常为wlp3s0,根据实际设备名称进行后续配置。 编辑配置文件 在/etc/conf.d/net中添加以下内容,确保与实际设备名称相符:modules_wlp3s0="wpa_supplicant"
wpa_supplicant_wlp3s0="-Dwext"
config_wlp3s0="dhcp"
生成wpa_supplicant.conf文件,输入无线SSID和密码,确保文件路径正确。 编辑启动脚本 在/etc/init.d目录下创建或修改脚本文件,确保其正确链接到对应的网络设备文件,如ln -s net.lo net.wlp3s0,然后使用/etc/init.d/net.wlp3s0 start启动网络。 测试网络连接 执行ping命令测试网络连接状态。 磁盘分区与挂载 确认网络连接正常后,使用cfdisk对硬盘进行分区。lis检验系统源码根据设备的启动模式选择分区方案。对于UEFI模式,分区方案可能如下:分区 大小 挂载点
/dev/sda1 M 引导分区 /boot/efi
/dev/sda2 8G 交换分区 swap
/dev/sda3 G 根分区 /
/dev/sda4 G 用户主目录 /home
完成分区后,使用write命令确认分区信息,然后格式化和挂载分区,确保正确挂载根分区、引导分区、交换分区和用户主目录分区。 下载stage3 使用cd命令进入根分区,下载stage3文件。通过links命令选择合适的Gentoo镜像,并输入下载命令开始下载stage3文件。下载完成后,检查文件是否存在并解压。 配置系统 配置make.conf文件,根据CPU核心数设置MAKEOPTS参数,通常为-j5。选择合适的配置文件并更新系统。 安装内核源码 使用emerge命令安装sys-kernel/gentoo-sources包,以获取内核源码。根据提示完成安装。 编译内核 使用genkernel一键编译内核,检查内核版本,并安装所需的固件。配置主机名并设置自动启动网络。 安装工具 安装系统日志记录、Cron守护程序、文件索引、DHCP客户端和无线网络工具等,确保系统功能完整。 配置引导 配置GRUB引导加载程序,确保与系统模式相匹配。安装GRUB2,使用grub-install命令将GRUB2文件安装到适当位置,yum的源码安装并运行grub-mkconfig生成引导配置文件。 基本系统安装完成 重启系统后,gentoo基本系统已成功安装。此时,从chroot环境中退出并卸载分区,重新启动系统进入Gentoo环境。创建普通用户以支持桌面登录,后续将安装显卡驱动、触摸板驱动和桌面环境,敬请关注下篇文章。Atoms 是一个可以让你轻松管理 Linux Chroot 环境的 GUI 工具 | Linux 中国
在 Linux 的世界里,chroot 环境就像一个安全的测试沙箱,为开发者和系统管理员提供了隔离的环境进行实验和调试。然而,繁复的命令行操作让这个过程略显繁琐。这时,一款名为 Atoms 的 GUI 工具横空出世,为管理和创建 chroot 环境带来了全新的便利体验。 Atoms 是一个专为简化 chroot 管理而设计的图形界面工具,它不仅支持快速创建,还整合了 Distrobox,使得容器管理也变得轻而易举。然而,它并未包含 Podman 的无缝集成,其主要目标是提供一个直观的界面,让用户在 chroot 或容器环境中轻松启动 shell。 它的功能强大,如图所示,用户可以选择多种受支持的 Linux 发行版,如 Ubuntu、Alpine Linux、Fedora 等,只需简单的操作,如为新环境命名和选择发行版,起点买卖指标源码就能在几分钟内创建并配置好 chroot。在 Atoms 中,你可以轻松浏览 chroot 文件、控制台操作,甚至分离控制台到独立窗口,体验流畅而高效。 对于初学者来说,安装 Atoms 可以通过 Flathub,遵循我们的 Flatpak 指南,轻松上手。值得注意的是,目前的稳定版本 1.0.2 只可通过 Flathub 获取,如果你对源代码或更多信息感兴趣,不妨访问其 GitHub 仓库。 尽管 Atoms 是个提升效率的好工具,但并非唯一的选择。比如 Grub Customizer,它简化了 Grub 配置的命令行操作。这表明,随着技术的发展,越来越多的 GUI 工具正在帮助我们更好地利用 Linux 的丰富功能。 那么,你对 Atoms 这样的 GUI 工具有何看法?它是否改变了你对 chroot 环境的管理方式?在评论区分享你的观点,让我们一起探索更多这样的创新工具如何让 Linux 生活更加便捷。 本文由其作者 Ankush Das 提供,Linux 中国特别推荐,翻译与编辑工作由 geekpi 完成。感谢 LCTT 的原创编译,Linux 中国倾力呈现。源码解析kafka删除topic
本文以kafka0.8.2.2为例,解析如何删除一个topic以及其背后的关键技术和源码实现过程。
删除一个topic涉及两个关键点:配置删除参数以及执行删除操作。
首先,配置参数`delete.topic.enable`为`True`,unity引擎源码购买这是Broker级别的配置,用于指示kafka是否允许执行topic删除操作。
其次,执行命令`bin/kafka-topics.sh --zookeeper zk_host:port/chroot --delete --topic my_topic_name`,此命令指示kafka删除指定的topic。
若未配置`delete.topic.enable`为`True`,topic仅被标记为删除状态,而非立即清除。此时,通常的做法是手动删除Zookeeper中的topic信息和日志,但这仅会清除Zookeeper的数据,并不会真正清除kafkaBroker内存中的topic数据。因此,最佳做法是配置`delete.topic.enable`为`True`,然后重启kafka。
接下来,我们介绍几个关键类和它们在删除topic过程中的作用。
1. **PartitionStateMachine**:该类代表分区的状态机,决定分区的当前状态及其转移。状态包括:NonExistentPartition、NewPartition、OnlinePartition、OfflinePartition。
2. **ReplicaManager**:负责管理当前机器的所有副本,处理读写、删除等具体操作。读写操作流程包括获取partition对象,再获取Replica对象,接着获取Log对象,并通过其管理的Segment对象将数据写入、读出。
3. **ReplicaStateMachine**:副本的状态机,决定副本的当前状态和状态之间的转移。状态包括:NewReplica、OnlineReplica、OfflineReplica、ReplicaDeletionStarted、ReplicaDeletionSuccessful、ReplicaDeletionIneligible、NonExistentReplica。
4. **TopicDeletionManager**:管理topic删除的状态机,包括发布删除命令、监听并开始删除topic、以及执行删除操作。
在删除topic的过程中,分为四个阶段:客户端执行删除命令、未配置`delete.topic.enable`的流水、配置了`delete.topic.enable`的流水、以及手动删除Zookeeper上topic信息和磁盘数据。
客户端执行删除命令时,会在"/admin/delete_topics"目录下创建topicName节点。
未配置`delete.topic.enable`时,topic删除流程涉及监听topic删除命令、判断`delete.topic.enable`状态、标记topic为不可删除、以及队列删除topic任务。
配置了`delete.topic.enable`时,额外步骤包括停止删除topic、检查特定条件、更新删除topic集合、激活删除线程、执行删除操作,如解除分区变动监听、清除内存数据结构、删除副本数据、删除Zookeeper节点信息等。
关于手动删除Zookeeper上topic信息和磁盘数据,通常做法是删除Zookeeper的topic相关信息及磁盘数据,但这可能导致部分内存数据未清除。是否会有隐患,需要进一步测试。
总结而言,kafka的topic删除流程基于Zookeeper实现,通过配置参数、执行命令、管理状态机以及清理相关数据,以实现topic的有序删除。正确配置`delete.topic.enable`并执行删除操作是确保topic完全清除的关键步骤。
开源代码交叉编译操作流程
在进行 x_ 本机交叉编译 aarch 架构开源库时,你可能会遇到一系列挑战,如 SSH 连接问题、Python 头文件缺失、镜像文件扩容以及编译过程中依赖问题。以下是操作流程和解决策略。操作流程
首先,挂载 arm 文件系统镜像到指定路径,使用 automount.sh 脚本方便每次挂载。
通过 chroot 命令切换到目标文件系统,然后利用 apt 或手动编译来安装或编译库。
若需源代码,使用 apt source 获取,并在源代码目录下执行 autogen.sh 或 configure。
在本机上,通过交叉编译工具链和自定义脚本(如 auto_build.sh),设置环境变量,指定 sysroot 以解决依赖库问题。
问题及解决办法
SSH连接问题: 安装不完整可能导致 SSH 连接失败,重置 ssh 配置或检查 Python 头文件。
Python headers not found: 通过安装缺失的 Python 头文件解决。
镜像文件扩容: 使用 dd、losetup 和 resize2fs 扩容镜像文件。
pkg_config_path: 设置环境变量,确保 pkg_config 能找到正确的库路径。
GitHub克隆速度慢: 尝试使用 cnpmjs.org 替换 GitHub 地址,提高克隆速度。
intltool版本过低: 更新并修复 intltool 更新脚本,解决编译问题。
å¦ä½å®è£ gentoo linux
ä¸è½½åºæ¬ç³»ç»åæºç å
为äºå å¿«å®è£ é度ï¼ææ¯å å°éè¦ç¨å°çå 个éè±¡å ¨é¨ä¸è½½å°æ¬å°ãæé¡»ä¸è½½çæ件å æ¬ï¼
1ãæå°å®è£ é象å ï¼install-x-minimal-.iso
2ãStage Tarballå¿«ç §å ï¼stage3-i-.tar.bz2
3ãç³»ç»Portageå¿«ç §å ï¼portage-latest.tar.bz2
ç½ç»ç¯å¢æUçåå¤
ä¸è½½å®æä¹åï¼æçåæ³æ¯å°ä¸è¿°2ä¸3两个å æ¾ç½®å°å±åç½çwebä¸ï¼webå°å为ï¼..1.ï¼ï¼å个ç®åç页é¢ï¼ä¾¿äºä¸è½½ä¸è®¿é®ã页é¢ä¸ºï¼index.htmlï¼
页é¢ä¸åªæ两è¡ç®åç代ç ï¼
< a href="stage3-i-.tar.bz2" > stage3< / a >
< br >< a href="portage-latest.tar.bz2" >portage < / a >< br >
å¦æ¤ï¼åå¤å·¥ä½å®æã以ä¸å¼å§å®è£ ï¼
æ使ç¨Linuxæ件系ç»çEXT4æ ¼å¼çUçåæ¾ä»¥ä¸ä¸¤ä¸ªæ件
ååº
ç¨æå°å®è£ é象å install-x-minimal-.isoå¯å¨ç³»ç»ï¼
1ãååç£ç为äºç®åæ¹ä¾¿ï¼è¿æ¯æwikiçæ¹æ³ï¼åªå为ä¸ä¸ªåºï¼
å¦ä¸ï¼
/dev/sda1 å¯å¨ååº
/dev/sda2 交æ¢ååº
/dev/sda3 æ ¹ååº
以ä¸æ¯å ·ä½ååç£çä¸æ¥éª¤ï¼
fdisk /dev/sdaé¦å 建ç«bootååºï¼Command (m for help):
nCommand action e extended p primary partition
(1-4)pPartition number (1-4): 1First cylinder (1-, default 1): ï¼æå车ï¼
Using
default value 1Last cylinder or +size or +sizeM or +sizeK (1-,
default ):
+Mï¼è¿é设å®æ¯wikiä¸ç¨å¤§ä¸äºï¼ä¾¿äºä»å使ç¨å¤ä¸ªå æ ¸ï¼ç±äºè¿ä¸ªååºæ¯å°æ¥çbootï¼æ以éè¦æè¿ä¸ªååºè®¾ç½®æå¯å¯å¨çã
é®å ¥aæ¥ç»ååºæ·»å å¯å¨æ å¿ï¼
ç¶åé®å ¥1ãå¦æä½ å次æpé®ï¼ä½ å°±ä¼æ³¨æå°ï¼
å¨âBootâé£ä¸åæ个*ãä¸é¢å»ºç«swapååºï¼åä¸ï¼
é®å ¥nå建ä¸ä¸ªæ°ååºï¼ç¶åé®å ¥pæ¥åè¯fdiskä½ å建çæ¯ä¸»ååºãæ¥çè¾å ¥2æ¥å建第2个主ååºï¼å¨æ¬ä¾ä¸æ¯/dev/sda2ãå½æ示è¾å ¥ç¬¬ä¸ä¸ªæ±é¢çæ¶åï¼ç´æ¥æ²å车ãå½æ示è¾å ¥æåä¸ä¸ªæ±é¢çæ¶åï¼è¾å ¥+Mæ¥å建ä¸ä¸ªMB大å°çååºãå¨è¿ä¹åï¼é®å ¥tæ¥è®¾ç½®ååºç±»åï¼é®å ¥2éæ©ä½ ååå建çé£ä¸ªååºï¼ç¶ååè¾å ¥ï¼å³æååºè®¾ç½®æäºâLinux
Swapâãä¸é¢ï¼å»ºç«æ ¹ååºï¼åä¸ï¼é®å ¥nå建ä¸ä¸ªæ°ååºï¼ç¶åé®å ¥pæ¥åè¯fdiskä½ å建çæ¯ä¸»ååºãæ¥çè¾å ¥3æ¥å建第3个主ååºï¼å¨æ¬ä¾ä¸æ¯/dev/sda3ãå½æ示è¾å ¥ç¬¬ä¸ä¸ªæ±é¢çæ¶åï¼ç´æ¥æ²å车ãå½æ示è¾å ¥æåä¸ä¸ªæ±é¢çæ¶åï¼ä»ç¶ç´æ¥å车ï¼æç£çä¸çå©ä½ç©ºé´å建ä¸ä¸ªååºãå®æ以ä¸è¿äºæ¥éª¤ä¹åï¼é®å ¥pï¼åºè¯¥æ¾ç¤ºä¸ä¸ªä¸ä¸é¢ç±»ä¼¼çååºè¡¨ï¼
Device Boot Start End Blocks Id
System/dev/sda1 * 1 +
Linux/dev/sda2
Linux swap/dev/sda3
Linux2ã æ ¼å¼åååºå¹¶æè½½ååºæ ¼å¼åååº
mkfs.ext3 /dev/sda1
mkfs.ext4 /dev/sda3
mkswap /dev/sda2
æè½½ååº
swapon /dev/sda2
mount /dev/sda3 /mnt/gentoo
mkdir /mnt/gentoo/boot
mount /dev/sda1 /mnt/gentoo/boot
å¼å§å®è£ åºæ¬ç³»ç»
é¦å å®è£ Stage Tarballè¿å ¥Gentooçæè½½ç¹#
cd /mnt/gentooææ¯é¢å å°Stageå æ¾å°äºå±åç½å çwebä¸çï¼æ以ç´æ¥ä½¿ç¨links访é®é¡µé¢å¹¶ä¸è½½ï¼
# links
æç¨çæ¯DHCPCDï¼æ以å å ¥ï¼
config_eth0=( "dhcp" )åºå®IPç设å®ï¼è¯·åèwikiå¦å¤ï¼è¿éè¦å°å¿ï¼å 为ç½å¡åå¾å¯è½ä¸æ¯eth0 ï¼
å¨å¯å¨æ¶èªå¨å¯ç¨ç½ç»ï¼æ§è¡ï¼
# rc-update add net.eth0 default
åæ ·ï¼è¿éè¦æ³¨æç½å¡åï¼ä¿®æ¹ç½ç»ä¿¡æ¯
# nano -w /etc/hosts.0.0.1 (主æºå) localhost
----------------------------------
ä¿®æ¹Rootæ ¹å¯ç ï¼
# passwdè¾å ¥ä¸¤æ¬¡ä¸ç¨è¯´ï¼
ä¿®æ¹éç¨ç³»ç»é ç½®
# nano -w /etc/rc.confè¦æ¹ä»ä¹ä¸è¥¿å°±èªå·±ççåå¦ï¼ä¸æ¹ï¼ä¿æé»è®¤ä¹è¡ãä¸è¿ä¸è¦å¿äºï¼ä¸æ¦å®è£ äºå¾å½¢çé¢ï¼å°±å¾å®è£ æ¾ç¤ºç®¡çå¨ï¼æ¾ç¤ºç®¡çå¨çå¯å¨é½æ¯å¨è¿éå å ¥çã
ä¿®æ¹é®ç设置
# nano -w /etc/conf.d/keymapsKEYMAPè¿ä¸ªåéè¦ç¹å«æ³¨æãå¦æä½ éæ©äºé误çKEYMAPï¼å¨ä½ æ²å»é®ççæ¶åä¼æå¥æªçç»æã
ä¿®æ¹æ¶éé项
#
nano -w
/etc/conf.d/hwclockï¼ä¸æwikiè¿éåæ¯éçï¼å¦æä½ æºå¨ä¸çéä¸ç¨UTCï¼ä½ éè¦å¨æ件éå ä¸CLOCK="local"ãå¦åï¼ä½ çæ¶éå°±æå¯è½åºç°åå·®ãå®æ对/etc/conf.d/clockçé ç½®åï¼ä¿å并ä¸éåºãä¸è¿°å é¡¹å ¶å®é½å¯ä»¥ææ¶ä¿æé»è®¤ã
å®è£ å¿ è¦çç³»ç»å·¥å ·
1ãç³»ç»æ¥å¿å·¥å ·
# emerge syslog-ng# rc-update add syslog-ng default
å®è£ å¼å¯¼
å®è£ å¼æºå¼å¯¼ç¨åºï¼è¿æ¯égrubï¼è¿ä¸è¥¿æçæï¼åµåµ~~~~
# emerge grubå®è£ å®æä¹åï¼ä¿®æ¹grubçé ç½®æ件ãè¿éè¦ç¹å«å°å¿ï¼ä¸æ¦åºéå°±å¯å¨ä¸äºæºåå¦ãæ没ææwikiä¿®æ¹ï¼èæ¯æèªå·±å¯¹grubçç解è¿è¡çä¿®æ¹ï¼
# nano -w /boot/grub/grub.confdefault 0timeout 5
#
splashimage=(hd0,0)/boot/grub/splash.xpm.gztitle Gentooroot
(hd0,0)kernel /boot/ kernel-genkernel-x-3.8.-gentoo
root=/dev/sda3initrd /boot/ initramfs-genkernel-x-3.8.-gentoo
# å¨æwindowsï¼éè¦åå¯å¨æ¶ï¼å¯è¾å ¥ä»¥ä¸å 容ï¼title Windows XProotnoverify (hd0,5) ï¼å°å¿ï¼æè¿éå设windowsæ¯å¨ç£çç第6个ååºï¼makeactivechainloader +1
å建/etc/mtab#
grep -v rootfs /proc/mounts > /etc/mtabæ§è¡grub-installå®è£ GRUBï¼#
grub-install --no-floppy /dev/sdaè³æ¤ï¼åºæ¬ç³»ç»å®è£ å®æï¼ä¸é¢åå¤ç»æå®è£ ï¼é¦å éåºæè½½ï¼
# exitç¶åå¸è½½å åæè½½å°æ°ç³»ç»ä¸çç®å½
# cd
# umount -l /mnt/gentoo/dev{ /shm,/pts,}
# umount -l /mnt/gentoo{ /boot,/proc,}
æè å¦ä¸ä¹è¡ï¼# umount /mnt/gentoo/boot /mnt/gentoo/dev /mnt/gentoo/proc /mnt/gentoo
å®æå®è£ ï¼
éå¯ç³»ç»
# reboot
æè å ³éç³»ç»
# poweroff
------------------------------------
详解Linux系统中的usr目录
linux 文件结构中,有一个很神奇的目录 —— /usr。之前一直没有怎么关注过它,反正程序都是安装在里边的,也没有什么值得追根溯源的东西。直到有一天 fedora 要简化整个文件系统体系,看到讨论才想到,usr 到底是什么的缩写呢,它又是怎么来的呢?讨论中,大部分观点认为:
1.usr 是 unix system resources 的缩写;
2.usr 是 user 的缩写;
3.usr 是 unix software resources 的缩写。
根据常识判断,是 user 缩写的可能性不大,因为和 /home 冲突了嘛。不过是 system resources 还是 software resources 的缩写还真不好说。特此查了好多东西,却发现竟然连 wikipedia 也模棱两可。/usr 是linux系统核心所在,包含了所有的共享文件。
它是 unix 系统中最重要的目录之一,涵盖了二进制文件,各种文档,各种头文件,x,还有各种库文件;还有诸多程序,例如 ftp,telnet 等等。
曾经的 /usr 还是用户的家目录,存放着各种用户文件 —— 现在已经被 /home 取代了(例如 /usr/someone 已经改为 /home/someone)。
现代的 /usr 只专门存放各种程序和数据,用户目录已经转移。虽然 /usr 名称未改,不过其含义已经从“用户目录”变成了“unix 系统资源”目录。值得注意的是,在一些 unix 系统上,仍然把 /usr/someone 当做用户家目录,如 Minix。
/usr 文件系统经常很大,因为所有程序安装在这里. /usr 里的所有文件一般来自Linux distribution;本地安装的程序和其他东西在/usr/local 下.这样可能在升级新版系统或新distribution时无须重新安装全部程序.
由于/usr中的文件不和特定的计算机相关,也不会在通常使用中修改,因此可以通过网络共享这个目录(文件系统),这样,当管理员安装了新的软件之后,所有共享这一文件系统的计算机均可以使用新的软件。
至此,真相大白。看来就像前一阵子的 /var/run 移到 /run 一样。
真的是不看不知道,一看吓一跳呀。原来 linux 几经进化,好多目录的诞生和用途已经产生了根本的变化。
/usr 目录结构
/usr/bin : 所有可执行文件,如 gcc,firefox 等(指不包含在 /sbin 和 /bin 内的);
/usr/include : 各种头文件,编译文件等时需要使用;
/usr/include/”package-name” : 程序特定的头文件;
/usr/lib : 所以可执行文件所需要的库文件;
/usr/local : 这里主要存放那些手动安装的软件,即 不是通过“新立得”或apt-get安装的软件 。 它和/usr目录具有相类似的目录结构 。让软件包管理器来管理/usr目录,而把自定义的 脚本 (scripts)放到/usr/local目录下面,我想这应该是个不错的主意。
/usr/XR6 : x 系统的二进制文件,库文件,文档,字体等。它不等同于 /usr 的作用,只有 x 才能调用这些库文件等,其他程序不读取或者使用。因为 linux 没有原生图形界面,而且 linux 大部分情况下是 for server 的,所以图形界面没有意义;其中 XR6 代表 version release 6;
/usr/XR6/bin : x 的二进制文件,包含运行 x 的必须文件;
/usr/XR6/include : x 相关的头文件;
/usr/XR6/lib : x 库文件;
/usr/XR6/lib/modules : x 的模块,启动时加载。缺少 video4linux, DRI and GLX 和 输入输出设备 模块,将工作不正常;
/usr/XR6/lib/X/fonts : x font server 的字体文件;
/usr/doc : 文档。实际是 /usr/share/doc 的软链接;
/usr/etc : 一个极少用到的配置文件存放地;
/usr/games : 曾经包含游戏等文件,现在很少用到;
/usr/info : 系统相关信息,是 /usr/share/info 的软链接;
/usr/man : man 手册,已经移至 /usr/share/man;
/usr/sbin : 类似 /sbin,root 可以执行。但此目录不包含在环境变量 $PATH 中,它包含的程序类似于 chroot, useradd, in.tftpd and pppconfig;
/usr/share : 它包含了各种程序间的共享文件,如字体,图标,文档等。(/usr/local 对应的目录是 /usr/loca/share);
/usr/share/doc : 类似应用程序的 man 手册。它包含程序的说明文件,默认配置文件等;
/usr/share/info : 不常用,已经被 man 代替;
/usr/share/man : app 的 manual;
/usr/share/icons : 应用程序的图标等文件,分为 png,svg 等多种格式;
/usr/share/fonts : 字体文件,系统范围内可使用,~/.fonts 仅当前用户可用;
/usr/src : linux 内核的源码和说明文档等;
/usr/src/linux : linux 源代码;
/usr/src/linux/.config : 内核编译过程产生的文件;通常由命令 “make config” , “make menuconfig” 或 “make xconfig” 执行后产生;
/usr/src/linux/.depend, /usr/src/linux/.hdepend : “make dep” 检测编译依赖时需要的文件,由 /usr/src/linux/.config 产生;
/usr/src/linux/COPYING : GNU license;
/usr/src/linux/Makefile : 编译内核所需的 Makefile;
/usr/src/linux/Rules.make : 当有多个 Makefile 时,根据它的规则执行 make;
/usr/tmp : 已经被众多发行版抛弃的临时文件夹。