磁盤管理

磁盤設備

一切皆文件

所有的Linux中的設備都可以使用下面命令進行操作:open(), read(), write(), close()(這些是C的函數)
  • 塊設備:隨機訪問

  • 字符設備:線性訪問

設備號碼:

磁盤管理90316c03-a60e-4157-bb93-8fda7aeab15f.jpg

  • 主設備號:major number,標識設備類型 
    8是主要設備編號,代表類型

  • 次設備號:minor number,標識同一類型下的不同設備 
    0-5是設備唯一編號,同一類型設備進行區分

  • 只要主、次設備編號相同,他們就是同一個設備 
    了解更多關于設備的信息

硬盤接口類型:

  • 并行:多針腳 
    IDE類型最高速度:133MB/s 
    SCSI設備:640MB/s

  • 串口:單針腳,可以多個串口,以提高速度

設備 最高速度
SATA設備最高速度 6Gbps
SAS設備最高速度 6Gbps
USB設備最高速度 480MB/s

tips:注意單位的不同.B是指字符,bps是指每秒傳輸的位

  • 串行接口速度比并行快,大部分原因是:不受干擾,速度快。

命名

  • IDE設備:/dev/hd*

  • SCSI,SATA,SAS,USB等設備:/dev/sd*

  • 磁盤設備文件都在/dev目錄下面

  • 由于IDE設備的弱點,基本被淘汰了。cent7開始,都改名叫sd

  • 有時候,系統/dev文件下或者別的地方,會出現vda,vdb,vdc這種的,是虛擬機上的磁盤。當成硬盤用就可以了。

磁盤分區方式

  • MBR和GTP的分區方式

  • GTP的主分區個數可以超過4個

  • MBR

機械硬盤和固態硬盤

機械硬盤:是盤片的硬盤,所以轉速(rpm)對硬盤影響很大,所以就有一個指標rpm 
固態硬盤:內部構建和機械硬盤完全不一樣。

機械硬盤組成

磁盤管理86a5295e-4563-4358-8dbf-3dda27fb44e7.jpg

單位 分配字節/每磁面 最大數量
磁頭(head) 8 256
磁道(tarck) 10 1024
扇區(sector ) 6 63(512byte/每個)

=?=每個柱面的數據量=磁道的數據量?盤面數(=磁頭數)

=?=512?63磁道的數據量=柱面扇區數量?每個扇面的數據量=512?63

=??=512?63?256=8M每個柱面的數據量=柱面扇區數量?每個扇面的數據量?盤面數=512?63?256=8M

尋址方式

CHS尋址: cylinder(柱面)Head Sector<-----------老式的尋址方式
LBA尋址:開始可以最小單位為扇區(Centos6開始使用)
  • 早期系統中,CHS按照柱面分配時,不允許一個柱面分給多個分區,現在只會給出提醒警告

  • 分配從柱面1開始分配,柱面0存放了開機引導和分配表等信息。

磁盤管理5ac3ce81-97bd-4865-8dba-d3535c4b0967.jpg

  • centos6開始支持LBA了,fdisk默認顯示以柱面為單位,-u參數幫助fdisk以扇區為單位顯示

磁盤管理4fe71d9e-04c9-4ad3-8258-5c0ffbef93fc.png磁盤管理4fe71d9e-04c9-4ad3-8258-5c0ffbef93fc.png

  • centos7開始,才“默認”LBA,默認就是以扇區為顯示單位

    但是如果想用柱面為單位,可以在fdisk中使用 -u=cylinders 
    磁盤管理 84b22271-40f1-4cdf-b0e1-2b93bba6fecf.jpg
    磁盤管理9fbc0d36-dd50-4776-8a47-b67526c00f9e.jpg

給服務器添加硬盤

  • 將硬盤添加到服務器上之后,使用下面命令進行掃描,就可以在系統中看到,硬盤已經添加成功了。

echo “- - -” > /sys/class/scsi_host/host2/scan
//這里有三個,host0,host1,host2,如果一個不成功,可以試試用其他的。
  • lsblk是用來列出在內存中有的塊設備文件的。 
    磁盤管理 
    磁盤管理906ddd06-229d-4edb-8ada-53b27cddc4f0.jpg

    fc106efd-c5e3-4fe3-a2d7-1bf371e55465.jpg

