操作系统·操作系统引论

1.1 操作系统的目标和作用

1.目前常见操作系统:

微软:Windows系列(以前MS-DOS)
UNIX:Solaris, AIX, HP UX, SVR4, BSD, ULTRIX
自由软件:Linux, freeBSD, Minix
IBM: AIX, zOS(OS/390), OS/2, OS/400, PC DOS
移动OS:Symbian, PALM, ANDROID, iOS
其他:Mac OS, NetWare,......
国产:Deepin, RedflagLinux, 中标麒麟NeoKylin, Harmony

2.操作系统的定义

操作系统(operating system,简称OS)是一组能有效组织和管理计算机硬件和软件资源,合理对各类作业进行调度以及方便用户使用的程序集合。 

操作系统是一个大型的程序系统,它负责计算机的全部软、硬件资源的分配、调度工作,控制并协调多个任务的活动,实现信息的存取和保护。它提供用户接口,使用户获得良好的工作环境。

1.2 操作系统的目标与作用

1.操作系统的目标

有效性(改善资源利用率、提高吞吐量)
方便性(配置OS后计算机系统更容易使用)
可扩充性(OS应采取层次化结构)
开放性(OS应遵循世界标准规范)

2.操作系统的作用

(1) OS作为 用户与计算机硬件 系统之间的 接口
(2) OS 作为计算机系统资源的管理
(3)OS用作扩充机器实现对计算机资源的抽象
把覆盖了软件的机器称为扩充机器或虚机器,OS包含了若干个层次,因此在裸机上覆盖OS后,便可获得一台功能显著增强,使用极为方便的多层扩充机器或多层虚机器。

1.3 操作系统的发展过程

1.3.1 手工操作阶段

电子管计算机:无操作系统,由手工控制作业的输入输出,通过控制台开关启动程序运行。

用户使用计算机的过程大致如下:
先把程序纸带装上输入机,启动输入机把程序和数据送入计算机,然后通过控制台开关启动程序运行,计算完毕后,用户拿走打印结果,并卸下纸带。

1.手工交互方式的特点:
1) 程序设计直接编写成二进制目标程序;
2) 输入/输出设备主要是纸带和卡片读入机;
3) 程序员上机必须预约机时;
4) 程序员自己上机操作;
5) 程序的启动与结束处理都以手工方式进行;
6) 程序员的操作以交互方式进行(控制台);
7) 单用户方式;
8) 程序执行过程得不到任何帮助。

2.手工交互方式的缺点:
用户独占全机、CPU等待人工
手工装卸、人工判断、手工修改与调试内存指令等造成CPU空闲;
提前完成造成剩余预约时间内的CPU完全空闲;
I/O设备的慢速与CPU的速度不匹配造成的CPU空闲等待时间。

3.脱机输入/输出(Off-Line I/O)方式

用户使用计算机的过程大致如下:
先把程序纸带装上输入机,在外围机的控制下,输入到磁带上,当CPU需要时,从磁带高速调入内存。
输出时,CPU直接高速把数据从内存送到磁带,然后在另一台外围机的控制下,将磁带上的结果通过输出设备输出。

脱机I/O方式的优点:
减少了CPU的空闲时间
提高了I/O速度

4.联机与脱机

联机输入/输出(On-Line I/O)方式:在主机的直接控制下输入输出程序和数据
脱机输入/输出(Off-Line I/O)方式:脱离主机的情况下输入输出程序和数据
脱机减少CPU的空闲时间、提高IO速度

1.3.2 单道批处理阶段

晶体管计算机:操作系统的雏形,称为监控程序。

单道批处理系统的工作过程:用户将作业交到机房,操作员将一批作业输入到辅存(如磁带)上,形成一个作业队列。当需要调入作业时,监控程序从这一批中选一道作业调入内存运行。当这一作业完成时,监控程序调入另一道程序,直到这一批作业全部完成。

由于系统对作业的处理都是成批的进行,且在内存中始终只保持一道作业,故称为单道批处理系统(Simple Batch System)。


(单道程序运行情况)

1.3.3 多道批处理系统

操作系统发展史上革命性变革。

多道程序设计技术:在内存中放多道程序,使它们在管理程序的控制下相互穿插地运行。

多道批处理系统的工作过程:用户将作业交到机房,操作员将一批作业输入到辅存(如磁盘)上,形成一个作业队列。当需要调入作业时,管理程序从这一批中选几道作业调入内存,让它们进入内存运行。当一些作业完成时,管理程序调入另一些作业,直到这一批作业全部完成。


