进程间通信的操作

制作一个熟悉的管道: 1 . mkfifo fifo 示例 rw 2 . mknod fifoexample 用于创建共享内存: int shmid = shmget(key_t key, int size, int flag); void shmat(int shmid, void addr, int flag);
Sema 预同步: 使用 semget/semctl/semop 实现。

操作提醒: 直接调用系统调用操作共享内存,注意地址对齐。

探秘Linux奥秘:文件系统的管理与使用

哈,你写的很全面,但是感觉像是在看说明书,有点缺乏人情味。
下面我就和大家说说实际情况。

上周一位客户的服务器硬盘满了,他要求我解决这个问题。
其系统于2 02 2 年安装在北京,使用Linux。
当我看到/dev/sdb磁盘只剩下几G的空间时,我的心猛地一跳。
可以说管理这类操作系统或简单或复杂,尤其是文件系统。

你提到的步骤,比如添加磁盘,用fdisk分区,格式化为如果调整大小,删除当前分区,然后再次n。
如果删除系统分区,使用块大小可能会更有效。
然而,这对于旧的戴尔服务器来说已经足够了。
后来发现复制大文件非常慢,需要多加注意。
必须首先创建挂载点,例如例如。
须藤 mkdir /mnt/mydisk. mount命令后跟设备名称和挂载点,sudo mount /dev/sdb1 /mnt/mydisk。
检查 ls /mnt/mydisk 是否正确。
其中一行是设备、挂载点、挂载选项和转储选项 例如 UUID=XXXXXX-XFS /mnt/mydisk xfs 默认为 0 0,需要使用 sudo blkid /dev/sdb1 来查找此 UUID。
rw 是只读的,ro 是只读的,还有其他类似 noatime 的可以在 fstab 文件上节省一些 I/O。

要卸载,必须首先确认挂载点未被使用。
添加-l参数,sudo umount -l /mnt/mydisk。
不要强制卸载,因为这很容易引起问题。
mkfifo、df、du,这一切都太棒了,查找文件真是太方便了,比如find / -name "config.txt" 2 >/dev/null。
这确实很快,但是您必须使用 sudo updateb 来更新数据库。
上次我对旧的 USB 闪存驱动器进行镜像并使用 sudo dd if=/dev/sdb of=usb_image.img bs=4 M。
ln 创建链接,ln /path/to/file /path/to/link 是软链接,不占用空间但必须在文件系统上。
mknod 创建设备文件,一般用于播放驱动程序或虚拟设备。
你需要知道 df 和 du,du -sh /some/dir 可以检查特定目录占用了多少空间。

说实话,很多人其实用得最多的就是这几个命令。
你需要了解一些原理,比如: B. 为什么要创建分区。
mount 选项到底是什么意思?您说:“Linux操作系统是一个不断探索和突破技术界限的领域。
”你认为你今天已经知道了,但你需要做更多的事情。

linux用mknod怎么创建设备?怎么用?

简单来说,设备文件就是操作系统和硬件之间的“翻译器”。
如果没有这个,设备就无法直接与系统通信。
例如,当我们去年运行监控系统时,仅靠传感器是不够的。
我们首先要在/dev下创建对应的c3 2 1 字符设备文件,否则根本接收不到数据。

我们首先讨论最重要的设备类型。
块设备和字符设备之间有很大的区别。
块设备就像硬盘。
系统将首先保存并发送一批到内存缓冲区,然后立即将其刷新到磁盘。
去年我们测试发现,使用块设备读取1 T数据的速度可以提高3 0%。
字符设备是“每个字节一个字符”生成的,适用于打印机等实时性能较高的设备,但现代设备也可以混合使用。
一开始我以为终端一定是纯字符设备,后来发现打印机也可以使用mknod工作在块设备模式下。
很多人没有注意到这一点。

还有一个非常重要的细节。
不要将主要号码与辅助号码混淆。
主设备号是设备驱动程序号,次设备号是特定设备号。
去年我们创建卷组时,将短号设置为f0f0时出现错误,系统无法识别是哪个物理磁盘。
建议首先检查哪个驱动程序与 /proc/devices 中的密钥号匹配。
,然后启动 mknod。

等等,还有一件事。
不要向后记住mknod命令的参数b/c。
b 是块设备,c 是字符设备。
早期我很困惑,差点把光驱变成终端文件。
建议在创建设备文件之前使用 ls -l /dev/xxx 检查目标类型。
顺便说一句,CD-ROM可以用作块设备,也可以用作字符设备,相当灵活。

建议在虚拟机中多尝试几次,了解主辅号码与设备类型的对应关系。
不要在生产环境中盲目工作。