bio-linux(双硬盘安装win和linux)
很多朋友对于bio-linux和双硬盘安装win和linux不太懂,今天就由小编来为大家分享,希望可以帮助到大家,下面一起来看看吧!
怎么连接linux服务器
Linux服务器端准备工作
首先需要在Linux服务器上安装openssh-server,打开Linux服务器命令行终端,键入下面命令
sudo apt-get install openssh-server
1
修改Linux服务器的ssh配置文件
sudo gedit/etc/ssh/sshd_config1
先使用”#”注释掉PermitRootLogin without-password
添加一行PermitRootLogin yes
然后开启ssh服务
ps-e| grep ssh
1
客户端准备工作
客户端既可以是Windows系统用户,也可以是Linux系统用户,下面我们就分别介绍这两种系统如何来连接Linux服务器
Ubuntu系统
一般情况下,Ubuntu系统都是自带了openssh-client,如果没有安装,在命令行键入下面
sudo apt-get install openssh-client1
如果已经安装好了openssh-client,那么可以使用下面的命令连接服务器
ssh username@IP1
这里的username是服务器的一个用户账号,IP也是服务器的IP地址
Windows系统
Windows平台下有许多提供ssh服务的软件,我们在这里使用Xshell 5软件
打开Xshell 5软件,点击左上角的新建
在主机处输入Linux服务器的IP地址,协议选择为ssh,端口号为22
点击确定按钮,再点击连接,此时会弹出一个交互窗口,输入服务器的一个账户和密码
数据传输
下面我们就分别介绍Windows和Linux两种系统如何与Linux服务器进行数据传输
Ubuntu系统
在于服务器连接正常后,再次打开一个命令行终端,键入以下命令,就可以将客户端数据传入服务器
scp./filename username@IP:/home/bio321/Desktop1
也可以将服务器端的数据传入到客户端,键入以下命令
scp username@IP:/home/bio321/Desktop/filename./data 1
Windows系统
在Linux服务器安装lrzsz,服务器端打开命令行,键入以下命令安装
sudo apt-get install lrzsz1
将客户端数据传入服务端,服务端打开命令行,键入命令rz
将服务端数据传入客户端,服务端打开命令行,键入命令sz
一文详解Linux内核块设备层介绍之bio层
Linux操作系统提供一套设备抽象接口,包括字符设备、块设备、网络设备、位图显示器等。块设备尤为重要,随着持久化存储与持久化内存的不断发展,其应用场景越来越广泛。因此,深入剖析块设备接口是必要的。
“块层”指的是Linux内核中用于访问多种存储设备的模块接口,包含应用程序与文件系统间的抽象层。块层在Linux内核中的代码主要集中在block子目录下,形成两个抽象层:bio层和request层。尽管没有统一的命名,这些代码负责实现块设备的读写操作。
在理解bio层之前,先了解块设备之上的一层,即离用户态较近、离硬件较远的层。块层在内核中的位置如图所示。块设备通常通过/dev目录下的文件实现访问,这些文件映射成具有S_IFBLK属性的inode。这些文件仅代表软链接,指向由'major:minor'标识的真实块设备。实际设备的I/O操作通过inode结构体中的i_bdev和bd_inode成员实现。
访问块设备时,当不使用O_DIRECT打开时,bd_inode主要提供page cache,用于缓冲读、预读、缓冲写和延迟写操作。当以O_DIRECT方式打开时,读写直接作用于块设备。对于某些文件系统(如ext系列),使用bd_inode的page cache来管理文件系统的元数据。
在块设备访问过程中,使用O_EXCL标志来确定每个块设备最多可以有一个“持有人”。当试图获取块设备持有权时,若已有不同持有者,则请求失败。文件系统在挂载设备时使用此标志,确保独占设备。如果文件系统以O_EXCL方式成功打开设备,它将成为设备的持有者,后续尝试mount将失败。
无论以何种方式访问块设备,bio层在向上提供的主要接口,包括读取、写入请求和其他控制请求,如“discard”。bio层通过与设备驱动的交互,完成请求的发送与答复的返回。
在bio层中,gendisk结构体代表块设备,尽管信息有限,但它作为文件系统与设备层之间的接口。gendisk之上是多个struct block_device,它们与内核中的inode链接相关联。当gendisk有多个分区时,会与多个block_device结构关联,包括整个gendisk和分区(如/dev/sda和/dev/sda1)。
struct bio结构体用于代表来自block_device的请求,包括具体的块设备信息、偏移量、请求大小、请求类型(读或写)及数据存放位置。在Linux 4.14之前,bio通过指向struct block_device的指针标识目标设备。4.14之后,改为指向struct gendisk的指针及分区号。
bio层和request层之间通过generic_make_request或submit_bio发起请求,通常不会等待请求完成,而是将其插入队列等待后续处理。在某些情况下,generic_make_request可能会在内存可用前阻塞。若在bi_opf字段设置了REQ_NOWAIT标志,请求将不等待,直接返回错误码。
除了处理bio的读写请求外,bio层值得深入探讨的两个关键点是避免递归技巧和设备队列的插入与拔出。避免递归策略在使用虚拟块设备时简化了操作,但可能会导致死锁。队列插入与拔出机制优化了I/O请求处理,使得请求可以批量提交,提高性能。
尽管bio层是块设备接口中较薄的层,它承担着接受I/O请求、传递给make_request_fn函数、更新/proc/vmstat中的pgpgin和pgpgout统计信息等任务。作为承上启下的模块,它与驱动程序、虚拟设备等下层组件协同工作,共同实现块设备的高效管理和操作。
bio-infopage是什么
有核心数据的页。bio是linux内核中通用块层的一个核心数据结构,它描述了块设备的I/O操作,联系了内存缓冲区与块设备。bio-infopage是表示直接跳转到有核心数据的一页,是直接访问的,并不是惦记很多链接对linux进行访问。infopage是将所有的内容拆成一个一个的段落,每个段落都有自己独立的page,不同的page之间用类似于网页的跳转的方式进行连接。