-# The LunaixOS Project
-
-LunaixOS - 一个简单的,详细的,POSIX兼容的(但愿!),带有浓重个人风格的操作系统,由 Lunaix 内核驱动。开发过程以视频教程形式在Bilibili呈现:[《从零开始自制操作系统系列》](https://space.bilibili.com/12995787/channel/collectiondetail?sid=196337)。
-
-## 1. 一些实用资源
-
-如果有意研读 Lunaix 内核代码和其中的设计,或欲开始属于自己的OS开发之道,以下资料可能会对此有用。
-
-+ [LunaixOS源代码分析教程](docs/tutorial/0-教程介绍和环境搭建.md)
-+ 内核虚拟内存的详细布局
- + [x86_32](docs/img/lunaix-mem-map/lunaix-mem-x86_32.png)
- + [x86_64](docs/img/lunaix-mem-map/lunaix-mem-x86_64.png)
-+ [LunaixOS启动流程概览](docs/img/boot_sequence.jpeg)
-+ LunaixOS总体架构概览(WIP)
-+ [作者修改的QEMU](https://github.com/Minep/qemu) (添加了一些额外用于调试的功能)
-
-## 2. 当前进度以及支持的功能
-
-Lunaix内核具有支持多种不同的指令集架构的能力,目前支持如下:
-
-+ x86_32
-+ x86_64
-
-Lunaix全部特性一览:
-
-+ 使用Multiboot进行引导启动
- + Multiboot 1
- + Multiboot 2 (WIP)
-+ APIC/IOAPIC作为中断管理器和计时器
-+ ACPI
-+ 虚拟内存
- + 架构中性设计
- + 按需分页
- + Copy-on-Write
-+ 内存管理
-+ 进程模型
-+ 61个常见的Linux/POSIX系统调用([附录1](#appendix1))
-+ 用户/内核态隔离
-+ 信号机制
-+ PCI 3.0
-+ PCIe 1.1 (WIP)
-+ 块设备IO与驱动
- + 块IO通用缓存池
+# The Lunaix Project
+
+The Lunaix, LunaixOS, or Lunaix kernel to be exact, is a multi-architectural general purpose kernel written from scratch by the author *independently*. It is the author's years-long personal endeavor and also a challenge to oneself for writing a functioning kernel **without** any external reference such as existing implementations, tutorials and books (with code) on kernel design. As a result, this project is a manifestation of the author's own research and understanding on the board topic of operating system design and implementation.
+
+## Introduction
+
+The overall design of lunaix is aimed to be modern and POSIX-compliance. In a nutshell, Lunaix is:
+
++ fully-preemptive
++ modular design with configurable components at compile-time and extendable subsystems
++ high-performance by utilising advanced caching techniques and infrastructure.
++ fault-tolerance with sophisticated builtin error handling and tracing techniques.
++ robust in nature with techniques such as proactive deadlock detection and driver isolation mechanism.
+
+The author has put a significant amount of time on devising better abstractions, advance kernel features and various optimisation techniques. To give a better understanding (and appreciation) of the works being done, the following non-exhaust list has been compiled with features that are currently supported in lunaix:
+
++ Multi-ISA
+ + x86_32
+ + x86_64
+ + Aarch64 (W.I.P)
++ Boot protocol
+ + abstraction for different protocol
+ + configurable kernel boot-time parameters
++ Platform resource management and definition
+ + ACPI
+ + Devicetree
++ Memory management
+ + architecture-neutral abstraction
+ + on-demand paging
+ + copy-on-write and page sharing
+ + compound page support
+ + explicit huge page support (sorry, not THP!)
+ + reverse mapping indexing (rmap)
+ + memory compaction (W.I.P)
+ + slab-alike object allocator
+ + highmem support
+ + remote address space accessing
++ Multi-tasking
+ + Protection level and process image isolation
+ + Native threading support (no more lightweight process nonsense)
+ + Signal mechanism
+ + Kernel level multi-tasking (i.e. kernel threads)
+ + Round-robin scheduling (for now)
+ + Preemptive kernel design
+ + taskfs: file system interface to process and threads
++ File system
+ + virtual file system framework
+ + ...with POSIX compliant interfaces
+ + file system mounting mechanism
+ + page cache for file IO
+ + node cache for vfs structure representation.
+ + ext2 (rev.0, rev.1)
+ + iso9660 (rock-ridge)
+ + twifs: file system interface to kernel states.
++ Device management and interrupt handling
+ + architecture-neutral design
+ + generalised driver framework
+ + generalised irq framework
+ + driver modularisation design
+ + support asynchronous device model
+ + devfs: file system interface to device subsystem
++ Block I/O (blkio)
+ + generalised block IO interface and encapsulation
+ + blkio packets caching
+ + asynchronous blkio operation in nature
++ Serial I/O
+ + POSIX-compliant serial port model
+ + serial device driver framework (part of driver framework)
++ Caching Infrastructure
+ + primitive: generic sparse associative array (spatial data)
+ + LRU replacement policy and pooling
+ + kernel daemon for scheduled cache eviction
++ Error handling and detection
+ + stack back-tracing with symbol resolution
+ + nested exception unfolding
+ + CPU state dumping
+ + Deadlock/hung-up detection
+
+For the device drivers that are currently support see below:
+
++ Arhcitecture Neutral
+ + UART 16650-compatible driver