分區

為什么創建分區

  • 更高效

    比如數據庫或者是日志,或者是操作系統。

    由于他們的存放特性是不一樣的,尤其是數據庫和日志的存放。

    就需要不同的文件系統,希望能夠使用不同的文件結構來存放他們,以便更高效。

  • 防破壞:防止“所有”內容被破壞

  • 減少磁盤修復難度和時間

  • 磁盤配額

分區方式

  • 分區方式和磁盤尋址方式之間存在密切聯系。

  • 由于centos6和7之間,尋址方式的改變,他們的默認分區方式也有變化。

  • 分區有兩種:MBR和GPT

  • windows中的分區方式也分為這兩種,如圖:

磁盤管理75b1547d-a47a-41c3-86cc-a6b0bf00b3b0.jpg2c939d40-b787-427d-95eb-d31db13dd1ba.jpg

磁盤管理

MBR

MBR介紹

  • MBR:Master Boot Record,使用32位表示扇區數,分區不超過2T

  • 如何分區:按柱面

  • 分區信息:存放在0磁道0扇區,一共512bytes

    • 前446bytes:boot loader

    • 后64bytes:分區表

      • 16bytes:標識一個分區

      • 將前446個字節,給擦除,擦除后,只要后面分區表的64位字節,還在,就還可以使用。

        b0fe11ac-1892-488d-bdd0-28d1d8a6af00.jpg

    • 最后2bytes: 存放內容“55AA”,這部分內容一定不能夠被破壞

      • 如果沒有“55AA”,該分區會被認為是裸分區??!

        裸設備(raw device),也叫裸分區(原始分區),是一種沒有經過格式化,不被Unix通過文件系統來讀取的特殊塊設備文件。由應用程序負責對它進行讀寫操作。不經過文件系統的緩沖。它是不被操作系統直接管理的設備。這種設備少了操作系統這一層,I/O效率更高。不少數據庫都能通過使用裸設備作為存儲介質來提高I/O效率。 
        裸分區只能夠使用dd來進行備份

      • 使用hexdump查看/dev/sdd開頭512個字節的十六進制內容

        • 查看分區表中內容這512個信息,如果出現問題,就真的不能夠啟動系統了。
          所以最好備份,,放在別的地方,

dd if=/dev/sda of=/testdir/mbrbak bs=1 count=512
//if表示inputfile
//of表示outputfile
//bs表示每次讀取多少
//count表示讀取多少次
//skip表示inputfile跳過多少個字節,從該字節后的一個字節開始讀
//seek 表示outputfile跳過多少個字節,從該字節后第一個字節開始寫
            若是哪天這512個字節出現了問題,那么就需要使用dd命令恢復

磁盤管理 42c99528-1097-40d8-a470-6529e034b358.jpg
– 實驗:如果沒有最后的“55AA” 
– 破壞最后兩位 
磁盤管理 688a5a58-f277-4461-9448-1f214500e02f.jpg
– 之后,可以看到,和沒有分區是一樣的效果 
磁盤管理f12cfcf4-b6a3-46ca-8b8e-5c3ce55920ac.jpg

MBR分區結構

  • 4個主分區;3主分區+1擴展(N個邏輯分區)

  • MBR分區結構圖 
    磁盤管理af5ab925-74f1-4d4a-9f0a-5aec7d3c4420.png

  • 主分區 
    磁盤管理d7dca4fd-f7d7-4c7a-b5a0-caaf4a132916.png

  • 活動分區:系統開機后,會到那里找分區信息

  • 擴展分區&邏輯分區 
    磁盤管理9d66843e-327f-45e8-992f-a42cc6794ca2.png

  • 擴展分區有自己的MBR–EBR

  • 擴展分區的512個字節中,前466個字節,為了和主分區保持一致,會預留出來,不存放任何內容。

  • 擴展分區中,分區信息都放在自己的分區中。在分區開頭位置的第0扇區內。

GPT

GPT介紹

