New 64 bit project: Thor OS

This forums is for OS project announcements including project openings, new releases, update notices, test requests, and job openings (both paying and volunteer).
Post Reply
User avatar
wichtounet
Member
Member
Posts: 90
Joined: Fri Nov 01, 2013 4:05 pm
Location: Fribourg, Switzerland
Contact:

New 64 bit project: Thor OS

Post by wichtounet »

Hi,

For some time now, I've been working on an hobby operating system, just for fun : Thor OS. All the sources are available on Github: https://github.com/wichtounet/thor-os

It is a C++ 64 bit operating system that works in several pieces:
- A simple two stage bootloader (in assembly) loads the micro kernel from floppy and runs it
- A micro kernel in assembly enables 64bit, install IDT and ISRs and provide some simple syscalls (for updating IRQs and ISRs mainly). And then it runs the C++ kernel
- The C++ kernel do all the rest of the job :)

Here are the current features of the OS:
- A simple shell provided by the OS itself
- Dynamic memory allocation
- ATA Disk support, list disks, list partitions, ...
- FAT32 implementation with ls/cd/cat/free space support, write support will be developed
- PIT Support with uptime and sleep functions
- RTC support for date function

For now, there is no userspace support, I want to add that in the future, but I do not know when, not before my FAT32 implementation is completed.

The system can be run with either Bochs or QEMU.

I do no have any long term view or goals like some other projects have, I just add the features I find fun to develop and refactor the system when I think it necessary.

I will try to post news when major features are added.

Baptiste
Thor Operating System: C++ 64 bits OS: https://github.com/wichtounet/thor-os
Good osdeving!
User avatar
wichtounet
Member
Member
Posts: 90
Joined: Fri Nov 01, 2013 4:05 pm
Location: Fribourg, Switzerland
Contact:

Re: New 64 bit project: Thor OS

Post by wichtounet »

Hi guys,

Some news from this OS!

I have actively restarted development after a long period working on other projects.

It now has much more features:
  • VESA support with a terminal
  • Multitasking with user land (the shell itself is userland now)
  • PCI basic support
  • Initial support for RTL8139 network card
  • Initial support for Ethernet / ARP / IP
  • Support of ACPI with ACPICA
  • ATA Disk support, list disks, list partitions, ...
  • FAT32 implementation with ls/cd/cat/free space support, write support will be developed
  • Support for HPET / PIT / RTC
It is a C++ 64 bit operating system that works in several stages:
  1. A simple two stage bootloader (in assembly) loads the init program from disk (ATA/FAT32) and runs it
  2. A simple C++ program (the init program) enters 32bit mode, then read the kernel itself from disk (ATA/FAT32), enables 64bit and runs the kernel
  3. The C++ kernel installs all the drivers, prepare multitasking, launch the init task who launches the user land shell and now it's up to the user!
The system can be run with either Bochs or QEMU.

All the sources are available on Github: https://github.com/wichtounet/thor-os (Boost Software License (Will be updated to MIT soon))

For the future, there are several directions in which I want to go:
  • Develop a window manager (userland). For now, I have some issues with the PS/2 mouse that I'll have to fix first
  • Complete the network implementation. I stopped this when I realized it was more complex to test a network implementation (from the host) than to implement one, but I'll go back to it at some point
  • Develop an EXT2 Filesystem support
  • ATA UDMA support
  • Plenty of minor things
I'm again having a lot of fun with this project :)
Thor Operating System: C++ 64 bits OS: https://github.com/wichtounet/thor-os
Good osdeving!
User avatar
max
Member
Member
Posts: 616
Joined: Mon Mar 05, 2012 11:23 am
Libera.chat IRC: maxdev
Location: Germany
Contact:

Re: New 64 bit project: Thor OS

Post by max »

Hey wichtounet,

looks nice, I like that you do C++ :mrgreen: Is it a microkernel?

Will def have a look at your networking implementation, cool stuff.

Grüße aus Deutschland :P
User avatar
wichtounet
Member
Member
Posts: 90
Joined: Fri Nov 01, 2013 4:05 pm
Location: Fribourg, Switzerland
Contact:

Re: New 64 bit project: Thor OS

Post by wichtounet »

max wrote:Hey wichtounet,

looks nice, I like that you do C++ :mrgreen: Is it a microkernel?

Will def have a look at your networking implementation, cool stuff.

Grüße aus Deutschland :P
Hi max,

Thanks :)
I just love C++ too much to not use it here :P
It's a monolithic kernel. I'm not a huge fan of microkernel. It seems too much hassle for few advantages and not really worth it for a hobby project (at least for me).

Don't hesitate to comment on the networking, it was quite fun to do, but there is a lot more to do (once I find out how to really test it).

Cheers from Switzerland ;)
Thor Operating System: C++ 64 bits OS: https://github.com/wichtounet/thor-os
Good osdeving!
Post Reply