当前位置: 首页 > news >正文

文件系统详解

目录

文件系统(1)

第一节文件系统的基本概念

一、文件系统的任务

二、文件的存储介质及存储方式 

三、文件的分类

第二节 文件的逻辑结构和物理结构

一、文件的逻辑结构

二、文件的物理结构 

文件系统(2)

第三节 文件目录

一、文件控制块

二、文件目录和当前目录

​编辑二、文件目录和当前目录 

三、目录项和目录文件

四、目录项分解法

五、UNIX的文件目录结构

​编辑​编辑六、FAT文件系统的实现 

第四节 文件存储空间管理

一、磁盘空间管理

二、磁盘空间的分配与回收算法

三、空闲块成组链接法

文件系统(3)

第五节 实现文件系统的表目

一、系统打开文件表

二、用户打开文件列表

第六节 文件及目录的操作

一、典型的文件操作

二、典型的目录操作

第七节 文件系统的性能 

一、磁盘高速缓存 

​编辑 二、RAID技术

第八节 文件共享、保护和保密 

一、文件共享

​编辑 二、文件的保护 

​编辑​编辑 三、UNIX的文件使用权限管理方案

四、文件的保密措施 


文件系统(1)

第一节文件系统的基本概念

一、文件系统的任务

1.文件的定义
(1)研究文件系统的两种观点:
用户观点:关心文件由什么组成,如何命名,如何保护文件,可以进行何种操作。
系统观点:文件目录是怎么实现的,怎样管理存储空间,文件存储位置,磁盘实际运作方式,存取速度,磁盘利用率等等。
(2)文件的定义:一组带标识的、在逻辑上有完整意义的信息项的序列。
(3)读写指针:读指针用来记录文件当前的读取位置,写指针用来记录文件当前的写入位置。
(4)特点:存储在磁盘,可长期保存
2.文件系统的定义,文件系统是操作系统统一管理信息资源的一种软件。它管理文件的存储、检索、更新,提供更安全的共享和保护手段,并且方便用户的使用。
功能:(1)统一管理文件的存储空间,实施存储空间的分配与回收
(2)实现文件按名存取,以对用户透明的方式管理名字空间
(3)实现文件信息的共享,并提供文件的共享和保密措施。
(4)向用户提供一个方便使用的接口
(5)系统维护及向用户提供有关信息
(6)保持文件系统的执行效率
(7)提供与I/O的统一接口

二、文件的存储介质及存储方式 

1.外存储设备的特点
特点:容量大、断电后仍可保存信息
组成:驱动部分和存储介质部分
种类:磁盘、磁带、磁鼓、纸带、光盘、闪存
2.外存储设备的存储介质
(1)磁带
特点:容量大,存取速度慢,适合顺序存储


(2)磁盘
分类:软盘和硬盘
特点:容量大,成本低,适合随机存储(指可以随意读取指定记录)
磁盘的物理地址由柱面号、磁头号、扇区号组成,图中的扇面指的是扇区


(3)光盘,是利用在激光的作用下特性发生变化的一些材料制成的非磁性记录介质。
特点:容量大、速度快、价格便宜
(4)闪存
特点:电擦除,随机存储、可靠性高、寿命长
3.文件在存储设备中的存储方式
顺序存储:按从前到后的次序依次访问文件的各个信息项。
随机存储:又称直接存储,允许用户按任意的次序、直接存取文件中的任意一个记录,或者根据存取命令把读写指针移到文件中的指定记录处读取。

三、文件的分类

1.按文件的用途分类:(1)系统文件;(2)库函数文件;(3)用户文件;
2.按文件的组织方式分类:(1)普通文件;(2)目录文件(保存目录信息的文件);(3)特殊文件(如键盘、鼠标、打印机可比作一个特殊的文件);

