引导过程与服务控制
文章目录
- 一、Linux操作系统引导过程
- 1、开机启动的完整过程
- 1.1 开机自检(BIOS)
- 1.2 MBR引导
- 1.3 GRUB菜单
- 1.4 加载内核(kernel)
- 1.5 init进程初始化
- 2、系统初始化进程
- 2.1 init进程
- 2.2 systemd
- init与systemd区别
- 3、Systemd单元类型
- 4、运行级别所对应的Systemd目标
- 二、故障处理
- 1、service unit文件格式
- 1.1 unit 格式说明
- 1.2 service unit file文件通常由三部分组成
- 1.3 Unit段的常用选项
- 1.4 Service段的常用选项
- 1.5 Install段的常用选项
- 1.6 编译安装nginx-systemctl
- 编译安装nginx,然后用systemctl管理(图文详解)
- 2、修复MBR扇区故障
- 2.1 故障原因
- 2.2 故障现象
- 2.3 解决思路
- 2.4 故障模拟及处理过程
- 修复MBR扇区故障(图文详解)
- 3、修复GRUB引导故障
- 3.1 故障原因
- 3.2 故障现象
- 3.3 解决思路
- 3.4 故障模拟及处理过程
- 修复GRUB引导故障(图文详解)
- 4、遗忘root用户密码
- 4.1 故障原因
- 4.2 故障现象
- 4.3 解决思路
- 4.4 故障模拟及处理过程
- 修改root用户密码(图文详解)
- 三、Linux系统服务控制
- 1、系统服务控制
- 1.1 格式:systemctl 控制类型 服务名称
- 1.2 控制类型
- 四、Linux系统运行级别切换
- 1、查看运行级别
- 1.1 runlevel命令:runlevel只能查看切换运行级别与当前运行级别
- 1.2 systemctl工具
- 2、临时切换运行级别
- 2.1 init命令
- 2.2 systemctl工具
- 2.3 init与systemctl对应表
- 3、查看系统默认级别
- 4、设置临时运行级别
- 格式:chkconfig --list [服务名称]
- 5、设置永久运行级别
- 五、优化开机自动加载服务
- 1、优化启动过程
- 1.1 ntsysv工具
- 1.2 systemctl/chkconfig工具
- 2、系统服务的启动和控制
- 2.1 ntsysv系统服务管理工具
- 3、命令补充
一、Linux操作系统引导过程
1、开机启动的完整过程
- BIOS加电自检 ---- MBR — GRUB — 加载内核文件 — 启动进程
加电后BIOS程序会自检硬件,硬件无故障后,会根据第一启动项去找内核,一般来说第一启动项是硬盘,找到硬盘后,会根据MBR的指引找到完整的GRUB程序,再根据grub的配置文件找到内核文件的具体位置,然后将内核文件加载到内存中运行,内存加载好后会启动第一个程序
BIOS:检测硬件是否正常,然后根据BIOS中的启动项设置,去找内核文件
1.1 开机自检(BIOS)
服务器主机开机以后,将根据主板BIOS中的设置对CPU、内存、显卡、键盘等设备进行初步检测,检测成功后根据预设的启动顺序移交系统控制权,大多时候会移交给本机硬盘
总结:检测出第一个能够引导系统的设备,比如硬盘或者光驱
1.2 MBR引导
- 指引硬件找到内核文件
当从本机硬盘中启动系统时,首先根据硬盘第一个扇区中MBR(主引导记录)的设置,将系统控制权传递给包含操作系统引导文件的分区,或者直接根据MBR记录中的引导信息调用启动菜单(如GRUB)
总结:运行放在MBR扇区里的启动GRUB引导程序(因为grub程序启动太大,第一个扇区存不下所有的grub程序,所以分为两部分)
1.3 GRUB菜单
- 根据grub配置文件(grub.cfg)中记录的位置,去找到内核文件
对于Linux操作系统来说,GRUB(统一启动加载器)是使用最为广泛的多系统引导器程序。系统控制权传递给GRUB以后,将会显示启动菜单给用户选择,并根据所选项(或采用默认值)加载Linux内核文件,然后将系统控制权移交给内核。
CentOS 7采用的是GRUB2启动引导器。
总结:GRUB引导程序通过读取GRUB配置文件/boot/grub2/grub.cfg,来获取内核和镜像文件系统的设置和路径位置
1.4 加载内核(kernel)
Linux内核是一个预先编译号的特殊二进制文件,介于各种硬件资源与系统程序之间,负责资源分配与调度。内核接过系统控制权以后,将完全掌控整个Linux操作系统的运行过程
CentOS 7系统中,默认的内核文件位于“/boot/vmlinuz-3.10.0-514.e17.x86_64”
总结:把内核和镜像文件系统加载到内存中
1.5 init进程初始化
为了完成进一步的系统引导过程,Linux内核首先将系统中的额“/sbin/init”程序加载到内核中运行(运行中的程序称为进程),init集成负责完成整个系统的初始化,最后等待用户进行登录
总结:加载硬件驱动程序,内核把init进程加载到内存中运行
2、系统初始化进程
2.1 init进程
①、由Linux内核加载运行/sin/init程序
②、init进程是系统中第一个进程,是所有进程的父程序
③、init进程的PID(进程标记)号永远为1
2.2 systemd
- systemd是系统的级程序,代为管理系统上的程序
①、systemd是Linux操作系统的一种init软件
②、CentOS 7中采用全新的Systemd启动方式,取代传统的SysVinit
③、CentOS 7中运行的第一个init进程是/lib/systemd/systemd
注:传统SysVinit依赖于串行执行Shell脚本启动服务,导致效率低下,系统启动速度较慢,systemd能够将更多的服务进程并行启动,并且具有提供按需启动服务的能力,使得启动更少进程,从而提高系统启动速度。
-
centos6:启动init(串行启动后续程序,一个一个按顺序启动)
-
centos7:启动systemd(并行启动程序,全部一起启动)
init与systemd区别
- init:串行启动后续程序,一个一个按顺序启动
- systemd:并行启动程序,全部一起启动
systemd方便管理程序,将程序按照特定的功能分成了很多特定的单元(如:服务单元,文件路径单元,挂载单元等)
- yum以及rpm安装的软件可以直接使用systemd去启动、关闭、重启、开机自启等功能,
- 编译安装不可以直接使用systemctl命令去管理程序,需要手写一个配置文件
3、Systemd单元类型
4、运行级别所对应的Systemd目标
- 0—关机
- 1—单用户(类似于windows的急救模式)
- 2—字符界面(少一些功能)
- 3—字符界面(默认)
- 4—字符界面(没有使用)
- 5—图形界面
- 6—重启
runlevel #查看当前运行级别systemctl get-default #查看默认的运行级别systemctl set-default #设置默认的级别target #关机rescue.target #单用户multi-user.target #字符界面graphical.target #图形界面reboot.target #重新启动
二、故障处理
1、service unit文件格式
1.1 unit 格式说明
- 以 “#” 开头的行后面的内容会被认为是注释
- 相关布尔值,1、yes、on、true 都是开启,0、no、off、false 都是关闭
- 时间单位默认是秒,所以要用毫秒(ms)分钟(m)等须显式说明
1.2 service unit file文件通常由三部分组成
- [Unit]:定义与Unit类型无关的通用选项;用于提供unit的描述信息、unit行为及依赖关系等
- [Service]:与特定类型相关的专用选项;此处为Service类型
- [Install]:定义由“systemctl enable”以及"systemctl disable“命令在实现服务启用或禁用时用到的一些选项
1.3 Unit段的常用选项
- Description:描述信息
- After:定义unit的启动次序,表示当前unit应该晚于哪些unit启动,其功能与Before相反
- Requires:依赖到的其它units,强依赖,被依赖的units无法激活时,当前unit也无法激活
- Wants:依赖到的其它units,弱依赖
- Conflicts:定义units间的冲突关系
1.4 Service段的常用选项
-
Type:定义影响ExecStart及相关参数的功能的unit进程启动类型
- simple:默认值,这个daemon主要由ExecStart接的指令串来启动,启动后常驻于内存中
- forking:由ExecStart启动的程序透过spawns延伸出其他子程序来作为此daemon的主要服务。原生父程序在启动结束后就会终止
- oneshot:与simple类似,不过这个程序在工作完毕后就结束了,不会常驻在内存中
- dbus:与simple类似,但这个daemon必须要在取得一个D-Bus的名称后,才会继续运作.因此通常也要同时设定BusNname= 才行
- notify:在启动完成后会发送一个通知消息。还需要配合 NotifyAccess 来让 Systemd 接收消息
- idle:与simple类似,要执行这个daemon必须要所有的工作都顺利执行完毕后才会执行。这类的daemon通常是开机到最后才执行即可的服务
-
EnvironmentFile:环境配置文件
-
ExecStart:指明启动unit要运行命令或脚本的绝对路径
-
ExecStartPre: ExecStart前运行
-
ExecStartPost: ExecStart后运行
-
ExecStop:指明停止unit要运行的命令或脚本
-
Restart:当设定Restart=1 时,则当次daemon服务意外终止后,会再次自动启动此服务
-
RestartSec: 设置在重启服务( Restart= )前暂停多长时间。 默认值是100毫秒(100ms)。 如果未指
-
定时间单位,那么将视为以秒为单位。 例如设为"20"等价于设为"20s"。
-
PrivateTmp:设定为yes时,会在生成/tmp/systemd-private-UUID-NAME.service-XXXXX/tmp/目录
1.5 Install段的常用选项
Alias:别名,可使用systemctl command Alias.service
RequiredBy:被哪些units所依赖,强依赖
WantedBy:被哪些units所依赖,弱依赖
Also:安装本服务的时候还要安装别的相关服务
1.6 编译安装nginx-systemctl
cd /opt
wget http://nginx.org/download/nginx-1.18.0.tar.gz
tar xf nginx-1.18.0.tar.gz
cd nginx-1.18.0
yum -y install gcc pcre-devel openssl-devel zlib-devel openssl openssl-devel mkdir /data/nginx -p
./configure --prefix=/data/nginx
make
make installln -s /data/nginx/sbin/nginx /usr/sbin/nginx
#做软链接 可以补全 vim /usr/lib/systemd/system/nginx.service[Unit]
Description=The nginx HTTP and reverse proxy server #描述软件的功能[Service]
PIDFile=/data/nginx/logs/nginx.pid # 方便使用pid号进行操作,指明进程的pid号
ExecStart=/data/nginx/sbin/nginx #使用绝对路径启动
ExecStop=/usr/bin/kill -s TERM $MAINPID #杀死进程
ExecReload=/data/nginx/sbin/nginx -s reload #重新加载[Install]
WantedBy=multi-user.target #安装字符界面systemctl daemon-reload #重新加载服务的配置文件systemctl start nginx #开启systemctl status nginx #查看状态
编译安装nginx,然后用systemctl管理(图文详解)
2、修复MBR扇区故障
2.1 故障原因
- 病毒、木马等造成的破坏
- 不正确的分区操作、磁盘读写误操作
2.2 故障现象
-
找不到引导程序,启动中断
-
无法加载操作系统,开机后黑屏
2.3 解决思路
-
应提前做好备份文件
-
以安装光盘引导进入急救模式
-
从备份文件中恢复
2.4 故障模拟及处理过程
MBR位于第一块硬盘(/dev/sda)的第一个物理扇区处,总共512字节
①、备份MBR扇区数据到其他磁盘(/dev/sdb1)
mkdir /backupmount /dev/sdb /backupdd if=/dev/sda of=/backup/mbr.bak bs=512 count=1
②、模拟破坏MR引导扇区
dd if=/dev/zero of=/dev/sda bs=512 count=1
③、应道界面进入急救模式,从备份文件中国灰度MBR扇区数据
先加载好光盘镜像,重启操作系统当出现安装向导界面时,选择“Troubleshooting”选项再选择“Rescue a CentOS system”选项,进入急救模式
1111
选择“1”选择Continue并按Enter键继续在此按Enter键后将进入带“sh-4.2#”提示符的Bash Shell环境sh-4.2# mkdir /backupdirsh-4.2# mount/dev/sdb /backupdir #挂载带有备份文件的分区sh-4.2# dd if=/backupdir/mbr.bak of=/dev/sda #恢复备份数据sh-4.2# hexdump -C -n 512 /dev/sda #查看字节(字节恢复正常后,重新启动系统即可恢复)
修复MBR扇区故障(图文详解)
3、修复GRUB引导故障
3.1 故障原因
①、MBR中的GRUB引导程序遭到破坏
②、grub.conf文件丢失、引导配置有误
3.2 故障现象
系统引导停滞,显示“grub>”提示符
3.3 解决思路
①、尝试手动输入引导命令
②、进入急救模式,重写或者从备份中恢复grub.conf
③、向MBR扇区中重建grub程序
3.4 故障模拟及处理过程
/boot/grub/目录下的包是用于启动菜单的背景图片及样式
/boot/grub2/grub.cfg #GRUB配置文件
方法一:手动输入引导命令(笨拙繁琐,不建议使用)
grub> insmod xfs #加载指定的模块到内核grub> linux16 /vmlinuz-3.10.0-693.e17.x86_64 root=UUID=8fd74986-ae66-4ffd-b7d8-a19f2eca7b6f ro rhgb quite LANG=zh_CN.UTF-8 #内核的名字及位置等信息grub> initrd16 /initramfs-3.10.0..693.e17.x86_64.img #镜像系统文件grub> boot #引导boot
方法二:进入急救模式,恢复GRUB引导程序
MBR位于第一块硬盘(/dev/sda)的第一个物理扇区处,总共512字节,前446字节是主引导记录,分区保存在MBR扇区中的第447-510字节中
①、备份数据到其他磁盘中
mkdir /bakmonut /dev/sdb1 /bakdd if=/dev/sda of=/bak/grub.bak bs=446 count=1
②、模拟对MBR中的GRUB引导程序的破坏,但并不破坏分区表
dd if=/dev/zero of=/dev/sda bs=446 count=1
③ 引导界面进入急救模式,从备份文件中恢复GRUB引导程序
sh-4.2# mkdir /backupdirsh-4.2# mount/dev/sdb1 /backupdir #挂载带有备份文件的分区sh-4.2# dd if=/backupdir/grub.bak of=/dev/sda #恢复备份数据sh-4.2# exit #执行exit命令退出临时Shell环境,系统将会自动重启
方法三:引导界面进入急救模式,重建GRUB菜单配置文件
mv /boot/grub2/grub.cfg /opt #先模拟破坏grub.cfg配置文件重启进入急救模式 321sh-4.2# chroot /mnt/sysimage #先切换根,从光盘的根切换到系统的根bash-4.2# grub2-install /dev/sda #重新将GRUB引导程序安装到第一块硬盘(/sev/sda)的MBR扇区,(如果有多个分区可省略)bash-4.2# grub2-mkconfig -o /boot/grub2/grub.cfg #重新生成GRUB菜单的配置文件bash-4.2# exit #退出chroot环境sh-4.2# reboot #重启
修复GRUB引导故障(图文详解)
4、遗忘root用户密码
4.1 故障原因
- 遗忘root用户的密码
4.2 故障现象
-
无法进行需要root权限的管理操作
-
若没有其他可用账号,将无法登陆系统
4.3 解决思路
- 进入急救模式,重设密码
4.4 故障模拟及处理过程
- 有光驱
chroot /mnt/sysimage #切换根目录
passwd #修改密码
exit #退出chroot环境
reboot #重启
- 无光驱
进入系统,在选择内核界面,选择第一个选项,按e将光标移动到linux开头行的最后(按end键),添加rd.break 然后按ctrl+x 运行
进入单用户mount -o remount,rw /sysroot #重新挂载,添加读写权限chroot /sysroot #切换到真正的根passwd #修改密码touch /.autorelabel #如果你开启了selinux需要重新打上标记
修改root用户密码(图文详解)
三、Linux系统服务控制
1、系统服务控制
服务程序
- 一旦运行,一直运行,不会退出;
- 一般是后台运行,不会影响前台的操作
1.1 格式:systemctl 控制类型 服务名称
1.2 控制类型
①、start—启动
②、stop—停止
③、restart—重新启动
④、reload—重新加载配置文件
⑤、status—查看服务状态
centos6 —— chkconfig
service 服务程序 start #开启service 服务程序 stop #关闭service 服务程序 status #查看状态service 服务程序 reload #重新加载配置文件service 服务程序 restart #重启chkconfig --level 35 服务程序 on #开机自启chkconfig --level 35 服务程序 off #关闭开机自启
centos7 —— systemd
systemctl start 服务名 #开启systemctl stop 服务名 #关闭systemctl status 服务名 #查看状态systemctl reload 服务名 #重新加载配置文件systemctl restart 服务名 #重启systemctl enable 服务名 #开机自启systemctl disable 服务名 #开机不自启systemctl enable --now 服务名 #开机自启,并立即启动systemctl disable --now 服务名 #开机不自启,并立即关闭
四、Linux系统运行级别切换
1、查看运行级别
1.1 runlevel命令:runlevel只能查看切换运行级别与当前运行级别
1.2 systemctl工具
- systemctl 时能查看默认的运行级别
2、临时切换运行级别
2.1 init命令
- init命令参数是运行级别所对应的的数字
2.2 systemctl工具
- systemctl的命令参数是具体的target
2.3 init与systemctl对应表
3、查看系统默认级别
- systemctl get-default
4、设置临时运行级别
格式:chkconfig --list [服务名称]
chkconfig --add 服务名称
chkconfig --level 级别列表 服务名 on/off
chkconfig --add httpdchkconfig --level 35 httpd on #开机自启chkconfig --level 35 httpd off #关闭开机自启
5、设置永久运行级别
ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.targetsystemctl set-default multi-user.target
五、优化开机自动加载服务
1、优化启动过程
1.1 ntsysv工具
- 提供一个交换式、可视化窗口
- 可以在字符终端运行
- 便于集中管理多个服务
- 用于控制服务是否开机自启动
1.2 systemctl/chkconfig工具
- 不提供交互式、可视化窗口
- 管理单个服务效率更高
2、系统服务的启动和控制
2.1 ntsysv系统服务管理工具
- 输入ntsysv命令进入设置界面
- 按空格键标志服务选项(*为自启项)
- 按↑、↓键切换服务选项
- 按tab切换光标
常用命令
sysemctl is-enabled 服务名称 #查看系统服务的启动状态systemctl enable 服务名称 # 开启开机自启动syatemctl disable 服务名称 # 关闭开机自启动
3、命令补充
hostnamectl set-hostname 新主机名 #永久修改主机名hostnamectl status #查看主机名的状态localect set-locale LANG=zh_CN.utf8 #设置系统语言为中文localectl [status] #查看当前系统使用的语言systemd=analyze #查看系统启动耗时
相关文章:

