首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux容器技术原理和使用

1.2 虚拟化vs容器 传统的虚拟化技术是通过硬件模拟或者操作系统软件实现,而容器技术可以比传统虚拟化更轻量级。...1.3 前世和今生 今生是docker大流行的时代,而前世就是早于1982年的chroot工具,以及后面经过改进并且现在还在使用的lxc技术。早期的docker的代码实现基于LXC(0.9之前)。...Linux容器功能是基于 cgroups 和 Namespace 来实现的....LXC依赖于epel-release的安装,EPEL(Extra Packages for Enterprise Linux)是Fedora 社区打造提供高质量软件包的项目,相当于一个第三方源。...LXC所有命令 3.2 创建一个容器 使用预定义的模板创建一个容器。它会根据模板设置自动下载依赖环境包并安装。

1.1K40

Linux容器技术原理和使用

1.2 虚拟化vs容器 传统的虚拟化技术是通过硬件模拟或者操作系统软件实现,而容器技术可以比传统虚拟化更轻量级。...1.3 前世和今生 今生是docker大流行的时代,而前世就是早于1982年的chroot工具,以及后面经过改进并且现在还在使用的lxc技术。早期的docker的代码实现基于LXC(0.9之前)。...二、LXC(Linux容器)的两个重要概念 Linux容器功能是基于 cgroups 和 Namespace 来实现的....lxc-checkconfig检查下操作系统对容器技术的支持 image.png 四、LXC的使用 4.1 LXC工具包概览 LXC所有的操作工具api都在这里,可以对LXC进行相应的操作。...1.png 4 .2 创建一个容器 使用预定义的模板创建一个容器。它会根据模板设置自动下载依赖环境包并安装。

1.8K101
您找到你想要的搜索结果了吗?
是的
没有找到

linux下nmap的使用-linux网络扫描技术

linux下nmap的使用-linux网络扫描技术 本文转载自linux下nmap的使用-linux网络扫描技术 一、nmap on linux 官网 https://nmap.org/ ?...这项技术最大的优点是,你勿需root权限。任何UNIX用户都可以自由使用这个系统调用。这种扫描很容易被检测到,在目标主机的日志中会记录大批的连接请求以及错误信息。...nmap使用的第三种技术是:发送一个SYN包,然后等待一个RST或者SYN/ACK包。对于非root用户,nmap使用connect()方法。...换句话说,nmap使用一些技术检测目标主机操作系统网络协议栈的特征。nmap使用这些信息建立远程主机的指纹特征,把它和已知的操作系统指纹特征数据库做比较,就可以知道目标主机操作系统的类型。...注意:这项命令在GNU/Linux使用。如果在其它平台,你可能要使用其它的命令/选项。 Nmap的不同选项和-s标志组成了不同的扫描类型,比如:一个Ping-scan命令就是"-sP".

4.2K10

Linux内核调试技术——kprobe使用与实现

Linux kprobes调试技术是内核开发者们专门为了便于跟踪内核函数执行状态所设计的一种轻量级内核调试技术。...内核源码:Linux-4.1.15 实验环境:CentOS(x86_64)、树莓派1b 2022年嵌入式开发想进互联网大厂,你技术过硬吗?...腾讯T6-9首发“Linux内核源码嵌入式开发进阶笔记”,差距不止一点点哦 一、kprobes技术背景 开发人员在内核或者模块的调试过程中,往往会需要要知道其中的一些函数有无被调用、何时被调用、执行是否正确以及函数的入参和返回值是什么等等...因此kprobes技术具有对内核执行流程影响小和操作方便的优点。 kprobes技术包括的3种探测手段分别时kprobe、jprobe和kretprobe。...内核学习网站: Linux内核源码/内存调优/文件系统/进程管理/设备驱动/网络协议栈 二、kprobe原理 下面来介绍一下kprobe是如何工作的。

2.3K30

Linux内核调试技术——kprobe使用与实现

Linux kprobes调试技术是内核开发者们专门为了便于跟踪内核函数执行状态所设计的一种轻量级内核调试技术。...内核源码:Linux-4.1.15 实验环境:CentOS(x86_64)、树莓派1b 一、kprobes技术背景 开发人员在内核或者模块的调试过程中,往往会需要要知道其中的一些函数有无被调用、何时被调用...因此kprobes技术具有对内核执行流程影响小和操作方便的优点。 kprobes技术包括的3种探测手段分别时kprobe、jprobe和kretprobe。...五、总结 kprobes内核探测技术作为一种内核代码的跟踪及调试手段,开发人员可以动态的跟踪内核函数的执行,相较与传统的添加内核日志等调试手段,它具有操作简单,使用灵活,对原始代码破坏小等多方面优势。...本文首先介绍了kprobes的技术背景,然后介绍了其中kprobe技术使用方法并且通过源代码详细分析了arm架构和x86_64架构的原理和实现方式。

5.4K21

Linux内核调试技术——kprobe使用与实现(四)

Linux内核调试技术——kprobe使用与实现(一) Linux内核调试技术——kprobe使用与实现(二) Linux内核调试技术——kprobe使用与实现(三) Linux内核调试技术——kprobe...使用与实现(四)--kprobe内核注册过程 kprobe探测模块调用register_kprobe向kprobe子系统注册一个kprobe探测点实例,代码路径kernel/kprobes.c ?...开始进入地址有效性检测流程,首先判断以下3个条件,必须全部满足:1、被探测地址在内核的地址段中;2、地址不在kprobe的黑名单之中;3、不在jump lable保留的地址空间中(内核jump lable特性使用...首先__kprobes_text_start和__kprobes_text_end被定义在include/asm-generic/Vmlinux.lds.h中,使用宏__kprobes标记的函数被归入该...简单的总结一下:即使用宏NOKPROBE_SYMBOL和宏__kprobes标记的内核函数不可以被探测kprobe。

2.3K20

Linux内核调试技术——jprobe使用与实现(六)

本文介绍kprobes中的第二种探测技术jprobe,它基于kprobe实现,不能在函数的任意位置插入探测点,只能在函数的入口处探测,一般用于监测函数的入参值。...1、jprobe使用实例 使用jprobe探测函数的入参值,需要编写内核模块。...可见jprobe的注册流程非常的简单,它的本质就是注册一个kprobe,利用kprobe机制实现探测,只是探测回调函数并非用户自己定义,使用jprobe私有的而已。...这里使用int3指令再次触发CPU3异常,并且异常出的地址已经不再是BREAKPOINT_INSTRUCTION了,所以会进入到kprobe_int3_handler的以下流程执行: ?...3、总结 jprobe探测技术基于kprobe实现,是kprobes三种探测技术中的第二种,内核开发人员可以用它来探测内核函数的调用以及调用时的入参值,使用非常方便。

1.6K40

Linux内核调试技术——kprobe使用与实现(一)

Linux kprobes调试技术是内核开发者们专门为了便于跟踪内核函数执行状态所设计的一种轻量级内核调试技术。...因此kprobes技术具有对内核执行流程影响小和操作方便的优点。 kprobes技术包括的3种探测手段分别时kprobe、jprobe和kretprobe。...kprobes的技术原理并不仅仅包含存软件的实现方案,它也需要硬件架构提供支持。...其中涉及硬件架构相关的是CPU的异常处理和单步调试技术,前者用于让程序的执行流程陷入到用户注册的回调函数中去,而后者则用于单步执行被探测点指令,因此并不是所有的架构均支持,目前kprobes技术已经支持多种架构...目前,使用kprobe可以通过两种方式,第一种是开发人员自行编写内核模块,向内核注册探测点,探测函数可根据需要自行定制,使用灵活方便;第二种方式是使用kprobes on ftrace,这种方式是kprobe

3.5K21

Linux内核调试技术——kprobe使用与实现(三)

Linux内核调试技术——kprobe使用与实现(一) Linux内核调试技术——kprobe使用与实现(二) 对于kprobe功能的实现主要利用了内核中的两个功能特性:异常(尤其是int 3),单步执行...并且把异常返回的地址修改为保存的原指令码; 5)代码返回,执行原有指令,执行结束后触发单步异常; 6)在单步异常的处理中,清除单步标志,执行post_handler流程,并最终返回; 在了解了kprobe的基本原理和使用后...首先初始化hash表的各个链表头,用来保存后面调用kprobe_register函数注册的struct kprobes实例(会使用探测地址作为索引),同时初始化kretprobe用到的自旋锁。...接下来调用populate_kprobe_blacklist函数将kprobe实现相关的代码函数保存到kprobe_blacklist这个链表中去,用于后面注册探测点时判断使用,注意这里的__start_kprobe_blacklist...而_kprobe_blacklist段中保存了实现kprobes的关键代码路径,这些代码是不可以被kprobe自己所探测的,在源码定义相关函数时使用NOKPROBE_SYMBOL宏将函数放到这个段中:

