Linux MBR (Master Boot Record) ialah rekod but khas yang disimpan di sektor pertama cakera keras dan digunakan untuk memulakan komputer dan memuatkan sistem pengendalian. Memahami keupayaan MBR Linux adalah penting untuk pemahaman yang mendalam tentang proses but komputer dan proses pemuatan sistem pengendalian. Artikel ini akan memperkenalkan fungsi MBR Linux dan menyediakan contoh kod khusus untuk membantu pembaca memahami dengan lebih baik.
Linux MBR mengandungi dua bahagian maklumat: kod but utama dan jadual partition. Kod but induk ialah program kecil yang memulakan proses but dan memindahkan kawalan ke program but sistem pengendalian. Jadual partition merekodkan maklumat partition cakera keras, termasuk kedudukan permulaan, saiz dan jenis partition setiap partition.
1. Mulakan komputer
Apabila komputer dihidupkan, BIOS akan memuatkan sektor pertama pada cakera keras (iaitu Linux MBR) dan melaksanakan kod but di dalamnya . Kod but memulakan persekitaran sistem dan memuatkan program but sistem pengendalian.
2. Muatkan sistem pengendalian
Linux MBR akan membaca maklumat jadual partition dan mencari partition di mana sistem pengendalian terletak berdasarkan maklumat partition yang direkodkan di dalamnya, dan memberi kawalan kepada program boot dalam partition ( seperti GRUB atau LILO). Program but akan terus memuatkan kernel dan sistem fail sistem pengendalian, dan akhirnya menyelesaikan proses permulaan sistem.
Berikut ialah contoh kod ringkas yang menunjukkan cara membaca maklumat jadual partition dalam Linux MBR:
#include <stdio.h> #include <unistd.h> #include <fcntl.h> #define SECTOR_SIZE 512 #define PARTITION_TABLE_OFFSET 446 #define PARTITION_TABLE_ENTRY_SIZE 16 int main() { int fd = open("/dev/sda", O_RDONLY); if (fd == -1) { perror("open"); return 1; } unsigned char mbr[SECTOR_SIZE]; if (read(fd, mbr, SECTOR_SIZE) != SECTOR_SIZE) { perror("read"); close(fd); return 1; } unsigned char* partitionTable = mbr + PARTITION_TABLE_OFFSET; for (int i = 0; i < 4; i++) { printf("Partition %d: ", i+1); printf("Status: %02x ", partitionTable[i*PARTITION_TABLE_ENTRY_SIZE]); // 输出更多分区信息,如起始位置、分区类型等 } close(fd); return 0; }
Kod di atas membaca sektor pertama cakera keras dengan membuka peranti cakera keras fail/dev/sda
(iaitu Linux MBR) dan huraikan maklumat jadual partition di dalamnya. Pembaca boleh memanjangkan kod mengikut keperluan mereka sendiri dan mengeluarkan lebih banyak maklumat partition.
Dengan mempunyai pemahaman yang mendalam tentang fungsi Linux MBR dan menggabungkannya dengan contoh kod tertentu, pembaca boleh lebih memahami proses but komputer dan proses pemuatan sistem pengendalian. Saya berharap artikel ini dapat membantu pembaca mendalami pemahaman mereka tentang Linux MBR dan memperoleh pemahaman yang lebih mendalam tentang sistem komputer.
Atas ialah kandungan terperinci Terokai peranan Linux MBR. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!