(多道程序运行情况图)

多道运行的特点:
宏观上并行:同时有多道程序在内存运行,某一时间段上,各道程序不同程度地向前推进。
微观上串行:任一时刻最多只有一道作业占用CPU,多道程序交替使用CPU。

多道批处理系统的优缺点:
资源利用率高:资源指CPU及设备。
系统吞吐量大:系统吞吐量指系统在单位时间完成的总工作量。
平均周转时间长:作业的周转时间是指从作业进入系统开始,直至其完成并退出系统为止所经历的时间。
但是,无交互能力、不适合软件开发(脱机)

多道批处理系统需要解决的问题:
处理机争用
内存分配保护
I/O设备分配
文件组织管理
用户系统接口等问题

1.3.4 分时系统(Time-Sharing System)

1.为什么会出现?
推动多道批处理系统形成和发展的动力是提高资源利用率系统吞吐量
推动分时系统形成和发展的主要动力是用户的需要:交互、共享主机、方便上机

2.什么是分时系统?
分时系统是指在一台主机上连接多个带有显示器和键盘的终端,同时允许多个用户通过自己的键盘,以交互的方式使用计算机,共享主机中的资源。

分时系统实现中的关键问题:
实现人机交互是即使有多个用户同时通过自己的键盘键入命令,系统也应能全部地及时接收并处理。
及时接收(多路卡和缓冲区)
及时处理:作业直接进入内存、不允许一个作业长期占用处理机。
及时处理(划分时间片):多个用户分时使用主机,每一用户分得一个时间片,用完这个时间片后操作系统将处理机分给另一用户,如此循环,每一用户可以周期性地获得CPU使用权,这样每一用户都有一种独占CPU的感觉。

分时系统的特征:
多路性:允许同一主机联接多台终端。
独立性:每一用户各占一个终端。
及时性:用户请求能及时响应。
交互性:可进行广泛的人机对话。

1.3.5 实时操作系统

实时系统(Real-Time System)是指系统能及时(实时)响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致地运行。
实时控制:如工业控制、武器的控制等。
实时信息处理:如联网订票系统

按实时任务是否呈现周期性分:
  周期性实时任务
  非周期性实时任务
    -开始截止时间
    -完成截止时间
按对截止时间的要求分:
  硬实时任务HRT
  软实时任务SRT

实时系统的特征:
多路性
独立性
及时性(开始截止时间/完成截止时间)
交互性(限定专用服务程序)
可靠性(多级容错措施)

1.3.6 微机操作系统

单用户单任务操作系统:CP/M(73年)、MS-DOS(81年)。
单用户多任务操作系统:OS/2(87年)、MS WINDOWS(90年windows 3.0)。
多用户多任务操作系统:UNIX(70年)。UNIX既可以用在微机上也可以用在大型机上。

1.3.7 多处理机操作系统

多处理机系统(70年代)的类型:
紧密耦合MPS:多处理机通过高速线路互连,它们共享主存和外设。
松散耦合MPS:通过通道或通信线路实现多台计算机互连,每台计算机可独立工作,必要时通过通信线路与其它计算机交互。

多处理机操作系统的类型:
非对称多处理模式:主从模式,主处理机只有一个,配置操作系统。从处理机可有多个。
对称多处理模式:所有处理机都相同。操作系统可根据需要运行于其中的任一处理机上。

1.3.8 网络操作系统

网络操作系统是指使网络上各计算机能方便有效地共享网络资源、为网络用户提供各种服务的软件与有关规程的集合。
如 Novell 公 司 的 Intranetware 和 微 软 公 司 的Windows2000/NT。

计算机网络操作系统的模式:
客户/服务器模式(Client/Server)网络中的各个站点可以分为两大类:
服务器:为客户提供服务如文件服务、打印服务、数据库服务等
客户机:用户通过客户机访问服务器
对等模式(Peer-to-Peer)各个站点是对等的,它既可作为客户也可作为服务

1.3.9 分布式操作系统

在以往的系统中,其处理和控制功能都高度集中在一台主机上,所有的任务都由主机处理,这样的系统称为集中式处理系统。

所谓分布式系统,是指由多个分散的处理单元经网络的连接而形成的系统。系统的处理和控制功能都分散在系统的各个处理单元上。系统中的所有任务可以动态地分配到各个处理单元中去。

