From 19b800b5fee553b6b74815d47361cd39f8c5639b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Pedro?= Date: Fri, 9 Nov 2018 22:50:36 +0000 Subject: [PATCH] Use docfx for docs. Docs cleanup. --- .gitignore | 2 + Docs/.gitignore | 9 ++ Docs/Articles/MS5/ToDo.md | 8 - Docs/Cosmos.Docs.csproj | 11 ++ Docs/Kernel/Hardware/Index.md | 2 - Docs/Web.config | 15 -- Docs/api/.gitignore | 5 + Docs/api/index.md | 2 + Docs/{ => articles}/Compiler/il2cpu.md | 0 .../Debugger/DebugCommands.md} | 14 +- Docs/{ => articles}/Directories.md | 0 Docs/{ => articles}/Express/Compile.md | 0 .../index.md => articles/GettingStarted.md} | 36 ++--- Docs/{ => articles}/Installation/DevKit.md | 0 Docs/{ => articles}/Installation/Running.md | 0 Docs/{ => articles}/Kernel/Heap.md | 0 Docs/{ => articles}/Kernel/Levels.md | 0 Docs/{ => articles}/Kernel/Memory.md | 0 Docs/{ => articles}/Kernel/Plugs.md | 0 Docs/{ => articles}/Kernel/Startup.md | 0 Docs/{ => articles}/Reference/x86.md | 0 Docs/{ => articles}/Tests/TestRunner.md | 0 .../images}/SNAG-0000.png | Bin .../images}/SNAG-0001.png | Bin .../images}/SNAG-0002.png | Bin .../images}/SNAG-0003.png | Bin .../images}/SNAG-0005.png | Bin .../images}/SNAG-0006.png | Bin .../images}/SNAG-0007.png | Bin .../images}/SNAG-0008.png | Bin Docs/articles/toc.yml | 43 +++++ Docs/docfx.json | 72 +++++++++ Docs/favicon.ico | Bin 0 -> 25214 bytes Docs/images/logo.png | Bin 0 -> 2697 bytes Docs/index.md | 148 +----------------- Docs/toc.yml | 7 + global.json | 5 + 37 files changed, 190 insertions(+), 189 deletions(-) create mode 100644 Docs/.gitignore delete mode 100644 Docs/Articles/MS5/ToDo.md create mode 100644 Docs/Cosmos.Docs.csproj delete mode 100644 Docs/Kernel/Hardware/Index.md delete mode 100644 Docs/Web.config create mode 100644 Docs/api/.gitignore create mode 100644 Docs/api/index.md rename Docs/{ => articles}/Compiler/il2cpu.md (100%) rename Docs/{Debugger/DebugCommands.txt => articles/Debugger/DebugCommands.md} (93%) rename Docs/{ => articles}/Directories.md (100%) rename Docs/{ => articles}/Express/Compile.md (100%) rename Docs/{Articles/MS5/index.md => articles/GettingStarted.md} (91%) rename Docs/{ => articles}/Installation/DevKit.md (100%) rename Docs/{ => articles}/Installation/Running.md (100%) rename Docs/{ => articles}/Kernel/Heap.md (100%) rename Docs/{ => articles}/Kernel/Levels.md (100%) rename Docs/{ => articles}/Kernel/Memory.md (100%) rename Docs/{ => articles}/Kernel/Plugs.md (100%) rename Docs/{ => articles}/Kernel/Startup.md (100%) rename Docs/{ => articles}/Reference/x86.md (100%) rename Docs/{ => articles}/Tests/TestRunner.md (100%) rename Docs/{Articles/MS5/CosmosMS5 => articles/images}/SNAG-0000.png (100%) rename Docs/{Articles/MS5/CosmosMS5 => articles/images}/SNAG-0001.png (100%) rename Docs/{Articles/MS5/CosmosMS5 => articles/images}/SNAG-0002.png (100%) rename Docs/{Articles/MS5/CosmosMS5 => articles/images}/SNAG-0003.png (100%) rename Docs/{Articles/MS5/CosmosMS5 => articles/images}/SNAG-0005.png (100%) rename Docs/{Articles/MS5/CosmosMS5 => articles/images}/SNAG-0006.png (100%) rename Docs/{Articles/MS5/CosmosMS5 => articles/images}/SNAG-0007.png (100%) rename Docs/{Articles/MS5/CosmosMS5 => articles/images}/SNAG-0008.png (100%) create mode 100644 Docs/articles/toc.yml create mode 100644 Docs/docfx.json create mode 100644 Docs/favicon.ico create mode 100644 Docs/images/logo.png create mode 100644 Docs/toc.yml create mode 100644 global.json diff --git a/.gitignore b/.gitignore index 8742bf01b..de4f02200 100644 --- a/.gitignore +++ b/.gitignore @@ -14,6 +14,8 @@ [Pp]ackages/ [Oo]bj/ +Docs/log.txt + *.[Oo]bj *.suo *.ncb diff --git a/Docs/.gitignore b/Docs/.gitignore new file mode 100644 index 000000000..4378419e7 --- /dev/null +++ b/Docs/.gitignore @@ -0,0 +1,9 @@ +############### +# folder # +############### +/**/DROP/ +/**/TEMP/ +/**/packages/ +/**/bin/ +/**/obj/ +_site diff --git a/Docs/Articles/MS5/ToDo.md b/Docs/Articles/MS5/ToDo.md deleted file mode 100644 index 1d53b5c2b..000000000 --- a/Docs/Articles/MS5/ToDo.md +++ /dev/null @@ -1,8 +0,0 @@ - - -Why two projects - -What happens when F5 is pressed - -Project properties - diff --git a/Docs/Cosmos.Docs.csproj b/Docs/Cosmos.Docs.csproj new file mode 100644 index 000000000..b37149caf --- /dev/null +++ b/Docs/Cosmos.Docs.csproj @@ -0,0 +1,11 @@ + + + + netstandard1.0 + + + + + + + diff --git a/Docs/Kernel/Hardware/Index.md b/Docs/Kernel/Hardware/Index.md deleted file mode 100644 index c65238fb3..000000000 --- a/Docs/Kernel/Hardware/Index.md +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/Docs/Web.config b/Docs/Web.config deleted file mode 100644 index f085170fd..000000000 --- a/Docs/Web.config +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/Docs/api/.gitignore b/Docs/api/.gitignore new file mode 100644 index 000000000..e8079a3be --- /dev/null +++ b/Docs/api/.gitignore @@ -0,0 +1,5 @@ +############### +# temp file # +############### +*.yml +.manifest diff --git a/Docs/api/index.md b/Docs/api/index.md new file mode 100644 index 000000000..78dc9c005 --- /dev/null +++ b/Docs/api/index.md @@ -0,0 +1,2 @@ +# PLACEHOLDER +TODO: Add .NET projects to the *src* folder and run `docfx` to generate **REAL** *API Documentation*! diff --git a/Docs/Compiler/il2cpu.md b/Docs/articles/Compiler/il2cpu.md similarity index 100% rename from Docs/Compiler/il2cpu.md rename to Docs/articles/Compiler/il2cpu.md diff --git a/Docs/Debugger/DebugCommands.txt b/Docs/articles/Debugger/DebugCommands.md similarity index 93% rename from Docs/Debugger/DebugCommands.txt rename to Docs/articles/Debugger/DebugCommands.md index 1cb712cf1..1bfaf4588 100644 --- a/Docs/Debugger/DebugCommands.txt +++ b/Docs/articles/Debugger/DebugCommands.md @@ -1,4 +1,8 @@ -DS to VS: +# Debug Commands + +## DS to VS + +```cs Noop = 0; TracePoint = 1; Message = 2; @@ -17,8 +21,11 @@ Frame = 11; Stack = 12; Pong = 13; BreakPointAsm = 14; +``` -VS to DS: +## VS to DS + +```cs Noop = 0; TraceOff = 1; // Dont think currently used @@ -49,6 +56,7 @@ SetAsmBreak = 16; Ping = 17; // Make sure this is always the last entry. Used by DebugStub to verify commands. Max = 18; +``` -Debug channel: +## Debug channel We support channels, which are prefixed with anything prefixed with 192 and up. 192 is used for a debug view. diff --git a/Docs/Directories.md b/Docs/articles/Directories.md similarity index 100% rename from Docs/Directories.md rename to Docs/articles/Directories.md diff --git a/Docs/Express/Compile.md b/Docs/articles/Express/Compile.md similarity index 100% rename from Docs/Express/Compile.md rename to Docs/articles/Express/Compile.md diff --git a/Docs/Articles/MS5/index.md b/Docs/articles/GettingStarted.md similarity index 91% rename from Docs/Articles/MS5/index.md rename to Docs/articles/GettingStarted.md index 3f9f5bc37..d5f5cd6ec 100644 --- a/Docs/Articles/MS5/index.md +++ b/Docs/articles/GettingStarted.md @@ -1,6 +1,6 @@ - +# Getting Started -### Introducing Cosmos +## Introducing Cosmos Cosmos (C# Open Source Managed Operating System) is an operating system development kit which uses Visual Studio as its development environment. @@ -25,22 +25,22 @@ operating system and doing some Cosmos work. The dev kit might be thought of as the Cosmos SDK. Most users should start off with the user kit as it is not so overwhelming like the dev kit. This article focuses on the user kit. -### Writing your first Operating System +## Writing your first Operating System Create a new project as you would any C# project, but select Cosmos as the project type. -![](CosmosMS5/SNAG-0000.png) +![](images/SNAG-0000.png) A starter project will be created. It looks very much like a standard C# console application. -![](CosmosMS5/SNAG-0001.png) +![](images/SNAG-0001.png) Program.cs contains the boot and execution code. Instead of seeing a Windows console window, you will see the following: -![](CosmosMS5/SNAG-0003.png) +![](images/SNAG-0003.png) This is your operating system running in VMWare Player! Cosmos can of course also be booted in VMWare Workstation, Hyper-V, Virtual PC, Bochs, or on real @@ -48,7 +48,7 @@ hardware. But by default Cosmos uses VMWare Player because it is both free, and reliable. Cosmos can even debug in Visual Studio, even when running on another machine. -### Integrated Debugging +## Integrated Debugging Debugging is a major issue with operating system development. The Cosmos team was not content enough to simply conquer building and deployment, we want to @@ -56,11 +56,11 @@ make developing operating system as easy as developing Windows applications. Debugging a Cosmos based operating system should feel very familiar to you. Lets modify our project a little bit to show the effect, and set a breakpoint. -![](CosmosMS5/SNAG-0005.png) +![](images/SNAG-0005.png) Now run the project again. -![](CosmosMS5/SNAG-0007.png) +![](images/SNAG-0007.png) Note that the execution stopped at "One"? That is becuase in Visual Studio our project has stopped on a breakpoint. Simply press F5 to continue just as you @@ -69,7 +69,7 @@ would in a normal application! In addition to breakpoints Cosmos also supports step into (F11) as well. Trace over (F10) is not supported yet. -### Debugger Communication +## Debugger Communication The debugger uses the serial port to communicate. Because of this, debugging only works wtih virtualization environments that support serial ports such as @@ -78,14 +78,14 @@ is seriously broken on Windows and makes debugging impossible using QEMU. To debug on real hardware, you must use a physical serial cable. In the future Cosmos will also support debugging over Ethernet. -### Extra Debugging +## Extra Debugging Cosmos supports some explicit methods that can be used to communicate with the debugger and use additional functionality. It is accessed using the Debugger class in the Cosmos.Debug namespace in the Cosmos.Kernel assembly. This assembly is used by all Cosmos projects. -### Code Based Breakpoints +## Code Based Breakpoints Debugger.Break(); @@ -93,7 +93,7 @@ assembly is used by all Cosmos projects. Break can be used to issue a code based break. Visual Studio will break on the line after this statement. -![](CosmosMS5/SNAG-0006.png) +![](images/SNAG-0006.png) Since Cosmos does not support conditional breakpoints in the IDE yet, code base breaks are very useful for implementing such. For example: @@ -110,7 +110,7 @@ Alternatively you can call the .NET class libary break: Both functions will produce the same result. -### Debug Output +## Debug Output Debug strings can be output to the debug window of the host. Because Cosmos does not support watches yet, this functionality can be very useful for @@ -122,9 +122,9 @@ watching variable values and for performing tracing without breakpoints. When this line is executed, it will send a message over the debugging channel and it will appear in the Visual Studio output window. -![](CosmosMS5/SNAG-0008.png) +![](images/SNAG-0008.png) -### What's the catch? +## What's the catch? There really is no catch. Everything We've shown here is functioning as seen. No mockups were used. However we still have a lot of work to go. Items of @@ -133,13 +133,13 @@ foreach loops), file systems (partial support exists), threads, networking, and graphics. We have prototypes and experimentation for each, but none have been rolled into the mainline Cosmos development as of yet. -### What was that Syslinux thing I saw on boot? +## What was that Syslinux thing I saw on boot? Cosmos does not run on Linux. A boot loader called Syslinux is used to boot Cosmos. After booting, Syslinux is not used. Syslinux is a bootloader and is not a Linux distro. Syslinux simplifies the booting process by doing tasks such as enabline the A20 gate, initializing hardware, and switching to real mode (all of which are required by modern operating systems). -### Obtaining Cosmos +## Obtaining Cosmos * Cosmos Website - [http://www.GoCosmos.org](http://www.GoCosmos.org) * Source Code - Both dev kit and user kit - [http://github.com/CosmosOS/Cosmos/](http://github.com/CosmosOS/Cosmos/) diff --git a/Docs/Installation/DevKit.md b/Docs/articles/Installation/DevKit.md similarity index 100% rename from Docs/Installation/DevKit.md rename to Docs/articles/Installation/DevKit.md diff --git a/Docs/Installation/Running.md b/Docs/articles/Installation/Running.md similarity index 100% rename from Docs/Installation/Running.md rename to Docs/articles/Installation/Running.md diff --git a/Docs/Kernel/Heap.md b/Docs/articles/Kernel/Heap.md similarity index 100% rename from Docs/Kernel/Heap.md rename to Docs/articles/Kernel/Heap.md diff --git a/Docs/Kernel/Levels.md b/Docs/articles/Kernel/Levels.md similarity index 100% rename from Docs/Kernel/Levels.md rename to Docs/articles/Kernel/Levels.md diff --git a/Docs/Kernel/Memory.md b/Docs/articles/Kernel/Memory.md similarity index 100% rename from Docs/Kernel/Memory.md rename to Docs/articles/Kernel/Memory.md diff --git a/Docs/Kernel/Plugs.md b/Docs/articles/Kernel/Plugs.md similarity index 100% rename from Docs/Kernel/Plugs.md rename to Docs/articles/Kernel/Plugs.md diff --git a/Docs/Kernel/Startup.md b/Docs/articles/Kernel/Startup.md similarity index 100% rename from Docs/Kernel/Startup.md rename to Docs/articles/Kernel/Startup.md diff --git a/Docs/Reference/x86.md b/Docs/articles/Reference/x86.md similarity index 100% rename from Docs/Reference/x86.md rename to Docs/articles/Reference/x86.md diff --git a/Docs/Tests/TestRunner.md b/Docs/articles/Tests/TestRunner.md similarity index 100% rename from Docs/Tests/TestRunner.md rename to Docs/articles/Tests/TestRunner.md diff --git a/Docs/Articles/MS5/CosmosMS5/SNAG-0000.png b/Docs/articles/images/SNAG-0000.png similarity index 100% rename from Docs/Articles/MS5/CosmosMS5/SNAG-0000.png rename to Docs/articles/images/SNAG-0000.png diff --git a/Docs/Articles/MS5/CosmosMS5/SNAG-0001.png b/Docs/articles/images/SNAG-0001.png similarity index 100% rename from Docs/Articles/MS5/CosmosMS5/SNAG-0001.png rename to Docs/articles/images/SNAG-0001.png diff --git a/Docs/Articles/MS5/CosmosMS5/SNAG-0002.png b/Docs/articles/images/SNAG-0002.png similarity index 100% rename from Docs/Articles/MS5/CosmosMS5/SNAG-0002.png rename to Docs/articles/images/SNAG-0002.png diff --git a/Docs/Articles/MS5/CosmosMS5/SNAG-0003.png b/Docs/articles/images/SNAG-0003.png similarity index 100% rename from Docs/Articles/MS5/CosmosMS5/SNAG-0003.png rename to Docs/articles/images/SNAG-0003.png diff --git a/Docs/Articles/MS5/CosmosMS5/SNAG-0005.png b/Docs/articles/images/SNAG-0005.png similarity index 100% rename from Docs/Articles/MS5/CosmosMS5/SNAG-0005.png rename to Docs/articles/images/SNAG-0005.png diff --git a/Docs/Articles/MS5/CosmosMS5/SNAG-0006.png b/Docs/articles/images/SNAG-0006.png similarity index 100% rename from Docs/Articles/MS5/CosmosMS5/SNAG-0006.png rename to Docs/articles/images/SNAG-0006.png diff --git a/Docs/Articles/MS5/CosmosMS5/SNAG-0007.png b/Docs/articles/images/SNAG-0007.png similarity index 100% rename from Docs/Articles/MS5/CosmosMS5/SNAG-0007.png rename to Docs/articles/images/SNAG-0007.png diff --git a/Docs/Articles/MS5/CosmosMS5/SNAG-0008.png b/Docs/articles/images/SNAG-0008.png similarity index 100% rename from Docs/Articles/MS5/CosmosMS5/SNAG-0008.png rename to Docs/articles/images/SNAG-0008.png diff --git a/Docs/articles/toc.yml b/Docs/articles/toc.yml new file mode 100644 index 000000000..02dbe65da --- /dev/null +++ b/Docs/articles/toc.yml @@ -0,0 +1,43 @@ +- name: Getting Started + href: GettingStarted.md + +- name: Compiler + href: Compiler/il2cpu.md + +- name: Debugger + items: + - name: Debug Commands + href: Debugger/DebugCommands.md + +- name: Express + href: Express/Compile.md + +- name: Installation + items: + - name: Dev Kit + href: Installation/DevKit.md + - name: Running + href: Installation/Running.md + +- name: Kernel + items: + - name: Heap + href: Kernel/Heap.md + - name: Levels + href: Kernel/Levels.md + - name: Memory + href: Kernel/Memory.md + - name: Plugs + href: Kernel/Plugs.md + - name: Startup + href: Kernel/Startup.md + +- name: Reference + items: + - name: x86 + href: Reference/x86.md + +- name: Tests + items: + - name: Test Runner + href: Tests/TestRunner.md diff --git a/Docs/docfx.json b/Docs/docfx.json new file mode 100644 index 000000000..5fc137e28 --- /dev/null +++ b/Docs/docfx.json @@ -0,0 +1,72 @@ +{ + "metadata": [ + { + "src": [ + //{ + // "files": [ + // "**.csproj" + // ], + // "src": "" + //} + ], + "dest": "api", + "disableGitFeatures": false, + "disableDefaultFilter": false + } + ], + "build": { + "content": [ + { + "files": [ + "api/**.yml", + "api/index.md" + ] + }, + { + "files": [ + "**/*.md", + "**/toc.yml", + "toc.yml", + "*.md" + ] + } + ], + "resource": [ + { + "files": [ + "favicon.ico", + "images/**", + "articles/images/**" + ] + } + ], + "overwrite": [ + { + "files": [ + "apidoc/**.md" + ], + "exclude": [ + "obj/**", + "_site/**" + ] + } + ], + "dest": "_site", + "globalMetadata": { + "_appFooter": "", + "_appLogoPath": "images/logo.png", + "_enableNewTab": true + }, + "globalMetadataFiles": [], + "fileMetadataFiles": [], + "template": [ + "default" + ], + "postProcessors": [], + "markdownEngineName": "markdig", + "noLangKeyword": false, + "keepFileLink": false, + "cleanupCacheHistory": false, + "disableGitFeatures": false + } +} diff --git a/Docs/favicon.ico b/Docs/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..fcdc4018323d6394947898b5445c7c219df93a15 GIT binary patch literal 25214 zcmeHvcU)Ch*7k}rCQdR*%p{XK6N3%ACiVtWEGUW!f+$6#sVGWEKoCKi0*VM1Q4~dr z1uG&bHY_0a-ZhpOTQpUTy1!@b%eh>yh~>-oz3(5hf4_D2*}a~<*ILgym*_33Pal5x zA$&bDc#CKr5jAY64&SIlREoHE?bKn9dPK|g2>A*5-yx5`5xxH|=U0bw-y!lxTDx{t z;rEID^SP40A$g$e?q*81(lSHTb4?CDJ6x&TSQacBPBT{B}MJ(o-H|9 zQnKmNduR1ev~1bJvhGLDpXj%2zOC*VH~Rqn7K=#b<`Fl=zKr_Kb8~Y`M}1#dTU+O% zoi3lbO*v(Rh88qvaE`>+M33Jlx>uLz5@?$?Vcxgt5a(ff0D27Kd1?qkg_?OHtXWO& zm-~09Uq3Utefu`$EL}up+e<0X-`<14e9E(#1P@E#;C*JnyJIqBh<;(*8T6ChbtQ{!`-b% z%Ha89Be7Yiu9?+cwYw(s*S8*}g!4FmM{5qAE7^F!br@$)8HwQSY&2&r!`7=1Tygur z-K+T=u46ao?%i7lIFB8-S3mo9Wo0_3va&22?Y+Ac&*mJg+?U^wsQXep<%h@!^L0cW zmUB2mhKo&*9|80JuHoNU!^-(9LbiQa6Ny(z6iGUFPQI665dg9uN?S`s$90#75~CGkko$c^t}< zK_oVyOANa>o}YR#!;!%)z~3z}7D1{T!v)~R2hQLyb&HvS5^x(LIX`v%?6+VUUjLg6 zQ-^6{xqnGva6whLuB~{~Cm`5d{Hji;x^rVhgRdV%Hsa#!>Nd5Di5uPs$wJf>;^|vL zT%xZf!=-*A@AD?Rh5@@ah*)EjcxGnp}ofx#`_%I zASaOKJWwAChEih_S{3P;baHbW(}9l$EvIK{;$f|?KQyKTUXE&~XX>usB41xWzeNk% z4%G>ICJ`-KM*3S?cIpQA4fc?@q~gQOA$VUnS#zkfX|Kk>5cb-=fli<8M_~?y$CQg(1N;lOxiZIy8!)b1 zC4)-*Ms)*v-6}_Ne5-x@3s<_LLUyQIWiSUTckwT~Q58HeJT9O84UeY8R_o%H4!BQz->FWs2%|BNMokNN*Mx5Ir=nL4$cpeyoo3!v>1WoTL?R>RNyzaH_|{OsU%G>Gg4Li|N@hT(!T`X5aDfAemHziS9}CH zj5GBapR3_`>5D2KVXl_rrEjR?e+@o`(_iF&P?fIhBfqRq*GE1XujR}BAfMvPej8Tx zAHJySpT-YI1jlcy@-J2S+)<9_2H58c*%$D`*x!a9_8-vO(ih=j@cEwk5Y!OF{H=6v zsXg6a=8K*_eJXjSrcD~ld!|dL@2GL3Z|L#k$ModM6KdDC6?joUQl-wN>?Mon!r4>Q zx@B`Zd-^zePntl!-d>VtJ#wg$)~_v~<3|tD*3Fy9&vz27U$+K#lM#hX38a|F5Sl#6 zlg7HcO5Sxqe=|C?znnbBdrB}MDVde~s_b#_#+GN0zBr_xV9 z{UrIl*yu=_5jl+pTlAybH-A9-a>~hGOhYU!C?-0Bl4iwH#ok@?CX9Edty_x8-E9mlUO1on z_cfuQ0B^c?_a+@VSV0x#duek?G2OWSJ@q!~MGqf7r0k`ODLplX?%cUUL71oDpa7ZY z_uqe)cXzk0ohTu0IyGsmPrv^9D=p8@As@`!v13Q6<9F@p>h~8YGb4>QtjVXmoF#Pr z>`5{)Hl&+3u2JWX-_f>hTj|K53cCN(E%3TNv~oorspckN9-XOt_jbx!w2&O_?P%bD z{&cp~(|H$;`wE{J{aTvl&Xc*;%xvU^()vr3)7>(7uY@G&^Y~<}8w| zhFZwE-;TC^y7MDh4l<|cs0fOWjilW>x6#i(|BU&{qScsdUPl}2Aym9^J#F7oM6IwF zCV7pg1@q^k?Xk3f-yRxhZbliZWEwx#jTU9jr$r0WFvfY*uTO6(ShZ4j8~!)^KQ#k& zMtqwv@~iKx>Z?0YzloRMr+q$6nj0y@Hcdb2G3sr&?lWx>@lL-uUp?vkUH?h+Ps46= zKKNktm;d<3@D>mcsY|n%zyJO3AGQ6@*Td#{BRuHi4)w+k^{EGE+1Y|<;lJGL+WjlJ zF1ye%b!g&;K?@8%bZnQ}|BGG$8Sl{N@2m9tz8@PrJ=&z&$&7d?ce*Gbkio=BTRM1 zeKR23x^eGD9s?nub3~NOV9&SSn&BK$=P#C9tIkCCC)G%qQJj^fPSv3)Duy>){I^zVZ^Vilz%Cy@)z zB{Bv^8EJ3eR1*JX~^(haSm;z!w2_KaG*EJO~Sdo zhDveIoI7(up3?_$m&{3wmFIa$aS>g+c1_+z-(NaMD{_}mTug+NpccJwID`D0Xxvv!E(KpJjsNdx+s z;{LdTdvhW!!(|otE0?4mgzxZeTT6)VZ!fHKx2~P(+xBg#Me}CV8Fx9~W0xW;#K zeQ91|6wd!y@;*9u=A^uLFJP|SU7RQ?B7{aeIY?c~jT<*85BKXdto!(J9yDh3D7i&U7uIAL zWz0{bgqd*^HZ=%kP0%-Yd5<~T+tT4fhp^|i(Kft4ZQHaY3-dnmUb}bio?P!Ur;f?{ z`t0eG*q{69#L>gxZ5C1)_E<&vF66yQ{?NU3g?#_b2N@PoX+w_~nv-n>b_ z{q`HRZq<@zga<wr?$d_AF>Iz})}A{reC6hkHDm zAVcj3?OJp{`@1!3k~-Wk3Lm8ZOqQ=wiwslR+9>W~+fg0DzN*gg)qq7a+wxhfaW?t> z)ityqp7=rk{-aKR`%#tqR&P}QC%=Ieynznir>qbm|SOJ$1bYes`7ImRDKxu zPqiD^6pCE9PNP1wk%u_)TxeU?{1fR8G|#;B`5&Kra%n+f^X6iBRsFgB?e_CE_4eC7 zdTRgew|^?Lo3>0{zy85q{pGDww|Lkm>IeQkG3;0S7Mx?MnNg<&@4#h78+o#?c5z12 zZVuq|-&z&q)RC^BAX)vuzj`xoB<<#OhYbZM<+bQpP%uJ$LGo{gkK>ZwGCi=@$`qiVZ(LE@aODv zp$~WNXxLJ{LIajLeX;*jcAt5D@x>SU_0LQ^>X_*Gg_B{`F233B{h9xgu4BUcYUgD6 z{`&<*a{h>ZF}v5~_GeY%X2+0Kv4b0Yx~j=Nf7v?!nD_EMoKyc9_xP}{nSqj_eea>& zjV(XJZC~x$8b5VV(&@^w#dnOm^m$LqB^nRirAa4)^G|*6G;W;tUhFsZ;~M15Dz$@`rfHR|g1@6EBvcN4lcYV>{JAgy#rR=fO1J2mN?_SRc(rFCxNRO

