<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # 文件系統,第 5 部分:虛擬文件系統 > 原文:<https://github.com/angrave/SystemProgramming/wiki/File-System%2C-Part-5%3A-Virtual-file-systems> ## 虛擬文件系統 POSIX 系統,例如 Linux 和 Mac OSX(基于 BSD)包括作為文件??系統的一部分安裝(可用)的若干虛擬文件系統。這些虛擬文件系統中的文件不存在于磁盤上;它們是在進程請求目錄列表時由內核動態生成的。 Linux 提供 3 個主要的虛擬文件系統 ``` /dev - A list of physical and virtual devices (for example network card, cdrom, random number generator) /proc - A list of resources used by each process and (by tradition) set of system information /sys - An organized list of internal kernel entities ``` 例如,如果我想要連續的 0 流,我可以`cat /dev/zero`。 ## 如何找出當前可用(已安裝)的文件系統? 使用`mount`使用 mount 而不使用任何選項會生成已安裝文件系統的列表(每行一個文件系統),包括聯網,虛擬和本地(基于旋轉磁盤/ SSD 的)文件系統。這是 mount 的典型輸出 ``` $ mount /dev/mapper/cs241--server_sys-root on / type ext4 (rw) proc on /proc type proc (rw) sysfs on /sys type sysfs (rw) devpts on /dev/pts type devpts (rw,gid=5,mode=620) tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0") /dev/sda1 on /boot type ext3 (rw) /dev/mapper/cs241--server_sys-srv on /srv type ext4 (rw) /dev/mapper/cs241--server_sys-tmp on /tmp type ext4 (rw) /dev/mapper/cs241--server_sys-var on /var type ext4 (rw)rw,bind) /srv/software/Mathematica-8.0 on /software/Mathematica-8.0 type none (rw,bind) engr-ews-homes.engr.illinois.edu:/fs1-homes/angrave/linux on /home/angrave type nfs (rw,soft,intr,tcp,noacl,acregmin=30,vers=3,sec=sys,sloppy,addr=128.174.252.102) ``` 請注意,每行包括文件系統和掛載點的文件系統類型源。要減少此輸出,我們可以將其輸入`grep`并僅查看與正則表達式匹配的行。 ``` >mount | grep proc # only see lines that contain 'proc' proc on /proc type proc (rw) none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) ``` ## 隨機和 urandom 之間的差異? / dev / random 是一個包含數字生成器的文件,其中熵是根據環境噪聲確定的。隨機將阻止/等待,直到從環境中收集到足夠的熵。 / dev / urandom 就像是隨機的,但它的不同之處在于它允許重復(較低的熵閾值),因此不會阻塞。 ## 其他文件系統 ``` $ cat /proc/sys/kernel/random/entropy_avail $ hexdump /dev/random $ hexdump /dev/urandom $ cat /proc/meminfo $ cat /proc/cpuinfo $ cat /proc/cpuinfo | grep bogomips $ cat /proc/meminfo | grep Swap $ cd /proc/self $ echo $$; cd /proc/12345; cat maps ``` ## 掛載文件系統 假設我有一個掛在`/dev/cdrom`上的文件系統,我想從中讀取。在我可以進行任何操作之前,我必須將它復制到目錄中。 ``` $ sudo mount /dev/cdrom /media/cdrom $ mount $ mount | grep proc ``` ## 如何掛載磁盤映像? 假設你已經下載了可啟動的 linux 磁盤映像...... ``` wget http://cosmos.cites.illinois.edu/pub/archlinux/iso/2015.04.01/archlinux-2015.04.01-dual.iso ``` 在將文件系統放在 CD 上之前,我們可以將文件作為文件系統掛載并瀏覽其內容。注意,mount 需要 root 訪問權限,所以讓我們使用 sudo 運行它 ``` $ mkdir arch $ sudo mount -o loop archlinux-2015.04.01-dual.iso ./arch $ cd arch ``` 在 mount 命令之前,arch 目錄是新的,顯然是空的。安裝后,`arch/`的內容將從存儲在`archlinux-2014.11.01-dual.iso`文件中的文件系統中的文件和目錄中提取。 `loop`選項是必需的,因為我們要掛載常規文件而不是塊設備,例如物理磁盤。 循環選項將原始文件包裝為塊設備 - 在此示例中,我們將在下面找到文件系統在`/dev/loop0`下提供:我們可以通過運行不帶任何參數的 mount 命令來檢查文件系統類型和掛載選項。我們將輸出管道輸入`grep`,這樣我們只能看到包含'arch'的相關輸出線 ``` $ mount | grep arch /home/demo/archlinux-2014.11.01-dual.iso on /home/demo/arch type iso9660 (rw,loop=/dev/loop0) ``` iso9660 文件系統是一個只讀文件系統,最初設計用于光存儲介質(即 CDRoms)。嘗試更改文件系統的內容將失敗 ``` $ touch arch/nocando touch: cannot touch `/home/demo/arch/nocando': Read-only file system ``` [轉到文件系統:第 6 部分](https://github.com/angrave/SystemProgramming/wiki/File-System,-Part-6:-Memory-mapped-files-and-Shared-memory)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看