3.一些常见的文件分类方式
(1)按文件的保护方式:只读文件、读写文件、可执行文件、无保护文件
(2)按信息的流向分:输入文件、输出文件、输入输出文件
(3)按存放时限分:临时文件、永久文件、档案文件
(4)按存储介质分:磁盘文件、磁带文件、卡片文件等
(5)按文件的组织结构分类:逻辑文件、物理文件
4.UNIX类操作系统中文件的分类:(1)普通文件;(2)目录文件;(3)特殊文件;

第二节 文件的逻辑结构和物理结构

文件的逻辑结构:从用户观点出发所观察到的文件组织形式
文件的物理结构:又称为文件的存储结构。是指系统将文件存储在外存上所形成的一种存储组织形式,是用户不能看见的。

一、文件的逻辑结构

1.设计文件逻辑结构的原则:(1)易于操作;(2)查找快捷;(3)修改方便;(4)空间紧凑;
2.文件的逻辑结构,文件的逻辑结构所描述的信息是文件中信息的组织形式,可分为两类:
(1)流式文件:有序字符的集合,基本单位是字符,源程序、目标代码等属于流式文件
(2)记录文件:是一组有序记录的集合,基本单位是记录。又可分为定长记录文件和变长记录文件。(如数据库表记录,各记录内容长度相同称为定长记录,长度不同称为变长记录)

二、文件的物理结构 

1.顺序结构
(1)顺序结构原理,又称连续结构,它把逻辑上连续的文件信息依次存放在连续编号的物理块中。
如图7-5所示:


(2)顺序结构的优缺点
①优点:1、存取速度快,一旦知道了文件在存储设备上的起始块号和文件长度,便能快速进行存取。
2、支持顺序存放和随机存取
②缺点:1、文件不能动态增长;2、要求为一个文件分配连续的存储空间;3、不能灵活地删除和插入记录;4、出现碎片;

2.链接结构
(1)链接结构原理,将逻辑上连续的文件分散存储在若干个不连续的物理块中。每个物理块中设有一个指针,指向其后续的物理块。图7-6所示:


(2)链接结构的优缺点
①优点:1、解决了碎片问题,提高了磁盘空间利用率
2、文件可以动态扩充
②缺点:1、存取速度慢,不适于随机存储(适合顺序存储)
2、可靠性差(如某个块坏掉了,关联的文件记录无法找到)
3.索引结构
(1)索引结构原理,为每个文件分配一个索引块(表),把分配给该文件的所有盘块号,都记录在该索引块中。
如图7-7所示:


(2)索引结构的优缺点
①优点:1、文件动态增长;2、不要求为一个文件分配连续的存储空间;3、能灵活的删除和插入记录;4、能顺序存取和随机存取
②缺点:1、引起较多的寻道次数和寻道时间;2、索引表本身增加了存储空间的开销
(3)多级索引,当文件太大,其索引块太多时,单级索引方式过于低效。此时,应为这些索引块再建立一级索引,称为第一级索引,即系统再分配一个索引块,作为第一级索引的索引块,将第一块、第二块……等索引块的盘块号,填入到此索引表中,这样便形成了两级索引分配方式。如果文件非常大时还可用三级、四级索引分配方式。(即一级索引存二级索引信息,二级索引存磁盘块号) 

文件系统(2)

第三节 文件目录

一、文件控制块

1.文件控制块,为文件设置的用于描述和控制文件的数据结构。文件管理程序可借助于文件控制块中的信息,对文件施以各种操作。
2.文件目录:文件控制块的有序集合(文件与文件控制块一一对应)称为文件目录,一个文件控制块就是一个文件目录项。
3.文件控制块的内容
(1)基本信息类:文件名、文件物理位置、文件逻辑结构、文件的物理结构。
(2)存取控制信息类:文件的存取权限、核准用户的存取权限以及一般用户存取权限。
(3)使用信息类:文件的建立日期和时间、文件上一次修改的日期和时间、当前已打开该文件的进程数、是否被其它进程锁住、文件在内存中是否已被修改但尚未拷贝到盘上等。