分布式操作系统与网络操作系统的比较:
分布性:
在分布式系统中只有一个分布式操作系统;
在网络系统中各个结点可以有不同的网络操作系统。
并行性:
分布式系统中可以将一个或多个任务动态分配到不同的单元上,并行处理;
在网络系统中每个用户的一个或多个任务通常都在本地处理。
透明性:
分布式系统具有透明性,如用户要访问某文件,他只需要知道文件名,无需知道文件在哪个站点。
对网络系统来说,用户要访问一个文件时要知道文件名及位置。
共享性:
在分布式系统中,各站点的所有资源都可供全系统共享;
在网络系统中一般仅有服务器上的部分资源可供全网共享。
健壮性:
分布式系统有健壮性,当某站点出现故障时,正在该站点处理的任务能被自动迁移到好的站点。
在网络系统中若服务器故障往往导致全网瘫痪。

1.3.10 嵌入式操作系统

什么是嵌入式系统?
在各种设备、装置或系统中,完成特定功能的软硬件系统;它们是一个大设备、装置或系统中的一部分,这个大设备、装置或系统可以不是“计算机”;通常工作在反应快或对处理时间有较严格要求环境中;由于它们被嵌入在各种设备、装置或系统中,因此称为嵌入式系统。

1.4 操作系统的基本特性

1.4.1 并发

并发:
在内存中放多道作业,在一个时间段上看,每一道作业都能不同程度地向前推进。但在任何一个时间点上只能有一道占用CPU。

与并发相关的概念:
并发:两个或多个作业在同一时间段运行;
并行:两个或多个作业在同一时间点运行;存在于有多个CPU的环境中,在内存中放多道作业,在任一时间点上都可能有多道 作业在不同的CPU上同时执行。
串行:在内存中每次只能放一道作业,只有它完 全执行完后别的作业才能进入内存执行。

程序实际上是不能并发执行的,只有为程序创建进程,才能并发执行;进程是指在系统中能独立运行并作为资源分配的基本单位;进程不仅包括程序,还包括数据、堆栈等;是一个独立运行的活动实体。现代操作系统引入了能独立运行的更小的单位——线程。进程和并发是现代操作系统中最重要的基本概念。

1.4.2 共享

共享:系统中的资源可供多个并发的进程共同使用。

两种资源共享方式:
互斥共享方式:一段时间仅允许一个进程访问的资源,称为临界资源/独占资源,例如:打印机、磁带、程序中的变量、堆栈等。
同时访问方式:一段时间允许多个进程访问,但微观交替使用,例如:磁盘

并发与共享互为条件,是多用户OS最基本的特征。

1.4.3 虚拟

虚拟:通过某种技术将一个物理实体映射为若干个逻辑上对应物。虚拟是操作系统管理系统资源的重要手段,可提高资源利用率。
CPU——多道程序设计技术/每个用户(进程)的“虚拟处理机”
I/O设备——打印机、多窗口或虚拟终端
存储器——虚拟存储器技术

时分复用:利用处理机的空闲时间运行其他程序,提高处理机的效率。
空分复用:利用存储器的空闲空间分区域存放和运行其他的多道程序,提高内存的利用率。

1.4.4 异步性

异步性:进程以不可预知的运行速度向前推进。
现代操作系统中,多个进程并发执行,“走走停停”,无法预知每个进程的运行推进快慢。
难以重现系统在某个时刻的状态(包括重现运行中的错误)。

1.5 操作系统的运行环境——硬件支持

现代计算机系统包括一个或者多个CPU和若干设备控制器,通过公共总线相连而成,该总线提供了共享内存的访问。

1.5.1 操作系统内核

常驻内存,通常与硬件紧密相关

内核功能-支撑功能
中断处理:整个OS赖以活动的基础
时钟管理:内核基本功能
原语操作:
  由若干条指令组成,用于完成一定功能。
  原子操作:要么不做,要么全做,不可分割。

内核功能-资源管理功能
进程管理、存储器管理、设备管理

1.5.2 处理机的双重工作模式

1.5.3 特权指令和非特权指令

特权指令:在内核态下运行的指令
不仅能访问用户空间,还能访问系统空间。
如启动外部设备、设置系统时钟、管中断、切换执行状态、I/O指令。

非特权指令:在用户态下运行的指令
应用程序所使用的都是非特权指令。
防止应用程序的运行异常对系统造成破坏。
仅能访问用户空间。

1.5.4 用户态到内核态的切换

