Skip to content

Programming by Design

If you're not prepared to be wrong, you'll never come up with anything original. – Sir Ken Robinson

  • About
  • Java-PbD
  • C-PbD
  • ASM-PbD
  • Algorithms
  • Other

Category: Ciss-150

Write Your Own OS! (UEFI/GPT)

Posted on March 13, 2023April 1, 2023 By William Jojo
Ciss-150

UNDER CONSTRUCTION!! UNDER CONSTRUCTION!! UNDER CONSTRUCTION!! UNDER CONSTRUCTION!! (Updated April 1,2023) Overview Compared to the BIOS version of Write Your Own OS, this tutorial is a bit more involved. So, we will start with installing anything we need right away. sudo apt update && sudo apt install build-essential qemu-system-x86 mtools git This includes the OVMF … Read More “Write Your Own OS! (UEFI/GPT)” »

Write Your Own OS! (BIOS/MBR)

Posted on March 10, 2023March 13, 2023 By William Jojo
Ciss-150

(Updated March 13, 2023) Overview Writing an operating system (OS) is no small feat. Ask Linus Torvalds. First, you must be able to store the OS on some medium that is durable and persistent, then you must write code that makes the OS start upon powering on the hardware on which it is intended to … Read More “Write Your Own OS! (BIOS/MBR)” »

Signal Handling

Posted on October 19, 2021November 22, 2024 By William Jojo
Ciss-150, Docs

(Updated November 22, 2024) Overview As we have seen, many hardware and software components vie for CPU time. In addition to hardware interrupts when a device needs servicing and software interrupts that perform privileged actions within the OS, signal handling components allow programs to try to intercept some of the kinds of interrupts that may … Read More “Signal Handling” »

Godbolt: Behind the Compiler

Posted on October 18, 2021July 26, 2024 By William Jojo
Ciss-150, Docs

(Updated July 26, 2024) Overview The C compiler produces platform-specific executable code, which can also be viewed as assembly language, given the correct set of options provided to the compiler. This can be particularly useful when we want to learn a bit more about what is going on behind the scenes. Maybe we want to: … Read More “Godbolt: Behind the Compiler” »

Assembly Language With NASM

Posted on September 26, 2020February 15, 2025 By William Jojo
Ciss-150

(Updated October 13, 2024) Table of Contents Overview Hello World! Syntax Instructions Operands FLAGS System Calls Assembly Language and C Overview This tutorial explains some of the basics of assembly language for the x86_64. This is focused primarily on the 64-bit programming model and calling subroutines on the Linux platform. This is not the same … Read More “Assembly Language With NASM” »

Bitwise Operators and Two’s Complement.

Posted on May 7, 2012August 13, 2024 By William Jojo
ciss-110, ciss-111, Ciss-150, Theory

(Updated August 5, 2024) Table of Contents Bitwise Operators Two’s Complement Numbers Shifting and Rotating Showing the Bits Bitwise Operators Within computer science, there is a desire to manipulate individual bits. Although memory is plentiful in many computing systems, that does not excuse one from considering all possible solutions to making a program or system … Read More “Bitwise Operators and Two’s Complement.” »

Number Systems

Posted on May 7, 2012August 13, 2024 By William Jojo
ciss-110, ciss-111, Ciss-150, Theory

(Updated March 24, 2020) Table of contents Overview Decimal Binary Octal Hexadecimal Exercises Overview Numbers systems are simply the means by which we represent values given a particular radix. The radix represents the base counting system. As a defined standard we generally use the Hindu-Arabic numerals of the base 10 counting system, or simply base … Read More “Number Systems” »

Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

Copyright © 2018 – 2025 Programming by Design.