GPT(GUID partition table)支持128個分區,使用64位,支持8Z(512Byte/block)64Z(4096Byte/block)

  • 使用128位UUID表示磁盤和分區GPT分區表自動備份在頭和尾兩份,并有CRC校驗位

    • GUID和UUID

      UUID是一個由4個連字號(-)將32個字節長的字符串(32個十六進制數)分隔后生成的字符串(8-4-4-4-12),總共36個字節長。比如:550e8400-e29b-41d4-a716-446655440000 
      GUID 是微軟對UUID這個標準的實現。UUID是由開放軟件基金會(OSF)定義的。UUID還有其它各種實現,不止GUID一種。比如我們這里在Java中用到的。 
      UUID的生成:由當前系統時間+其他內容,組合生成,所以一般不會有重復

  • 隨機生成UUID 
    磁盤管理d21c6bfa-26a0-4ee7-b61e-d159dfdd6ca9.jpg

  • UEFI (統一擴展固件接口)硬件支持GPT,使操作系統啟動,否則即使配置成功,也無法使用。

  • 會自動備份超級快內容

GPT分區結構
  • GPT分區結構圖 
    磁盤管理5ef9872f-6d5d-40e0-b7b7-c6395b3016b3.jpg

  • LBA0存放Protected MBR。 
    這是因為大部分的磁盤工具不識別LBA的尋址方式,為了防止這些設備把GPT的分區給認為是裸分區,所以添加MBR信息,保證磁盤不被誤破壞。

  • LBA0之后的內容,為EFI部分。該部分包括四個組成區域:

    • EFI信息區(GPT頭)

    • 分區表

    • GPT分區

    • 備份區域

分區管理

查看塊設備文件

  • 使用lsblk查看

[root@node4 ~]# lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sr0     11:0    1   3.7G  0 rom  /media/CentOS_6.8_Final
sdb      8:16   0    20G  0 disk
 ├─sdb2   8:18   0 784.4M  0 part 
 ├─sdb3   8:19   0   1.5G  0 part 
 ├─sdb4   8:20   0     1K  0 part 
 └─sdb5   8:21   0   3.9G  0 part 
sda      8:0    0   200G  0 disk
 ├─sda1   8:1    0   200M  0 part /boot
 ├─sda2   8:2    0   100G  0 part /
 ├─sda3   8:3    0     2G  0 part [SWAP]
 ├─sda4   8:4    0     1K  0 part 
 └─sda5   8:5    0   7.7G  0 part 
sdc      8:32   0   100G  0 disk 
sdd      8:48   0    10G  0 disk
  • ls /dev/sd* (見下圖)

  • cat /proc/partitions ( 見下圖)

  • fdisk -l

    • lsblk、/dev/sd*、/proc/partitions查看的都是系統內存中的分區表

    • fdisk查看的是系統最實時的詳細分區表

    • 對于一些使用過的分區,添加或刪除分區后,需要同步到內存中,否則前三者不能夠查看到真實的分區信息。

 [root@node4 ~]# fdisk -l
  Disk /dev/sdb: 21.5 GB, 21474836480 bytes
  255 heads, 63 sectors/track, 2610 cylinders
  Units = cylinders of 16065 * 512 = 8225280 bytes
  Sector size (logical/physical): 512 bytes / 512 bytes
  I/O size (minimum/optimal): 512 bytes / 512 bytes
  Disk identifier: 0x58427b03
  
      Device Boot      Start         End      Blocks   Id  System
      /dev/sdb2             101         200      803250   83  Linux
      /dev/sdb3             201         400     1606500   83  Linux
      /dev/sdb4             401        1000     4819500    5  Extended
      /dev/sdb5             501        1000     4016218+  83  Linux

    Disk    /dev/sda: 214.7 GB, 214748364800 bytes
    255 heads, 63 sectors/track, 26108 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    
    Disk identifier: 0x000ac3f7
    Device       Boot      Start         End      Blocks   Id  System
    /dev/sda1   *           1          26      204800   83  Linux
    Partition 1 does not end on cylinder boundary.
    /dev/sda2              26       13080   104857600   83  Linux
    /dev/sda3           13080       13341     2097152   82  Linux swap/ Solaris
    /dev/sda4           13341       26108   102551934    5  Extended
    /dev/sda5           13341       14341     8033475   83  Linux
  • parted -l

