随笔分类 - Linux
摘要:UTS namespace 用来隔离系统的 hostname 以及 NIS domain name。UTS 据称是 UNIX Time-sharing System 的缩写。 hostname 与 NIS domain name hostname 是用来标识一台主机的,比如登录时的提示,在 Shel
阅读全文
摘要:在初步的了解 docker 后,笔者期望通过理解 docker 背后的技术原理来深入的学习和使用 docker,接下来的几篇文章简单的介绍下 linux namespace 的概念以及基本用法。 namespace 的概念 namespace 是 Linux 内核用来隔离内核资源的方式。通过 nam
阅读全文
摘要:iptables 是 Linux 管理员用来设置 IPv4 数据包过滤条件和 NAT 的命令行工具。iptables 工具运行在用户态,主要是设置各种规则。而 netfilter 则运行在内核态,执行那些设置好的规则。 查看 iptables 的链和规则 查看规则的命令格式为:iptables [-
阅读全文
摘要:netfilter 是 Linux 内置的一种防火墙机制,我们一般也称之为数据包过滤机制。iptables 则是一个命令行工具,用来配置 netfilter 防火墙。下图展示了一个带有防火墙的简单网络拓扑结构: 图中的 Linux 主机既充当了路由器的角色,同时又充当了防火墙的角色。本文我们将以该拓
阅读全文
摘要:df 命令 检查磁盘空间占用情况(并不能查看某个目录占用的磁盘大小)。 命令格式:df [option] -h 以容易理解的格式(给人看的格式)输出文件系统分区使用情况,例如 10kB、10MB、10GB 等。-k 以 kB 为单位输出文件系统分区使用情况。-m 以 mB 为单位输出文件系统分区使用
阅读全文
摘要:Linux 默认带有 ip forward 功能,只不过因为各种原因,默认的配置把该功能关闭了。本文通过 demo 来演示 Linux 的 ip forward 功能,具体场景为:开启 Linux 的 ip forward 功能,让 Linux 称为具有路由能力的主机,从而支持在两个局域网之间转发数
阅读全文
摘要:ip netns 命令用来管理 network namespace。它可以创建命名的 network namespace,然后通过名字来引用 network namespace,所以使用起来很方便。 ip netns 命令格式如下:ip [ OPTIONS ] netns { COMMAND | h
阅读全文
摘要:笔者在《Linux mount 命令》一文中介绍了 mount 命令的基本用法,本文我们接着介绍 mount 命令的一些高级用法,比如 bind mounts(绑定挂载)和 shared subtree。 bind mounts 一个绑定挂载就是相关目录树的另外一个视图。典型情况下,挂载会为存储设备
阅读全文
摘要:mount 命令用来挂载文件系统。其基本命令格式为:mount -t type [-o options] device dirdevice:指定要挂载的设备,比如磁盘、光驱等。dir:指定把文件系统挂载到哪个目录。type:指定挂载的文件系统类型,一般不用指定,mount 命令能够自行判断。opti
阅读全文
摘要:目录 Help 输出所有的日志记录 匹配(match) 把日志保存到文件中 限定日志所能占用的最高容量 查看某次启动后的日志 查看指定时间段的日志 同时应用 match 和时间过滤条件 按 unit 过滤日志 通过日志级别进行过滤 实时更新日志 只显示最新的 n 行 控制输出 按可执行文件的路径过滤
阅读全文
摘要:消息队列和共享内存、信号量一样,同属 System V IPC 通信机制。消息队列是一系列连续排列的消息,保存在内核中,通过消息队列的引用标识符来访问。使用消息队列的好处是对每个消息指定了特定消息类型,接收消息的进程可以请求接收下一条消息,也可以请求接收下一条特定类型的消息。 相关数据结构 与其他两
阅读全文
摘要:本文继《System V IPC 之共享内存》之后接着介绍 System V IPC 的信号量编程。在开始正式的内容前让我们先概要的了解一下 Linux 中信号量的分类。 信号量的分类 在学习 IPC 信号量之前,让我们先来了解一下 Linux 提供两类信号量: 内核信号量,由内核控制路径使用。 用
阅读全文
摘要:IPC 是进程间通信(Interprocess Communication)的缩写,通常指允许用户态进程执行系列操作的一组机制: 通过信号量与其他进程进行同步 向其他进程发送消息或者从其他进程接收消息 和其他进程共享一段内存区 System V IPC 最初是在一个名为 "Columbus Unix
阅读全文
摘要:chroot,即 change root directory (更改 root 目录)。在 linux 系统中,系统默认的目录结构都是以 /,即以根 (root) 开始的。而在使用 chroot 之后,系统的目录结构将以指定的位置作为 / 位置。 基本语法 chroot NEWROOT [COMMA
阅读全文
摘要:我们运行 linux 服务器的主要目的是通过运行程序提供服务,比如 mysql、web server等。因此管理 linux 服务器主要工作就是配置并管理上面运行的各种服务程序。在 linux 系统中服务程序的管理主要由 init 系统负责。如同笔者在《初识 systemd》一文中的介绍,linux
阅读全文
摘要:目录 预热 管理单个 unit 查看系统上的 unit 管理不同的操作环境(target unit) 检查 unit 之间的依赖性 相关的目录和文件 systemctl daemon-reload 子命令 总结 笔者在前文中概要的介绍了 systemd 的基本概念和主要特点。由于 systemd 相
阅读全文
摘要:从 init 系统说起 linux 操作系统的启动首先从 BIOS 开始,接下来进入 boot loader,由 bootloader 载入内核,进行内核初始化。内核初始化的最后一步就是启动 PID 为 1 的 init 进程。这个进程是系统的第一个进程。它负责产生其他所有的用户进程。init 进程
阅读全文
摘要:ss 是 Socket Statistics 的缩写。ss 命令可以用来获取 socket 统计信息,它显示的内容和 netstat 类似。但 ss 的优势在于它能够显示更多更详细的有关 TCP 和连接状态的信息,而且比 netstat 更快。当服务器的 socket 连接数量变得非常大时,无论是使
阅读全文
摘要:本文以 32 位系统为例介绍内核空间(kernel space)和用户空间(user space)。 内核空间和用户空间 对 32 位操作系统而言,它的寻址空间(虚拟地址空间,或叫线性地址空间)为 4G(2的32次方)。也就是说一个进程的最大地址空间为 4G。操作系统的核心是内核(kernel),它
阅读全文
摘要:Unix domain socket 又叫 IPC(inter-process communication 进程间通信) socket,用于实现同一主机上的进程间通信。socket 原本是为网络通讯设计的,但后来在 socket 的框架上发展出一种 IPC 机制,就是 UNIX domain soc
阅读全文