搭建DHCP、PXE、DNS、HTTP以及NFS服务综合实验的超详细讲解

news2024/11/25 16:22:14

文章目录

  • 1.实验要求
  • 2.实验步骤
    • 2.1 步骤解答问题(1)
    • 2.1 步骤解答问题(2)
    • 2.1 步骤解答问题(3)
    • 2.1 步骤解答问题(4)
    • 2.1 步骤解答问题(5)

1.实验要求

(1)准备3台虚拟机,一台Windows虚拟机PC1(不限制win7或者win10)一台Linux服务器server1(IP是172.16.100.100/24)、一台网卡为DHCP类型的Linux服务器server2和一台空虚拟机server3。虚拟机网络使用仅主机模式。

(2)server1提供DHCP服务给PC1和server2分配对应网段的IP地址。

(3)server1提供PXE服务,能够使server3可以自动安装Centos7 Linux操作系统。

(4)在server1安装和启动httpd服务对外提供Web服务,并搭建DNS服务负责解析域名www.kgc.com 为172.16.100.100,使得PC1能够使用域名www.kgc.com访问Web服务器

(5)在server2安装NFS服务,提供共享目录/share ,在/share目录中创建文件index.html,文件内容自定义。把server2的/share目录通过NFS挂载到server1的/var/www/html目录下,使得PC1访问Web服务时能够显示自定义的内容。

2.实验步骤

2.1 步骤解答问题(1)

server1

在这里插入图片描述