[root@node4 ~]# parted -l
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sda: 215GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
 Number  Start   End    Size    Type      File system     Flags
 1      1049kB  211MB  210MB   primary   ext4            boot 
 2      211MB   108GB  107GB   primary   ext4 
 3      108GB   110GB  2147MB  primary   linux-swap(v1) 
 4      110GB   215GB  105GB   extended 
 5      110GB   118GB  8226MB  logical
 Model: VMware, VMware Virtual S (scsi)
 Disk /dev/sdb: 21.5GB
 Sector size (logical/physical): 512B/512B
 Partition Table: msdos
  Number  Start   End     Size    Type      File system  Flags
   2      823MB   1645MB  823MB   primary   ext2
   3      1645MB  3290MB  1645MB  primary
   4      3290MB  8225MB  4935MB  extended
   5      4113MB  8225MB  4113MB  logical

磁盤管理703a6850-e99e-47ba-8a8e-56d80c13300e.jpg

創建分區

fdisk

磁盤管理2e128103-11fe-4024-8ca6-80dc9ba1a61f.png磁盤管理e2dfc63c-910c-445a-801c-4d630693e5f0.png

  • 創建MBR分區,也支持GPT,對于一塊硬盤,最多只能管理15分區

  • 4個主分區;3主分區+1擴展(N個邏輯分區)

  • 使用方法:

    • 修改分區表 fdisk [options]

    • 列出分區表 fdisk [options] -l

    • 定義塊大小 fdisk -s

  • 選項

選項 釋義 備注
-b sector size (512, 1024, 2048 or 4096)
-c switch off DOS-compatible mode 在7中,使用“-c[=mode]”,mode: ‘dos’ or ‘nondos’ (default)
-u 使用扇區(sector)而不是柱面(cylinder) 在7中,使用“-u[=]”,units: ‘cylinders’ or ‘sectors’ (default)
-v 打印版本信息
-C 指定柱面數量
-H 指定磁頭數量
-S specify the number of sectors per track

gdisk

  • 創建GPT分區,分區數量無需擔心(數量巨大,因為是基于UUID的)

  • 使用方法類fdisk

parted

  • 高級分區操作(創建、復制、調整大小等等)程序

  • 支持DOC也支持GPT

parted詳解
  • 格式:

parted [options] [device [command [options...]...]]