引导过程与服务控制
文章目录 一、Linux操作系统引导过程1、开机启动的完整过程1.1 开机自检(BIOS)1.2 MBR引导1.3 GRUB菜单1.4 加载内核(kernel)1.5 init进程初始化 2、系统初始化进程2.1 init进程2.2 systemdinit与systemd区别 3、Systemd单元类型4…...

《矩阵分析》笔记
来源:【《矩阵分析》期末速成 主讲人:苑长(5小时冲上90)】https://www.bilibili.com/video/BV1A24y1p76q?vd_sourcec4e1c57e5b6ca4824f87e74170ffa64d 这学期考矩阵论,使用教材是《矩阵论简明教程》,因为没…...
『App自动化测试之Appium应用篇』| Appium常用API及操作
『App自动化测试之Appium应用篇』| Appium常用API及操作 1 press_keycode1.1 键盘操作1.2 关于KeyCode1.3 press_keycode源码1.4 电话键相关1.5 控制键相关1.6 基本按键相关1.7 组合键相关1.8 符号键相关1.9 使用举例 2 swip方法2.1 swip说明2.2 swip使用方法2.3 使用示例 3 sc…...

VSCode搭建 .netcore 开发环境
一、MacOS 笔者笔记本电脑上安装的是macOS High Sierra(10.13),想要尝试一下新版本的.netcore,之前系统是10.12时,.netcore 3.1刚出来时安装过3.1版本,很久没更新了,最近.net8出来了,想试一下,…...

