在 IEEE Std 1003.1-2008(又名 The Open Group Base Specifications Issue 7,或仅 POSIX 标准)的 2016 版中,该who
实用程序的基本原理部分提到了以下内容:
实现不为调用who mil产生任何输出是可以接受的。
谁或什么是“mil”?为什么允许实现不产生任何输出who mil
?
我正在尝试进行操作系统开发,我从引导加载程序开始,其中阶段 0 从 ext4 分区(由第一个 LBA 指定)上的文件(由 inode 指定)加载阶段 1。当然,我需要一些东西来启动,所以我抓住了 QEMU。怎么办?
到目前为止效果很好的是:
truncate -s64M /tmp/SomeVolume
/sbin/mke2fs -t ext4 -F /tmp/SomeVolume
yasm phase0.asm
dd if=phase0 of=/tmp/SomeVolume conv=notrunc
Run Code Online (Sandbox Code Playgroud)
我制作了一个大约 64 MB 的卷,将其格式化为 ext4,并用 phase0(大小始终为 1024 字节)覆盖前 1024 个八位字节。这工作正常。
但是现在我想制作一个正确分区的文件,以针对更现实的场景对其进行测试。我知道我可以使用/sbin/cfdisk
我的卷文件,但mke2fs
没有一个参数可以让我在文件中选择一个跨度。
现在我知道使用 loop的解决方案,但不幸的是,它似乎对我不起作用(似乎我无法max_part
在 Debian jessie 中进行更改)。似乎还有另一个名为 的模块nbd
,但我没有安装该模块的服务器和客户端。我需要 root 权限才能在用户空间中明确完成某些事情,这有点荒谬。
作为用户,我该如何做到这一点?或者我应该围绕我创建的 ext4 格式文件构建 MBR/GPT 分区卷?
我可能在这里遗漏了一些非常简单的东西,但是当我说
echo 'The quick brown fox jumped over the lazy dog.' | \
awk '{
split($0, WORDS, " ");
for ( WORD in WORDS ) {
print $WORD;
}
}'
Run Code Online (Sandbox Code Playgroud)
我得到这个回报:
quick
brown
fox
jumped
over
the
lazy
dog.
The
Run Code Online (Sandbox Code Playgroud)
为什么第一个字最后打印?
$ awk --version
awk version 20070501
Run Code Online (Sandbox Code Playgroud)