-
Notifications
You must be signed in to change notification settings - Fork 553
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'master' into task/ghaction
- Loading branch information
Showing
461 changed files
with
9,261 additions
and
16,268 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
File renamed without changes.
File renamed without changes.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
@ECHO OFF | ||
|
||
REM %1 == ToolPath | ||
REM %2 == ElfFile | ||
REM %3 == MapFile | ||
|
||
"%~1\objdump.exe" --wide --syms "%~2" > "%~3" |
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
#!/bin/bash | ||
|
||
# %1 == ToolPath | ||
# %2 == ElfFile | ||
# %3 == MapFile | ||
objdump --wide --syms "$2" > "$3" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Binary file not shown.
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
# Devkit changelog | ||
|
||
## c5c087c697d106348adbcff86d5d43331500e648 (update then merged in) | ||
|
||
### Features | ||
|
||
* X# is now packaged as a nuget package | ||
* Plugs are now packaged as a nuget package rather then been hard coded in build scripts | ||
|
||
### Breaking changes | ||
|
||
Plugs are now included via a nuget package, to update cosmos past this commit you need to add the `Cosmos.Plugs` package to your kernel project. Don't forget to tick the `Include prerelease` checkbox and to set the package origin to `All`! |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,43 +1,31 @@ | ||
# Dev Kit Installation | ||
|
||
### Prerequisites for Windows | ||
|
||
* (Free) source code of Devloppement Kit from [Cosmos on GitHub](https://github.com/CosmosOS/Cosmos) | ||
* (Free) source code of Development Kit from [Cosmos on GitHub](https://github.com/CosmosOS/Cosmos) | ||
* You must clone the repository using Git. For a detailed walkthrough, [see here](https://help.github.com/articles/fork-a-repo/). | ||
* When following the tutorial, replace *OctoCat* with *CosmosOS* and *Spoon-Knife* with *Cosmos*. | ||
* (Free) [Visual Studio 2022 Community](https://visualstudio.microsoft.com/vs/) | ||
* (Free) [InnoSetup QuickStart Kit](http://www.jrsoftware.org/isdl.php#qsp) | ||
* (Free) [InnoSetup](http://www.jrsoftware.org/isdl.php#qsp) | ||
* This is required to build the setup kit which is used to build and install the Visual Studio integration libaries for Cosmos. | ||
* During install it will ask you about optional components to install. Be sure you check "Install Inno Setup Preprocessor". | ||
* Visual Studio SDK: [download here](https://www.microsoft.com/en-us/download/details.aspx?id=40758). | ||
|
||
### Prerequisites for Linux | ||
|
||
* .NET 6 SDK: [Download .NET SDK](https://learn.microsoft.com/en-us/dotnet/core/install/linux) | ||
* Make | ||
* .NET SDK (6+): [Download .NET SDK](https://learn.microsoft.com/en-us/dotnet/core/install/linux) | ||
* Make (`apt install make`) | ||
* Yasm (`apt install yasm`) | ||
* Xorriso (`apt install xorriso`) | ||
* QEMU or any other virtual machine | ||
* QEMU or any other virtual machine. See [Running](https://cosmosos.github.io/articles/Installation/Running.html) for more information. | ||
|
||
### Installation on Windows | ||
|
||
* Look in the downloaded sources and run **install-VS2022.bat** with admin privileges (UAC will ask for permission), needed for install in system directories. | ||
* When the installation is complete, Visual Studio will automatically open and you may begin programming with your new, modified copy of Cosmos. | ||
|
||
## Arguments for the 'install-VS2022.bat' file | ||
The `install-VS2022.bat` accepts the following parameters : | ||
|
||
- `-USERKIT` Run installer for the User Kit only. By default installer build and install Dev Kit. | ||
- `-RESETHIVE` Reset Visual Studio Experimental Hive after installation. | ||
- `-NOTASK` When specified installer would be run directly instead of running as the task in the Task Scheduler | ||
- `-NOCLEAN` Don't clean solution before run installer. | ||
- `-NOVSLAUNCH` Don't launch VS after installation. | ||
- `-IGNOREVS` Ignore running VS during installation. | ||
- `-VSEXPHIVE` or `/VSEXPHIVE` Use Visual Studio Experimental Hive for installation. | ||
|
||
### Installation on Linux | ||
Run `make all` to build Cosmos. Run `sudo make install`. Make sure to run `make nuget-install` under your user account, and not as sudo. | ||
Run `make` to build Cosmos. Cosmos will clone all the required repos, build itself, and install it and it's nuget packages to the system automatically. | ||
|
||
### dotnet Project Templates | ||
If you are using linux or prefer not using Visual Studio for your projects, you can install the dotnet project template using `dotnet new --install .\source\templates\csharp\` assuming you are currently in the Cosmos base directory. | ||
If you are using linux or prefer not using Visual Studio for your projects, you can install the dotnet project template using `dotnet new --install ./source/templates/csharp/` assuming you are currently in the Cosmos base directory. | ||
After installing the template use `dotnet new cosmosCSKernel -n {name}` to create a new Cosmos Kernel project. | ||
The dotnet template can be removed at a later time using `dotnet new --uninstall .\source\templates\csharp\`. | ||
The dotnet template can be removed at a later time using `dotnet new --uninstall ./source/templates/csharp/`. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
# Object | ||
|
||
## Memory Layout | ||
|
||
Each object is allocated with a header of three uints. The first uint is the type of the object, the second uint is the instance type of object (normal, boxed, array etc) and the third is the size in memory. | ||
|
||
## Garbage Collector Information | ||
|
||
The garbage collector itself also alloctes its own header of 1 uint (2 ushort). The first ushort is the allocated size of the object (this includes the size of both headers) while the second tracks the GC information. | ||
The GC information is made up of a 1bit flag (the lowest bit) used to track if the GC has hit the object during the sweep phase already and the upper 7 bits count how many static references there are to the object. | ||
|
||
Combined in memory we have the format | ushort: memory size | ushort: gc info | uint: object type | uint: instance type | uint: object size | variable: object data | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.