X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/97626136c186f33306ee477490f5de13f86227bf..38965e3e83ba1b03c9c9a0f14cce85c1d0cd8fd8:/README.md diff --git a/README.md b/README.md index c1e54ee..d2664f6 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,102 @@ +
+
+
+ ç®ä½ä¸æ | English +
+ # LunaixOS Project +LunaixOS - ä¸ä¸ªç®åçï¼è¯¦ç»çï¼POSIXå ¼å®¹çï¼ä½æ¿ï¼ï¼ï¼å¸¦ææµéä¸ªäººé£æ ¼çæä½ç³»ç»ãå¼åè¿ç¨ä»¥è§é¢æç¨å½¢å¼å¨Bilibiliåç°ï¼[ãä»é¶å¼å§èªå¶æä½ç³»ç»ç³»åã](https://space.bilibili.com/12995787/channel/collectiondetail?sid=196337)ã + +## å½åè¿åº¦ä»¥åæ¯æçåè½ + +该æä½ç³»ç»æ¯æx86æ¶æï¼è¿è¡å¨ä¿æ¤æ¨¡å¼ä¸ï¼éç¨å®å æ ¸æ¶æï¼ç®åä» æ¯æåæ ¸å¿ãå åç»æéç¨ç»å ¸ç3:1ååï¼å³ä½3GiBä¸ºç¨æ·å°å空é´ï¼0x400000 ~ 0xBFFFFFFFï¼ï¼å æ ¸å°å空é´éæ å°è³é«1GiBï¼0xC0000000 ~ 0xFFFFFFFFï¼ãå åç详ç»å¸å±å¯åè[LunaixOSå åå°å¾](docs/img/lunaix-os-mem.png) + +å¨ä¸è¿°å表ä¸ï¼åååºç®åææ¯æçæç¨åè½åç¹æ§ãå表项æç §é¡¹ç®æ¶é´æ³è¿è¡ååºæåã + ++ 使ç¨Multibootè¿è¡å¼å¯¼å¯å¨ ++ APIC/IOAPICä½ä¸ºä¸æç®¡çå¨å计æ¶å¨ ++ ACPI ++ èæå å ++ å å管ç䏿éå页ï¼Demand Pagingï¼ ++ é®çè¾å ¥ ++ å¤è¿ç¨ ++ 17个常è§çLinux/POSIXç³»ç»è°ç¨ï¼[éå½1](#appendix1)ï¼ ++ ç¨æ·æ¨¡å¼ ++ ä¿¡å·æºå¶ ++ PCI 3.0 ++ PCIe 1.1 (WIP) + +## ç®å½ç»æ + +| | | +|-----|------| +| [lunaix-os](lunaix-os/) | LunaixOSæºä»£ç | +| [slides](slides/) | è§é¢ä¸æç¨çå¹»ç¯çåè¡¥å ææ | +| [reference-material](reference-material/)| æ åï¼ææ¯ææ¡£ååèæç® | + +## åèæç¨ + +**没æï¼ï¼** æ¬æç¨ä»¥å该æä½ç³»ç»å为ååï¼æ²¡æåºäºä»»ä½å¸é¢ä¸ç°è¡çæä½ç³»ç»å¼åæç¨ï¼ä¸å¹¶éæ¯åºäºä»»ä½ç弿ºå æ ¸çäºæ¬¡å¼åã + +为äºå¶ä½LunaixOSï¼ä½è èè´¹å¤§éæ¶é´åç²¾åé»ç ææ¯ææ¡£ï¼æåï¼ç论书ç±ä»¥åç°è¡å·¥ä¸æ åï¼ä»èå°½éä¿è¯äºç¥è¯ç䏿æ§ãï¼è¿æ ·ä¸æ¥ï¼è¯»è åå¬ä¼ä»¬ä¹ç®æ¯æ¿å°äºäºæçç¥è¯ï¼è䏿¯ä¸æï¼åæï¼çè³næçç¥è¯ï¼ã + +大é¨åçææ¡£åæ åå¯ä»¥å¨ä¸è¿°ç[reference-material](reference-material/)䏿¾å°ã + +å½ç¶ï¼æ¨ä¹å¯ä»¥åè以ä¸å表æ¥äºè§£ç°é¶æ®µçLunaixOSé½ä½¿ç¨äºåªäºèµæï¼æ¬å表ä¼éçå¼åè¿åº¦æ´æ°ï¼ï¼ + +#### æåï¼æ åï¼ææ¯ææ¡£ ++ [Intel 64 and IA-32 Architecture Software Developer's Manual (Full Volume Bundle)](https://www.intel.com/content/www/us/en/developer/articles/technical/intel-sdm.html) ++ [ACPI Specification (version 6.4)](https://uefi.org/sites/default/files/resources/ACPI_Spec_6_4_Jan22.pdf) ++ IBM PC/AT Technical Reference ++ IBM VGA/XGA Technical Reference ++ 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 + +**å 责声æï¼PCIç¸å ³çæ åæç»è§£éæå½PCI-SIGææãæ¤å¤æä¾ç坿¬ä» ä¾ä¸ªäººå¦ä¹ 使ç¨ãä»»ä½åç¨ç®çé¡»åPCI-SIGè´ä¹°ã** + +#### çè®ºä¹¦ç± ++ *Computer System - A Programmer's Perspective Third Edition (CS:APP)* (Bryant, R & O'Hallaron, D) ++ *Modern Operating System* (Tanenbaum, A) ++ ãæ±ç¼è¯è¨ãï¼çç½ï¼ - ç¨äºå ¥é¨Intelè¯æ³çx86æ±ç¼ï¼å¯¹äºAT&Tè¯æ³ï¼æ¨èé 读CS:APPï¼ ++ ~~ãå¾®æºåç䏿¥å£ææ¯ã - ç¨äºå¤§è´äºè§£x86æ¶æçå¾®æºä½ç³»ï¼æ´å ç»è´çäºè§£å¯ä»¥é 读Intel Manualï¼~~ ï¼å·²è¿æ¶ï¼æ¨èé 读CS:APPï¼ + +#### ç½ç« ++ [OSDev](https://wiki.osdev.org/Main_Page) - æä¸æå «çåèï¼å¾å¤è¿æ¥äººçç»éªãä½è 主è¦ç¨äºä¸å¤èµææ¥è¯¢ä»¥åæ¶éï¼ææ¯æç®ï¼æåï¼æ åçç²ç¥æ»ç»ï¼ä»¥åå¼åç¯å¢/å·¥å ·é¾çæå»ºã ++ [FreeVGA](http://www.osdever.net/FreeVGA/home.htm) - 98å¹´çèµæºï¼å ³äºVGAç¼ç¨ææ¯çå®èç½ç«ã ++ GNU CC å GNU LD ç宿¹ææ¡£ã ++ [PCI Lookup](https://www.pcilookup.com/) - PCI设å¤ç¼å·æ¥è¯¢ + +#### å ¶ä» ++ Linux Manual - ç¨äºæ¥è¯¢*nix APIçä¸äºå ·ä½è¡ä¸ºã + + +## éå½1ï¼æ¯æçç³»ç»è°ç¨ + +### Unix/Linux/POSIX +1. `sleep(3)` +1. `wait(2)` +1. `waitpid(2)` +1. `fork(2)` +1. `getpid(2)` +1. `getppid(2)` +1. `getpgid(2)` +1. `setpgid(2)` +1. `brk(2)` +1. `sbrk(2)` +1. `_exit(2)` +1. `sigreturn(2)` +1. `sigprocmask(2)` +1. `signal(2)` +1. `kill(2)` +1. `sigpending(2)` +1. `sigsuspend(2)` + +### LunaixOSèªæ -ãä»é¶å¼å§èªå¶æä½ç³»ç»ç³»åãæ¯æä»åº +1. `yield`