Grant Novota
Computer engineer with a passion for space
Home
About
Projects
Blog
Links
Resume
Github
Linkedin
Stackoverflow
Email
© 2024. All rights reserved.
Grant Novota
About
Projects
Peaks
Blog
Links
Resume
My Blog: So I won't forget things
Metrics Reporting
14 May 2023
Setting up Metric Reporting Prometheus and Grafana make a great duo for setting up system monitoring and metrics reporting on a machine. The following are my notes on how to get setup: Prometheus Prometheus is an open-source system monitoring and...
Prometheus
Grafana
Ubuntu
Getting Setup with Git
14 May 2023
My procedure for getting up and running with git Install Git: Open a terminal and type in the following command: sudo apt install git Verify the installation with: git --version This should show the installed Git version. Set up Git:...
Git
Ubuntu
The 8 Great Ideas in Computer Architecture
20 May 2020
When I studied computer architecture, I was introduced to the 8 great ideas that have resulted in much of the incredibly fast growth in computing capabilities over the past 50-ish years. They are the following: 1. Design for Moore’s Law...
Computer Engineering
Computer Architecture
PCB Debug
19 Sep 2019
The most important step in debugging is finding the correct root cause. List of possible sources of problems that can be used as a check list to review at each phase of a PCB project: Problem in the conceptual design:...
PCB Design
Electronics
Debugging
Engineering
How to Create a Self-Signed SSL Certificate
09 Aug 2019
Getting Started SSL is a cryptographic protocol that provides end-to-end encryption and integrity for all web requests. Apps that transmit sensitive data should enable SSL to ensure all information is transmitted securely. To generate our own SSL certificate, we need...
Web Servicing
Security
Storage Management
24 Jul 2019
Magnetic Media Using magnetic media, we can set a bit to 1 or 0 by applying a strong enough magnetic field to a small region of a magnetic film and this region will retain its magnetic sense even when power...
Operating Systems
Storage
Linux
PC
Thrashing
22 Jul 2019
Thrashing Thrashing describes a situation of repeated page faulting. This significantly slows down performance of the entire system and is to be avoided. It occurs when a process’ allocated number of frames is less than the size of its recently...
Operating Systems
Memory
Linux
PC
Frame Allocation
22 Jul 2019
Techniques to Improve Page Replacement Performance Use a dirty/modify bit to reduce disk writes. Choose a smart page replacement algorithm Keeps the most important pages in memory and evicts the least important. Make the search for the least important page...
Operating Systems
Paging
Linux
PC
Page Replacement Policies
20 Jul 2019
Page Replacement Policies As processes execute and bring in more pages on demand into memory, eventually the system runs out of free frames so we need a page replacement policy. Steps: Select a victim frame that is not currently being...
Operating Systems
Memory
Linux
PC
Virtual Memory
18 Jul 2019
On-Demand Paging Page tables might be large and cosume a lot of RAM. A key observation: Not all pages in a logical address space need to be kept in memory. In the simplest case, we could just keep the current...
Operating Systems
Memory
Linux
PC
Swapping, Fragmentation, and Segmentation
16 Jul 2019
Swapping If run time binding is used, then a process can be easily swapped back into a different area of memory. If compile time or load time binding is used, then process swapping will become very complicated and slow, which...
Operating Systems
Memory
Linux
PC
Memory Management
15 Jul 2019
Memory Management In the figure above, we want the newly active process P1 to execute in its own logical address space randing from 0 to max. It shouldn’t have to know exactly where in physical memory its code and data...
Operating Systems
Memory
Linux
PC
Threads
26 Jun 2019
What is a thread? A thread is a logical flow or unit of execution that runs within the context of a process. It has its own program counter (PC), register state, and stack. In addition, it shares the memory address...
Operating Systems
Processes
Linux
PC
Inter-Process Communication
24 Jun 2019
Communication between processes There are some different ways that inter-process communications are done. Signals/Interrupts Notifying that an event has occured. Message Passing Pipes Sockets Shared Memory Subject to race conditions. Synchronization Remote Procedure Calls Why use inter-process communication (IPC)? Information...
Operating Systems
Processes
Linux
PC
Processes
16 Jun 2019
What is a Process? A software program consists of a sequence of code instructions and data stored on disk; it’s a passive entity. A process is a program actively executing from main memory within its own address space. Loading Executable...
Operating Systems
Programming
Linux
PC
Loadable Kernel Modules
14 Jun 2019
Devices have both device-independent and device-dependent code There is special device driver code associated with each different device connected to the system: Device-Independent API Device-Dependent driver code Device Controller Device Independent Part a set of system calles that an application...
Operating Systems
Devices
Linux
PC
Device Strategies
12 Jun 2019
The Problem with Polling I/O We can see that the OS is spinning in a loop twice: Checking for the device to become idle. Checking for the device to finish the I/O request, so that the results can be retrieved....
Operating Systems
Devices
Linux
PC
Device Management
11 Jun 2019
Von Neumann Computer Architecture In 1945, Von Neumann described a “stored-program” digital computer in which memory stored both instructions and data. This simplified loading new programs and executing them without having to rewire the entire computer each time a new...
Operating Systems
Devices
Linux
PC
Virtual Machines
07 Jun 2019
What is a Virtual Machine? A virtual machine is a simulated computer running within a real computer. The virtual computer runs an operating system that can be different than the host OS and all the requests to access real hardware...
Operating Systems
PC
VM
Loading an Operating System
07 Jun 2019
How do we get a computer started? We have hardware and we give it power. What happens? The CPU only knows how to perform its basic operations, load, move, add, etc. The computer only does what it is told. How...
Operating Systems
PC
Linux
System Calls - How Apps and the OS Communicate
06 Jun 2019
System Calls The trap instruction is used to switch from user to supervisor mode, therby entering the OS. trap sets the mode bit to 0. On x86, use INT assembly instruction (more recently SYSCALL/SYSENTER). The mode bit is set back...
Software Engineering
Operating Systems
PC
Linux
Introduction to Operating Systems
04 Jun 2019
What is an Operating System? An operating system is a layer of software between many applications and diverse hardware that: Provides a hardware abstraction so an application doesn’t have to know details about the hardware. Otherwise an application saving a...
Software Engineering
Operating Systems
PC
VM
Magic Works With Frameworks
23 May 2019
Although there is a learning curve associated with UI frameworks such as Bootstrap and Semantic UI, the initial time investment is worth it in the end. The gained ability to create professional, clean, and aesthetically pleasing webpages in significantly less...
Software Engineering
Semantic UI
Spaceflight Influences from Film - Aliens (1986)
23 Apr 2019
The movie Aliens, directed by James Cameron and released in 1986, Is one of the most influential science-fiction films of all time. Its impact can be seen in many other works of science-fiction that have come after, including video games,...
Film
Spaceflight
Culture
Reset Changes Using Git
24 Feb 2019
Git is a version control system that can be extremely useful due to its ability to serve as a backup when something breaks. This concept is not new and has been applied to essentially every video game ever made. Analogous...
Software Engineering
Git
Magic
Mirror Git Repository With History
23 Feb 2019
Objective: Replicate state of an origin repository and mirror all history including branches to a new repository. Sometimes you may want to copy files from one repository to another and at the same time, preserve the history, branches, and all...
Software Engineering
Git
Magic
Git Good At GitHub
28 Jan 2019
For software developers, version control systems and configuration management tools such as Git and GitHub are essential assets at all levels of software development. By having a secure repository to store code with the assurance of an incorruptible “master” version,...
Software Engineering
Git
Version Control
Fly-By-Wire - An Essay
06 Apr 2018
Fly-By-Wire The Development of Digital Flight Control Computer Systems This past century has seen remarkable advancements in aviation technology and as the complexity of aircraft increased, so did the difficulty of managing the various systems that make up the aircraft....
Flight
Computer Engineering
Embedded Systems
Controls
Privacy Breaches In Code
28 Apr 2017
Engineering ethics is the set of rules and guidelines that engineers adhere to as a moral obligation to their profession and to the world. When ethics are not followed, disaster often occurs which not only includes large monetary costs and...
Software Engineering
Privacy
Top