还剩25页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
操作系统简介LinuxLinux是一种自由和开放源代码的类Unix操作系统,其代码可以被自由修改、使用和重新发布它是基于POSIX和Unix的多用户、多任务、支持多线程和多处理器的操作系统Linux以其稳定性、安全性和灵活性在全球范围内广受欢迎,被广泛应用于服务器、个人电脑、移动设备、嵌入式系统等多种平台从超级计算机到智能手机,从企业服务器到家用电器,Linux无处不在本课程将深入探讨Linux操作系统的各个方面,从基础命令到高级管理,从内核架构到应用开发,帮助学习者全面了解和掌握Linux技术课程概述基础知识1Linux本部分将介绍Linux的历史、发展、内核架构、主要发行版以及基本文件系统结构通过学习这些基础知识,学习者将对Linux操作系统有一个整体的认识和理解系统管理2Linux本部分将详细讲解Linux的命令使用、文件权限管理、用户和组管理、进程管理、内存管理、设备管理和网络配置等系统管理知识,帮助学习者掌握Linux系统的日常操作和管理技能高级应用3Linux本部分将深入探讨Shell脚本编程、系统服务管理、安全管理、性能优化以及虚拟化技术等高级主题,提升学习者的Linux应用能力和解决问题的能力内核与开发4Linux本部分将剖析Linux内核机制、驱动开发、系统调用等技术内容,为有志于从事Linux相关开发工作的学习者提供深入的技术指导的历史和发展Linux年诞生1991-Linux芬兰赫尔辛基大学学生Linus Torvalds开发了Linux内核的第一个版本,并在网上发布这个版本仅包含基本功能,但它标志着Linux的正式诞生Torvalds最初只是想创建一个免费的类Unix系统供个人使用年发布1994-Linux
1.0经过三年的发展,Linux
1.0正式发布,这是第一个被认为足够稳定的版本同时,Red Hat公司成立,开始商业化Linux发行版的历程,为Linux的推广做出了重要贡献年企业级应用崛起2001-IBM宣布投资10亿美元支持Linux开发,这极大地提升了Linux的企业认可度同时,各大Linux发行版如Red HatEnterprise Linux、SUSE LinuxEnterprise等开始专注于企业市场现在无处不在的-Linux如今,Linux已成为互联网基础设施、云计算、移动设备等领域的主导操作系统Android(基于Linux内核)成为全球最流行的移动操作系统,超级计算机几乎全部运行Linux内核架构Linux应用程序接口系统调用接口1进程管理2进程调度、进程同步内存管理3虚拟内存、页面分配文件系统4VFS、各种具体文件系统设备驱动程序5字符设备、块设备、网络设备Linux内核是整个操作系统的核心,采用单内核、模块化设计,负责管理系统的资源和为应用程序提供服务它主要由五个子系统组成进程管理、内存管理、文件系统、设备驱动程序和网络协议栈Linux内核的模块化设计允许用户在运行时加载或卸载功能模块,无需重新编译内核这种设计使得Linux既保持了单内核的高效性,又拥有了微内核的灵活性,成为一种特殊的混合型内核架构发行版介绍Linux系列Debian以Debian为代表,包括Ubuntu、Linux Mint等特点是稳定性高,使用APT包管理系统Ubuntu因其用户友好的界面和完善的社区支持,成为最受欢迎的Linux桌面发行版之一系列Red Hat以Red HatEnterprise Linux(RHEL)为代表,包括Fedora、CentOS等特点是商业支持完善,使用RPM包管理系统RHEL在企业服务器市场占有重要地位,而Fedora则作为其创新测试平台系列Arch以Arch Linux为代表,包括Manjaro等特点是滚动更新模式,强调简洁和最新,使用Pacman包管理系统适合希望紧跟软件最新版本的高级用户专用发行版如Kali Linux(安全测试)、Deepin(美观易用的桌面环境)、openSUSE(企业和个人双重定位)等这些发行版针对特定用途或用户群体进行了优化,具有各自的特点和优势文件系统结构Linux与/bin/sbin/etc/home/bin目录包含基本的用户命令,/etc目录存放系统配置文件,/home目录包含所有普通用户如ls、cp等,而/sbin目录则包如网络配置、用户账户信息等的个人目录,例如含系统管理命令,如ifconfig、这些文本文件控制着系统的各/home/user1每个用户只能fdisk等这些命令对系统的正种设置,是系统管理员最常访在自己的主目录中写入文件,常运行至关重要,即使在单用问的目录之一修改这些文件这是用户存储个人文件和配置户模式下也必须可用可以改变系统的行为的地方与/var/tmp/var目录存放经常变化的文件,如日志、邮件和打印队列等/tmp目录则用于存放临时文件,系统重启后会自动清空这两个目录的内容都是动态的基本命令
(一)Linux文件浏览命令文件操作命令文件内容查看•ls列出目录内容,常用选项有-l(详•cp复制文件或目录,cp-r用于递归•cat显示文件全部内容细信息)、-a(包括隐藏文件)、-h复制目录•more/less分页显示文件内容(人类可读大小)•mv移动或重命名文件•head/tail显示文件开头/结尾内容•cd改变当前目录,cd..返回上级目•rm删除文件,rm-r递归删除目录,•grep在文件中搜索指定模式录,cd~返回家目录rm-f强制删除•pwd显示当前工作目录的完整路径•mkdir创建新目录,mkdir-p可创•find搜索文件,如find/home-建多级目录name*.txt基本命令
(二)Linux命令功能常用选项示例tar打包/解包文件-c创建,-x解压,-f指tar-czf定文件archive.tar.gz dir/chmod修改文件权限数字法如755,符号法chmod644file.txt如u+xchown修改文件属主-R递归修改chown user:groupfile.txtps显示进程状态-ef显示所有进程ps aux|grepnginxtop动态显示进程-u指定用户top-u rootdf显示磁盘空间使用情-h人类可读方式df-h况du显示目录空间使用情-sh汇总目录大小du-sh/home况netstat显示网络连接-tulpn显示监听端口netstat-tulpn文件权限管理Linux理解权限表示Linux使用三组权限(用户、组、其他人)分别表示读r=
4、写w=
2、执行x=1权限例如,权限值为755表示用户具有读写执行权限7=4+2+1,组用户和其他用户具有读和执行权限5=4+1查看文件权限使用ls-l命令可以查看文件的详细信息,包括权限输出的第一列显示文件类型和权限,例如-rw-r--r--表示这是一个普通文件,所有者有读写权限,组用户和其他用户只有读权限修改文件权限使用chmod命令可以修改文件权限有两种方式数字法(如chmod644file.txt)和符号法(如chmod u+x file.txt表示给所有者添加执行权限)修改多个文件可以使用通配符,如chmod755*.sh特殊权限除了基本的读写执行权限外,Linux还支持SUID、SGID和Sticky Bit等特殊权限SUID允许用户以文件所有者的身份执行程序;SGID使文件在特定组的上下文中执行;Sticky Bit主要用于共享目录,防止用户删除其他用户的文件用户和组管理Linux用户创建与管理组创建与管理使用useradd命令创建新用户,passwd设置密1使用groupadd创建新组,groupmod修改组属码,usermod修改用户属性,userdel删除用户性,groupdel删除组,gpasswd管理组成员2用户权限管理用户和组配置文件4通过sudo配置特权访问,使用/etc/sudoers文3/etc/passwd存储用户信息,/etc/shadow存件定义用户权限储加密密码,/etc/group存储组信息在Linux系统中,用户和组管理是系统安全的重要组成部分每个用户都有唯一的用户ID(UID)和主组ID(GID),还可以属于多个附加组Linux区分普通用户和超级用户(root),后者拥有系统的完全控制权有效的用户和组管理可以实现最小权限原则,即用户只拥有完成其任务所需的最小权限集合,这对系统安全至关重要此外,通过组管理可以简化权限分配,使得管理大量用户的系统变得更加高效进程管理Linux进程基础概念1进程是程序的一次执行过程,是系统分配资源的基本单位每个进程都有唯一的进程ID(PID)和父进程ID(PPID)Linux中的进程有五种状态运行、等待、睡眠、僵尸和停止理解这些概念是进程管理的基础进程查看与监控2使用ps命令可以查看当前进程的快照,常用选项包括ps aux(显示所有进程)和ps-ef(标准格式)top命令则提供了实时的系统进程监控,可以查看CPU、内存使用情况以及活跃进程列表htop是top的增强版,提供更友好的界面和更多功能进程控制命令3kill命令用于发送信号给进程,最常用的是终止进程(kill PID)killall和pkill可以根据名称终止进程nice和renice命令用于调整进程优先级,值范围从-20(最高优先级)到19(最低优先级)bg和fg命令用于控制作业在前台和后台运行系统服务管理4在现代Linux系统中,systemd已成为标准的初始化系统和服务管理器使用systemctl命令可以启动、停止、重启和查看服务状态例如,systemctl startnginx启动Nginx服务,systemctlstatus sshd查看SSH服务状态服务配置文件通常位于/etc/systemd/system/目录内存管理Linux物理内存管理1管理RAM资源,包括页框分配虚拟内存系统2提供大于物理内存的地址空间页面置换算法3决定哪些页面应被换出到交换空间内存回收机制4回收不再使用的内存资源Linux系统采用分页机制进行内存管理,默认页面大小为4KB内核将物理内存分成三个区域ZONE_DMA(适用于DMA操作的内存)、ZONE_NORMAL(常规使用内存)和ZONE_HIGHMEM(高端内存,用于扩展物理地址空间)Linux通过虚拟内存技术扩展了系统的可用内存空间当物理内存不足时,系统会将不常用的内存页面写入硬盘上的交换空间,从而释放物理内存这个过程称为页面交换(Paging)交换空间通常是硬盘上的专用分区或文件可以使用free命令查看系统内存使用情况,使用vmstat监控虚拟内存统计信息,使用swapon/swapoff管理交换空间内存管理参数可通过/proc/sys/vm/目录下的文件进行调整,例如修改swappiness值可以控制系统进行交换操作的倾向性设备管理Linux在Linux中,所有设备都被表示为文件,这些特殊文件通常位于/dev目录下根据处理数据的方式,设备被分为三类字符设备(如键盘、鼠标)、块设备(如硬盘、SSD)和网络设备(如网卡)字符设备以字符为单位进行I/O操作,不可随机访问;块设备以数据块为单位进行I/O操作,支持随机访问;网络设备则专门用于数据包的收发设备文件的主设备号标识设备驱动程序,次设备号区分同类型的不同设备Linux使用udev系统动态管理设备节点,它能根据硬件事件自动创建或删除设备文件管理员可以使用lsblk、fdisk、mount等命令管理块设备,使用ifconfig、ip等命令管理网络设备设备的详细信息可通过/proc和/sys文件系统获取网络配置Linux网络接口配置网络接口是连接计算机与网络的桥梁在Linux中,可以使用ip命令配置网络接口,如ip addradd
192.
168.
1.100/24dev eth0设置IP地址,ip linkset eth0up启用接口传统的ifconfig命令虽然仍可使用,但已被新的ip命令所取代网络接口的永久配置通常保存在/etc/network/interfaces或/etc/sysconfig/network-scripts/目录下路由配置路由表决定了数据包的传输路径使用ip route命令可以查看和修改路由表,如ip routeadd defaultvia
192.
168.
1.1配置默认网关静态路由适用于简单网络,而动态路由则需要使用路由协议如OSPF或BGP,可通过软件如Quagga实现路由策略可以基于源地址、目标地址、服务类型等因素进行配置配置DNSDNS(域名系统)将域名转换为IP地址在Linux中,DNS客户端配置主要通过/etc/resolv.conf文件实现,可以指定DNS服务器地址和搜索域如需架设DNS服务器,可以使用BIND、Dnsmasq等软件现代Linux发行版通常使用systemd-resolved服务管理DNS解析,通过/etc/systemd/resolved.conf进行配置网络工具Linux提供了丰富的网络诊断工具ping用于测试网络连通性,traceroute跟踪数据包路径,nslookup和dig用于DNS查询,netstat和ss显示网络连接状态,tcpdump和Wireshark用于网络数据包分析掌握这些工具对于排查网络问题至关重要脚本基础Shell简介变量与数据类型基本语法结构ShellShell是用户与Linux内核交互的接口常Shell变量分为环境变量(如$PATH,条件语句使用if-then-else结构,如if见的Shell包括Bash(默认)、Zsh、$HOME)和用户定义变量变量赋值使[条件];then命令;else命令;fi条件Fish等Shell脚本是由Shell命令组成的用变量名=值格式,注意等号两边不能有测试可以使用test命令或方括号,测试文文本文件,通过Shell解释执行,无需编译,空格引用变量使用$符号,如echo$变件属性、字符串比较、数值比较等适用于系统管理、自动化任务等场景量名循环结构包括for循环(for变量in列表;创建Shell脚本的基本步骤创建文本文件,Shell主要处理字符串,但也支持整数运算do命令;done)和while循环(while条添加脚本内容,赋予执行权限,然后执行字符串可以用单引号(不解释变量)或双件;do命令;done)case语句用于多条第一行通常是#!/bin/bash引号(解释变量)包围数组使用括号定件分支case变量in模式1命令;;模式2命(shebang),指定使用的Shell义,如array=value1value2,通过令;;esac${array[index]}访问元素脚本进阶Shell3+5函数类型重定向种类Shell支持三种主要函数类型内建命令(如cd,echo)、Shell提供五种基本的重定向操作标准输入重定向()、系统命令(如ls,grep)和用户定义函数用户定义函数标准输出重定向()、标准错误重定向
(2)、追加重可以接收参数,返回值,还可以设置局部变量,有效提高定向()和管道(|)掌握这些可以有效控制命令数据代码复用率和可维护性流向100+实用工具Shell脚本编写过程中经常使用的命令工具超过100种,包括文本处理工具(grep,sed,awk),文件处理工具(find,xargs),系统监控工具(ps,top)等这些工具组合使用可以实现复杂的系统管理任务Shell脚本的函数定义格式为function名称{命令序列;return值;}函数调用时直接使用函数名,参数通过$1,$2等位置参数传递,$#表示参数个数,$@表示所有参数正则表达式在Shell脚本中有广泛应用,特别是与grep,sed,awk等命令结合使用基本元字符包括.(任意字符)、*(前一字符重复零次或多次)、^(行首)、$(行尾)、[](字符集)等Shell脚本调试可以使用-x选项(bash-x script.sh)启用跟踪模式,显示每条命令及其值;使用-v选项显示脚本读取的每一行;也可以在脚本中使用set-x/set+x控制调试范围系统启动过程Linux阶段BIOS/UEFI系统加电后,BIOS/UEFI进行硬件自检POST,检测硬件设备并初始化然后按照设定的启动顺序查找可启动设备UEFI系统会加载EFI系统分区中的启动项,而BIOS系统会读取主引导记录MBR中的引导程序阶段Bootloader引导加载程序如GRUB加载并显示启动菜单,用户可选择要启动的操作系统或内核GRUB加载选定的内核和初始RAM磁盘initramfs到内存中initramfs包含了启动过程中所需的驱动程序和工具内核初始化内核开始执行,初始化硬件设备,挂载根文件系统内核启动第一个用户空间进程initPID1,在现代Linux系统中通常是systemd内核启动完成后,控制权交给用户空间程序初始化SystemdSystemd作为系统和服务管理器,根据配置并行启动各种系统服务它根据目标单元target组织启动流程,如multi-user.target多用户模式或graphical.target图形界面模式最终启动显示管理器,呈现登录界面服务管理Linux服务启动服务停止服务重启使用systemctl start服务名命令使用systemctl stop服务名命令使用systemctl restart服务名命可以启动一个服务例如,可以停止一个正在运行的服务例令可以重启服务这相当于先停止systemctl startnginx启动如,systemctl stopmysql停后启动,常用于服务配置更改后使Nginx服务如果服务配置为开机止MySQL数据库服务停止服务其生效如果只需重新加载配置而自启动,系统会在启动时自动启动会终止相关进程,释放占用的资源,不中断服务,可以使用systemctl该服务服务启动后,可以通过相但配置和数据通常会保留reload服务名命令应的端口或套接字提供功能服务状态查看使用systemctl status服务名命令可以查看服务的当前状态、最近的日志、进程ID等信息例如,systemctl statussshd查看SSH服务状态使用systemctllist-units--type=service可以列出所有服务单元日志管理Linux系统日志架构常见日志文件日志工具与管理Linux系统使用syslog协议作为日志记录的系统日志主要存放在/var/log目录下日志查看工具标准传统上,syslogd守护进程负责收集•/var/log/syslog或•journalctl查询systemd日志和处理系统日志现代Linux系统多采用/var/log/messages记录系统全局消•dmesg查看内核环形缓冲区信息rsyslog或systemd-journald作为日志服息务rsyslog兼容传统syslog,并提供扩展•less、tail、grep查看文本日志功能;而systemd-journald则使用结构化•/var/log/auth.log或/var/log/secure日志管理通常使用logrotate工具,它可以按记录身份验证信息二进制格式存储日志,提供更强大的查询能大小或时间轮转日志,压缩旧日志,并删除力•/var/log/kern.log记录内核信息过期日志,防止日志文件占用过多磁盘空间•/var/log/dmesg记录引导信息日志消息按设施facility和级别priority分logrotate的配置文件位于类设施表示日志来源如kern、user、•/var/log/[应用名]特定应用程序的日/etc/logrotate.conf和/etc/logrotate.d/mail,级别表示严重性从debug到志目录emergency通过配置可将不同设施和级这些日志文件通常采用纯文本格式,可使用别的日志路由到不同目标常规文本工具处理备份与恢复Linux备份策略规划1有效的备份策略应考虑备份频率、备份类型和保留策略完全备份包含所有数据,增量备份仅包含自上次备份后变化的数据,差异备份包含自上次完全备份后变化的数据常见策略是周期性完全备份结合日常增量备份根据数据重要性和变化频率,可采用祖父-父-子等多级保留策略,合理安排备份存储时间备份工具选择2Linux提供多种备份工具tar用于创建归档文件,cp-a或rsync适合文件级备份,dd可进行设备级或镜像备份专业备份工具如Amanda、Bacula、Duplicity提供更完整的备份解决方案,包括调度、验证、加密等功能数据库备份则应使用特定工具,如MySQL的mysqldump或PostgreSQL的pg_dump,以确保数据一致性备份存储与管理3备份数据可存储在本地磁盘、网络存储NAS/SAN、磁带设备或云存储平台应遵循3-2-1原则至少3份备份,使用2种不同存储介质,1份异地存储备份介质应定期测试,确保数据可恢复对敏感数据,应考虑加密保护备份任务应自动化执行,并设置监控和告警机制系统恢复流程4系统恢复通常需要使用救援媒体(如Live CD/USB)启动系统对于完整系统恢复,可能需要重新分区、格式化,然后恢复备份数据文件级恢复只需提取所需文件数据库恢复需要先安装数据库软件,再导入备份应定期进行恢复演练,验证备份有效性并熟悉恢复流程,确保在真正需要恢复时能快速、准确操作安全管理Linux权限管理身份认证管理遵循最小权限原则,定期审查用户权限,使用sudo细化特权管理,审计setuid/setgid程序,实施强密码策略,启用多因素认证,限制登录尝合理配置文件系统权限和ACL(访问控制列表)试次数,定期密码轮换,审核用户账户可使用PAM(可插拔认证模块)自定义认证流程,整合2LDAP、Kerberos等外部认证系统网络安全1配置防火墙限制网络访问,禁用不必要的服务和端口,使用SSH密钥认证替代密码登录,3启用入侵检测系统,定期进行漏洞扫描和渗透测试5安全监控与审计4系统加固配置集中式日志服务器,实施入侵检测和防御系统,监控文件完整性,定期审计系统安全状态,保持系统和软件包更新,禁用不必要的服务,配设置安全事件告警机制置SELinux或AppArmor强制访问控制,启用ASLR(地址空间布局随机化)等内核安全特性简介SELinux架构上下文模式SELinux SELinuxSELinuxSELinux(Security-Enhanced Linux)SELinux为系统中的所有对象(文件、进程、SELinux有三种运行模式强制模式是由美国国家安全局(NSA)开发的一套强端口等)分配安全上下文标签,包含用户、(Enforcing)实际执行安全策略并拒绝违制访问控制(MAC)安全机制,集成到角色、类型和安全级别信息访问控制决策规访问;许可模式(Permissive)记录违Linux内核中它通过安全策略控制系统中基于这些上下文标签而非传统的所有权和权规但不拒绝访问,用于测试和故障排除;禁的进程权限,限制进程能够访问的资源,即限使用ls-Z命令可查看文件上下文,ps-用模式(Disabled)完全关闭SELinux使是root用户也受到SELinux策略的约束Z命令可查看进程上下文使用getenforce命令查看当前模式,使用setenforce命令临时切换模式防火墙配置Linux基础介绍常见防火墙配置iptables firewalldiptables是Linux传统防火墙工具,基于firewalld是现代Linux发行版中常用的防火基本安全配置通常包括默认拒绝所有入站netfilter框架它通过规则链管理数据包过墙管理工具,提供了更易用的接口和动态防连接,只允许特定服务(如SSH、HTTP);滤,每条规则指定匹配条件和处理动作(如火墙管理能力它采用区域(zone)概念,限制SSH登录来源;保护常见服务端口;启ACCEPT、DROP、REJECT)iptables将网络接口分配到不同安全级别的区域中,用状态跟踪;防止IP欺骗;配置日志记录可有五个内置链INPUT(进入本机)、如public、home、work等,每个区域有疑活动OUTPUT(从本机发出)、FORWARD不同的默认规则高级配置可能包括速率限制以防止DoS攻(经过本机转发)、PREROUTING和firewalld支持运行时更改规则而无需重启防击;端口敲门技术隐藏服务;地理IP过滤;POSTROUTING(用于NAT)火墙服务,区分运行时配置和永久配置应用层过滤;fail2ban集成以动态阻止攻击它使用XML格式存储配置,提供命令行工具来源;流量整形和带宽控制规则匹配采用首条匹配原则,一旦数据包firewall-cmd和图形界面工具firewall-匹配某条规则,就执行相应动作,不再继续config匹配每个链默认有一个策略(通常是ACCEPT或DROP),当数据包不匹配任何规则时使用此策略性能优化Linux网络与应用优化内存与磁盘优化网络优化包括调整TCP参数(窗口大小、与进程优化CPU内存优化包括调整交换空间使用策略拥塞控制);启用TCP BBR提升吞吐量;性能监控与分析CPU优化包括使用nice和renice调整进(vm.swappiness);启用透明大页面;优化网络缓冲区大小;配置网卡多队列和中优化的第一步是识别性能瓶颈Linux提供程优先级;通过cgroups控制资源使用;优化内存分配策略磁盘优化包括选择适断亲和性应用级优化包括编译时优化丰富的监控工具top/htop查看CPU和内配置CPU频率调节器(如性能模式或节能合工作负载的文件系统(如XFS适合大文件,(-O2/-O3);共享库预加载;服务并发参存使用情况;vmstat分析系统资源使用;模式);进行负载均衡;针对多核处理器优ext4适合通用场景);调整I/O调度器;使数调整;使用缓存技术;数据库查询优化;iostat监控I/O性能;sar收集和报告系统化进程亲和性现代多核系统应避免用noatime挂载选项减少不必要的写操作;定期维护计划任务(如日志轮转、数据库活动数据;netstat/ss检查网络连接状态NUMA效应带来的性能问题,可使用考虑使用SSD并启用TRIM;使用LVM和vacuum)高级工具如perf可以进行系统级性能分析,numactl工具管理NUMA策略RAID提高性能和可靠性strace跟踪系统调用,而SystemTap和BPF提供动态追踪能力虚拟化技术Linux(基于内核的虚拟机)KVMKVM是Linux内核的一部分,将Linux转变为Type-1(裸金属)虚拟机监视器它需要CPU支持硬件虚拟化(Intel VT-x或AMD-V)KVM允许多个虚拟机作为普通进程在宿主系统上运行,每个虚拟机有自己的虚拟硬件KVM与QEMU结合使用,QEMU提供用户空间组件和设备模拟,而KVM提供加速核心XenXen是一种Type-1虚拟机监视器,直接运行在硬件上,被称为hypervisor在Xen架构中,hypervisor是最底层,控制硬件访问并管理虚拟机一个特权域(Dom0)负责管理其他虚拟机(DomU)Xen支持半虚拟化(修改客户操作系统)和全虚拟化(利用硬件虚拟化)Xen广泛用于云环境,如亚马逊EC2的早期版本(容器)LXC/LXD LinuxLXC是一种操作系统级虚拟化技术,允许在单个Linux内核上运行多个隔离的Linux系统(容器)LXC利用Linux内核功能(如cgroups和命名空间)来创建资源受限和隔离的环境,无需完整的虚拟机开销LXD是LXC的后代,提供改进的用户体验和附加功能,定位为系统容器管理器,可将容器视为轻量级虚拟机libvirtlibvirt是一个开源API、守护进程和管理工具集,用于管理虚拟化平台它提供了一个统一的接口来管理不同的虚拟化技术(KVM、Xen、LXC等),简化了虚拟化管理通过libvirt,管理工具(如virt-manager、virsh)可以一致地操作不同的虚拟化技术,处理虚拟机的创建、修改、迁移和监控容器技术Docker镜像构建与管理容器基础概念通过Dockerfile定义镜像,包含应用代码、运行环境和依赖关系容器是轻量级的应用程序执行环境,包含应用及其21依赖,但共享主机系统内核容器运行与管理使用docker run启动容器,可指定环境变量、端口映射和存储卷3容器网络5数据管理与持久化支持多种网络模式,实现容器间、容器与外部网络的通信通过卷Volumes和绑定挂载实现数据持久化和容器间共享4Docker采用客户端-服务器C/S架构,Docker守护进程dockerd在主机上运行并管理容器,用户通过Docker客户端与守护进程交互Docker使用了多种Linux内核特性实现容器隔离,包括命名空间Namespaces隔离进程视图,控制组cgroups限制资源使用,以及UnionFS提供分层镜像存储相比传统虚拟机,Docker容器启动更快秒级而非分钟级,资源占用更小MB而非GB级,更适合微服务架构Docker生态系统包括Docker Hub公共镜像仓库、Docker Compose多容器应用定义、Docker Swarm原生集群管理等工具,与Kubernetes等容器编排平台集成,实现企业级容器管理内核模块Linux模块基础概念模块管理命令模块开发基础Linux内核模块是可以动态加载和卸载的内Linux提供了一套完整的模块管理工具开发内核模块需要内核头文件包和适当的开核代码,无需重新编译内核或重启系统模发环境最简单的模块包含初始化函数•lsmod列出所有已加载的模块及其状块通常用于添加硬件驱动、文件系统支持或module_init和退出函数module_exit,态系统调用等功能,使内核保持轻量而灵活以及必要的许可证声明每个模块都有明确的初始化和清理函数,在•insmod插入模块,需指定完整路径MODULE_LICENSE模块可以接受参数,加载时执行初始化,卸载时执行清理•rmmod移除模块,前提是模块未被使通过module_param宏定义,参数可在加用载时指定或通过sysfs文件系统修改模块遵循GPL许可证,其源代码必须公开•modprobe智能加载/卸载模块,自动模块运行在内核空间,具有与内核相同的权编译模块需要使用内核的构建系统,通常通处理依赖限,错误的模块可能导致系统崩溃模块可过Makefile与内核源码树链接编译后的模以依赖其他模块,形成依赖关系链•modinfo显示模块详细信息块扩展名为.ko开发者可使用内核提供的调试工具和日志系统printk进行模块调试模块配置文件位于/etc/modprobe.d/目录,可设置模块参数、黑名单等内核模块存放在/lib/modules/$uname-r/目录下。
个人认证
优秀文档
获得点赞 0