[root@clr ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=7acafc56-e5b0-4abd-9a96-27db5a96e4b9
DEVICE=ens33
ONBOOT=yes
IPADDR=172.16.100.100
NETMASK=255.255.255.0
GATEWAY=172.16.100.2
DNS1=172.16.100.2

在这里插入图片描述

注意:此时由于更改了虚拟机的IP地址,使用Xshell或者MobaXterm将无法连接虚拟机,即使修改为正确的IP地址,依然无法连接;这是因为虚拟机server1修改后的网段为172.16.100.0,与宿主机不在同一个网段解决办法:设置虚拟机为仅主机模式,并将虚拟机和宿主机的VMnet都设置在同一网段172.16.100.0,即可解决问题。

在这里插入图片描述

在这里插入图片描述

第一问中,只要将server1的IP地址修改为题目指定的IP地址,并且Xshell或者MobaXterm能够连接到虚拟机server1就可以了。

2.1 步骤解答问题(2)

server1

[root@clr ~]# systemctl stop firewalld  #临时关闭防火墙
[root@clr ~]# setenforce 0   
[root@clr ~]# mount /dev/sr0 /mnt  #将光盘/dev/sr0挂载到/mnt目录下
mount: /dev/sr0 写保护,将以只读方式挂载
[root@clr ~]# df -h
文件系统        容量  已用  可用 已用% 挂载点
tmpfs           394M   28K  394M    1% /run/user/0
/dev/sr0        4.4G  4.4G     0  100% /mnt  #新挂载的光盘
[root@clr /mnt]# yum install -y dhcp
[root@clr /etc/dhcp]# vim dhcpd.conf   

#   see /usr/share/doc/dhcp*/dhcpd.conf.example #原始的dhcpd.conf配置文件中内容为空,需要将这个文件下面的/usr/share/doc/dhcp*/dhcpd.conf配置文件复制到dhcpd.conf   

[root@clr ~]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf   #将/usr/share/doc/dhcp-4.2.5/dhcpd.conf.example这个文件中的内容复制到/etc/dhcp/dhcpd.conf这个文件中
cp:是否覆盖"/etc/dhcp/dhcpd.conf"? yes
[root@clr ~]# systemctl start dhcpd    #开启dhcp服务器
[root@clr ~]# vim /etc/dhcp/dhcpd.conf


option domain-name-servers 172.16.100.100;    #切记此处一定要指定DNS服务器的地址为server1的IP地址,否则server2无法通过server1的DHCP服务自动获取IP地址和默认网关

default-lease-time 600000;   #增大此处此处DHCP服务的租约时间,防止实验过程中由于租约到期,而导致server2没有ip地址
max-lease-time 7200000;

#网段声明
subnet 172.16.100.0 netmask 255.255.255.0 {    #声明要分配的网段地址
  range 172.16.100.110  172.16.100.210;   #设置地址池
  option routers 172.16.100.100;     #指定默认网关地址,也就是server1的IP地址
}

在这里插入图片描述

在这里插入图片描述

server2

在这里插入图片描述

[root@myhost2 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=57f3a172-be68-4537-b551-761a3086b4f8
DEVICE=ens33
ONBOOT=yes

在这里插入图片描述

[root@myhost2 ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.16.100.110  netmask 255.255.255.0  broadcast 172.16.100.255
        inet6 fe80::7426:183f:1077:c9d4  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:e2:4b:fe  txqueuelen 1000  (Ethernet)
        RX packets 13052  bytes 1173848 (1.1 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 6099  bytes 711656 (694.9 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

2.1 步骤解答问题(3)

server1

(1)安装并启用 TFTP 服务

在这里插入图片描述

[root@clr ~]# systemctl stop firewalld
[root@clr ~]# setenforce 0
[root@clr ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

安装xinetd和tftp-server服务;

在这里插入图片描述

修改/etc/xinetd.d/tftp配置文件;

在这里插入图片描述

[root@clr ~]# vim /etc/xinetd.d/tftp 

# default: off
# description: The tftp server serves files using the trivial file transfer \
#       protocol.  The tftp protocol is often used to boot diskless \
#       workstations, download configuration files to network-aware printers, \
#       and to start the installation process for some operating systems.
service tftp
{
        socket_type             = dgram
        protocol                = udp
        wait                    = no
        user                    = root
        server                  = /usr/sbin/in.tftpd
        server_args             = -s /var/lib/tftpboot
        disable                 = no
        per_source              = 11
        cps                     = 100 2
        flags                   = IPv4
}

###开启tftp和xinetd服务,并设置为开机自启动
[root@clr ~]# systemctl start tftp
[root@clr ~]# systemctl enable tftp
[root@clr ~]# systemctl start xinetd
[root@clr ~]# systemctl enable xinetd

(2)启用 DHCP 服务

在这里插入图片描述

[root@clr ~]# vim /etc/dhcp/dhcpd.conf 


option domain-name-servers 172.16.100.100;    #切记此处一定要指定DNS服务器的地址为server1的IP地址,否则server2无法通过server1的DHCP服务自动获取IP地址和默认网关

default-lease-time 600000;
max-lease-time 7200000;

# Use this to enble / disable dynamic dns updates globally.
ddns-update-style none;
next-server 172.16.100.100;
filename "pxelinux.0";


subnet 172.16.100.0 netmask 255.255.255.0 {
  range 172.16.100.110  172.16.100.210;
  option routers 172.16.100.100;     #定义DHCP服务的网关,也就是server1的IP地址 此处默认网关地址一定要指向TFTP服务器的IP地址
}
[root@clr ~]# systemctl start dhcpd   #开启dhcp服务,并设置为开机自启动
[root@clr ~]# systemctl enable dhcpd

(3)准备 Linux 内核、初始化镜像文件

在这里插入图片描述

[root@clr ~]#  cd /mnt/images/pxeboot	#已事先把光盘挂载到/mnt目录中
[root@clr ~]#  cp vmlinuz /var/lib/tftpboot/    #复制Linux系统的内核文件 到TFTP根目录下
[root@clr ~]#  cp initrd.img /var/lib/tftpboot/    #复制 初始化镜像文件(linux引导加载模块)到TFTP根目录下

(4)准备 PXE 引导程序

安装syslinux软件;

在这里插入图片描述

将pxelinux.0文件复制到tftp的根目录/var/lib/tftpboot/中;

在这里插入图片描述

[root@clr ~]#  yum -y install syslinux									#PXE引导程序由软件包 syslinux 提供
[root@clr ~]#  cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/	#复制 PXE引导程序 到TFTP根目录下

(5)安装FTP服务,准备CentOS 7 安装源

在这里插入图片描述
在这里插入图片描述

[root@clr ~]#  yum -y install vsftpd  #安装TFTP服务
[root@clr ~]#  mkdir /var/ftp/centos7
[root@clr ~]#  mount /dev/sr0 /var/ftp/centos7  #将光盘镜像文件挂载到ftp根目录下的centos7目录中
[root@clr ~]#  systemctl start vsftpd    #开启ftp服务,并设置为开机自启动
[root@clr ~]#  systemctl enable vsftpd

(6)配置启动菜单文件

在这里插入图片描述

###默认的启动菜单文件在TFTP根目录的 pxelinux.cfg子目录下,文件名为default
[root@clr ~]# mkdir /var/lib/tftpboot/pxelinux.cfg		  

[root@clr ~]# vim /var/lib/tftpboot/pxelinux.cfg/default	
default auto 							#指定默认入口名称
prompt 0							#设置是否等待用户选择,“1”表示等待用户控制

label auto								#图形安装(默认)引导入口,label用来定义启动项,指定入口类型
kernel vmlinuz							#kernel 和 append用来定义引导参数,kernel指定内核文件
append initrd=initrd.img method=ftp://172.16.100.100/centos7   
#append用于指定系统的引导文件,initrd用于设置系统引导参数,method用于指定安装源的软件包

在这里插入图片描述

(7)实现Kickstart无人值守安装

准备安装应答文件,安装system-config-kickstart 工具

[root@clr ~]# yum install -y system-config-kickstart

在这里插入图片描述
应答文件中基本配置选项如下:

在这里插入图片描述

应答文件中安装方法选项如下:

在这里插入图片描述

应答文件中引导装载程序选项如下:

在这里插入图片描述

应答文件中分区信息选项如下:

在这里插入图片描述

分配/boot分区;

在这里插入图片描述

分配swap分区;

在这里插入图片描述

分配根目录;

在这里插入图片描述

分配后的内存信息;

在这里插入图片描述

应答文件中网络配置选项如下:

在这里插入图片描述

应答文件中验证选项保持默认配置,不做任何操作;

应答文件中显示配置选项如下:

在这里插入图片描述

应答文件中显示配置保持默认操作,此处不做配置;

应答文件中软件包选择选项如下:

在这里插入图片描述
应答文件中预安装家脚本保持默认操作,此处不做配置;

应答文件中安装后脚本选项如下:

在这里插入图片描述

保存配置文件;

在这里插入图片描述

配置图形化脚本文件;

在这里插入图片描述

[root@clr ~]# vim /var/ftp/ks.cfg 

reboot
#platform=x86, AMD64, 或 Intel EM64T
#version=DEVEL
# Install OS instead of upgrade
install
# Keyboard layouts
keyboard 'us'
# Root password
rootpw --iscrypted $1$n82FaQp2$UbGYQRTr4Dyzue1GLWfqe1
# System language
lang zh_CN
# System authorization information
auth  --useshadow  --passalgo=sha512
# Use graphical install
graphical
firstboot --disable
# SELinux configuration
selinux --disabled
# Firewall configuration
firewall --disabled
# Network information
network  --bootproto=dhcp --device=ens33
# Reboot after installation
reboot
# System timezone
timezone Africa/Abidjan
# Use network installation
url --url="ftp://172.16.100.100/centos7"
# System bootloader configuration
bootloader --location=mbr
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot --fstype="xfs" --size=500
part swap --fstype="swap" --size=4096
part / --fstype="xfs" --grow --size=1

%post --interpreter=/bin/bash
mkdir /etc/yum.repos.d/repo.bak
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/repo.bak
echo [local]
name=local
baseurl=file:///mnt
enabled=1
gpgcheck=0  > /etc/yum.repos.d/local.repo
%end

%packages
@^gnome-desktop-environment
@base
@core
@desktop-debugging
@development
@dial-up
@directory-client
@fonts
@gnome-desktop
@guest-agents
@guest-desktop-agents
@input-methods
@internet-browser
@java-platform
@multimedia
@network-file-system-client
@networkmanager-submodules
@print-client
@x11
chrony
%end                                                                 

将生成的自动应答文件ks.cfg文件复制到ftp的根目录中;

在这里插入图片描述

添加自动应答文件ks.cfg的位置;

在这里插入图片描述
在这里插入图片描述

[root@clr ~]# vim /var/lib/tftpboot/pxelinux.cfg/default 

default auto
prompt 0

label auto
kernel vmlinuz
append initrd=initrd.img method=ftp://172.16.100.100/centos7 ks=ftp://172.16.100.100/ks.cfg

label linux text
kernel vmlinuz
append text initrd=initrd.img method=ftp://172.16.100.100/centos7

label linux rescue
kernel vmlinuz
append rescue initrd=initrd.img method=ftp://172.16.100.100/centos7

(8)验证一键自动化装机是否成功;

在这里插入图片描述

2.1 步骤解答问题(4)

server1

(1)安装http并启动http服务;

[root@clr ~]# yum install -y httpd
[root@clr ~]# systemctl start httpd
[root@clr ~]# systemctl enable httpd

(2)安装并修改DNS的主配置文件;

[root@clr ~]# yum install -y bind    #同时安装DNS服务(软件名叫bind)
已加载插件:fastestmirror, langpacks
 
[root@clr ~]# vim /etc/named.conf     #修改主配置文件
options {
        listen-on port 53 { 172.16.100.100; };  #监听53号端口,并使用172.16.100.100(也就是本机server1的ip地址)提供DNS域名解析服务
        listen-on-v6 port 53 { ::1; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        allow-query     { any; };  #允许所有网段使用本服务器的DNS解析服务

(3)修改区域配置文件,添加正反向区域配置;

在这里插入图片描述

[root@clr ~]# vim /etc/named.rfc1912.zones 



zone "kgc.com" IN {
        type master;
        file "kgc.com.zone";
};


zone "100.16.172.in-addr.arpa" IN {
        type master;
        file "kgc.com.zone.local";
};

(4)配置正反向区域数据文件;

[root@clr ~]# cd /var/named
[root@clr /var/named]# ls
data  dynamic  named.ca  named.empty  named.localhost  named.
[root@clr /var/named]# cp -a named.localhost kgc.com.zone #配置正向区域数据文件,并保留源文件的权限和属主的属性复制
[root@clr /var/named]# cp -a named.localhost kgc.com.zone.local  #配置反向区域数据文件,并保留源文件的权限和属主的属性复制
[root@clr /var/named]# ls
data  dynamic  kgc.com.zone  kgc.com.zone.local  named.ca  named.empty  named.localhost  named.
[root@clr /var/named]# vim kgc.com.zone   #修改并配置正向区域数据文件

$TTL 1D
@       IN SOA  @ admin.kgc.com. (   #“@”符号表示当前的DNS区域名,末尾的‘.’是根域的意思,切记不可省略
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      @
        A       172.16.100.100      #记录主机IP地址
www IN A 172.16.100.100   #记录正向解析www.kgc.com对应的IP为172.16.100.100
ayu IN A  172.16.100.201    #记录正向解析ayu.kgc.com对应的IP为172.16.100.201


[root@clr /var/named]# vim kgc.com.zone.local     #修改并配置反向区域数据文件

$TTL 1D
@       IN SOA  kgc.com admin.kgc.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      kgc.com.          #记录当前区域的DNS服务器名称
        A       172.16.100.100    #记录主机IP地址
100 IN PTR www.kgc.com.  #记录反向解析172.16.100.100对应的域名为www.kgc.com
201 IN PTR ayu.kgc.com.
       #记录反向解析172.16.100.201对应的域名为ayu.kgc.com

在这里插入图片描述
在这里插入图片描述

[root@clr /var/named]# systemctl start named  #启动DNS服务
[root@clr /var/named]# systemctl enable named  #设置DNS服务开机自启动

客户端win10

(1)关闭客户端NAT模式中的使用本地DHCP服务将IP地址分配给虚拟机;

在这里插入图片描述

(2)更改网络连接设置,选择自动获取IP地址和DNS服务器地址;

在这里插入图片描述

(3)验证DHCP和DNS服务器是否生效;

在这里插入图片描述
在这里插入图片描述

2.1 步骤解答问题(5)

server2

(1)安装软件,启动服务

服务端安装并启动nfs-utils、rpcbind软件包;

[root@clr ~]#yum -y install nfs-utils rpcbind
[root@clr ~]#systemctl  start rpcbind  #切记一定要先启动rpcbind服务,再启动nfs服务
[root@clr ~]#systemctl  start nfs
[root@clr ~]#systemctl enable rpcbind #将rpcbind服务和nfs服务设为开机启动
[root@clr ~]#systemctl enable nfs  

(2)准备共享目录

修设配置文件,设置共享目录;

[root@clr ~]#mkdir -p /opt/share
[root@clr ~]#echo 234 >> /opt/share/index.html   #在共享目录/opt/share/index.html中写入自定义内容234

[root@clr ~]#vim /etc/exports
/opt/share 172.168.100.0/24(rw,sync,no_root_squahs)
[root@clr ~]# systemctl restart nfs #重新启动nfs服务
[root@clr ~]# showmount -e 172.16.100.110
Export list for 172.16.100.110:
/opt/share 172.16.100.0/24

server1

(1)安装软件,启动服务

客户端安装并启动rpcbind软件包;

[root@clr ~]#yum -y install rpcbind
[root@clr ~]#systemctl  start rpcbind  #启动rpcbind服务
[root@clr ~]#systemctl enable rpcbind #将rpcbind服务设为开机启动

(2)在客户端创建指定挂载目录,并将172.16.100.100:/opt/sharel挂载到server1的/var/www/html目录下;

[root@clr ~]# showmount -e 172.16.100.110  #查看nfs服务端是否已经成功将指定目录共享出来
Export list for 172.16.100.110:
/opt/share 172.16.100.0/24
[root@clr ~]# mkdir /opt/mydata
[root@clr ~]# mount 172.16.100.100:/opt/share /var/www/html  #将172.16.100.100:/opt/sharel共享目录挂载到server1的/var/www/html目录下

在这里插入图片描述

客户端win10

在这里插入图片描述
至此,该实验已圆满完成!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/499275.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Hadoop入门篇01---基础概念和部署教程

Hadoop入门篇01---基础概念和部署教程 Hadoop是什么Hadoop发展史Hadoop特点有哪些Hadoop版本Hadoop架构Hadoop 3.0新特性 Hadoop集群搭建集群简介集群部署方式standalone mode&#xff08;独立模式&#xff09;Pseudo-Distributed mode&#xff08;伪分布式模式&#xff09;Clu…

webpack的核心概念分别是什么,如何理解

这篇文章主要介绍了 title &#xff0c;小编觉得挺不错的&#xff0c;现在分享给大家&#xff0c;也给大家做个参考&#xff0c;希望大家通过这篇文章可以有所收获。 webpack 是一种前端资源构建工具&#xff0c;一个静态模块打包器&#xff08;module bundler&#xff09;&…

UE5.1.1C++从0开始(4.虚幻的接口以及交互功能)

这一个章节对于第一次接触虚幻的人来说可以说是最绕的一个点&#xff0c;因为老师突然给你塞了很多的概念&#xff0c;对于这一块的学习&#xff0c;我个人的推荐是&#xff1a;先把蓝图搞明白了&#xff0c;再对应到C的代码中&#xff0c;不然一定会被整的晕头转向。还是&…

安装ms sql server2000提示安装失败详见sqlstp.log日志

安装ms sql server2000提示安装失败详见sqlstp.log日志 目录 安装ms sql server2000提示安装失败详见sqlstp.log日志 一、可能的情况-其它位置不能有对它的引用 1.1、先安装了Delphi其options-环境变量-其中path中有sql&#xff0c;注册表将其清除 1. 2、注册表搜索-Micro…

【Unity3d】Unity3d在Android平台上输入框的实现源码分析

一、前言 Unity3d引擎中有很多与Android原生交互的功能&#xff0c;比如如何调用Android渲染、Unity输入框的实现、Unity权限的申请、Unity调用相机功能等等&#xff0c;其实这些就是调用Android的api实现的。所有Java层的实现代码都是在unity-classes.jar这个jar包中。这篇文…

chatgpt的150个指令大全

chatGPT输出结果的质量高低&#xff0c;和你使用什么样质量的输入内容有关。 今天&#xff0c;小编整理了一些常用的ChatGPT指令&#xff0c;可以通过这些指令让AI帮你整理资料、撰写报告、知识学习、准备面试等等&#xff0c;赶紧收藏起来吧&#xff01; 如果还没有找到工具…

两万字详解!Netty经典32连问

两万字详解&#xff01;Netty经典32连问&#xff01; 前言 Netty是什么&#xff0c;它的主要特点是什么&#xff1f; Netty 应用场景了解么&#xff1f; Netty 核心组件有哪些&#xff1f;分别有什么作用&#xff1f; Netty的线程模型是怎样的&#xff1f;如何优化性能&…

四、Spring Cloud Alibaba-Ribbon

一、什么是Ribbon 目前主流的负载方案分为以下两种: 集中式负载均衡&#xff0c;在消费者和服务提供方中间使用独立的代理方式进行负载&#xff0c;有硬件的(比如 F5)&#xff0c;也有软件的(比如 Nginx) 。客户端根据自己的请求情况做负载均衡&#xff0c;Ribbon 就属于客户…

2023年全国硕士研究生入学统一考试英语(一)试题

2023年全国硕士研究生入学统一考试英语&#xff08;一&#xff09;试题 Section I Use of Englis Directions: Read the following text. Choose the best word(s) for each numbered blank and mark A, B , C or D on the ANSWER SHEET.(10 points) Caravanserais were roads…

【P9】JMeter 用户定义的变量(User Defined Variables)

一、准备工作 慕慕生鲜&#xff1a; http://111.231.103.117/#/login 进入网页后&#xff0c;登录&#xff0c;页面提供了账户和密码 右键检查或按F12&#xff0c;打开调试工具&#xff0c;点击搜索 二、测试计划设计 &#xff08;1&#xff09;、Test Plan 右键 <<…

Linux cgroup

前言 Cgroup和namespace类似&#xff0c;也是将进程进程分组&#xff0c;但是目的与namespace不一样&#xff0c;namespace是为了隔离进程组之前的资源&#xff0c;而Cgroup是为了对一组进程进行统一的资源监控和限制。 Cgroup的组成 subsystem 一个subsystem就是一个内核模…

【HCIP】VLAN实验(Hybrid模式)

目录 需求&#xff1a; 一、设计 二、VLAN配置 三、交换机间实现trunk的功能 四、路由器配置 五、验证 需求&#xff1a; 1、PC1和PC3所在接口为access 2、PC2/4/5/6处于同一网段&#xff0c;其中PC2可以访问PC4/5/6&#xff1b;但PC4可以访问PC5&#xff0c;不能访问PC…

ARM嵌入式编译器-volatile关键字对编译器优化的影响

volatile限定符告知计算机&#xff0c;其他agent&#xff08;而不是变量所在的程序&#xff09;可以改变该变量的值。通常它被用于硬件地址以及在其他程序或同时运行的线程中共享数据。要求编译器不要对其描述的对象作优化处理&#xff0c;对它的读写都需要从内存中访问。 使用…

文献阅读:LLaMA: Open and Efficient Foundation Language Models

文献阅读&#xff1a;LLaMA: Open and Efficient Foundation Language Models 1. 文章简介2. 模型训练 1. 训练数据2. 模型结构3. 模型训练 1. Optimizer2. 效率优化 3. 效果评估 1. 经典任务下效果 1. Commen Sense Reasoning2. Closed-book Question Answering3. Reading Co…

数据分析03——矩阵常用计算方法和函数

0、前言&#xff1a; 数组&#xff1a;计算机领域的概念矩阵&#xff1a;数学领域的概念对于Numpy而言&#xff0c;矩阵是数组的分支 1、创建矩阵&#xff1a; 字符串创建矩阵&#xff1a;mat1 np.matrix(‘1 2;3 4’)列表形式创建矩阵&#xff1a;mat2 np.matrix([[5, 6],…

MySQL基础(八)聚合函数

上一章讲到了 SQL 单行函数。实际上 SQL 函数还有一类&#xff0c;叫做聚合&#xff08;或聚集、分组&#xff09;函数&#xff0c;它是对一组数据进行汇总的函数&#xff0c;输入的是一组数据的集合&#xff0c;输出的是单个值。 1. 聚合函数介绍 什么是聚合函数 聚合函数作…

深度学习目标检测项目实战(五)—基于mobilenetv2和resnet的图像背景抠图及其界面封装

深度学习目标检测项目实战(五)—基于mobilenetv2和resnet的图像背景抠图及其界面封装 该项目很有意思&#xff0c;也是比较前沿&#xff0c;项目主要参考了开源代码&#xff1a; https://github.com/PeterL1n/BackgroundMattingV2 环境搭建 kornia0.4.1 tensorboard2.3.0 to…

图像修复_criminis算法及改进算法学习小结

摘要 对图像修复专题学习情况的一个总结&#xff0c;学习内容包括&#xff1a; &#xff08;1&#xff09;综述文献的阅读及对图像修复的理解。 &#xff08;2&#xff09;criminis算法的仿真情况。 &#xff08;3&#xff09;criminis算法的改进算法的仿真 一、 前言 1&…

【leetcode】138.复制带随机指针的链表

《力扣》138.复制带随机指针的链表 给你一个长度为 n 的链表&#xff0c;每个节点包含一个额外增加的随机指针 random &#xff0c;该指针可以指向链表中的任何节点或空节点。 构造这个链表的 深拷贝。 深拷贝应该正好由 n 个 全新 节点组成&#xff0c;其中每个新节点的值都设…

[羊城杯 2020]a_piece_of_java

首先jd-gui进行反编译 简单查看发现有用的类就两个一个是 MainContrller.class和InfoInvocationHandler.class public class MainController {GetMapping({"/index"})public String index(CookieValue(value "data", required false) String cookieDa…