Skip to content

Commit e7f8624

Browse files
committed
Merge branch 'master' of https://github.com/TheFocusMan/Cosmos
2 parents e8a630e + a431357 commit e7f8624

2 files changed

Lines changed: 96 additions & 53 deletions

File tree

Docs/articles/Installation/Running.md

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,61 @@ The ISO option creates an ISO image of the Cosmos output. This ISO file can be
1010
mounted and booted by most virtualization technologies. In addition, a physical
1111
optical disk can be burned and used to boot physical hardware.
1212

13+
# Linux/Posix
14+
### DISCLAIMER: This article assumes that you are using a debian based operating system
15+
16+
## QEMU
17+
Here you can use a generic run file, you can run it by using `sh run.sh -i <ISO> -m <memory size> -h <hdd image>`.
18+
It has to be at the root directory of the project
19+
20+
QEMU is required and can be installed with `apt-get install qemu-system`.
21+
22+
To create an hdd image, you have to convert this [.vmdk](https://github.com/CosmosOS/Cosmos/blob/master/Build/VMWare/Workstation/Filesystem.vmdk?raw=true) file to a .img wich can then be used by QEMU using the following command
23+
`qemu-img convert -f vmdk -O raw Filesystem.vmdk cosmos.img`
24+
25+
`run.sh:`
26+
```sh
27+
#!/bin/bash
28+
29+
helpFunction()
30+
{
31+
echo ""
32+
echo "Usage: $0 -i <ISO> -m <memory size> -h <hdd image>"
33+
echo "\t-i ISO path to be used"
34+
echo "\t-m Memory size to allocate to the Virtual Machine"
35+
echo "\t-h Hard disk image location, can be created with qemu-img"
36+
exit 1 # Exit script after printing help
37+
}
38+
39+
while getopts "i:m:h:" opt
40+
do
41+
case "$opt" in
42+
i ) ISO="$OPTARG" ;;
43+
m ) MEMORY_SIZE="$OPTARG" ;;
44+
h ) HDD_IMAGE="$OPTARG" ;;
45+
? ) helpFunction ;; # Print helpFunction in case parameter is non-existent
46+
esac
47+
done
48+
49+
# Print helpFunction in case parameters are empty
50+
if [ -z "$ISO" ] || [ -z "$MEMORY_SIZE" ] || [ -z "$HDD_IMAGE" ]
51+
then
52+
echo "Some or all of the parameters are empty";
53+
helpFunction
54+
fi
55+
56+
# Build the project
57+
dotnet build
58+
59+
# Emulate the ISO
60+
qemu-system-x86_64 -boot d -cdrom $ISO -m $MEMORY_SIZE -hda $HDD_IMAGE
61+
```
62+
63+
## Virtualbox
64+
Create a virtual machine and use this [.vmdk](https://github.com/CosmosOS/Cosmos/blob/master/Build/VMWare/Workstation/Filesystem.vmdk?raw=true) as HDD image
65+
66+
# Windows
67+
1368
## VMWare
1469

1570
WMWare Workstation and VMWare Player are the preferred testing environments
@@ -58,3 +113,5 @@ Wait and your os will boot up.
58113
## Hyper-V
59114

60115
Not supported at this time.
116+
117+

SOLUTIONS.md

Lines changed: 39 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -1,53 +1,39 @@
1-
# Solution File ReadMe
2-
3-
### Cosmos
4-
- Old monolithic solution.
5-
- Will be removed after all smaller parts split out.
6-
- Use of this solution is necessary for some users until all parts are split out.
7-
8-
### Build
9-
- Used by the build process (Builder).
10-
- Not meant for direct end user use.
11-
- Do not change unless you know what you are doing.
12-
13-
### Builder
14-
15-
Projects used to build Cosmos itself. Essentially this is what makes User Kit go.
16-
17-
- C.B.Builder - Essentially the user kit. A C# program which automates the building and installation of Cosmos wtih a GUI.
18-
19-
- C.B.Insaller - This is the UAC workaround task?
20-
21-
- Add C.B.Common & C.B.MSBuild or to compiler?
22-
23-
### Compiler
24-
25-
Parts:
26-
- Assembler
27-
- Compiler
28-
- XSharp (Compiler Parts)
29-
- Tools (Compiler Parts)
30-
31-
Notes:
32-
- In future XSharp may be separated or a SLN with only XSharp parts in it. But it is needed often when using compiler.
33-
34-
Bin Cache Dependencies:
35-
36-
### IDE
37-
38-
TODO Exists, but needs cleaned up still a lot.
39-
40-
Debug, Deploy, Visual Studio, XSharp (IDE Parts), Tools (IDE Parts)
41-
42-
### Kernel
43-
44-
- Kernel, Demos (not  User), Tests
45-
46-
### Tests
47-
48-
- All unit tests
49-
50-
### Tools
51-
52-
- Misc Tools
53-
1+
# Visual Studio Solutions
2+
3+
## `Build.sln`
4+
Currently contains every used Cosmos component for
5+
using by Cosmos Builder to compile and pack code.
6+
Do not use it in Visual Studio directly and do not
7+
modify it, unless you know what you're doing.
8+
9+
## `Builder.sln`
10+
Currently contains only Cosmos Builder app project
11+
that used to compile, pack and install Cosmos.
12+
13+
## `IDE.sln`
14+
Currently contains Visual Studio extensions for VS
15+
integration. Do not confuse with `Kernel.sln`.
16+
17+
## `Kernel.sln`
18+
Currently contains the main Cosmos code that runs on
19+
target virtual machines. If you want to modify OS
20+
behavior more percisely, contribute to this solution.
21+
### Cosmos.System2
22+
Contains the highest library, that controls entire
23+
system abstractly, as another manage mostly hardware.
24+
### Cosmos.HAL2
25+
Contains Hardware Abstraction Layer and most of
26+
system drivers used by Cosmos. These include PS/2,
27+
PCI, PIT, etc.
28+
### Cosmos.Core
29+
Contains the most basic things that used by NET BCL
30+
and Cosmos, such as Plugs and XSharp snippets.
31+
32+
## `Demos.sln`
33+
Currently contains user-made Cosmos project examples.
34+
Also, it can be used as test solution
35+
36+
## `Test.sln`
37+
Currently contains all unit tests that Cosmos uses
38+
to ensure that there are no bugs. You can use it while
39+
development of new features of DevKit to test new changes

0 commit comments

Comments
 (0)