Feral是一個單片的內核,就像一個小型業餘愛好項目,可以從頭開始構建一個完整的操作系統,即使這很慢。
野性旨在在具有相當兼容的BIOS的最新PC系統上運行。目前,儘管港口正在進行中,但野性不支持UEFI。
目前,野性在傳統的PC兼容微型計算機中存在兩個8259a圖片的存在。在Modern Micros上,您的南橋(例如X399或X470)可能具有兼容性。將來,Feral打算繼續利用較新的處理器功能,例如APIC,最終是Xapic和X2APIC。此外,野性將支持對稱的多處理。
目前,正在測試的硬件包括帶4“ X4”主板的PC和一個帶有4GB RAM的N3700 CPU(“ Braswell”),帶有2500U的17z筆記本電腦(前面提到的Zen 1),將來,X5-Z8350,帶有2GB的RAM(“ Cherry Trail”)。
將來,Feral旨在在Aarch64(BCM2711),Power(SFORZA)和RV64GC(U540)硬件上運行,其中端口以該順序寫入某個位置。
在建築上,Feral是一個簡單的整體內核,在建築上與Mach和Plan 9具有許多相似之處,尤其是後者。野性更喜歡將大多數功能放入驅動程序中,而不是直接烘烤到內核本身,以提高靈活性,並將資源視為網絡位置和插座,以更好地反映現代過程和存儲的工作方式。
例如,要打開文件,一個人查詢文件服務器,該文件是由內核擁有的過程,該過程打開了接受傳入流量的套接字。然後,它可以根據插座打開的方式來讀取或寫入或寫入。
主要思想是將微動物的模塊化和靈活性嫁接到傳統的整體內核體系結構中,犧牲執行諸如重新啟動文件系統驅動程序之類的能力,同時保留諸如清潔架構,驅動器分層和多個驅動程序提供者之類的好處。
野性是為我創造的,以了解有關操作系統設計的更多信息,同時又偏離了傳統的“ Make Make *Nix克隆”的方式:這並沒有錯,但是我想探索將硬件和系統功能公開為程序的不同方法,除了僅在某個地方製作文件外。此外,我想探索新的操作系統與傳統系統的不同,同時易於將現有軟件移植到傳統系統。
儘管此圖像已過時,但由於其中一些子系統應該被吸收到內核中,因此在大多數情況下,這對於目的是準確的: 
野性現在使用cmake構建。對於X86_64構建的常見情況,包括一個實用程序腳本和vm_test.sh中的QEMU,以及在vm_test_gdb.sh中啟用的GDB存根。
對於手動構建,您必須將clang用作C編譯器。對於沒有EFI支持的X86-64-PC目標,您可以使用-DCMAKE_TOOLCHAIN_FILE=cmake/x86_64-pc.cmake parameter。這將構建適合“ Feralker”的內核,並且需要一些其他步驟來創建可引導的ISO文件。有關詳細信息,請參見vm_test.sh文件。
野性應在實施X86-64指令集(即至少K8 CPU)和至少1GB的系統內存的任何PC上舒適地運行。將來將降低此內存需求,但是目前需要在設置內核時使事情變得容易一些。
Feral希望PC存在與VGA兼容的顯示適配器。因此,您需要某種形式的視頻適配器,才能在VGA模式下運行。大多數消費級CPU和GPU至少在其GPU中實現了這一點。
目前,野性僅在Zen 1 1950x頂部的虛擬機上進行測試,以及少數較小的Zen 1機器。這可能是野性在其他硬件上運行良好,但沒有進行測試。
應該以避免不必要的字符(即“ Inc” vs'Include'的方式命名文件夾。同樣,對於給定的模塊,文件夾名稱應反映前綴,以便內存管理在“ MM”中,並且對像管理在“ OB”中,等等。
在模塊之間應導出功能,通常應具有(子系統)(函數 - 孔)(可選 - argument-type)的命名約定,例如“ KestartProcessor”。當該函數是特定於架構的時,則應將其與其屬於的體系結構進行前綴,例如“ AARCH64STARTPAGGING()”或“ X86SETUPIDT()”。有關更多詳細信息,請參見格式
此外,功能應使用宏中的宏來清楚地標識一個函數對參數的作用。這些宏一無所獲,只能在那裡提供幫助。
輕量級核心內核。驅動程序中的大部分功能。與Libos交流的過程(Syscalls轉到一張內核表,該表告訴Libos司機這是被調用的。)
駕駛員處理系統調用,以允許運行“外國”程序未修改,例如GCC的GNU Mach版本,或者在火星上設置的每個人都喜歡的DOS遊戲。
穩定,內核ABI。第三方司機應在較小的修訂中工作。使用PNEXT指針進行任何嚴重更改。
包括穩定的版本控製文件系統,因此意外的deltree不會永遠刪除所有內容。假設用戶不進行備份。
(最終)為GPU的“ Vega”和“ Navi”家族創建完全符合Vulkan的驅動程序。
支持X86-64虛擬化擴展(“ Pacifica”)。
諸如Chroot監獄或容器之類的東西,以使野性對服務器操作有用。
有一天可以使用一些有趣的事情?