状态位(Mode bit) 指示正确的状态:内核态(0),用户态(1)
当中断或错误出现,硬件切换至内核态。

1.5.5中断与异常

中断(interrupt):由硬件引起。操作系统是中断驱动的,OS总在等待某个事件的发生,事件总是由中断或异常引起的。

异常/陷阱(trap):由软件引起。
出错(如除数为零或无效存储访问)。
用户程序的特定请求(如执行OS的某个服务)。

1.6 操作系统的基本功能

1.6.1 处理机管理

处理机是计算机中最重要的资源;
现代操作系统允许多个进程共享处理机,按照某种算法(分时、优先级)交替地使用处理机。

进程控制:
完成为作业创建一个或多个进程
撤消已经结束的进程
实现进程在运行过程的状态转换

进程同步:
任务:协调多个进程的运行。
协调方式:进程互斥方式:进程访问临界资源/锁;进程同步方式:进程相互合作/顺序

进程通信:
实现相互合作的进程之间信息的交换/传递。

调度:
传统调度分为:作业调度和进程调度
作业调度完成从后备队列中按照一定算法,选择出若干个作业,为他们分配必需的资源,建立进程,并按一定算法将他们插入就绪队列。
进程调度完成从就绪队列中选一道进程,为他分配处理机,设置运行现场,以使其运行。

1.6.2 存储器管理

第二重要资源。

内存分配
为每道作业分配内存空间
提高内存利用率,减少不可用的内存空间
允许正在运行的进程动态申请附加内存
应具有的功能和结构:
  内存分配数据结构
  分配算法
  内存回收

地址映射:把地址空间的逻辑地址转换为内存空间的物理地址的过程为地址映射。
程序->目标程序->可装入程序
可装入程序的地址从0开始 
可装入程序地址范围 -> 地址空间;地址 -> 逻辑地址
内存中的地址范围 -> 内存空间 ;地址 -> 物理地址

存储保护
确保多道程序间仅在自己的内存空间运行,互不干扰
简单的内存保护机制:界限寄存器

存储扩充
用辅存扩充主存,实现“虚拟存储器”
实现方法
  请求调入功能:允许装入一部分程序和数据就可以运行,运行时,若发现继续运行所需的程序和数据不在内存,再向OS发出请求,将其调入。
  置换功能

1.6.3 设备管理

最庞大、琐碎的部分,因为:
物理设备品种繁多、用法各异
各种外设能和主机并行工作
主机与各类外设速度极不匹配,级差很大

设备管理应具有的功能:
设备分配
设备驱动
缓冲管理
设备独立性和虚拟设备

1.6.4 文件系统管理

文件系统管理的功能:
文件存储空间管理
  为每个文件分配必要的外存空间、提高外存利用率、有助于提高文件系统的运行速度。
  需具备的结构和功能
目录管理
  建立目录项,组成目录文件,按名存取,方便用户找到他所需的文件;
  多级目录管理还允许重名;
  可以实现文件共享。
文件的读写管理和存取控制:存取控制就是防止文件被非法1.6.5 使用。

1.6.5 用户接口

命令接口:为了便于用户直接或间接地控制自己的作业。(联机用户接口与脱机用户接口)
图形接口
程序接口:为用户程序在执行中访问系统资源而设置的。由一组系统调用组成。

1.7 操作系统的结构设计

1.7.1 传统的操作系统结构

无结构OS
  设计基于功能实现和获得高的效率
  OS是为数众多的一组过程的集合
  OS整体无结构(程序之间)
  程序内部代码无结构(goto语句非常多)

模块化OS结构
  20世纪60年代出现,基于“分解”和“模块化”原则来控制大型软件的复杂度。
  模块的独立性
    模块大小的划分
    衡量模块独立性的指标
      内聚性:模块内部各部分间联系的紧密程度
      耦合度:模块间相互联系和相互影响的程度分层式OS结构
  模块化OS的优点
    提高OS设计的正确性、可理解性和可维护性
    增强OS的可适应性
    加速OS的开发过程
  模块化OS的缺点
    设计时对模块的划分与接口的规定不精确
    模块间存在复杂依赖关系

分层式OS结构
分层设计的基本原则:每一层都仅使用其底层所提供的功能和服务。
分层的优缺点:
  容易保证系统的正确性
  容易扩展和维护
  缺点是系统效率降低,层间通信带来了新的开销

1.7.2 现代OS结构——微内核结构