-[options]

  • [device]:如果需要,但是沒有指定,默認第一個parted找到的分區

  • [command [options…]

命令 釋義 英文
檢查 MINOR 對文件系統進行一個簡單的檢查
cp [FROM-DEVICE] FROM-MINOR TO-MINOR 將文件系統復制到另一個分區
help [COMMAND] 打印通用求助信息,或關于 COMMAND 的信息
(常用)mklabel 標簽類型 創建新的磁盤標簽 (分區表)
(常用)mkfs num 文件系統類型 在 num 創建類型為“文件系統類型”的文件系統
(常用)mkpart 分區類型 [文件系統類型] 起始點 終止點 創建一個分區
(常用)mkpartfs 分區類型 文件系統類型 起始點 終止點 創建一個帶有文件系統的分區
move num 起始點 終止點 移動編號為num 的分區
name num 名稱 將編號為 num 的分區命名為“名稱”
(常用)print [num] 打印分區表,或者分區
(常用)quit 退出程序
rescue 起始點 終止點 挽救臨近“起始點”、“終止點”的遺失的分區
(常用)resize num起始點 終止點 改變位于編號為 num 的分區中文件系統的大小
(常用)rm num 刪除編號為num的分區
select 設備 選擇要編輯的設備
set num 標志 狀態 改變編號為num 的分區的標志
parted 實用命令
  • 更改分區類型:parted /dev/sdb mklabel gpt|msdos

    • 可以對未使用的分區更改分區格式

    • 已分區,但是未使用的分區,更改分區格式后,原來的分區會失效(消失)

    • msdos分區,使用“parted /dev/sdb mklabel msdos”設置分區類型后,查看,顯示“dos”

      • partition table部分(使用parted print)9a76258a-234c-4ea4-ac3c-3e1cc1a0a4e0.png

      • Disk label type(fdisk -l)

        4ea0b97a-a85d-4d72-9b86-b9b9fa99708d.jpg

[root@node4 ~]# parted /dev/sdd mklabel gpt
Information: You may need to update /etc/fstab. 
                           
[root@node4 ~]# parted /dev/sdd print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdd: 10.7GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
 Number  Start  End  Size  File system  Name  Flags

磁盤管理

  • 打印分區詳情:parted /dev/sdb print

[root@node4 ~]# parted /dev/sda print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sda: 215GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
 Number  Start   End    Size    Type      File system     Flags
  1      1049kB  211MB  210MB   primary   ext4            boot
  2      211MB   108GB  107GB   primary   ext4 
  3      108GB   110GB  2147MB  primary   linux-swap(v1) 
  4      110GB   215GB  105GB   extended 
  5      110GB   118GB  8226MB  logical
  • 新建分區:parted /dev/sdb mkpart primary 1 200(默認單位M)

    • 新建分區可以跳著分: 
      磁盤管理 6ca769c3-3fcb-483b-b5e8-9a253b2caf14.jpg
      磁盤管理83b2ded8-60ad-4a16-9ff0-fabd4f7bd63d.jpg

[root@node4 ~]# parted /dev/sdd mkpart primary 1 1024
Information: You may need to update /etc/fstab.                       
     
[root@node4 ~]# parted /dev/sdd print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdd: 10.7GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

 Number  Start   End     Size    File system  Name     Flags 
 1      1049kB  1024MB  1023MB            primary
  • 刪除分區:parted /dev/sdb rm 1

  • 列出所有分區:parted -l

分區更多細節

  • 如果主分區中,4個分區都分配完成后,刪除了分區2,分區1和分區3都不會發生變化,這和邏輯分區不同。

    • 這樣容易導致磁盤浪費

  • 如果刪除的是擴展分區中的分區,刪除后,后面的分區會將原來的分區號覆蓋掉(這可能是與邏輯分區的MBR存儲方式有關系,也說明,擴展分區的分區名,并不是存儲在擴展分區中的,可能是存儲在前面的主分區中的。) 
    磁盤管理ffe72e36-71fa-4fa6-82ee-44127cf19d0c.jpg

  • 設備名與UUID之間,在寫腳本的時候,最好使用UUID,因為UUID不會重復。設備名,在寫腳本的時候最好備用,如上,如果刪除了邏輯分區5之后,6會自動覆蓋為邏輯分區5。如果腳本中使用邏輯分區5這個設備名,就會導致錯誤。

  • 分區如果不連續,會報warning出來。 
    磁盤管理81f6740b-3eee-4cd7-bea8-aceb7bc419f5.jpg

  • 使用命令操作分區的時候,分區不要寫成:fdisk /dev/sdc3這種的要寫成:fdisk /dev/sdc。因為/dev/sdc3已經是分區了,在分區,就會亂

同步分區

  • 修改后查看內存中是否識別新的分區,使用lsblk或者是查看/dev/sd*,或者是查看/proc/partitions中。

  • lsblk、/dev/sd*、/proc/partitions都是查看的內存中的分區結構

  • fdisk和parted查看的是硬盤真實的分區情況

  • 同步是指:通知內核重新讀取硬盤分區表新增分區或者刪除分區

  • 不要又增加了,又刪除了,再去同步 
    – 每次增加操作完成后,就進行同步,每次刪除操作完后,就進行同步

新增分區操作的同步

  • partx -a -n M:N /dev/DEVICE

    • 該命令的-n和–nr(指定同步到內存中的添加的設備名),并不好用 
      d05ec62d-9c9b-418a-ad94-a7432035476c.png磁盤管理 
      磁盤管理
      磁盤管理a5c92d24-b051-4c17-a626-71e04849f81e.png

      0f3ae168-f7ee-4d53-bbb9-268af7d916c0.png

  • kpartx -a /dev/DEVICE -f: force

刪除分區操作的同步

  • 命令:partx -d -n M:N /dev/DEVICE

    • centos6 : –nr N-M

  • 命令:partprobe

    • CentOS 5,7:使用

    • partprobe用法:partprobe [/dev/DEVICE]

實驗 dd

0扇區前512字節刪除與恢復總結

掃描磁盤
echo "- - -" > /sys/class/scsi_host/host2/scan
lsblk 
ls /dev/sd

*查看分區
fdisk -l /dev/sda

查看mbr
hexdump  -C -n 512 /dev/sda

備份mbr
dd if=/dev/sda of=/testdir/mbrbak bs=1 count=512
hexdump  -C -v /testdir/mbrbak 
 
恢復mbr
dd if=/testdir/mbrbak  of=/dev/sdd 
fdisk /dev/sdd -l
lsblk
hexdump  -C -n 512 /dev/sdd

破壞boot loader
dd if=/dev/zero of=/dev/sdd bs=1 count=446
hexdump  -C -v -n 512 /dev/sdd

清除分區標識
dd if=/dev/zero of=/dev/sdd bs=1 count=2 skip=510 seek=510 
hexdump  -C -v -n 512 /dev/sddfdisk -l /dev/sdd

恢復分區標識
dd if=/testdir/mbrbak  of=/dev/sdd bs=1 count=2 skip=510 seek=510

恢復分區表
dd if=/dev/zero  of=/dev/sdd bs=1 count=64 skip=446  seek=446
hexdump  -C -v -n 512 /dev/sdd

原創文章,作者:m20-吳清玲,如若轉載,請注明出處:http://www.www58058.com/42097

(0)
m20-吳清玲m20-吳清玲
上一篇 2016-09-01
下一篇 2016-09-01

相關推薦

  • LVS的四種模型

    相關術語: vs:Virtual Server,Director,Dispatcher,Balancer rs:Real Server,upstream server,backend server lvs集群的類型: lvs-nat:修改請求報文的目標IP lvs-dr:操作封裝新的MAC地址; lvs-tun:在原請求IP報文之外新加一個IP首部; lvs…

    Linux干貨 2016-10-30
  • liunx的哲學思想

     Linux哲學思想 *一切皆文件(硬件、目錄、普通文件、二進制文件等。) *小型,單一用途的程序 *鏈接程序,共同完成復雜的任務 *避免令人困惑的用戶界面 *配置數據存儲在文本中 解釋:一切皆文件:是 Unix/Linux 的基本哲學之一。不僅普通的文件,目錄、字符設備、塊設備、 套接字等在 Unix/Linux 中都是以文件被對待;它們雖然類型…

    Linux干貨 2017-07-15
  • linux基礎學習第七天-正則表達式及grep

    2016-08-04 授課內容: 各種文本工具來查看、分析、統計文本文件(more、less、cat、cut、sort、wc、uniq、head、tail、paste、diff) grep 正則表達式 擴展正則表達式 【】所有的文本查看、分析、統計等都是只是更改標準輸出的顯示方式,對原文件內容并沒有更改 cat [OPTION]… [FILE]&…

    Linux干貨 2016-08-07
  • Linux硬鏈接和軟鏈接的區別

    一.Linux鏈接概念 Linux鏈接分兩種,一種被稱為硬鏈接(Hard Link),另一種被稱為符號鏈接(Symbolic Link)。默認情況下,ln命令產生硬鏈接。 【硬連接】 硬連接指通過索引節點來進行連接。在Linux的文件系統中,保存在磁盤分區中的文件不管是什么類型都給它分配一個編號,稱為索引節點號(Inode Index)。在Linux中,多個…

    Linux干貨 2016-10-29
  • 馬哥教育網絡班22期+第一周課程練習

    1、描述計算機的組成及其功能。 計算機由硬件系統、操作系統和應用軟件所組成,沒有安裝任何軟件的計算機稱為裸機。 1.1、硬件系統由運算器、控制器、存儲器、輸入設備和輸出設備五大部分組成,遵循馮、諾依曼原理。 控制器:讀取分析指令,向其它部分發出控制信號,保證計算機按照預先規定的目標和步驟有條不紊地進行操作及處理。  運算器:對數據進行各種運算,例如…

    Linux干貨 2016-08-22
  • 到處都是Unix的胎記

    一說起Unix編程,不必多說,最著名的系統調用就是fork,pipe,exec,kill或是socket了(fork(2),execve(2), pipe(2), socketpair(2), select(2), kill(2), sigaction(2))這些系統調用都像是Unix編程的胎記或簽名一樣,表…

    Linux干貨 2015-04-03
欧美性久久久久