问题标签 [block-device]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2309 浏览

php - vfsstream:file_get_contents() 未能打开流:stream_open 调用失败

我已经设置了一个 vfsstream 块设备,我正在尝试调用file_get_contents()它。但是调用vfsStreamWrapper::stream_open失败,因此无法打开流。

这是我的代码:

这是错误:

file_get_contents(vfs://root/test_block_device/size):无法打开流:“org\bovigo\vfs\vfsStreamWrapper::stream_open”调用失败

这是我发现的最接近的问题

然而,他是 phpunit 拆解的一个问题,而我的发生在测试中期。

0 投票
1 回答
371 浏览

amazon-web-services - AWS 块设备名称与 CentOS SoftLink 不匹配

在 AWS EC2 块设备上被识别为/dev/sda,/dev/sdf/dev/sdg,但是当我这样做时在 EC2 CentOS 实例ll /dev/sd*中给出以下内容:

当我运行ec2-describe-instances --aws-access-key xxxxxx<MyKey>xxx --aws-secret-key xxxxxx<MyKey>xxx --region us-east-1 ``curl -s http://169.254.169.254/latest/meta-data/instance-id`` | grep -i BLOCKDEVICE输出如下:

我想知道如何链接这两者:AWS GUI 控制台的块设备和 EC2 实例中的块设备?

谢谢,

0 投票
0 回答
279 浏览

linux - Linux内核——IRQ(proc文件系统VS系统调用)

我从事 Linux 内核项目。在我的项目中,我修改了内核,以便copy_process从我的一个模块中调用它,该模块响应对 proc 文件条目的写入。本质上,事情看起来像:

我的问题是内核在copy_process运行时挂在里面:

现在,我知道这个函数一直在被调用do_fork。这发生在系统调用中。

我的问题:

  1. 我是否在正确的道路上认为这与写入 proc 文件条目与系统调用有关?
  2. IRQ 与写入 proc 文件条目有什么关系?
  3. 写入 proc 文件条目实际上与系统调用不同吗?我的意思是它的处理方式和调用的上下文?

谢谢!

更新:我将调用我的代码的方式从在处理写入 proc 文件时调用代码的方式转换为从系统调用调用的方式。没有改变。到达同一行时仍然挂起(即锁定 tasklist_lock)。现在,我的问题是为什么它挂在那里?以及如何解决这个问题?

0 投票
1 回答
189 浏览

kernel - 进程状态如何更新为阻塞状态(TASK_INTERRUPTIBLE)?

当一个进程在等待 I/O 时,任务状态如何更新为 TASK_INTERRUPTIBLE(即阻塞)?

想象一下这种情况,一个进程向块设备发出一个 I/O 请求。根据我之前的线程,该进程最终调用elv_add_request()以将请求添加到 I/O 队列。所以我猜在这个elv_add_request()调用中,实现将类似于:

逻辑是这样的:当 I/O 请求完成后,它会使用回调函数通知内核进程已经准备好。是否有意义?

如果是这样,那么回调机制是如何实现的呢?它是 CPU/硬件功能吗?

0 投票
1 回答
145 浏览

android - 为什么在初始化 zram 之后读取在写入之前发出?

我是 Linux 内核的新手,刚刚开始了解它是如何zram工作的。初始测试,我看到它是在初始化之后READ发布的。但我只是想知道,为什么会这样?WRITEzram

作为一项活动,我采用dump_stack()并遵循路径表单,了解如何zram执行此读取。

zram了解此信息是否必须执行READWRITE操作已发布bio->bi_rw。代码流就像是从驱动程序中zram_make_request调用 API 。并在内部调用了调用API。create_devicezramzram_make_request__zram_make_requestzram_bvec_rw

zram_bvec_rwAPI 中检查可用信息bio->bi_rw并相应地发出READandWRITE调用。

现在,在这种情况下发生了什么:READ被封装在bio结构本身中。作为分流,我发现submit_bh填充了所有条目bio并发布了submit_bio.

我想知道谁实际上将 as 设置bio->bi_rwREAD. 通过启用少量打印,我发现ll_rw_blockAPI 被__block_write_beginwith调用READ,稍后ll_rw_block调用submit_bhAPI 填充其余bio结构条目。

但我仍然没有得到答案,为什么从 fromREAD发出?ll_rw_block__block_write_begin

  • zram 驱动程序:

https://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/tree/drivers/block/zram/z​​ram_drv.c?id=refs/tags/v3.18.14

在文件中:https ://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/tree/fs/buffer.c?id=refs/tags/v3.18.14

请问有人可以解释/回答我的问题吗?

我如何得出在写之前执行读取的结论?

我只是检查num_readsnum_writes计数。并且当我们这样做并且在调用最终计数之后找到时,num_reads计数被设置为。1num_writes0mkswap /dev/block/zram0swapon /dev/block/zram0num_reads = 2 and num_writes=1

注意:这是我们不执行任何其他zram活动时的情况。如上所述,我们得到了这种行为。

0 投票
2 回答
1291 浏览

python - 如何检查 Python 中是否存在原始(未安装)Windows 驱动器

如何检查 python 中是否存在原始(Windows)驱动器?即 "\\.\PhysicalDriveN" 其中 N 在磁盘号中

现在我可以通过打开并立即关闭它来检查原始驱动器是否存在(以管理员身份)。如果出现异常,则原始设备可能不存在,否则存在。我知道这不是很pythonic。有没有更好的办法?

os.access(drive_name, os.F_OK)总是返回False。与 相同os.path.exists(drive_name)。我宁愿只使用 python 标准库。os.stat(drive_name)也找不到设备。

我的工作代码示例:

0 投票
1 回答
1331 浏览

usb - USB 驱动程序属于哪一类驱动程序?字符驱动还是块驱动?

我正在尝试在 Linux 中实现 USB 驱动程序。在此之前,我想知道USB驱动是字符驱动还是块驱动?或者它是一个单独的类别?

0 投票
3 回答
2078 浏览

c - How to get disk name programmatically in Linux(Like "/dev/sda" or "/dev/sdb")?

I am trying out to find information related to Disk and partitions. Following are my code. But problem is that, I am passing disk name through command line by querying disk name from "/proc/partitions". Is there any api which can give me disk name as well.

0 投票
0 回答
151 浏览

block-device - 我可以将单个位写入块设备吗?

问题是关于 HDD/SDD 等块设备,而不是在这里谈论文件系统。

我想知道是否可以将 SINGLE BIT 或确切数量的数据(例如 7 位)写入 HDD 之类的块设备?我在某个地方(不知道在哪里)读到了我不能读到的东西,无论我做什么,整个区块都会被写出来。

有人可以向我解释吗?

0 投票
1 回答
91 浏览

unix - 释放分配给块 IO 的内存,即 RHEL 7 中的 bio -> bio_destructor

我想知道分配给 BIO 的内存是如何免费获得特定于 RHEL 7 的。

我认为,在 RHEL 7 中, bio->destructor 字段已从 bio 结构中删除。

那么,究竟如何释放内存呢?

提前致谢。!