Skip to content

Commit

Permalink
Spell check, reordering and rephrasing
Browse files Browse the repository at this point in the history
  • Loading branch information
mterwoord committed May 7, 2015
1 parent 6cb2650 commit 9a341b6
Showing 1 changed file with 18 additions and 14 deletions.
32 changes: 18 additions & 14 deletions Docs/Kernel/Levels.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,10 @@ Currently only the structure exists, no checking occurs but in the future will
occur via attributes and other methods. Future checks to include:

1. Restriction of core level exclusive abilities at the assembly level by attribute.
2. Restriction of references list to higher levels only. ie HAL can reference Core but not vice versa. Also via attribute. That is an assembly level attribute to mark which level an assembly is.
3. Restrict access to BCL and other assemblies. ie Core should never need XML or other higher level services. Make a defined list of what is allowed and verify against it.
2. Restriction of references list to higher levels only. ie HAL can reference Core
but not vice versa. Also via attribute. That is an assembly level attribute to mark which level an assembly is.
3. Restrict access to BCL and other assemblies. ie Core should never need XML
or other higher level services. Make a defined list of what is allowed and verify against it.

For now we must be vigilant to watch these restrictions manually.

Expand All @@ -33,7 +35,19 @@ Many operating systems refer to their security "areas" as rings. ie Kernel
ring, etc. Rings are harder to draw in text and make diagramming a bit harder,
so for now we will refer to our "areas" as levels.

Please note if you would like to run some code on a ring you must create an new project with the attribute below to specify on what ring this code is(add the attribute in AssemblyInfo.cs), fither more you want to refrince this project in your boot project.
Cosmos is split into the following levels:

* 0 Core
* 1 Hardware
* 2 System
* 3 User

Each level can only communicate with adjacent levels. That is User can only
talk to System, but not Core.

To make an assembly part of a specific level, you'll have to mark it with the
attribute below to specify on what ring this code is (add the attribute in
AssemblyInfo.cs).

``` [assembly: Ring(Ring.User)] ```

Expand All @@ -46,20 +60,10 @@ public enum Ring
HAL = 1,
System = 2,
User = 3,
}
```

Cosmos is split into the following levels:

* 0 Core
* 1 Hardware
* 2 System
* 3 User

Each level can only communicate with adjacent levels. That is User can only
talk to System, but not Core.

### 0 Core Level

Core level has special permissions which basically let it do anyting it wants.
Expand Down

0 comments on commit 9a341b6

Please sign in to comment.