二、文件目录和当前目录

1.一级目录结构,如图7-10所示
优点:简单且能实现目录管理的基本功能--按名存取。
缺点:查找速度慢、不允许重名


2.二级目录结构,为改变一级目录文件目录命名冲突,并提高对目录文件检索速度而将目录分为两级:一级称为主文件目录,给出用户名,用户子目录所在的物理位置;二级称为用户文件目录,给出该用户所有文件的FCB(文件控制块)。如图7-11所示:
优点:解决了文件的重名问题和文件共享问题,提供搜索速度,查找时间降低。
缺点:不太适合大量用户,和大量文件的大系统,增加了系统开销。


3.多级目录,多级目录结构也称树形结构,产生于UNIX操作系统,已被现代操作系统广泛使用。如图7-13所示:
优点:层次结构清晰,便于管理和保护;有利于文件分类;解决重名问题;提高文件检索速度;能进行存取权限的控制。
缺点:查找一个文件按路径名逐层检查,由于每个文件都放在外存,多次访盘影响速度。

二、文件目录和当前目录 

4.当前目录:当前正在使用的目录(也称工作目录或值班目录)。
目录检索:用户访问文件时,需要进行目录检索,这时用户给出文件名,系统按名寻找目录项(文件控制块)。
检索方法:全路径名(绝对路径名)、相对路径。

三、目录项和目录文件

1.目录项,一个文件控制块做成一个定长记录,这个记录称为目录项。
2.目录文件,多个文件的文件控制块集中在一起组成了文件的目录。文件目录以文件的形式保存,该文件称为目录文件。

四、目录项分解法

1.目的:加快目录检索速度
2.分解:目录项分解成两部分,符号目录项(次部)和基本目录项(主部)。
符号目录项:包含文件名和文件号
基本目录项:除文件名以外的FCB的其他全部信息
3.优点:减少磁盘的访问次数,提高文件目录检索速度。

五、UNIX的文件目录结构

1.i结点的引入,文件目录通常是存放在磁盘上的,可能要占用大量的盘块。在查找目录的过程中,需要多次启动磁盘。
UNIX系统,采用了把文件名与文件描述信息分开的办法,亦即,使文件描述信息单独形成一个称为索引结点的数据结构,简称为i结点。
2.i结点的内容,文件主标识符、文件类型、文件存取权限、文件物理地址、文件长度、文件连接计数、文件存取时间等。
3.物理结构,三级索引结构,图7-8所示

六、FAT文件系统的实现 

FAT的含义:文件分配表--File Allocation Table,最初为DOS系统设计,适合小容量的磁盘,分配给文件的所有盘块号都放在该表中
三个版本:FAT-12、FAT-16、FAT-32

第四节 文件存储空间管理

一、磁盘空间管理

基本思想,对于磁盘空间的分配和回收的方法。

二、磁盘空间的分配与回收算法

2.空闲块表
3.空闲块链 

三、空闲块成组链接法

1.成组链接的含义:文件区中的所有空闲盘块,被分成若干个组,比如将每100个盘块作为一组。
将每一组含有的盘块总数N和该组所有的盘块号,记入其前一组的第一个盘块中。这样,由各组的第一个盘块可链成一条链。如图7-22所示
2.成组链接法的分配:在空闲块链中,不足100块的组,通常放在内存专用块中,系统初始化时,先把专用块内容读到内存中,需要分配时,就直接在内存中找到那块是空闲的,然后进行分配,空闲块数减1,如果这一组的第一个空闲块也需要分配,在分配之前,先把其保存的下一组空闲盘块号读入内存中,再分配出去,依次类推。
3.成组链接法的回收:归还一个空闲盘块时,把要归还的块号登记在当前组中,空闲数加1,如果当前组已满100块,则把这100个块号写到要归还的那块中,该块就称为该组的第一块。
4.成组链接法的优点:分配和回收空闲块时均在内存中查找和修改,只有在一组空闲块分配完成或空闲的磁盘块构成一组时才需要启动磁盘读写,效率高,能快速找到大量空闲盘块的地址,UNIX采取这种方案。

