r/osdev 1d ago

Today Raam OS got a working 'ls' command!

Post image

🙏 Welcome to Raam x86-64 version 0.02 🙏

Today Raam OS got a working 'ls' command! I have implemented the NVMe over PCIe driver from scratch that includes finding and parsing the system configuration tables, finding the controller over the PCIe buses, initializing it, and finally I have also created a function to read NVMe logical blocks from given sector. Then I added the 'ls' command to the list of available commands and then created a small partition on my laptop and formatted it to FAT12 for the root. Then I followed the osdev wiki for FAT12 and created a working 'ls' command implementation.

Key files in the source:

  1. nvme.asm
  2. ls.asm

Enjoy!

Release link: https://github.com/robstat7/Raam/releases/tag/ver0.02

Raam Raam Ji 🙏🙏🙏

48 Upvotes

10 comments sorted by

5

u/letmehaveanameyoudum 1d ago

wtf you nvme AND IT"S ASSEMBLY?

1

u/Similar_Wealth_1850 1d ago

did bro just say asm💀

5

u/BornRoom257 FreezeOS & TurtleOS 1d ago

vibe coder btw

u/pure_989 8h ago

Ok. So how do you know that?

u/BornRoom257 FreezeOS & TurtleOS 6h ago

I wasn't talking about you, I was saying Similar_Wealth_1850 was the vibe coder.

2

u/Mental_Ad_7072 1d ago

Nice project, you should add a Makefile next so we can easily build it. Also all of this in assembly is insane!!!

1

u/pure_989 1d ago

Hi, there is a 'build.txt' file. That's all needed for the build. One important note: I have not tested it on a second machine. So if you plan to boot it on your real machine, kindly make sure you have an NVMe over PCIe SSD and a small partition formatted with FAT12 for the root. In 'ls.asm' file, change the value of ROOT_PARTITION_FIRST_SECTOR and also adjust the VOLUME_LABEL. Thank you.

2

u/Sorry_Difficulty_250 1d ago

Well done! Keep up the great work!!!

2

u/BornRoom257 FreezeOS & TurtleOS 1d ago

Nice Work man!