public static void Initialize(ref Arch.BootParam param) { BootParam = param; PageAllocator = new FreeListPageAllocator(); PageAllocator.Initialize(param.MainMemoryStart, param.MainMemorySize >> Arch.ArchDefinition.PageShift); CompletionQueueAllocator = new FreeListPageAllocator(); CompletionQueueAllocator.Initialize(param.CompletionQueueBase, param.CompletionQueueSize >> Arch.ArchDefinition.PageShift); Threads = ThreadList.CreateSentinal(); FutexLists = FutexCompletionEntry.CreateSentinal(); TimeoutQueue = new TimerQueue(); SecurityManager = new SecurityManager(); LinuxMemoryAllocator = new LinuxMemoryAllocator(); CapabilityManager = new CapabilityManager(); CompletionQueue = new CompletionQueue(); SecureFS.Initialize(Util.StringToByteArray("ExpressOS-security", false)); ReadBufferUnmarshaler.Initialize(); }