Posts

Showing posts from September, 2020

Cursor and Serial Ports

One might think that today was a weekend day, so I might have been able to progress much today. But there is always a roadblock, this one was named college. Taking a formality-only viva, but keeping the students busy without any work, and making them write a 14 page hand written assignment, which will never ever be opened, is some form of punishments college provide. So, enough about the day, what did I do today. Today was as uneventful as yesterday, but atleast I was able to progress a little more today, ( albeit at snail's pace ).  Today, I learned about how via assembly 'out' instruction, we can send data on Serial ports of our computer. Here we are actually writing a near machine level code to directly interact with hardware. How cool is that! So, improving the framebuffer printing I had created in the last post, today I used the Serial ports to send the command to serial port that is concerned with the position of "the blinking cursor" in the framebuffer. We ...

A hand made printf()

 So, today didn't go exactly as I planned ( I had hoped to reach the Memory Management section today ), but still there is some progress. So today was the day I got to implement my own custom "printf()" function. Yay! Even though the function is absolutely shitty, it does what it should, print a string to the screen. There were two ways to proceed, I naturally went for the simpler one [ Not that I am afraid :) ]. So, to print a character on the screen, we have to use what is called the "FRAMEBUFFER".     It is basically a memory address, where we can write data and that is displayed on the screen. Umm, that's basically it. I just created a function that takes in the index of where to write on framebuffer ( 1st char, 2nd char etc. ), and with character, we can set it's foreground and background color too. Then I created another print method, that takes in a "char*" that is a string ( shh! C doesn't have the concept of string yet ), and the l...

A little thing called OS..

 2 months ago, I got an idea that it would be great to learn "How to make an OS" from scratch. So I got to work looking for all the resources that I can find on this topic. Luckily, there are many people who want to make OS ( Gosh, how many linux flavours you can find ), so someone teamed up and created a (not-so) " Little Book About OS ". So, I thought, well I got the book, I got the tools, so let's get cracking. But as always, the universe conspired to not let me do it. First thing, it required Linux as base. So what I thought, I can make it run on windows with some tinkering. Turns out either windows doesn't support this sort of tinkering, or I am a bad tinkerer ( more plausible ).  Ofcourse I couldn't install Linux virtual machine on my already breaking laptop. So I had to wait a whole month before I got hold of my recent laptop, so that I can install linux vm on it. So, now I am beginning to write my OS. Yay! Let's see how it goes. So, my curren...