#Da@nr{b6L-L-G?W!!Yl{ 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 Itbz9b4+Z=S)Bpeg literal 0 HcmV?d00001 diff --git a/Docs/index.md b/Docs/index.md index 9e7352f92..81343a8b6 100644 --- a/Docs/index.md +++ b/Docs/index.md @@ -1,147 +1,9 @@ - +# Cosmos Documentation -### Introducing Cosmos +
-Cosmos (C# Open Source Managed Operating System) is an operating system -development kit which uses Visual Studio as its development environment. -Despite C# in the name any .NET based language can be used including VB.NET, -Fortran, Delphi Prism, IronPython, F# and more. Cosmos itself and the kernel -routines are primarily written in C#, and thus the Cosmos name. Besides that, -NOSMOS (.NET Open Source Managed Operating System) sounds stupid. +Some docs are outdated, and we are currently working on updating them and adding new ones. -Cosmos is not an operating system in the traditional sense, but instead it is -an "Operating System Kit", or as I like to say "Operating System Legos". -Cosmos lets you create operating systems just as Visual Studio and C# normally -let you create applications. Most users can write and boot their own operating -system in just a few minutes, all using Visual Studio. Since milestone 5, -Cosmos includes an integrated project type in Visual Studio, and an -integrated debugger. You can debug your operating system directly from Visual -Studio using breakpoints. +
-Cosmos is available in two distributions, the developer kit (dev kit), and the -user kit. The dev kit is designed for users who want to work on Cosmos itself. -The user kit is designed for those who are interested in building their own -operating system and doing some Cosmos work. The dev kit might be thought of -as the Cosmos SDK. Most users should start off with the user kit as it is not -so overwhelming like the dev kit. This article focuses on the user kit. - -### Writing your first Operating System - -Create a new project as you would any C# project, but select Cosmos as the -project type. - -![](http://i.imgur.com/mb5ZOEk.png) - -A starter project will be created. It looks very much like a standard C# -console application. - -![](http://i.imgur.com/zUJoj5Y.png) - -Program.cs contains the boot and execution code. Instead of seeing a Windows -console window, you will see the following: - -![](http://i.imgur.com/D3F9c4t.png) - -This is your operating system running in VMWare Player! Cosmos can of course -also be booted in VMWare Workstation, Hyper-V, Virtual PC, or on real -hardware. But by default Cosmos uses VMWare Player because it is both free, -and reliable. Cosmos can even debug in Visual Studio, even when running on -another machine. - -### Integrated Debugging - -Debugging is a major issue with operating system development. The Cosmos team -was not content enough to simply conquer building and deployment, we want to -make developing operating system as easy as developing Windows applications. -Debugging a Cosmos based operating system should feel very familiar to you. -Lets modify our project a little bit to show the effect, and set a breakpoint. - -![](http://i.imgur.com/Hf4LZ3c.png) - -Now run the project again. - -![](http://i.imgur.com/YLPmEUf.png) - -Note that the execution stopped at "Two"? That is becuase in Visual Studio our -project has stopped on a breakpoint. Simply press F5 to continue just as you -would in a normal application! - -In addition to breakpoints Cosmos also supports step into (F11) as well. Trace -over (F10) is not supported yet. - -### Debugger Communication - -The debugger uses the serial port to communicate. Because of this, debugging -only works wtih virtualization environments that support serial ports such as -VMWare. QEMU supports serial ports as well, but its serial port implementation -is seriously broken on Windows and makes debugging impossible using QEMU. To -debug on real hardware, you must use a physical serial cable. In the future -Cosmos will also support debugging over Ethernet. - -### Extra Debugging - -Cosmos supports some explicit methods that can be used to communicate with the -debugger and use additional functionality. It is accessed using the Debugger -class in the Cosmos.Debug namespace in the Cosmos.Kernel assembly. This -assembly is used by all Cosmos projects. - -### Code Based Breakpoints - - - Global.Dbg.Break(); - -Break can be used to issue a code based break. Visual Studio will break on the -line after this statement. - -![](http://i.imgur.com/Dupjm8y.png) - -Since Cosmos does not support conditional breakpoints in the IDE yet, code -base breaks are very useful for implementing such. For example: - -```csharp -if (x == 5) { - Global.Dbg.Break(); -} -``` - -Alternatively you can call the .NET class libary break: - - - System.Diagnostics.Debugger.Break(); - -Both functions will produce the same result. - -### Debug Output - -Debug strings can be output to the debug window of the host. Because Cosmos -does not support watches yet, this functionality can be very useful for -watching variable values and for performing tracing without breakpoints. - -```csharp -Global.Dbg.Send("Hello from Cosmos!"); -``` - -When this line is executed, it will send a message over the debugging channel -and it will appear in the Visual Studio output window. - -![](http://i.imgur.com/DHqwjiF.png) - -### What's the catch? - -There really is no catch. Everything I've shown here is functioning as seen. -No mockups were used. However we still have a lot of work to go. Items of -interest that are on our current task list include interfaces (necessary for -foreach), file systems (partial support exists), threads, networking, and -graphics. We have prototypes and experimentation for each, but none have been -rolled into the mainline Cosmos development as of yet. - -### What was that Syslinux thing I saw on boot? - -Cosmos does not run on Linux. A boot loader called Syslinux is used to boot -Cosmos. After booting, Syslinux is not used. Syslinux is a bootloader and is -not a Linux distro. - -### Obtaining Cosmos - - * [Source Code - Both dev kit and user kit](http://github.com/CosmosOS/Cosmos/) - * [Releases](https://github.com/CosmosOS/Cosmos/releases) +*Looking for the [Cosmos website](https://gocosmos.org)?* diff --git a/Docs/toc.yml b/Docs/toc.yml new file mode 100644 index 000000000..33dbe7793 --- /dev/null +++ b/Docs/toc.yml @@ -0,0 +1,7 @@ +- name: Articles + href: articles/ +- name: Cosmos Website + href: https://gocosmos.org +#- name: API Documentation +# href: api/ +# topicHref: api/index.md diff --git a/global.json b/global.json new file mode 100644 index 000000000..0de545d9f --- /dev/null +++ b/global.json @@ -0,0 +1,5 @@ +{ + "msbuild-sdks": { + "Microsoft.Build.NoTargets": "1.0.40" + } +}