文件系统(3)

第五节 实现文件系统的表目

一、系统打开文件表

专门用来保存已打开文件的文件控制块,通常放在内存。
共享计数:记录有多少个进程同时打开该文件。
修改标志:指文件控制块或i结点的内容是否被修改过,如果修改过,则关闭文件时要将文件控制块写回磁盘。

二、用户打开文件列表

每个用户都有一个“用户文件打开表”,其位置记录在PCB中,以UNIX为例,内容如下: 

第六节 文件及目录的操作

一、典型的文件操作

1.建立文件
2.打开文件
3.读文件
4.写文件
5.关闭文件
6.删除文件

二、典型的目录操作

以UNIX系统为例
1.创建目录creat
2.打开目录opendir
3.读目录readdir
4.创建链接link
5.删除链接ulink
6.修改目录名rename
7.关闭目录closedir
8.删除目录delete

第七节 文件系统的性能 

一、磁盘高速缓存 

基本思想:系统在内存中保存一些磁盘块,这些磁盘块在逻辑上属于磁盘,内存的这一区域被称为块高速缓存。
运行时,系统检查所有的读请求,查看文件块是否在高速缓存,在,则读,不在,首先启动磁盘,将所需块读到高速缓存,再复制到其他内存区域。若高速缓存已满,按照淘汰算法,选择较少使用的磁盘块换出。
块高速缓存要定期写回磁盘,以保存对磁盘块的修改。
文件系统一致性问题:如果在修改过的磁盘块写回磁盘之前,系统出现故障,则文件系统有可能会处于不一致状态。特别是一些未被写回的块是i结点、目录块、或者包含空闲表的磁盘块时,问题尤为严重。这一问题称为文件系统一致性问题。
高速缓冲的典型应用:记录的成组
1.记录的成组,把若干个逻辑记录合成一组存储到一个物理块的工作,称为记录的成组。每块中的逻辑记录个数称为“块因子”。
实现原理:信息交换以块为单位,故成组需要使用内存缓冲区来完成。缓冲区的长度=记录的长度*块因子。
图7-26所示:


2.记录的分解
优点:提高了磁盘利用率,减少了启动磁盘的次数,提高系统工作效率。
要考虑的因数:定长记录和不定长记录

 二、RAID技术

RAID是英文Redundant Array of Independent Disks的缩写,中文简称为独立冗余磁盘阵列。
简单的说,RAID是一种把多块独立的硬盘(物理硬盘)按不同的方式组合起来形成一个硬盘组,从而提供比单个硬盘更高的存储性能和提供数据备份技术。
好处主要有以下三种:①通过把多个磁盘组织在一起作为一个逻辑卷提供跨越功能;②通过把数据分成多个数据块(Block)并行写入/读出多个磁盘以提高访问磁盘的速度;③通过镜像或校验操作提供容错能力;
RAID技术经过不断的发展,现在拥有了从RAID 0到7八种基本的RAID级别。另外,还有一些基本RAID级别的组合形式,如RAID10(RAID 0与RAID 1的组合),RAID 50(RAID 0与RAID 5的组合)等。不同RAID级别代表着不同的存储性能、数据安全性和存储成本。

第八节 文件共享、保护和保密 

一、文件共享

1.文件共享的概念:文件共享是指一个文件可以允许多个用户共同使用。
2.文件共享的分类,从共享时间段上看,共享文件有两种使用情况:(1)文件可以同时使用;(2)文件不允许同时使用
在文件共享具体方式上,有三种共享方式:(1)文件被多个用户使用,由存取权限控制;(2)文件被多个用户使用,但分别用自己的读写指针;(3)文件被多个程序使用,但共享读写指针
3.文件共享的实现方法
多级目录结构,常用的是连接法,分两种:(1)允许目录项连接到任一表示文件目录的结点上。
(2)只允许连接到表示普通文件的结点上,如图7-29所示。

 二、文件的保护 