python 写自动点击爬取数据
今天来点不一样的!哥们 提示: 这里只是用于自己学习的 ,请勿用违法地方 效果图 会进行点击下一页 进行抓取 需要其他操作也可以自己写 文章目录 今天来点不一样的!哥们前言一、上代码?总结 前言 爬虫是指通过编程自动…...

CSDN博客重新更新
说来惭愧,好久没更新博客文章,导致个人博客网站:https://lenky.info/ 所在的网络空间和域名都过期了都没发觉,直到有个同事在Dim上问我我的个人博客为啥打不开了。。。幸好之前有做整站备份,后续慢慢把内容都迁回CSDN上…...
《剑指 Offer》专项突破版 - 面试题 5 : 单词长度的最大乘积(C++ 实现)
目录 前言 方法一 方法二 前言 题目链接:318. 最大单词长度乘积 - 力扣(LeetCode) 题目: 输入一个字符串数组 words,请计算不包含相同字符的两个字符串 words[i] 和 words[j] 的长度乘积的最大值。如果所有字符串…...

【Java集合篇】HashMap的get方法是如何实现的?
HashMap的get方法是如何实现的 ✔️典型解析✔️拓展知识仓✔️如何避免HashMap get方法的哈希重✔️HashMap get方法的优缺点有哪些✔️HashMap get方法的是线程安全的吗✔️什么是ConcurrentHashMap✔️ConcurrentHashMap有哪些应用场景✔️ConcurrentHashMap的优缺点 ✔️源…...

