What does your OS look like? (Screen Shots..)
Re: What does your OS look like? (Screen Shots..)
Nothing much here. Just wrote Bochs graphics driver, trying scan PCI and having a bug in memory allocation. I get output through serial port.
Today wrote dynamic module(driver) building makefile.
Today wrote dynamic module(driver) building makefile.
Hobby stuff (suckless libs, compilators, game engines, kernels): github. Work @ zabbix: arseniuss@zabbix
- makerimages
- Member
- Posts: 27
- Joined: Sun Dec 28, 2014 11:16 am
- Libera.chat IRC: Makerimages
- Location: Estonia
Re: What does your OS look like? (Screen Shots..)
I've made a little more progress on OS Zin : converted to C, finished ACPI, and now, i implemented a very rough PS/2 keyboard driver.
If anyone would like to tinker away on improving the keyboard driver to support caps, shift and so on, please do let me know.
Sources available on GitHub
If anyone would like to tinker away on improving the keyboard driver to support caps, shift and so on, please do let me know.
Sources available on GitHub
Working on SinusOS.
- BrightLight
- Member
- Posts: 901
- Joined: Sat Dec 27, 2014 9:11 am
- Location: Maadi, Cairo, Egypt
- Contact:
Re: What does your OS look like? (Screen Shots..)
Virtual memory management, yaay!
Took almost a whole day to work out the paging tables, but I think it's safe to say, I did it!
What you see in the screenshot is done simply with this code:
Took almost a whole day to work out the paging tables, but I think it's safe to say, I did it!
What you see in the screenshot is done simply with this code:
Code: Select all
; identify page the first MB of RAM
mov eax, 0 ; map 0x0 --
mov ebx, 0 ; -- to 0x0
mov ecx, 256 ; 256*4 KB blocks = ~ 1 MB
call vmm_map_memory
; this is just for debugging, will be removed
mov eax, 0x100000 ; map 0x100000 (1 MB) --
mov ebx, 0xC0000000 ; -- to 0xC0000000 (3 GB)
mov ecx, 2 ; 2*4 KB blocks = 8 KB
call vmm_map_memory
You know your OS is advanced when you stop using the Intel programming guide as a reference.
Re: What does your OS look like? (Screen Shots..)
I working on my own OS.
I got working:
- GDT
IDT
PIT
Keyboard input and vga output
Last edited by reload on Mon Aug 03, 2015 9:55 am, edited 1 time in total.
....
- BASICFreak
- Member
- Posts: 284
- Joined: Fri Jan 16, 2009 8:34 pm
- Location: Louisiana, USA
Re: What does your OS look like? (Screen Shots..)
The best sign you can have after working for a week on a boot loader!
1. You modify about 20 lines in the kernel to remove all GRUB Compatibility and place your own.
2. And RUN FOR THE FIRST TIME (with the kernel that is)
*Output via Bochs port
All memory management works, all modules are loaded, everything runs just like it did with GRUB, but I'm in a video mode.
I still should (but probably won't) change how my boot configuration file looks:
Yes those names are 11 characters each
EDIT: Fixed typo's
1. You modify about 20 lines in the kernel to remove all GRUB Compatibility and place your own.
2. And RUN FOR THE FIRST TIME (with the kernel that is)
Code: Select all
BOS v. 0.0.2 SRC/SYSTEM_x86/GDT.c Compiled at 15:10:22 on Jul 15 2015 MAIN Line 18 Function "_GDT_init"
GDT Installed
BOS v. 0.0.2 SRC/SYSTEM_x86/IDT.c Compiled at 14:43:27 on Jul 13 2015 MAIN Line 348 Function "_IDT_init"
IDT Installed
BOS v. 0.0.2 SRC/SYSTEM_x86/8259.c Compiled at 14:43:28 on Jul 13 2015 MAIN Line 141 Function "_8259_INIT"
8259 PIC Installed
PIT Installed
BOS v. 0.0.2 SRC/MEM/PHYS.c Compiled at 21:33:47 on Jul 16 2015 MAIN Line 90 Function "PHYSMEM_init"
Total RAM = 32383 KB
Used RAM = 1203 KB
Free RAM = 31180 KB
BOS v. 0.0.2 SRC/MEM/PAGEFAULT.c Compiled at 14:43:29 on Jul 13 2015 MAIN Line 67 Function "_pageFault_init"
BOS v. 0.0.2 SRC/MEM/VIRTUAL.c Compiled at 14:43:29 on Jul 13 2015 MAIN Line 81 Function "VIRTUALMEM_init"
Total RAM = 32383 KB
Used RAM = 1207 KB
Free RAM = 31176 KB
(SRC/MEM/VIRTUAL.c:55) MakeDirectory() = 0x11A000
Total RAM = 32383 KB
Used RAM = 1211 KB
Free RAM = 31172 KB
Total RAM = 32383 KB
Used RAM = 1215 KB
Free RAM = 31168 KB
(SRC/MEM/VIRTUAL.c:46) MakeTable() = 0x11C000
Total RAM = 32383 KB
Used RAM = 1219 KB
Free RAM = 31164 KB
(SRC/MEM/VIRTUAL.c:46) MakeTable() = 0x11D000
Total RAM = 32383 KB
Used RAM = 1223 KB
Free RAM = 31160 KB
(SRC/MEM/VIRTUAL.c:46) MakeTable() = 0x11E000
Total RAM = 32383 KB
Used RAM = 1227 KB
Free RAM = 31156 KB
(SRC/MEM/VIRTUAL.c:46) MakeTable() = 0x11F000
Total RAM = 32383 KB
Used RAM = 1231 KB
Free RAM = 31152 KB
(SRC/MEM/VIRTUAL.c:46) MakeTable() = 0x120000
Total RAM = 32383 KB
Used RAM = 1235 KB
Free RAM = 31148 KB
(SRC/MEM/VIRTUAL.c:46) MakeTable() = 0x121000
Total RAM = 32383 KB
Used RAM = 1239 KB
Free RAM = 31144 KB
(SRC/MEM/VIRTUAL.c:46) MakeTable() = 0x122000
Total RAM = 32383 KB
Used RAM = 1243 KB
Free RAM = 31140 KB
(SRC/MEM/VIRTUAL.c:46) MakeTable() = 0x123000
Total RAM = 32383 KB
Used RAM = 1247 KB
Free RAM = 31136 KB
(SRC/MEM/VIRTUAL.c:46) MakeTable() = 0x124000
Total RAM = 32383 KB
Used RAM = 1251 KB
Free RAM = 31132 KB
(SRC/MEM/VIRTUAL.c:46) MakeTable() = 0x125000
Total RAM = 32383 KB
Used RAM = 1255 KB
Free RAM = 31128 KB
(SRC/MEM/VIRTUAL.c:46) MakeTable() = 0x126000
Total RAM = 32383 KB
Used RAM = 1259 KB
Free RAM = 31124 KB
(SRC/MEM/VIRTUAL.c:46) MakeTable() = 0x127000
Total RAM = 32383 KB
Used RAM = 1267 KB
Free RAM = 31116 KB
0 _API_Add_Symbol("outb", 0x100160);
1 _API_Add_Symbol("inb", 0x100170);
2 _API_Add_Symbol("outw", 0x100180);
3 _API_Add_Symbol("inw", 0x100190);
4 _API_Add_Symbol("outl", 0x1001A0);
5 _API_Add_Symbol("inl", 0x1001B0);
6 _API_Add_Symbol("newHandler", 0x1045E0);
7 _API_Add_Symbol("strlen", 0x100500);
8 _API_Add_Symbol("streql", 0x100520);
9 _API_Add_Symbol("strcmp", 0x100570);
10 _API_Add_Symbol("strcpy", 0x1005C0);
11 _API_Add_Symbol("stringf", 0x1006E0);
12 _API_Add_Symbol("malloc_page", 0x105870);
13 _API_Add_Symbol("calloc_page", 0x105C80);
14 _API_Add_Symbol("malloc_page_low", 0x105CB0);
15 _API_Add_Symbol("calloc_page_low", 0x105FA0);
16 _API_Add_Symbol("free_page", 0x105FD0);
17 _API_Add_Symbol("AddPage", 0x106600);
18 _API_Add_Symbol("DelPage", 0x106700);
19 _API_Add_Symbol("_API_Add_Symbol", 0x106940);
20 _API_Add_Symbol("_API_Get_Symbol", 0x1068F0);
21 _API_Add_Symbol("DEBUG_printf", 0x1009C0);
22 _API_Add_Symbol("INT", 0x106990);
23 _API_Add_Symbol("memcpy", 0x1001C0);
24 _API_Add_Symbol("memset", 0x1002A0);
25 _API_Add_Symbol("memsetw", 0x100410);
API Installed
End of Kernel Data = 0x110928
Bottom of Kernel Stack = 0x10F000
Loading Boot Time Modules...
Total RAM = 32383 KB
Used RAM = 1271 KB
Free RAM = 31112 KB
BOS v. 0.0.2 SRC/MAIN.c Compiled at 14:43:29 on Jul 13 2015 HAL Line 10 Function "main"
Total RAM = 32383 KB
Used RAM = 1303 KB
Free RAM = 31080 KB
26 _API_Add_Symbol("HAL_ReadDev", 0x110968);
27 _API_Add_Symbol("HAL_WriteDev", 0x1109F8);
28 _API_Add_Symbol("HAL_RegisterDev", 0x110B58);
29 _API_Add_Symbol("HAL_UnregisterDev", 0x110A78);
30 _API_Add_Symbol("HAL_UnregisterDevByID", 0x110BD8);
31 _API_Add_Symbol("HAL_GetDevByName", 0x110C28);
32 _API_Add_Symbol("HAL_GetDev", 0x110AA8);
33 _API_Add_Symbol("HAL_NewDev", 0x110AE8);
Total RAM = 32383 KB
Used RAM = 1307 KB
Free RAM = 31076 KB
Total RAM = 32383 KB
Used RAM = 1311 KB
Free RAM = 31072 KB
34 _API_Add_Symbol("PCI_GetDevice", 0x113768);
35 _API_Add_Symbol("PCI_SetHAL", 0x1137B8);
36 _API_Add_Symbol("PCI_GetBaseAddr", 0x1137D8);
37 _API_Add_Symbol("PCI_GetINTLine", 0x113808);
Bus:Slot:Function Vendor Device Class SubClass HeadType BaseAddr INTLine
PCI_0_0_0 0x8086 0x1237 0x6 0x0 0x0 0x0 0x0
PCI_0_1_0 0x8086 0x7000 0x6 0x1 0x80 0x0 0x0
PCI_0_1_1 0x8086 0x7010 0x1 0x1 0x0 0x0 0x0
PCI_0_1_3 0x8086 0x7113 0x6 0x80 0x0 0x0 0x9
PCI_0_2_0 0x1234 0x1111 0x3 0x0 0x0 0xC0000008 0x0
Total RAM = 32383 KB
Used RAM = 1315 KB
Free RAM = 31068 KB
BOS v. 0.0.2 SRC/MAIN.c Compiled at 14:43:29 on Jul 13 2015 VFS Line 12 Function "main"
Total RAM = 32383 KB
Used RAM = 1323 KB
Free RAM = 31060 KB
Total RAM = 32383 KB
Used RAM = 1331 KB
Free RAM = 31052 KB
38 _API_Add_Symbol("VFS_OpenFile", 0x116368);
39 _API_Add_Symbol("VFS_ReadFile", 0x1163A8);
40 _API_Add_Symbol("VFS_WriteFile", 0x116428);
41 _API_Add_Symbol("VFS_CloseFile", 0x1164A8);
42 _API_Add_Symbol("VFS_RegisterFileSystem", 0x1166B8);
43 _API_Add_Symbol("VFS_UnregisterFileSystem", 0x1167F8);
44 _API_Add_Symbol("VFS_ReadPartition", 0x1165B8);
45 _API_Add_Symbol("VFS_WritePartition", 0x116638);
46 _API_Add_Symbol("VFS_RegisterPartition", 0x116748);
47 _API_Add_Symbol("VFS_Mount", 0x116518);
48 _API_Add_Symbol("VFS_UMount", 0x116858);
DONE!
All memory management works, all modules are loaded, everything runs just like it did with GRUB, but I'm in a video mode.
I still should (but probably won't) change how my boot configuration file looks:
Code: Select all
V032002580110
R
DBIN
KKERNEL ELF
R
DBIN
MHAL DLL
R
DBIN
MPCI DLL
R
DBIN
MVFS DLL
B
EDIT: Fixed typo's
BOS Source Thanks to GitHub
BOS Expanded Commentary
Both under active development!
BOS Expanded Commentary
Both under active development!
Sortie wrote:
- Don't play the role of an operating systems developer, be one.
- Be truly afraid of undefined [behavior].
- Your operating system should be itself, not fight what it is.
- BrightLight
- Member
- Posts: 901
- Joined: Sat Dec 27, 2014 9:11 am
- Location: Maadi, Cairo, Egypt
- Contact:
Re: What does your OS look like? (Screen Shots..)
It's exactly what it says... Sorry if I post here too often.
Sources on GitHub. LD linker script was modified from BareMetal OS, everything else was written by me.
Both programs and the shell run in ring 3.
EDIT: It's just a prototype of my C library.
Sources on GitHub. LD linker script was modified from BareMetal OS, everything else was written by me.
Both programs and the shell run in ring 3.
EDIT: It's just a prototype of my C library.
You know your OS is advanced when you stop using the Intel programming guide as a reference.
Re: What does your OS look like? (Screen Shots..)
This forum post is so useful for getting motivated for more OS development
I need to work on my kernel again
I need to work on my kernel again
"for example, turning off the system’s power through the movement of a large red switch" - the Advanced Configuration and Power Interface Specification
Re: What does your OS look like? (Screen Shots..)
Almost embarrassed by the lack of screen output! Currently I output important debug events to serial, and just use GDB and breakpoints for everything else.
Just managed to get threading working properly (after debugging a horrible problem with my memory manager that caused seemingly random page faults and wierd addresses). The animation below shows 30 threads running simultaneously!
Features:
Just managed to get threading working properly (after debugging a horrible problem with my memory manager that caused seemingly random page faults and wierd addresses). The animation below shows 30 threads running simultaneously!
Features:
- Threads
Processes
Paging
Interrupts
PIC / PIT
Error handling via C++ Exceptions
A horribly broken WIP memory manager
Re: What does your OS look like? (Screen Shots..)
Last edited by klange on Fri Aug 07, 2015 8:15 pm, edited 1 time in total.
- BASICFreak
- Member
- Posts: 284
- Joined: Fri Jan 16, 2009 8:34 pm
- Location: Louisiana, USA
Re: What does your OS look like? (Screen Shots..)
Ever had that moment where you realized the back-end you have made will be suitable?
After planning around 100 designs for HAL/VFSs I Decided it was time to try one.
Wasn't quite sure it would work out but after getting (some of) the FAT drivers in place, and fixing multiple page fault exceptions, I was thrilled to see:
It is a simple output of a simple (text) file located at /fdc/boot/boot.cfg
Well, next time you see me here I will be booting of HDD and have a (should I say) GUI (probably not as it will be in dev, but it will have visual output...)
After planning around 100 designs for HAL/VFSs I Decided it was time to try one.
Wasn't quite sure it would work out but after getting (some of) the FAT drivers in place, and fixing multiple page fault exceptions, I was thrilled to see:
Code: Select all
... ... ...
Cluster = 0xB Start = 0x5400 Length = 0x200
Current Cluster Data:
52 A 44 42 49 4E 20 20 20 20 20 20 20 20 A 4B 4B 45 52 4E 45 4C 20 20 45 4C 46 A 4D 44 4D 41 20 20 20 20 20 44 4C 4C A 4D 46 44 43 20 20 20 20 20 44 4C 4C A 4D 46 41 54 20 20 20 20 20 44 4C 4C A 56 30 33 32 30 30 32 35 38 30 31 31 30 A 42 A 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
BOOT.CFG:
R
DBIN
KKERNEL ELF
MDMA DLL
MFDC DLL
MFAT DLL
V032002580110
B
.DONE!
Well, next time you see me here I will be booting of HDD and have a (should I say) GUI (probably not as it will be in dev, but it will have visual output...)
BOS Source Thanks to GitHub
BOS Expanded Commentary
Both under active development!
BOS Expanded Commentary
Both under active development!
Sortie wrote:
- Don't play the role of an operating systems developer, be one.
- Be truly afraid of undefined [behavior].
- Your operating system should be itself, not fight what it is.
-
- Posts: 21
- Joined: Mon Feb 03, 2014 12:52 pm
Re: What does your OS look like? (Screen Shots..)
Running at ARM Cortex M3 LPC1768 using UART0 driver.
Builtin applications:
Result of standard commands
Running at x86-32 using Bochs.
Builtin applications:
Result of standard commands
Running at x86-32 using Bochs.
- BrightLight
- Member
- Posts: 901
- Joined: Sat Dec 27, 2014 9:11 am
- Location: Maadi, Cairo, Egypt
- Contact:
Re: What does your OS look like? (Screen Shots..)
I just thought, what's the point of having a mouse driver without a drawing program?
The black square is the mouse cursor, and it appears on top of all other objects.
The black square is the mouse cursor, and it appears on top of all other objects.
- Attachments
-
- draw.png (9.44 KiB) Viewed 9076 times
You know your OS is advanced when you stop using the Intel programming guide as a reference.
Re: What does your OS look like? (Screen Shots..)
@omarrx024: nice os, but the link to your website results in a 403
- BrightLight
- Member
- Posts: 901
- Joined: Sat Dec 27, 2014 9:11 am
- Location: Maadi, Cairo, Egypt
- Contact:
Re: What does your OS look like? (Screen Shots..)
Because the view limit has been reached, I'm working on GitHub Pages now. But I'm working too much in the OS and not in the site, lol.Roflo wrote:@omarrx024: nice os, but the link to your website results in a 403
You know your OS is advanced when you stop using the Intel programming guide as a reference.