20世纪90年代发展起来,可支持多处理机运行,适用于分布式系统环境。
微内核技术:精心设计的、能实现现代OS核心功能的小型内核,它与一般OS不同,更小更精练,运行于核心态、开机后常驻内存。

微内核OS结构的特征:
以微内核为OS核心
以客户/服务器为基础
采用面向对象的程序设计方法

微内核的基本概念:
足够小的内核:实现OS最基本核心功能的小型内核,并非一个完整的OS,是OS中最基本的部分。
基于客户服务器模式:OS中最基本的放入内核,而把OS中绝大部分功能放在微内核外的一组进程(服务器)
机制与策略分离:将实现OS功能的具体执行机构放入微内核
面向对象技术:抽象、封装、隐蔽

微内核OS结构:

微内核的基本功能:
进程线程的管理:采用机制与策略分离的原则,属于调度功能的机制部分、进程的通信、切换
低级存储器管理:依赖于硬件的最基本的低级存储器管理(页表机制、地址变换机制)
中断和陷入的处理:捕获中断与陷入事件并进行相应的处理(与硬件紧密相关)

微内核的优点:
微技术内核是建立在模块化、层次化结构的基础之上,采用了客户服务器模式和面向对象的程序设计技术
可扩展性
可靠性
可移植性
面向对象
对分布式系统的支持

1.8 系统调用

系统调用目的:使应用程序可以通过它间接调用OS内核中的相关过程,取得相应的服务。

系统调用概念:
应用程序请求OS内核完成某功能时的一种过程调用;
用户与内核的接口。

与一般过程调用的区别:
运行在不同的系统状态
状态的转换
返回问题
嵌套调用

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

壹[1],QT自定义控件创建(QtDesigner)

1,环境 Qt 5.14.2 VS2022 原因:厌烦了控件提升的繁琐设置,且看不到界面预览显示。 2,QT制作自定义控件 2.1,New/其他项目/Qt4 设计师自定义控件 2.2,设置项目名称 2.3,设置 2.4,设…

智能安全帽功能-EIS智能防抖摄像头4G定位视频语音气体检测

智能安全帽是一种集成多种智能功能的产品,例如实时定位、语音对讲、健康监测和AI智能预警等。这些丰富的功能能够更好地帮助工人开展工作,并提升安全保障水平。智能安全帽在各个行业中的应用越来越广泛。尤其在工程建设领域,项目管理和工作安…

京东店铺所有商品数据接口(JD.item_search_shop)

京东店铺所有商品数据接口是一种允许开发者在其应用程序中调用京东店铺所有商品数据的API接口。利用这一接口,开发者可以获取京东店铺的所有商品信息,包括商品标题、SKU信息、价格、优惠价、收藏数、销量、SKU图、标题、详情页图片等。 通过京东店铺所有…

嵌入式Linux和stm32区别? 之间有什么关系吗?

嵌入式Linux和stm32区别? 之间有什么关系吗? 主要体现在以下几个方面: 1.硬件资源不同 单片机一般是芯片内部集成flash、ram,ARM一般是CPU,配合外部的flash、ram、sd卡存储器使用。最近很多小伙伴找我,说想要一些嵌…

四阶龙格库塔与元胞自动机

龙格库塔法参考: 【精选】四阶龙格库塔算法及matlab代码_四阶龙格库塔法matlab_漫道长歌行的博客-CSDN博客 龙格库塔算法 Runge Kutta Method及其Matlab代码_龙格库塔法matlab_Lzh_023016的博客-CSDN博客 元胞自动机参考: 元胞自动机:森林…

小仙女必备,1分钟就能做出精美的电子相册

不知道大家有没有这样的困惑,手机里的照片太多,长久以来很多照片都容易被忘记。这个时候我们就可以将照片制作成电子相册,方便我们随时回味那些照片里的故事。如何制作呢? 制作电子相册只需要一个简单实用的制作工具就可以轻松完成…

【文献分享】NASA JPL团队CoSTAR一大力作:直接激光雷达里程计:利用密集点云快速定位

论文题目:Direct LiDAR Odometry: Fast Localization With Dense Point Clouds 中文题目:直接激光雷达里程计:利用密集点云快速定位 作者:Kenny Chen, Brett T.Lopez, Ali-akbar Agha-mohammadi 论文链接:https://arxiv.org/pd…

在 CelebA 数据集上训练的 PyTorch 中的基本变分自动编码器