Java学习苦旅(二十二)——MapSet
本篇博客将详细讲解Map和Set。 文章目录 搜索概念模型 MapMap.Entry<K, V>Map的常用方法说明TreeMap和HashMap的区别 Set常用方法说明TreeSet和HashSet的区别 结尾 搜索 概念 Map和set是一种专门用来进行搜索的容器或者数据结构,其搜索的效率与其具体的实例…...

【Linux Shell】12. 文件包含
和其他语言一样,Shell 也可以包含外部脚本,这样可以很方便的封装一些公用的代码作为一个独立的文件。可以理解为在第2个文件中包含第1个文件,执行第1个文件的代码。 被包含的文件 不需要可执行权限 。Shell 文件包含的语法格式如下࿱…...

前端-基础 常用标签-超链接标签( 锚点链接 )
锚点链接 : 点击链接,可以快速定位到 页面中的某个位置 如果不好理解,讲一个例子,您就马上明白了 >>> 这个是 刘德华的百度百科 ,可以看到,页面里面有很多内容,那就得有个目录了 …...

2024--Django平台开发-基础信息(一)
一、前置知识点 - Python环境搭建 (Python解释器、Pycharm、环境变量等) - 基础语法(条件、循环、输入输出、编码等) - 数据类型(整型、布尔型、字符串、列表、字典、元组、集合等) - 函数(文件操作、返回值、参数、作用域等) - 面向对象 (类、对象、封装、继承、多态等)包和模…...
C++力扣题目--94,144,145二叉树递归遍历
思路 这次我们要好好谈一谈递归,为什么很多同学看递归算法都是“一看就会,一写就废”。 主要是对递归不成体系,没有方法论,每次写递归算法 ,都是靠玄学来写代码,代码能不能编过都靠运气。 本篇将介绍前后…...