1.7K10

使用 Linux 网络虚拟化技术探究容器网络原理

使用 Go 和 Linux Kernel 技术探究容器化原理 一文中,我们揭秘了容器的本质就是一个特殊的进程,特殊在为其创建了 NameSpace 隔离运行环境,并用 Cgroups 为其控制资源开销...答案当然是可以的,在 Linux 网络虚拟化技术中就为我们提供了一种这样的用软件来模拟硬件网卡的方式: Veth(Virtual Ethernet devices)。...不过和使用 Veth 作为虚拟网卡的方式一样,贴心的 Linux 同样为我们提供了网桥(交换机)的虚拟实现方式:Bridge 。...所以我们还需要使用 NAT( Network Address Translation )技术:把 IP 数据报文头中的 IP 地址和端口转换成另一个 IP 地址和端口。...这一技术实现其实同样是使用到了 NAT 技术,只不过和上面的 SNAT 不同的是,这里我们需要修改的是目的 IP 地址,即 DNAT (Destination NAT),把宿主机上 8000 端口的流量请求转发到容器中的地址

1.5K11

使用 Go 和 Linux Kernel 技术探究容器化原理

容器技术的代表之作 Docker ,则是一个基于 Linux 操作系统,使用 Go 语言编写,调用了 Linux Kernel 功能的虚拟化工具。...为了更好地理解容器的本质,我们来看看容器具体使用了哪些 Linux Kernel 技术,以及在 Go 中应该如何去调用。...其实到这里,我们已经通过 NameSpace 技术帮进程隔离出自己单独的空间,并使用 Cgroups 技术限制和监控这些空间的资源开销,这种特殊的进程就是容器的本质。...但是除了利用 NameSpace 和 Cgroups 来实现 容器(container) ,在 Docker 中,还使用到了一个 Linux Kernel 技术:UnionFS 来实现 镜像(images...鉴于本篇文章的主旨 —— 使用 Go 和 Linux Kernel 技术探究容器化原理的主要技术点是 NameSpace 和 Cgroups 。

1.5K20

Linux内核转发技术

基本概念 linux内核的转发机制主要通过查表(tables)来完成, 而iptables则用来设置,管理和检查linux内核中ip包过滤规则表. table后面加了s说明可以定义多张表, 而每张表中又包含了若干链路...表(tables) 当前最新版本的iptables中包含了五个独立的表, 工作时使用哪张表取决于内核选项以及当前应用了哪个模块....具体应用 工具的产生终究要服务于生产, 光解释名词也不能形象地展现linux强大的内核转发机制,因此以几个小例子来说明iptables的具体使用, 并依据上述介绍来写出有实际效用的脚本. iptables...透明代理配置可以参考set up squid in linux....后记 对于linux内核转发的技术介绍感觉差不多了, 虽然没有完全表现出其强大的功能, 但相信有需要的人可以根据基本规则来举一反三; 通过google查看别人的iptables"脚本”, 也能获得很多灵感

2.3K50

技术栈小课堂:使用Linux seq命令生成数字序列!

Linux中生成数字列表的最简单方法之一是使用seq(序列)命令。seq以最简单的形式表示一个数字,然后列出从1到该数字的所有数字。...$ seq 3 3 18 3 6 9 12 15 18 您可以选择使用负增量(即减量)将数字从大变小。 $ seq 18 -3 3 18 15 12 9 6 3 seq命令也非常快。...使用分隔符 另一个非常有用的选项是使用分隔符。您可以插入逗号、冒号或其他一些字符,而不是在每行上列出单个数字。-s选项后跟要使用的字符。...$ seq -s: 3 3 18 3:6:9:12:15:18 实际上,如果只希望将数字列出在一行上,则可以使用空格作为分隔符来代替默认的换行符。...单独使用bc进行更复杂的数学运算。此外,seq仅适用于数字。要生成单个字母序列,请改用如下命令: $ echo {a..g} a b c d e f g

78030
领券