The Modern PC

Table of Contents
A look at the modern Personal Computer #
Ever since I was little, I’ve always had acces to a computer, be it the family computer, or eventually my own custom computer. It was fun to play games and surf the internet on my very own personal computer. My view of a computer was similar to that of a television set. As I grew up, I started to realize all of the interesting things that can be computed with your own PC.
Coding #
I started learning how to make computer programs in which I program the computer to make computations in accordance to instructions — “source code.” The canonical example of a computer program that is typically first taught to students is the infamous “Hello World” program. This is the version I first learned about from The C Programming Language by K&R:
C Code#include <stdio.h>
main()
{
printf("Hello, world!\n");
}
This is a computer program that writes 15 bytes of data to the stdout
buffer.
A terminal emulator’s text uses the stdout
buffer, so running this program in
such an environment would print the text to the screen — magic! Upon further
reading about this magic, I come to discover that this simple process involves
different stages:
Unix Modularity #
Everything in the diagram happens when one simply compiles the program. On most
unix-like systems, calling cc
should be sufficient. Though POSIX.1 specifies
c99
as a utility, specifically. Every part of this process is modular, I list
different C library implementations, different compilers, etc. One could
configure Linux distros such as
Gentoo (overlay) or
Void to use musl; there is an overlay in Gentoo to
compile using clang instead of gcc.
Even beyond just C specifically, one can swap out things such as the
interactive shell, /bin/sh
, SSL library, et cetera. Beyond core features,
even high level things such as the display technology, apps, and all are
swapable. This makes unix seem like the perfect tool for tinkerers.
Data from Stack Overflow 2022 Survey
However, most people use Microsoft Windows for personal use and development, it seems. Why is this? I think that, at least for personal computers, many PCs come with Windows, and people simply don’t bother to switch / try something new. Similarly with MacOS - though most of the time it would be harder to simply “try” another OS on Mac hardware.
One other reason most people probably stick with Windows is most people probably aren’t “tinkerers,” and are probably looking to play video games and do school work. However, I would argue that people that aren’t “tinkerers” would also benefit from using a “free as in freedom” system. Mainly because — and I truly believe this —
With software, either the users control the program (free software) or the program controls the users (proprietary or nonfree software).
– Richard Stallman1
Where it’s software for school work (Microsoft Docs, Powerpoint, etc), career work, internet browsers, et cetera - I truly believe in this sentiment. Users of non-free software are at the mercy of the developers and under the control of that non-free software.
This becomes important when people rely more and more on technology. With things such as online banking, online school work, and online life in general. With how we use our computers in the modern day, freedom becomes that much more important to the end user. However, it seems that freedom is not common among modern PC users. So, what does this mean for the future? Only time will tell.
If non-free software puts tighter restraints on the end users, will they submit or fight for freedom?
-
The above quote is from Keep Control of Your Computing, So It Doesn’t Control You! ↩︎