Merge branch 'sata-ahci-dev'
[lunaix-os.git] / docs / README_en.md
index f00eac08b9ae6c662b7f9b050411e829b82bd670..b853e0eb11896a149e91cf65fc1c55990d13b137 100644 (file)
@@ -13,7 +13,7 @@ LunaixOS - A simple (yet naive), POSIX-complaint (hopefully!), operating system
 
 This operating system is a macro-kernel, has its root in Intel's x86 platform and its ecosystem. It runs in protected mode and uses 4GiB addressing with two-level paging mechanism. It does not have x86_64 variant and does not support multi-core machine. 
 
-The memory is split into two parts, that is, 3GiB for user space (0x400000 ~ 0xBFFFFFFF) and 1GiB for kernel space (0xC0000000 ~ 0xFFFFFFFF). Such paradigm is a common practicing found in major operating systems, for example x86_32 version of Linux and Windows. For a more detailed arrangement of memory in LunaixOS, please refer to [LunaixOS Virtual Memory Mappings](docs/img/lunaix-os-mem.png).
+The virtual address space is divided into two parts, that is, 3GiB for user space (0x400000 ~ 0xBFFFFFFF) and 1GiB for kernel space (0xC0000000 ~ 0xFFFFFFFF). Such paradigm is a common practicing found in major operating systems, for example x86_32 version of Linux and Windows. For a more detailed arrangement of memory in LunaixOS, please refer to [LunaixOS Virtual Memory Mappings](img/lunaix-os-mem.png).
 
 
 The following list presents all features it does have in current stage.
@@ -25,17 +25,20 @@ The following list presents all features it does have in current stage.
 + Memory management & demand paging
 + PS/2 Keyboard support
 + Muti-tasking and task management
-+ 15 commonly used POSIX syscall([See Appendix 1](#appendix1))
++ 17 commonly used POSIX syscall([See Appendix 1](#appendix1))
 + User Space
 + Signal
++ PCI 3.0
++ PCIe 1.1 (WIP)
++ Serial ATA AHCI (WIP)
 
 ## Project Structure
 
 | | |
 |-----|------|
-| [lunaix-os](lunaix-os/) | LunaixOS source code |
-| [slides](slides/) | Slides used in my videos |
-| [reference-material](reference-material/)| References |
+| [lunaix-os](../lunaix-os/) | LunaixOS source code |
+| [slides](../slides/) | Slides used in my videos |
+| [reference-material](../reference-material/)| References |
 
 ## Referenced Tutorial
 
@@ -43,7 +46,7 @@ The following list presents all features it does have in current stage.
 
 Thus, the author has devoted large amount of time to go through any related materials such as technical references, manuals, textbooks, and industrial standards. To further ensure the technology used and knowledge taught is up-to-date and is coming "straight from the factory".
 
-You can find most of aforementioned materials in [reference-material](reference-material/).
+You can find most of aforementioned materials in [reference-material](../reference-material/).
 
 The following list also enumerated such materials the author has used:
 
@@ -55,6 +58,13 @@ The following list also enumerated such materials the author has used:
 + 82093AA I/O Advanced Programmable Controller (IOAPIC) (Datasheet)
 + MC146818A (Datasheet)
 + Intel 500 Series Chipset Family Platform Controller Hub (Datasheet - Volume 2)
++ PCI Local Bus Specification, Revision 3.0
++ PCI Express Base Specification, Revision 1.1
++ PCI Firmware Specification, Revision 3.0
++ Serial ATA - Advanced Host Controller Interface (AHCI), Revision 1.3.1
++ Serial ATA: HIgh Speed Serialized AT Attachment, Revision 3.2
+
+**DISCLAIMER: All rights of PCI-related specification is reserved by PCI-SIG. It is provided ONLY for learning purpose. Any commercial use should purchase a copy from PCI-SIG**
 
 #### Textbook
 + *Computer System - A Programmer's Perspective Third Edition* (Bryant, R & O'Hallaron, D), a.k.a. CS:APP
@@ -65,6 +75,7 @@ The following list also enumerated such materials the author has used:
 + [OSDev](https://wiki.osdev.org/Main_Page) - For material gathering.
 + [FreeVGA](http://www.osdever.net/FreeVGA/home.htm) - For VGA references.
 + GNU CC & LD online documentation.
++ [PCI Lookup](https://www.pcilookup.com/) - For device look up
 
 #### Others
 + Linux Manual - For learning the system call behavior on real machine.
@@ -88,6 +99,8 @@ The following list also enumerated such materials the author has used:
 1. `sigprocmask(2)`
 1. `signal(2)`
 1. `kill(2)`
+1. `sigpending(2)`
+1. `sigsuspend(2)`
 
 ### Unique to LunaixOS