影响文件安全性的主要因素
(1)人为因素:人们有意或无意的行为,会使文件系统中的数据遭到破坏或丢失;
(2)系统因素:由于系统的某部分出现异常情况,而造成数据的破坏或丢失,特别是作为数据存储主要介质的磁盘,一旦出现故障,会产生难以估量的影响;
(3)自然因素:随着时间的推移,存放在磁盘上的数据逐渐消失。
为确保文件系统的安全性,可采取的措施
(1)建立副本,即把同一个文件保存到多个存储介质上。
(2)定时转储,即每个一定时间就把文件转储到其他存储介质上。
(3)规定文件的存储权限。可采用树形目录结构和存储控制表两种方法。

 三、UNIX的文件使用权限管理方案

3.UNIX中的文件存取权限,UNIX中对文件的存取权限划分为两级。
在第一级别中对访问者或者用户进行分类识别。将用户分为:文件主(owner)、文件组的同组用户(other)、其他用户(other)
在第二级中,对文件操作权限的权限设置。包括:读(r)、写(w)、执行(x),不执行任何操作(-)。

四、文件的保密措施 

文件保密的目的:是防止不经文件拥有者授权而窃取文件。
常用的文件保密措施有以下几种:1.隐蔽文件目录;2.设置口令;3.使用密码(文件加密);4.病毒防范;

相关文章:

文件系统详解

目录 文件系统(1) 第一节文件系统的基本概念 一、文件系统的任务 二、文件的存储介质及存储方式 三、文件的分类 第二节 文件的逻辑结构和物理结构 一、文件的逻辑结构 二、文件的物理结构 文件系统(2) 第三节 文件目…...

有名管道及其应用

创建FIFO文件 1.通过命令&#xff1a; mkfifo 文件名 2.通过函数: mkfifo #include <sys/types.h> #include <sys/stat.h> int mkfifo(const char *pathname, mode_t mode); 参数&#xff1a; -pathname&#xff1a;管道名称的路径 -mode&#xff1a;文件的权限&a…...

加州大学伯克利分校 计算机科学专业

加州大学伯克利分校 计算机科学专业 cs 61a cs 61b cs61c...

一个关于 i++ 和 ++i 的面试题打趴了所有人

前言 都说大城市现在不好找工作&#xff0c;可小城市却也不好招人。 我们公司招了挺久都没招到&#xff0c;主管感到有些心累。 我提了点建议&#xff0c;是不是面试问的太深了&#xff0c;在这种小城市&#xff0c;能干活就行。 他说自己问的面试题都很浅显&#xff0c;如果答…...

程序员的快乐如此简单

最近在GitHub上发起了一个关于Beego框架的小插件的开源仓库&#xff0c;这一举动虽然看似微小&#xff0c;但其中的快乐和意义却是无法用言语表达的。 Beego是一个开源的Go语言Web框架&#xff0c;它采用了MVC架构模式&#xff0c;并集成了很多常用的功能和中间件。小插件是指…...

浅谈云原生Cloud Native

目录 1.云原生是什么2.云原生与传统软件有什么区别3.云原生有哪些代表性的技术 1.云原生是什么 云原生&#xff08;Cloud Native&#xff09;是一种构建和运行应用程序的方法&#xff0c;可以充分利用云计算模型的优势。云原生是一种面向服务的架构&#xff08;SOA&#xff09…...

解决react报错“JSX 表达式必须具有一个父元素“

现象如下&#xff1a; 原因&#xff1a; 新插入的dom元素跟已有的dom元素平级了&#xff0c;必须创建一个共有的根元素 解决办法&#xff1a; 使用<> </>标签作为根元素&#xff0c;把所有子元素包裹起来 <> ....原代码 </> 问题解决&#xff01;…...

Spring学习笔记7 Bean的生命周期

