Linux
文章平均质量分 74
两个幽灵
这个作者很懒,什么都没留下…
展开
-
Bash用法详解(Bash Reference Manual)第3章:基本 shell 功能
Shell语法、Shell命令、Shell函数、Shell参数、参数扩展、命令的执行、Shell脚本翻译 2022-06-02 17:38:03 · 1201 阅读 · 0 评论 -
CentOS 7 KVM GPU 直通配置
原文链接:https://www.server-world.info/en/note?os=CentOS_7&p=kvm&f=10网上很多配置显卡直通的竟然要付费,让我很不爽,所以直接决定在 Google 上找一篇可用的,翻译一下。就当做个贡献了。配置虚拟机的GPU直通。配置完之后,就可以在虚拟机里面使用GPU了,用于机器学习/深度学习。在配置之前,需要先在BIOS设置中打开 VT-d (Intel) 或者 IOMMU (AMD)。第一步 在KMV主机上启动IOMMU# 首先编辑文原创 2021-10-12 09:42:33 · 4974 阅读 · 1 评论 -
iptables 各种链的流向
图片地址:http://xkr47.outerspace.dyndns.org/netfilter/packet_flow/转载 2021-06-17 19:14:07 · 251 阅读 · 0 评论 -
ubuntu 创建 tap 设备 (虚拟网卡)
ubuntu 创建 tap 设备原文:Ubuntu Manpage: tunctl — create and manage persistent TUN/TAP interfaces1 首先安装 UML 工具$ apt install uml-utilities2 To create an interface for use by a particular user, invoke tunctl without the -d option: 要创建一个接口给特定用户使用,不要使用 -d 命令$翻译 2021-06-09 11:30:25 · 3875 阅读 · 0 评论 -
Linux 内核学习(7) - 时间系统
Linux Kernel的时钟Jiffies背景:从时钟中断说起Linux系统有一个时钟中断,被称为tick,用来做进程调度,周期为HzJiffies,就是tick的计数,每一个时钟中断发生时被加1Jiffies可以用来做计时,以系统启动时间为起点,粒度为一个tick为了尽可能减少jiffies环绕,jiffies定义为64位,在32位上读写就不是一个原子操作。用顺序锁来避免竞争读侧u64 get_jiffies_64(void) { unsigned long se转载 2021-01-02 13:35:49 · 264 阅读 · 0 评论 -
Linux 内核学习(6) - 中断和异常处理
中断的硬件背景IOAPIC:所有外设都会连接到IOAPIC引脚上面基本的配置方法IOREGSEL: 用来选择配置的功能IOWIN: 用来读取更改具体的配置项配置功能选项IOAPICID: 唯一标识IOAPICVER: 版本识别IOAPICARB: 用于发送信息的仲裁,按优先级轮转自动转换IOREDTBL: 0~23条中断线的配置中断向量号 bit 0~7传送中断的模式指定目标CPU禁用启用中断线几个状态位中断流程连接IOAPIC引脚的设备触发中断检转载 2021-01-01 16:45:30 · 365 阅读 · 0 评论 -
Linux 内核学习(5) - 进程管理
系统调用进程运行在非特权层,有的操作没有权限直接操作,例如文件操作系统调用就是出于用户空间和内核空间的接口当进程需要执行一些本身没有权限做的操作,就通过系统调用进入kernel实现每个功能都对应不同的系统调用号通过 in 0x80 / syscall 陷入到内核系统调用号放在 eax 中将参数放在 ebx, ecx, edx, esi, edi, ebp 中,如果超过了6个参数,可以通过大块内存来传递关于syscall从非特权层快速系统调用到特权层(在特权层不能使用)所做的事转载 2021-01-01 13:09:31 · 113 阅读 · 0 评论 -
运维自动化工具 Ansible 学习
编辑主机清单$ vim /etc/ansible/hosts直接在文件里面加IP地址。主机清单只是可以控制谁ansible中有一个模块叫ping$ ansible 10.10.108.91 -m ping -k# -k 是手动输入密码# -m 是执行模块可以用都逗号分隔主机。如果有多个主机,密码只输入一次。为了加速ssh连接,需要修改:$ vim /etc/ssh/sshd_configUseDNS noGSSAPIAuthentication noGSSAPICleanupCr转载 2020-12-29 16:05:46 · 608 阅读 · 0 评论 -
Linux 内核学习(4) - 内存管理
内存管理内存初始化内存布局探测:E820图E820介绍在x86的机器上,由bios提供的中断,中断号是0x15,在调用的时候AX寄存器必须为0xE820,每次返回一段内存的空间的起始地址和大小以及它的属性(可用的RAM or 被BIOS保留的)注:以下代码 有的是linux 5.10,有的是linux 2.6.30.4代码1 arch/x86/boot/memory.cstatic void detect_memory_e820(void){ int count = 0; st转载 2020-12-26 22:10:29 · 296 阅读 · 0 评论 -
Linux 内核学习(3) - Linux Kernel 常用的数据结构
原子操作原子操作是指,不能被本CPU和其它CPU所中断的执行指令或指令流。原子操作的实现CPU基本的原子操作LOCK前缀自动带LOCK的指令CPU平台本身可以保证的原子操作读/写一个字节读/写一个对齐的16 bit数据读/写一个对齐的32 bit数据读/写一个对齐的64 bit数据(64位CPU)另外在32-bit的数据总线上访问一块cache禁止的16位数据(≥\ge≥Pentium)在一个cache line中访问不对齐的16,32,64位数据(≥\ge≥转载 2020-12-26 14:47:42 · 620 阅读 · 0 评论 -
Linux 内核学习(2) - 原子操作和内存屏障
Linux 内核学习(2) - 原子操作和内存屏障原子操作原子操作是指,不能被本CPU和其它CPU所中断的执行指令或指令流。原子操作的实现CPU基本的原子操作LOCK前缀自动带LOCK的指令CPU平台本身可以保证的原子操作读/写一个字节读/写一个对齐的16 bit数据读/写一个对齐的32 bit数据读/写一个对齐的64 bit数据(64位CPU)另外在32-bit的数据总线上访问一块cache禁止的16位数据(≥\ge≥Pentium)在一个cache lin转载 2020-12-22 20:54:02 · 983 阅读 · 1 评论 -
Linux 内核学习(1) - 同步
Linux 内核学习(1) - 同步不可睡眠锁1 Spinlock 自旋锁spinlock是内核中提供的一种比较常见的锁机制,自旋锁是“原地等待”的方式解决资源冲突的。即,一个线程获取了一个自旋锁后,另外一个线程期望获取该自旋锁,获取不到,只能够原地“打转”(忙等待)。由于自旋锁的这个忙等待的特性,注定了它使用场景上的限制——自旋锁不应该被长时间的持有(消耗 CPU 资源)。Linux 内核同步(二):自旋锁(Spinlock)API初始化:在编译时定义:DEFINE_SPINLOCK(转载 2020-12-21 22:34:07 · 185 阅读 · 0 评论 -
CGroup(控制组)
原文链接:https://0xax.gitbooks.io/linux-insides/content/Cgroups/linux-cgroups-1.html1 引言Cgroups是Linux内核提供的提供的一种机制,使我们能够为一组进程分配处理器时间、进程数、内存量等或多种资源的组合。控制组是分层组织的,就像进程也是分层组织的一样,子控制组可以从父控制组继承参数。但实际上他们并不相同,控制组与普通进程树的区别是,控制组的不同层次可以同时存在,而进程树始终单个的(single)。每个cgroup层次都翻译 2020-12-02 19:25:53 · 2666 阅读 · 0 评论 -
Linux 监测工具大全
图片来源:http://www.brendangregg.com/linuxperf.html文章目录A 系统库1 `ltrace` - 库函数调用跟踪器2 `gethostlatency` - 测getaddrinfo/gethostbyname的延迟B 系统调用接口3 `strace` - 系统调用跟踪器C 虚拟文件系统(VFS)4 lsof - 列出打开的文件5 fatrace - 监视文件访问6 filelife - 检测短寿命文件的生命周期D 文件系统7 ext4dist - 统计ext4操作.转载 2020-12-01 20:00:03 · 309 阅读 · 0 评论 -
20个监视linux性能(资源利用率)的工具
1. top - Linux进程监视top命令是一个性能监视程序,被系统管理员频繁使用,并且在大多数类Linux/Unix系统下都可以用。top命令可以展示所有活跃的进程列表,并定时更新。它可以显示CPU利用率、内存利用率、交换内存、缓存大小、缓冲区大小、进程PID、用户、命令等等,还能显示出高CPU、内存利用率的进程。$ top更多示例可以参考:12 TOP Command Examples in Linux2. VmStat - 虚拟内存统计VmStat命令用于显示虚拟内存、内核线程、硬盘翻译 2020-12-01 17:14:36 · 1772 阅读 · 0 评论 -
为什么要给网桥分配IP地址
[问题1] 为什么要给网桥分配MAC和IP地址?https://unix.stackexchange.com/questions/319979/why-assign-mac-and-ip-addresses-on-bridge-interface我在Linux上创建了一个网桥接口br0, 然后给它添加了一些接口eth0,tap0等等. 我的理解是网桥接口就像带着接口(端口)的虚拟交换机.给网桥接口分配MAC和IP地址是什么意思? 该接口是否充当交换机/网桥上的附加端口, 允许其他端口访问主机?我已经翻译 2020-11-07 15:26:18 · 11774 阅读 · 1 评论 -
通过内网穿透工具frp解决不能从主机访问虚拟机内网的问题
虚拟机用NAT上网的情况下,主机不能访问虚拟机,虽然用桥接的方式可以让虚拟机和主机在同一网络中,但是在用WIFI的情况下不能桥接。这样就不能用ssh连接虚拟机了,导致传文件也极不方便。使用frp内网穿透工具可以解决这个问题。frp官方文档:https://github.com/fatedier/frp/blob/master/README_zh.mdfrp官方下载页面:https://...原创 2020-05-07 22:51:02 · 3963 阅读 · 0 评论 -
yum软件包查看命令
yum针对软件包操作常用命令:1.使用YUM查找软件包yum search2.列出所有可安装的软件包yum list3.列出所有可更新的软件包yum list updates4.列出所有已安装的软件包yum list installed5.列出所有已安装但不在 Yum Repository 内的软件包yum list extras6.列...转载 2019-07-23 10:10:34 · 2768 阅读 · 0 评论 -
netperf的安装与使用
netperf是用来测试网络性能的带有服务器(netserver)和客户端(netperf)两个命令安装1. 前往https://centos.pkgs.org/7/lux/netperf-2.7.0-1.el7.lux.x86_64.rpm.html,复制二进制文件的链接。2. 打开CentOS的终端,输入wget http://repo.iotti.biz/Cent...原创 2019-07-03 21:38:21 · 14520 阅读 · 0 评论