开源游戏引擎:创造无限可能 | 开源专题 No.56
godotengine/godot Stars: 62.6k License: MIT Godot Engine 是一个功能强大的跨平台游戏引擎,可用于创建 2D 和 3D 游戏。它提供了一套全面的常见工具,让用户可以专注于制作游戏而不必重复造轮子。该引擎支持将游戏一键导出到多个平台上,包…...

MyBatisPlus学习一:快速入门
前言 前面快速学习了Mybatis,现在开始快速学习MyBatisPlus 学习教程: 黑马mybatis教程全套视频教程,2天Mybatis框架从入门到精通 黑马程序员最新MybatisPlus全套视频教程,4小时快速精通mybatis-plus框架 简介 MyBatisPlus 是…...

2024最新外贸建站:ChemiCloud主机购买使用及自建外贸独立站教程
随着电商平台竞争的加剧,许多外贸从业者意识到减少对平台依赖的重要性,并选择搭建自己的外贸独立站来获得更多的控制权和灵活性。即使是没有建站基础的新手,也可以通过学习建站来实现这一目标。下面是一个适用于新手的外贸建站教程࿰…...

校招社招,认知能力测验,③如何破解语言常识类测试题?
作为认知能力测评中的一个环节,语言常识类,是大概率的出现,不同的用人单位可能略有不同,语言是一切的基础,而常识则意味着我们的知识面的宽度。 语言常识类的测试,如果要说技巧?难说....更多的…...
了解一下InternLM2
大模型的出现和发展得益于增长的数据量、计算能力的提升以及算法优化等因素。这些模型在各种任务中展现出惊人的性能,比如自然语言处理、计算机视觉、语音识别等。这种模型通常采用深度神经网络结构,如 Transformer、BERT、GPT( Generative P…...

关于使用统一服务器,vscode和网页版jupyter notebook的交互问题
autodl 查看虚拟环境 在antodl上租借了一个服务器,通过在网页上运行jupyter notebook和在vscode中运行,发现环境都默认的是miniconda3。 conda info --envs 当然环境中所有的包都是一样的。 要查看当前虚拟环境中安装的所有包,可以使用以…...

Linux22.04系统安装显卡驱动,cuda,cudnn流程
1. 安装显卡驱动 ubuntu-drivers deices显示所有适配显卡的驱动型号,recommended为推荐安装 安装 sudo apt install nvidia-driver-440重启 sudo reboot验证 nvidia-smi2. 安装cuda 在 CUDA Toolkit 的下载页面选择系统版本和安装方式,下载并运行…...

微信小程序之bind和catch
这两个呢,都是绑定事件用的,具体使用有些小区别。 官方文档: 事件冒泡处理不同 bind:绑定的事件会向上冒泡,即触发当前组件的事件后,还会继续触发父组件的相同事件。例如,有一个子视图绑定了b…...

转转集团旗下首家二手多品类循环仓店“超级转转”开业
6月9日,国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解,“超级…...
将对透视变换后的图像使用Otsu进行阈值化,来分离黑色和白色像素。这句话中的Otsu是什么意思?
Otsu 是一种自动阈值化方法,用于将图像分割为前景和背景。它通过最小化图像的类内方差或等价地最大化类间方差来选择最佳阈值。这种方法特别适用于图像的二值化处理,能够自动确定一个阈值,将图像中的像素分为黑色和白色两类。 Otsu 方法的原…...

【Oracle】分区表
个人主页:Guiat 归属专栏:Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...
Java多线程实现之Thread类深度解析
Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...

Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决
Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决 问题背景 在一个基于 Spring Cloud Gateway WebFlux 构建的微服务项目中,新增了一个本地验证码接口 /code,使用函数式路由(RouterFunction)和 Hutool 的 Circle…...
Linux离线(zip方式)安装docker
目录 基础信息操作系统信息docker信息 安装实例安装步骤示例 遇到的问题问题1:修改默认工作路径启动失败问题2 找不到对应组 基础信息 操作系统信息 OS版本:CentOS 7 64位 内核版本:3.10.0 相关命令: uname -rcat /etc/os-rele…...
Web中间件--tomcat学习
Web中间件–tomcat Java虚拟机详解 什么是JAVA虚拟机 Java虚拟机是一个抽象的计算机,它可以执行Java字节码。Java虚拟机是Java平台的一部分,Java平台由Java语言、Java API和Java虚拟机组成。Java虚拟机的主要作用是将Java字节码转换为机器代码&#x…...
API网关Kong的鉴权与限流:高并发场景下的核心实践
🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 引言 在微服务架构中,API网关承担着流量调度、安全防护和协议转换的核心职责。作为云原生时代的代表性网关,Kong凭借其插件化架构…...
【安全篇】金刚不坏之身:整合 Spring Security + JWT 实现无状态认证与授权
摘要 本文是《Spring Boot 实战派》系列的第四篇。我们将直面所有 Web 应用都无法回避的核心问题:安全。文章将详细阐述认证(Authentication) 与授权(Authorization的核心概念,对比传统 Session-Cookie 与现代 JWT(JS…...