Spring学习笔记6 Bean的实例化方式_biubiubiu0706的博客-CSDN博客 Spring其实就是一个管理Bean对象的工厂.它负责对象的创建,对象的销毁. 这样我们才可以知道在哪个时间节点上调用了哪个类的哪个方法,知道代码该写在哪里 Bean的生命周期之粗略5步 Bean生命周期的管理可以参考S…...

React 如何导出excel

在现代的Web开发中&#xff0c;数据导出是一个非常常见的需求。而在React应用中&#xff0c;我们经常需要将数据导出为Excel文件&#xff0c;以便用户可以轻松地在本地计算机上查看和编辑。本文将介绍如何在React应用中实现导出Excel文件的功能。 章节一&#xff1a;安装依赖 …...

Texlive2020 for win10 宏包更新

用命令提示符更新texlive的宏包,这个方法非常简单实用 1.以管理员身份打开命令提示符 2.系统自动选择镜像网站 tlmgr option repository ctan 3.更新宏包 tlmgr update --self --all 其中–self参数表示升级tlmgr本身,–all表示升级所有宏包,这样就可以将所有宏包更新了 4.列…...

Ps 在用鼠标滚轮缩放图片时,速度太快?

1.原因 在于安装了第三方鼠标优化软件Mos&#xff0c;它起着对第三方鼠标全局浏览效果的优化&#xff0c;使浏览更加顺滑&#xff0c;而不精确&#xff0c;消除了mac使用第三方鼠标浏览页面时的卡顿问题。这也使得像ps、ai这类软件&#xff0c;在进行页面缩放时&#xff0c;变得…...

基于docker进行Grafana + prometheus实现服务监听

