Posts

Showing posts from 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...

NodeJS Fundamentals

So today was all about brushing my concepts of NodeJS fundamentals from Pluralsight. Here is what I learned : NodeJS, in a nutshell, is an event driven server side javascript. Unlike traditional backend languages like Java and C#, which rely on multiprocess or multithreaded architecture to support concurrent requests, NodeJS relies on a single threaded event loop. This event loop serves one request and then internally triggers and listens for events. This makes it hugely scalable, because no resources are waiting for something to happen. The downside is that if any request triggers unhandled error, the whole application crashes. For centralized package management, there is a "Node Package Manager" or `npm` for short, which can be used to easily install, update and share node modules and packages. The "package.json" file is responsible for storing all the information about the application, including all the dependencies that are installed via `npm install`....

Long time no see

It has been a very long time since I posted. Well hopefully, starting with this post, I would try to post atleast one post per day ( if not more ). Today, I would be starting to learn node.js in an organized way ( because the way I did earlier should never be done ). Though first, I would be delving into Blender 2.8 for some photorealistic modelling. See you Soon!