摩西西珀博士 一、说明 我最近发现自己需要一种方法将图像编码到潜在嵌入中,调整嵌入,然后生成新图像。有一些强大的方法可以创建嵌入或从嵌入生成。如果你想同时做到这两点,一种自然且相当简单的方法是使用变分自动编码器。 这样的深度网络不…

学习LevelDB架构的检索技术

目录 一、LevelDB介绍 二、LevelDB优化检索系统关键点分析 三、读写分离设计和内存数据管理 (一)内存数据管理 跳表代替B树 内存数据分为两块:MemTable(可读可写) Immutable MemTable(只读&#xff0…

力扣370周赛 -- 第三题(树形DP)

该题的方法,也有点背包的意思,如果一些不懂的朋友,可以从背包的角度去理解该树形DP 问题 题解主要在注释里 //该题是背包问题树形dp问题的结合版,在树上解决背包问题 //背包问题就是选或不选当前物品 //本题求的是最大分数 //先转…

京东商品详情API接口(PC端和APP端),京东详情页,商品属性接口,商品信息查询

京东开放平台提供了API接口来访问京东商品详情。通过这个接口,您可以获取到商品的详细信息,如商品名称、价格、库存量、描述等。 以下是使用京东商品详情API接口的一般步骤: 注册并获取API权限:您需要在京东开放平台上注册并获取…

arcgis pro模型构建器

如果你不想部署代码包环境来写arcpy代码,还想实现批量或便携封装的操作工具,那么使用模型构建器是最好的选择。1.简介模型构建器 1.1双击打开模型构建器 1.2简单模型构建步骤 先梳理整个操作流程,在纸上绘制在工具箱中找到所需工具拖进来把…

LangChain+LLM实战---实用Prompt工程讲解

原文:Practical Prompt Engineering 注:本文中,提示和prompt几乎是等效的。 这是一篇非常全面介绍Prompt的文章,包括prompt作用于大模型的一些内在机制,和prompt可以如何对大模型进行“微调”。讲清楚了我们常常听到的…

搭建二维码系统,轻松实现固定资产的一物一码管理

固定资产管理中普遍存在盘点难、家底不清、账实不一致、权责不清晰等问题,可以在草料上搭建固定资产管理系统,通过组合功能模块实现资产信息展示、领用登记、出入库管理、故障报修等功能,对固定资产进行一物一码规范化管理。 比如张掖公路事业…

创建基于多任务的并发服务器

有几个请求服务的客户端&#xff0c;我们就创建几个子进程。 这个过程有以下三个阶段&#xff1a; 这里父进程传递的套接字文件描述符&#xff0c;实际上不需要传递&#xff0c;因为子进程会复制父进程拥有的所有资源。 #include <stdio.h> #include <stdlib.h>…

票务营销数字化:景区增收利器

身处数字化时代&#xff0c;景区门票销售早已插上数字化翅膀&#xff0c;通过一站式的票务管理、精准的营销策略等为景区带来了数字化增长。票务营销系统如何帮助景区增收&#xff1f; l 提高工作效率&#xff1a;传统的景区售票方式往往需要大量的人工操作&#xff0c;不仅耗时…

微信小程序overflow-x超出部分样式不渲染

把display:flex改成display:inline-flex&#xff0c; 将对象作为内联块级弹性伸缩盒显示&#xff0c; 类似与是子元素将父元素撑开&#xff0c;样式就显示出来了

纺织布料行业小程序开发

随着互联网的发展&#xff0c;越来越多的消费者通过线上渠道购买纺织布料产品。为了满足市场需求&#xff0c;越来越多的纺织布料企业选择开发小程序&#xff0c;以提高销售效率、拓宽销售渠道和提升用户体验。下面是开发纺织布料行业小程序的具体步骤&#xff1a; 1. 登录乔拓…

Flume从入门到精通一站式学习笔记

文章目录 什么是FlumeFlume的特性Flume高级应用场景Flume的三大核心组件Source&#xff1a;数据源channelsink Flume安装部署Flume的使用案例&#xff1a;采集文件内容上传至HDFS案例&#xff1a;采集网站日志上传至HDFS 各种自定义组件例如&#xff1a;自定义source例如&#…

Python的切片操作详细用法解析

在利用Python解决各种实际问题的过程中&#xff0c;经常会遇到从某个对象中抽取部分值的情况&#xff0c;切片操作正是专门用于完成这一操作的有力武器。理论上而言&#xff0c;只要条件表达式得当&#xff0c;可以通过单次或多次切片操作实现任意切取目标值。切片操作的基本语…