基于docker进行Grafana Prometheus实现服务监听 Grafana安装Prometheus安装Jvm监控配置服务器主机监控(基础cpu&#xff0c;内存&#xff0c;磁盘&#xff0c;网络) Grafana安装 docker pull grafana/grafanamkdir /server/grafanachmod 777 /server/grafanadocker run -d -p…...

模型层及ORM介绍

模型层及ORM介绍 模型层 负责跟数据库之间进行通信 配置MySQL&#xff0c;下载MySQLclient 创建数据库 进入mysql数据库执行create database 数据库名 default charset utf8通常数据库名跟项目名保持一致settings.py里进行数据库的配置修改 DATABASES 配置项的内容&#x…...

QQ邮箱怎么设置SMTP接口服务器?

在现如今信息快速传递的时代&#xff0c;邮件已成为我们工作、学习和生活中必不可少的一部分。而作为每位用户必备的一款邮箱&#xff0c;QQ邮箱一直以其稳定、高效、安全的特点深受大家的青睐。但是你是否觉得每次发邮件都需要打开QQ邮箱网页&#xff0c;进行繁琐的操作很是麻…...

【操作系统笔记四】高速缓存

CPU 高速缓存 存储器的分层结构&#xff1a; 问题&#xff1a;为什么这种存储器层次结构行之有效呢&#xff1f; 衡量 CPU 性能的两个指标&#xff1a; 响应时间&#xff08;或执行时间&#xff09;&#xff1a;执行一条指令平均时间 吞吐量&#xff0c;就是 1 秒内 CPU 可以…...

uniapp获取openid

要获取用户的openid&#xff0c;需要使用微信小程序的登录API。以下是一个简单的示例代码&#xff1a; // 在page中引入wx-login组件 import wxLogin from /components/wx-loginexport default {components: { wxLogin },data() {return {openid: }},methods: {// wxLogin组件…...

测试工程师面试之设计测试用例

以下的问题答案&#xff0c;仅供参考&#xff0c;如小伙伴们有更好的答案&#xff0c;欢迎大家评论区留言&#xff0c;谢谢大家 测试工程师面试之设计测试用例 1、请说一说简单用户界面登陆过程都需要做哪些分析2、 请对此系统设计测试用例&#xff1a;一个系统&#xff0c;多个…...

html页面仿word文档样式(vue页面也适用)

目录 文章title&#xff1a; 标题&#xff1a; 正文&#xff1a; 完整代码&#xff1a; 页面效果&#xff1a; 文章title&#xff1a; <div><h3 style"display: flex;justify-content: center; align-items: center; color: #000;">实验室招新报名公…...

如何在控制台打印sql语句

步骤一&#xff1a; log4j2.xml中做以下配置 <logger name"xxx.infrastructure.mysql.mapper"level"debug" additivity"false"><appender-ref ref"Console"/></logger>步骤二&#xff1a;IDEA下载Free Mybatis Plu…...

【Vue3 源码解析】reactive 全家桶

// 泛型约束&#xff1a;只能传入引用类型 export function reactive<T extends object>(target: T): UnwrapNestedRefs<T> // 判断只读&#xff0c;否则创建reactive响应式对象 export function reactive(target: object) {// if trying to observe a readonly pr…...

AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; &#x1f680; AI篇持续更新中&#xff01;&#xff08;长期更新&#xff09; 目前2025年06月05日更新到&#xff1a; AI炼丹日志-28 - Aud…...

【Linux】shell脚本忽略错误继续执行

在 shell 脚本中&#xff0c;可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行&#xff0c;可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令&#xff0c;并忽略错误 rm somefile…...

centos 7 部署awstats 网站访问检测

一、基础环境准备&#xff08;两种安装方式都要做&#xff09; bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats&#xff0…...

Docker 运行 Kafka 带 SASL 认证教程

Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明&#xff1a;server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...

Rust 异步编程

Rust 异步编程 引言 Rust 是一种系统编程语言,以其高性能、安全性以及零成本抽象而著称。在多核处理器成为主流的今天,异步编程成为了一种提高应用性能、优化资源利用的有效手段。本文将深入探讨 Rust 异步编程的核心概念、常用库以及最佳实践。 异步编程基础 什么是异步…...

零基础设计模式——行为型模式 - 责任链模式

第四部分&#xff1a;行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习&#xff01;行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想&#xff1a;使多个对象都有机会处…...

CSS设置元素的宽度根据其内容自动调整

width: fit-content 是 CSS 中的一个属性值&#xff0c;用于设置元素的宽度根据其内容自动调整&#xff0c;确保宽度刚好容纳内容而不会超出。 效果对比 默认情况&#xff08;width: auto&#xff09;&#xff1a; 块级元素&#xff08;如 <div>&#xff09;会占满父容器…...

安宝特案例丨Vuzix AR智能眼镜集成专业软件,助力卢森堡医院药房转型,赢得辉瑞创新奖

在Vuzix M400 AR智能眼镜的助力下&#xff0c;卢森堡罗伯特舒曼医院&#xff08;the Robert Schuman Hospitals, HRS&#xff09;凭借在无菌制剂生产流程中引入增强现实技术&#xff08;AR&#xff09;创新项目&#xff0c;荣获了2024年6月7日由卢森堡医院药剂师协会&#xff0…...

【从零学习JVM|第三篇】类的生命周期(高频面试题)

前言&#xff1a; 在Java编程中&#xff0c;类的生命周期是指类从被加载到内存中开始&#xff0c;到被卸载出内存为止的整个过程。了解类的生命周期对于理解Java程序的运行机制以及性能优化非常重要。本文会深入探寻类的生命周期&#xff0c;让读者对此有深刻印象。 目录 ​…...

华为OD机试-最短木板长度-二分法(A卷,100分)

此题是一个最大化最小值的典型例题&#xff0c; 因为搜索范围是有界的&#xff0c;上界最大木板长度补充的全部木料长度&#xff0c;下界最小木板长度&#xff1b; 即left0,right10^6; 我们可以设置一个候选值x(mid)&#xff0c;将木板的长度全部都补充到x&#xff0c;如果成功…...