From 9bcdbac16d5a2286243a6fae5fa571ff37d693e5 Mon Sep 17 00:00:00 2001 From: Lawrence Angrave Date: Sun, 23 Aug 2026 21:44:03 -0500 Subject: [PATCH 1/3] Fix dead memory-barriers link (lxr.free-electrons.com is offline) lxr.free-electrons.com still resolves in DNS but refuses connections (free-electrons rebranded to Bootlin and retired the lxr host). The WIKI build's pandoc_header_filter.py calls requests.head() on every link, so a connection failure aborts CI. Replaced with the same document served by kernel.org: https://www.kernel.org/doc/Documentation/memory-barriers.txt (200 OK). --- appendix/appendix.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appendix/appendix.tex b/appendix/appendix.tex index 0e63a53..2f341c4 100644 --- a/appendix/appendix.tex +++ b/appendix/appendix.tex @@ -671,7 +671,7 @@ Thus, in practice, surrounding critical sections with a mutex lock and unlock ca For further reading, we suggest the following web post that discusses implementing Peterson's algorithm on an x86 process and the Linux documentation on memory barriers. \begin{enumerate} \item \href{http://bartoszmilewski.com/2008/11/05/who-ordered-memory-fences-on-an-x86/}{Memory Fences} -\item \href{http://lxr.free-electrons.com/source/Documentation/memory-barriers.txt}{Memory Barriers} +\item \href{https://www.kernel.org/doc/Documentation/memory-barriers.txt}{Memory Barriers} \end{enumerate} From 7dcacf080e136014638725f4c99ca7e34096d807 Mon Sep 17 00:00:00 2001 From: Lawrence Angrave Date: Sun, 23 Aug 2026 21:44:18 -0500 Subject: [PATCH 2/3] Fix 404 Beej's Guide getaddrinfo man-page link Beej's Guide to Network Programming dropped the old output/html/multipage/ layout; getaddrinfoman.html now 404s. Updated to the current split-HTML man page section https://beej.us/guide/bgnet/html/split/man-pages.html#getaddrinfoman (verified 200 OK). --- networking/networking.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/networking/networking.tex b/networking/networking.tex index db81726..1b16c6f 100644 --- a/networking/networking.tex +++ b/networking/networking.tex @@ -436,7 +436,7 @@ For example, we haven't talked about \keyword{setsockopt} which can manipulate o You can also mess around with lower protocols as the kernel provides primitives that contribute to this. Note that you need to be root to create a raw socket. Also, you need to have a lot of ``set up'' or starter code, be prepared to have your datagrams be dropped due to bad form as well. -For more information see this \href{http://www.beej.us/guide/bgnet/output/html/multipage/getaddrinfoman.html}{guide}. +For more information see this \href{https://beej.us/guide/bgnet/html/split/man-pages.html#getaddrinfoman}{guide}. \subsection{Sending some data} From 6a27c988c1d7cbd922de452a8f0d4e7400e0be4b Mon Sep 17 00:00:00 2001 From: Lawrence Angrave Date: Sun, 23 Aug 2026 21:44:18 -0500 Subject: [PATCH 3/3] Point four vanished pages at Wayback Machine snapshots All four sources removed the referenced content; no equivalent page exists on the original site any more. Each replacement snapshot was fetched and confirmed to return 200 with the expected content. - malloc: IBM developerWorks 'Data alignment' article -- ibm.com now redirects the whole /developerworks/library/ tree to the developer.ibm.com home page. Snapshot 20190313121701. - post_mortems: geek.com shut down; the origin now serves an S3 AccessDenied 403. Snapshot 20191216004115 (title confirmed: 'What caused Gandhi's insatiable bloodlust in Civilization'). - filesystems: goo.gl/LwFIy resolved to a Google Faculty Summit 2010 PDF that is now 404. Snapshot 20160910131226 returns the original storage_architecture_and_challenges.pdf (application/pdf, 85 KB). - background: the osxfuse project moved to macfuse and deleted the SSHFS wiki page; GitHub now redirects it to the macfuse wiki home. Snapshot 20240913220726 (title confirmed: 'SSHFS - osxfuse Wiki'). --- background/background.tex | 2 +- filesystems/filesystems.tex | 2 +- malloc/malloc.tex | 2 +- post_mortems/post_mortems.tex | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/background/background.tex b/background/background.tex index 743b631..a198f79 100644 --- a/background/background.tex +++ b/background/background.tex @@ -243,7 +243,7 @@ For this, we require sshfs which has ports on many different machines. \begin{enumerate} \item Windows \url{https://github.com/billziss-gh/sshfs-win} -\item Mac \url{https://github.com/osxfuse/osxfuse/wiki/SSHFS} +\item Mac \url{https://web.archive.org/web/20240913220726/https://github.com/osxfuse/osxfuse/wiki/SSHFS} \item Linux \url{https://help.ubuntu.com/community/SSHFS} \end{enumerate} diff --git a/filesystems/filesystems.tex b/filesystems/filesystems.tex index 6b1e67a..05364df 100644 --- a/filesystems/filesystems.tex +++ b/filesystems/filesystems.tex @@ -1144,7 +1144,7 @@ Services must survive single disk, rack of servers, or whole data center failure \subsection{Solutions} Simple redundancy (2 or 3 copies of each file) e.g., Google GFS (2001). -More efficient redundancy (analogous to RAID 3++) e.g., \href{http://goo.gl/LwFIy}{Google Colossus filesystem} (\textasciitilde{}2010): customizable replication including Reed-Solomon codes with 1.5x redundancy +More efficient redundancy (analogous to RAID 3++) e.g., \href{https://web.archive.org/web/20160910131226/http://static.googleusercontent.com/media/research.google.com/en/us/university/relations/facultysummit2010/storage_architecture_and_challenges.pdf}{Google Colossus filesystem} (\textasciitilde{}2010): customizable replication including Reed-Solomon codes with 1.5x redundancy \section{Simple Filesystem Model} diff --git a/malloc/malloc.tex b/malloc/malloc.tex index 105a111..1af8f0e 100644 --- a/malloc/malloc.tex +++ b/malloc/malloc.tex @@ -438,7 +438,7 @@ int s = (requested_bytes + tag_overhead_bytes + 15) / 16 \end{lstlisting} The additional constant ensures incomplete units are rounded up. Note, real code is more likely to symbol sizes e.g. \keyword{sizeof(x)\ -\ 1}, rather than coding numerical constant 15. -\href{http://www.ibm.com/developerworks/library/pa-dalign/}{Here's a great article on memory alignment, if you are further interested} +\href{https://web.archive.org/web/20190313121701/https://www.ibm.com/developerworks/library/pa-dalign/}{Here's a great article on memory alignment, if you are further interested} Another added effect could be internal fragmentation happens when the given block is larger than their allocation size. Let's say that we have a free block of size 16B (not including metadata). diff --git a/post_mortems/post_mortems.tex b/post_mortems/post_mortems.tex index d76e960..a4f1750 100644 --- a/post_mortems/post_mortems.tex +++ b/post_mortems/post_mortems.tex @@ -163,7 +163,7 @@ Lessons Learned: Get an antivirus and/or apparmor and make sure that an applicat Required Sections: Intro to C -\href{https://www.geek.com/games/why-gandhi-is-always-a-warmongering-jerk-in-civilization-1608515/}{Ghandi's Aggressiveness} +\href{https://web.archive.org/web/20191216004115/https://www.geek.com/games/why-gandhi-is-always-a-warmongering-jerk-in-civilization-1608515/}{Ghandi's Aggressiveness} This is probably well known to gamers why someone as (in real life) non-violent as Ghandi was aggressive in the video game civilization. In the original, the game kept aggressiveness as an unsigned integer.