?? 1.html
字號:
在該文件中開始部分是安裝各個操作系統(tǒng)總的配置信息,后面是各個操作系統(tǒng)的配置信息。修改該文件為:<p>boot=/dev/hda<br>map=/boot/map<br>install=/boot/boot.b<br>prompt<br>timeout=180<br>message=/boot/message<br>linear<br>default=dos<p>image=/boot/vmlinuz-2.4.2-2<br> label=linux<br> read-only<br> root=/dev/hda7<p>image=/boot/vmlinuz.new<br>label=lfyos<br>read-only<br>root=/dev/hda7<p>other=/dev/hda1<br> optional<br> label=dos<p> 中間部分為加入的內(nèi)容,也就是虛擬地址空間基于文件操作系統(tǒng)的啟動信息,操作系統(tǒng)的啟動文件為/boot/vmlinux.new,名稱為lfyos,只讀安裝,安裝設(shè)備為/dev/hda7。不同的系統(tǒng)安裝設(shè)備可能不同,只需要把安裝設(shè)備設(shè)置成和linux操作系統(tǒng)相同安裝設(shè)備即可。<p> ·vii.確定安裝虛擬地址空間基于文件操作系統(tǒng)源文件和目標(biāo)文件的目錄,進(jìn)入該目錄(在我們的實現(xiàn)中,源文件和目標(biāo)文件安裝在目錄/root下的os目錄中),因此利用命令cd /root進(jìn)入目錄/root,把虛擬地址空間基于文件操作系統(tǒng)源文件的壓縮文件os.tar拷貝到該目錄下。<p> ·viii.執(zhí)行命令tar –xvf os.tar ,把源文件的壓縮文件解壓,該命令將在/root目錄下生成一個子目錄os,生成虛擬地址空間基于文件操作系統(tǒng)的源文件將全部解壓到該子目錄下。<p> ·ix.進(jìn)入/root/os目錄,編輯該目錄下的makefile文件,在該文件的第一行為<br> VERSION=linux-2.4.2<br>變量VERSION 中存放LINUX內(nèi)核的版本號,如果你安裝的LINUX內(nèi)核的版本不是2.4.2,修改為相應(yīng)的版本號。<p> ·x.執(zhí)行命令make。該命令執(zhí)行完畢后,虛擬地址空間基于文件操作系統(tǒng)就已經(jīng)成功的安裝到你的系統(tǒng)。<p> ·xi.重新啟動系統(tǒng),選擇啟動的操作系統(tǒng),將發(fā)現(xiàn)可以選擇的操作系統(tǒng)中包括lfyos,這就是安裝的虛擬地址空間基于文件操作系統(tǒng)。選擇并啟動該操作系統(tǒng),虛擬地址空間基于文件操作系統(tǒng)即開始運行。<p><p><center><A HREF="#Content">[目錄]</A></center><hr><br><A NAME="I504" ID="I504"></A><center><b><font size=+2>數(shù)據(jù)結(jié)構(gòu)</font></b></center><br><center><A HREF="#Content">[目錄]</A></center><hr><br><A NAME="I505" ID="I505"></A><center><b><font size=+2>內(nèi)核</font></b></center><br>1、文件kernel/arch.h<br>#ifndef OS_KERNEL_ARCH<br>#define OS_KERNEL_ARCH<p>#define DEFAULT_CS (0x23)<br>#define DEFAULT_DS (0x2b)<br>#define DEFAULT_ES DEFAULT_DS<br>#define DEFAULT_FS DEFAULT_DS<br>#define DEFAULT_GS DEFAULT_DS<br>#define DEFAULT_SS DEFAULT_DS<br>#define DEFAULT_SP (0xc0001ffc)<br>#define DEFAULT_SP_0 (0xc0000ffc)<p>typedef struct{<br> void (*ip)(void );<br> int cs;<br> int flag;<br> char *sp;<br> int ss;<br> int ds,es,fs,gs;<br> char *sp_0;<br> int (*function)(void );<br> int cr2[CR2_BUF_NUMBER];<br>}run_point;<p>#endif<p>2、文件kernel/capability.h<br>#ifndef OS_KERNEL_CAPABILITY<br>#define OS_KERNEL_CAPABILITY<p>struct capability {<br> int c1,c2,c3,c4;<br>};<p>#endif<p>3、文件kernel/process.h<br>#ifndef OS_PROCESS_STRUCT<br>#define OS_PROCESS_STRUCT<p>struct thread_physical_block {<br> int stack_memory_id,stack_block_id;<br> int memory_id,block_id;<br>};<p><br>struct network_address{<br> int a;<br>};<p><br>struct file{<br> struct{<br> struct network_address network_node;<br> int server_processor,server_process,file_handler;<br> }file;<br> struct{<br> int processor,process;<br> }proxy;<br> int memory_process,open_window_id;<br> int window_base_1,window_base_2,window_length,right;<br> struct capability capability;<br> int read_in_flag,swap_out_flag;<br>};<p>union file_system_operation_parameter{<br> struct {<br> int begin_rw,end_rw;<br> }read_write;<br>};<p>struct file_system_call_parameter {<br> int command,sleep_semaphore;<br> struct file file;<br> struct thread_physical_block block;<br> union file_system_operation_parameter parameter;<br>};<p>#define OPEN_FILE 0<br>#define CLOSE_FILE 1<br>#define READ_FILE 2<br>#define WRITE_FILE 3<br>#define OPERATE_FILE 4<p>struct process{<br> run_point start_point;<br> int (*driver)(struct file_system_call_parameter *par);<br> int priority;<br> int semaphore;<br> int enter_thread_number,id;<br> int max_thread_number,thread_number,thread_ring;<br> int max_semaphore_number,semaphore_number,semaphore_ring;<br> struct user_file_information file[USER_FILE_NUMBER];<br> struct capability capability;<br>};<p>#endif<br>4、文件kernel/kernel_struct.h<br>#ifndef OS_KERNEL_STRUCT<br>#define OS_KERNEL_STRUCT<p>struct semaphore{<br> int value;<br>
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -