What is 4+1 architectural view model?

The 4+1 View Model describes software architecture using five concurrent views, each of which addresses a specific set of concerns: The logical view describes the design’s object model, the process view describes the design’s concurrency and synchronization aspects; the physical view describes the mapping of the software onto the hardware and shows the system’s distributed aspects, and the development view describes the software’s static organization in the development environment.

History and evolution

Kruchten was named Director of Process at Rational Software in 1996, where he oversaw the creation of the “Rational Unified Process” (RUP). …


This is the last part of my Operating System article series. Last week we allocated a virtual memory to the Operating system. Today we are going to allocate page frames.

An important aspect of operating systems, virtual memory is implemented using demand paging. Demand paging necessitates the development of a page replacement algorithm and a frame allocation algorithm. Frame allocation algorithms are used if you have multiple processes; it helps decide how many frames to allocate to each process.

There are two types of algorithms commonly used to allocate frames to a process. They are :

  1. Equal allocation
  2. Proportional Allocation


From the last article, we have learned about the User mode. And this week we gonna learn about virtual memory and paging.

What is virtual memory?

Virtual memory has a very important role in the operating system. It allows us to run more applications on the system than we have enough physical memory to support. Virtual memory is simulated memory that is written to a file on the hard drive. That file is often called a page file or swap file.

You could skip paging entirely and just use segmentation for virtual memory. Each user-mode process would get its own segment, with the base…


From the previous articles, we have learned to ,

Boot the kernel

Print to kernel

Read from keyboard

A kernel is not supposed to do the application logic itself, but leave that for applications. So this article is related to loading external programs. User mode, in contrast with kernel mode, is the environment in which the user’s programs execute.

We will show how to easily execute a small program in kernel mode.

Loading an external program

Normally we get external programs from drivers and file systems that enable them to load the software from a CD-ROM drive.

Instead of creating drivers, we will use…


Now we all know how to produce output. In this section let's get to know about input methods.

The operating system must be able to handle interrupts in order to read information from the keyboard.

What is an Interrupt?

An interrupt is a response by the processor to an event that needs attention from the software. An interrupt condition alerts the processor and serves as a request for the processor to interrupt the currently executing code when permitted so that the event can be processed in a timely manner.

An interrupt occurs when a hardware device, such as the keyboard, the serial port, or…


Last week we discussed taking outputs and today we are going to discuss the segmentation part.

What is segmentation?

Segmentation means accessing the memory through segments. Segments are portions of the address space, possibly overlapping, specified by a base address and a limit.

A 48-bit logical address is used to address a byte in segmented memory: The segment is specified by 16 bits, while the offset inside that segment is specified by 32 bits. The offset is added to the segment’s base address, and the resulting linear address is compared to the segment’s limit.

Translation of logical address to linear address

We have…


What is a Software License?

“A software license is a license agreement that gives an individual, company, or organization permission to use a software program.”

Software licensing exists to protect the copyright of software and can restrict the way that the user can use it. In general, the restrictions consist of copying the software or having it installed on more than one device.

Software License Types

Most software licenses falls into main two categories according to copyright law:


From this chapter, we are going to display some text on the console and write data to the serial port. First, we will create a driver for the frame buffer to be able to display text on the console.

What is a frame buffer?

The frame buffer is a hardware device that is capable of displaying a buffer of memory on the screen. The frame buffer has 80 columns and 25 rows, and the row and column indices start at 0 (so rows are labeled 0–24).

Displaying the text

Writing text to the console via the frame buffer is done with memory-mapped I/O. Writing to the frame buffer…


In this article, I am going to describe 5 Evaluation methods.

  1. Heuristic evaluation
  2. Walk-throughs
  3. Web analytics
  4. A/B Testing
  5. Predictive Models

Heuristic evaluation

Heuristic evaluation is a process where experts use rules of thumb to measure the usability of user interfaces in independent walkthroughs and report issues. Evaluators use established heuristics and reveal insights that can help design teams enhance product usability from early in development.

How to conduct a Heuristic evaluation

  1. Know what to test and how — Whether it’s the entire product or one procedure, clearly define the parameters of what to test and the objective.
  2. Know your users and have…


From the previous article, I guided you to set up the booting part of the operating system. Now let's implement C language to our operating system instead of assembly language. Since C language is more user-friendly than assembly language we can use it to make the development process easier.

Read all the steps carefully!!

Let's get started.

Step 1: Setting up a stack

A stack is a need for utilizing C, as it is used in all non-trivial C programs. Setting up a stack is as simple as setting the esp register to the end of a free memory area that is correctly aligned.

We could…

Tharushi Chamalsha

Software engineering undergraduate

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store