Skip to main content
Architectural Patterns and kernels

Monolithic architecture - Exposes a high level interface where with core services closely coupled with each other. Linux and other monolithic kernels provide a high level system call API and internally, services like memory management, I/O etc are tightly coupled.

Pro: Performance
Con: Defect on one service may affect other services

Microkernel architecture - Services decoupled and run on own process. Use message passing mechanism to communicate with each other to reduce coupling.

Pro: Easy to extend or add new features. Malfunctioning service can be restarted without affecting others
Con: Slower

Hybrid kernels - Micro kernels that have non-essential code in kernel space for efficiency. Microsoft Windows NT and strains are an example

Exokernels - Provides a library for core OS features (in terms of the developer requesting particular pages of memory or blocks of diskspace). Application developer builds on top. Multiple libraries can co-exist allowing applications designed for different libraries to run side by side.

Comments

Popular posts from this blog

Inside a Text Editor Ever since my college days, after dabbling with vi and a few other editors, I always had an yearning to create my own. Now, I am still stuck with XEmacs and jEdit and had a chance to compile / study the sources and documentation of EMACS and a free editor component called Scintilla. Until now, I was under the the belief that text editors used a doubly linked list to represent the text in memory. The advantages of this approach being insertions and deletions are much more easier which is just a matter of just un-linking a node off the list. But the shortcomming is that they tend to fragment memory with each node or line take a bit of memory. The other alternative approach is to have a dynamic array which is a contiguous space of memory and can sometimes be directly written off to a file. The disadvantages are that insertion and deletion are costly and you need to reallocate quite frequently. While goint throug the source and documentation of text editors, I chanced ...
Battle of Wesnoth Been on the lookout for a free turn based strategy game and chanced upon the Battle of Wesnoth . Despite it being an open source game (meaning, you get the source), it was incredibly polished akin to any of the other turn based strategy game (Alpha Centauri), be it the background score or the graphics or the tutorials. The game itself is set in a period similar to the D&D or nethack era. For the film buffs, if you have read or seen the Lord of the Rings, you would probably be able to relate to the clans that populate the game world. The game play, as with any turn based strategy game requires background information on each of the units that you own, their strengths and weaknesses and a lot of planning (a kin to chess, but with a lot more parameters) where factors like day - night cycles are taken into account (e.g, humans fight well during the day, but the orcs are better during the night). It is encouraged to keep your older units as they gain experience and beco...

R programming

Of late, I have been following up with data analytics and learnt R and Pandas (using Python). Somehow, most of the work that I now do is crunching data and representing them in a more fancier way. In a lighter vein, when I am at home, I try to see how my non-work data can be represented as charts and graphs. Here is the first attempt to categorize the list of programmers editors that I had used throughout my life time... This was generated using R and ggplot (ggplot is a great library that allows you to generate different types of charts). Why not excel? Sure, I can do the same in excel as well. But once the data becomes huge to manage, it becomes difficult to monitor each of the cells to see if the formula is right. Sometimes, they get complicated enough that I have to wait for a few seconds every time I make a change in a cell or consider turning off auto-calculation in excel. It is much more simpler to have the processing logic as a source file that you can modify separated from t...