weirdr.net is a Fediverse instance that uses the ActivityPub protocol. In other words, users at this host can communicate with people that use software like Mastodon, Pleroma, Friendica, etc. all around the world.

This server runs the snac software and there is no automatic sign-up process.

Site description
This is a dual Pentium Pro running NetBSD.
Check out the floppy museum for hints on how to get in touch. Or, you know, ping me on the fediverse. :)
Admin account
@ltning@weirdr.net

Search results for tag #unix

[?]Jan Schaumann » 🌐
@jschauma@mstdn.social

Advanced Programming in the Unix Environment

Week 5: make(1)

Moving on from the compiler, we now look at how the make(1) utility can be used to help us selectively build our code project.

youtu.be/WLTuUtj7LPw

    [?]Jan Schaumann » 🌐
    @jschauma@mstdn.social

    Advanced Programming in the Unix Environment

    Week 5: Debugging your code

    Next in our discussion of the Unix _development_ environment, we start a short series on the use of a debugger by example of gdb(1). First, we illustrate just why exactly we might want to use a separate tool instead of sprinkling "printf" statements all over our code...

    youtu.be/61YwbTQy2G0

      [?]Jan Schaumann » 🌐
      @jschauma@mstdn.social

      Advanced Programming in the Unix Environment

      Week 5: Using gdb(1)

      Alright, let's look at gdb(1)! We begin by using it to troubleshoot our failing programs and immediately identify the location of our program where it segfaults. We also see how to inspect variables and call functions from within the debugger.

      youtu.be/Miw0XLzHCws

        [?]Jan Schaumann » 🌐
        @jschauma@mstdn.social

        Advanced Programming in the Unix Environment

        Week 5: Using gdb(1), part II

        In this video lecture, we continue to explore the capabilities of the debugger. We show how you can set a breakpoint to pause the program and how to step through the program while watching our code.

        youtu.be/fOp4Q4mnTD4

          [?]Jan Schaumann » 🌐
          @jschauma@mstdn.social

          Advanced Programming in the Unix Environment

          Week 5: Using gdb(1), part III

          In this video lecture, we'll use our newly learned debugging skills to analyze and fix yet another flawed program. In the process, we learn to debug code from multiple source files and find out how to change the value of variables while the program is running.

          youtu.be/hgcj7iAxhhU

            [?]Jan Schaumann » 🌐
            @jschauma@mstdn.social

            Advanced Programming in the Unix Environment

            Week 5: Using gdb(1), part IV

            In our last segment on gdb(1), we use the debugger to examine memory locations in a running program and illustrate how pointers and arrays work in the C programming language.

            youtu.be/hr-rn0yUhAw

              [?]Jan Schaumann » 🌐
              @jschauma@mstdn.social

              Advanced Programming in the Unix Environment

              Tool Tip: ed(1) is the standard text editor

              As part of our discussion of unix development tools, we take a short detour to provide a quick walkthrough of ed(1), the standard text editor. This is not done merely to up your geek creds, but understanding ed(1) will also helps us better understand other tools like vi(1), sed(1), and ultimately even things like diff(1) and patch(1) better.

              youtu.be/mRZsV7aMK0I

                [?]Jan Schaumann » 🌐
                @jschauma@mstdn.social

                Advanced Programming in the Unix Environment

                Week 6: Memory Layout of a Process

                Let's talk about the details of a process. We start with a visual representation of a process in memory and create a program that prints out the addresses of different elements of a program and observe the alignment of the text, data, and bss segments as well as the placement of the heap and stack. We also illustrate what a stack overflow looks like.

                youtu.be/aHmcowhoOzU

                  [?]Jan Schaumann » 🌐
                  @jschauma@mstdn.social

                  Advanced Programming in the Unix Environment

                  Week 6: Program Startup

                  In this video lecture, we learn how a program starts. "What, you write 'main()' and off you go!" you say? Not so fast! Let's look at the program entry point '_start' and see if we can change it, and in the process find out that the function prototype of 'main' may not be what you think it is. Use your debugger to better understand how the process begins and ends its life.

                  youtu.be/Yul4d-BDdx8

                    [?]Jan Schaumann » 🌐
                    @jschauma@mstdn.social

                    Advanced Programming in the Unix Environment

                    Week 6: Process Termination

                    After we talked about program startup in our previous video, we now look at how programs terminate. We observe the return status and how exit handlers are registered.

                    youtu.be/xNeEw1f_js8

                      [?]Jan Schaumann » 🌐
                      @jschauma@mstdn.social

                      Advanced Programming in the Unix Environment

                      Week 6: Process Termination

                      Relevant to our discussion of process termination, using the debugger to understand program behavior, our little pop quiz "What does `int main() { printf("Hello World!\n"); }` return?" provides for a short detour into the realm of nasal daemons:

                      netmeister.org/blog/return-pri

                        [?]Jan Schaumann » 🌐
                        @jschauma@mstdn.social

                        Advanced Programming in the Unix Environment

                        Week 6: The Environment

                        In this video lecture, we're going to take a look at the process environment. We'll use what we learned about the process layout in memory to understand how the environment variables are stored and, if necessary, moved around. We'll also get a quick look at what malloc(3) does.

                        youtu.be/8DEPA6nJXNY

                          [?]Jan Schaumann » 🌐
                          @jschauma@mstdn.social

                          Advanced Programming in the Unix Environment

                          Week 6: Process Limits and Identifiers

                          In the last few videos, we've looked at the details of the process layout in memory, and how a process starts and is terminated. In this video lecture, we we will spend a few short minutes on two additional aspects of every process: its resource limits and its process ID.

                          youtu.be/bnki8QKjSfQ

                            [?]Jan Schaumann » 🌐
                            @jschauma@mstdn.social

                            Advanced Programming in the Unix Environment

                            Week 6: Process Control

                            In this video lecture, we will look at process control: how new processes are started from an executable, and what happens when they terminate. In particular, we will look at the fork(2), exec(3), and wait(2) system calls. Be warned, though: there will be zombies, so limber up.

                            youtu.be/KJq5nTCFsIg

                              [?]Jan Schaumann » 🌐
                              @jschauma@mstdn.social

                              Advanced Programming in the Unix Environment

                              Week 7: The Login Process

                              We'll begin our discussion of process relationships, including process groups, sessions, and our first, asynchronous type of inter process communication in the form of signals. To get us started, we look at how processes created during the normal Unix boot process relate to one another.

                              (This does not include systemd. I said "the normal Unix boot process". init or gtfo)

                              youtu.be/eNYTJbmYzH8

                              Diagram of relationships of the login process:

init -> fork -> multiple inits
each exec -> getty
getty execs login
login execs /bin/sh
/bin/sh forks multiple times for each command, then execs each command

                              Alt...Diagram of relationships of the login process: init -> fork -> multiple inits each exec -> getty getty execs login login execs /bin/sh /bin/sh forks multiple times for each command, then execs each command

                                [?]Jan Schaumann » 🌐
                                @jschauma@mstdn.social

                                Advanced Programming in the Unix Environment

                                Week 7: Job Control

                                In this video lecture, we illustrate the concept of job control in the shell, first introduced in the C shell, and allowing you to run multiple tasks from within the same terminal, switching back and forth between them by placing them into the background, suspending them, or bringing them to the foreground. It's one of my all-time favorite productivity hacks - Ctrl+Z FTW!

                                youtu.be/l6-663i8bwQ

                                Job Control
* both background and foreground process groups may report a change in status to the login shell
• the foreground process group can perform I/O on the controlling terminal
• the controlling terminal can generate signals via keyboard interrupts to send to the foreground process group
• the background process group may be able to write to the controlling terminal
• the background process group may generate a signal to send to the controlling terminal if it needs to perform I/O
• the shell may move process groups into the foreground or background, suspend or continue them
• we can send any signal to any process via kill(1)

                                Alt...Job Control * both background and foreground process groups may report a change in status to the login shell • the foreground process group can perform I/O on the controlling terminal • the controlling terminal can generate signals via keyboard interrupts to send to the foreground process group • the background process group may be able to write to the controlling terminal • the background process group may generate a signal to send to the controlling terminal if it needs to perform I/O • the shell may move process groups into the foreground or background, suspend or continue them • we can send any signal to any process via kill(1)

                                  [?]Jan Schaumann » 🌐
                                  @jschauma@mstdn.social

                                  Advanced Programming in the Unix Environment

                                  Week 7: Signals

                                  In this video lecture, we look at Unix signals, simple, asynchronous event notifications. We run through a number of examples to illustrate how signals are delivered, can be ignored, caught, handled, or blocked.

                                  youtu.be/Vh7rBGj0Ty4

                                  A lecture slide entitled "Signals summarized" containing a drawing in demotivational poster style: one crudely drawn person stabs another with a sword.  Underneath: "Shit happens. And most of the time it sucks."

                                  Alt...A lecture slide entitled "Signals summarized" containing a drawing in demotivational poster style: one crudely drawn person stabs another with a sword. Underneath: "Shit happens. And most of the time it sucks."

                                    [?]Jan Schaumann » 🌐
                                    @jschauma@mstdn.social

                                    Advanced Programming in the Unix Environment

                                    Week 7: Reentrant and Interrupted Functions

                                    With this video lecture, we will conclude our coverage of Unix signals, by looking at what happens when we call unsafe functions from within the signal handler as well as what happens when we are interrupted while blocking on certain I/O.

                                    youtu.be/0GRLhpMao3I

                                      [?]Jan Schaumann » 🌐
                                      @jschauma@mstdn.social

                                      Advanced Programming in the Unix Environment

                                      Week 8: Interprocess Communications Intro

                                      This week, we begin our discussion of Interprocess Communication. We start by providing a quick overview of the different properties of IPC mechanisms as well as which mechanisms we will cover.

                                      youtu.be/JHV2dsGZUzk

                                        [?]Jan Schaumann » 🌐
                                        @jschauma@mstdn.social

                                        Advanced Programming in the Unix Environment

                                        Week 8: System V IPC

                                        In this video lecture, we cover traditional, primarily asynchronous System V Inter Process Communication: semaphores, shared memory, and message queues. We then also take a brief look at the POSIX message queues implementation.

                                        youtu.be/hTUquvhWysA

                                          [?]Jan Schaumann » 🌐
                                          @jschauma@mstdn.social

                                          Advanced Programming in the Unix Environment

                                          Week 8: Pipes and FIFOs

                                          With this video lecture, we continue our discussion of Interprocess Communication and dive into two of the oldest and most ubiquitous forms of Unix IPC: pipes and FIFOs. We also discuss popen(3) and the dangers of shelling out to unverified commands.

                                          youtu.be/mq5G33Sbc_o

                                            Jay 🚩 :runbsd: boosted

                                            [?]Jan Schaumann » 🌐
                                            @jschauma@mstdn.social

                                            Advanced Programming in the Unix Environment

                                            Did you know that comes with a number of historical Unix research papers and supplementary documentation? Here, we find papers by Marshall Kirk McKusick on the Fast File System, by Robert Morris and Ken Thompson on Password Security, a shell tutorial by Stephen R. Bourne, a guide to using vi(1) by Bill Joy, and the well known BSD IPC Tutorials! Take a tour through /usr/share/doc...

                                            youtu.be/XqhOUqi4fc0

                                              Jay 🚩 :runbsd: boosted

                                              [?]Jan Schaumann » 🌐
                                              @jschauma@mstdn.social

                                              I fell down a rabbit hole into a virtual memory layout landscape, trying to better understand how thread stacks are placed under Address Space Layout Randomization. Turns out, there's quite a bit of variability across different Unix flavors.

                                              netmeister.org/blog/thread-sta

                                                [?]vermaden » 🌐
                                                @vermaden@mastodon.bsd.cafe

                                                Latest 𝗩𝗮𝗹𝘂𝗮𝗯𝗹𝗲 𝗡𝗲𝘄𝘀 - 𝟮𝟬𝟮𝟱/𝟭𝟬/𝟮𝟳 (Valuable News - 2025/10/27) available.

                                                vermaden.wordpress.com/2025/10

                                                Past releases: vermaden.wordpress.com/news/

                                                  [?]Anders Gulden Olstad » 🌐
                                                  @andersgo@mastodon.bsd.cafe

                                                  But removal of OTP functionality in the upcoming 7.8 was real a shit.

                                                  It's a paradox that I have to remove from our list of approved operating systems due to this, while working in the infosec business.

                                                    [?]vermaden » 🌐
                                                    @vermaden@mastodon.bsd.cafe

                                                    Latest 𝗩𝗮𝗹𝘂𝗮𝗯𝗹𝗲 𝗡𝗲𝘄𝘀 - 𝟮𝟬𝟮𝟱/𝟭𝟬/𝟮𝟬 (Valuable News - 2025/10/20) available.

                                                    vermaden.wordpress.com/2025/10

                                                    Past releases: vermaden.wordpress.com/news/

                                                      [?]vermaden » 🌐
                                                      @vermaden@mastodon.bsd.cafe

                                                      Latest 𝗩𝗮𝗹𝘂𝗮𝗯𝗹𝗲 𝗡𝗲𝘄𝘀 - 𝟮𝟬𝟮𝟱/𝟭𝟬/𝟬𝟲 (Valuable News - 2025/10/06) available.

                                                      vermaden.wordpress.com/2025/10

                                                      Past releases: vermaden.wordpress.com/news/

                                                        Jay 🚩 :runbsd: boosted

                                                        [?]ltning » 🌐
                                                        @ltning@pleroma.anduin.net

                                                        The feeling when some of the Grand Masters and Architects of #UNIX mocks me for being crazy to run modern #NetBSD on decidedly-not-modern hardware while also pointing out how *incredibly* powerful this 386sx/486-class hardware is and what an absurdly huge amount of memory 16MB is compared to what *they* had while, you know, developing UNIX..

                                                        #EuroBSDCon #RunBSD #Retrocomputing #Fanboi #StarStruck

                                                        Marshall Kirk McKusick, Eric Allman, a couple of (much) younger BSD developers and myself hovering over an old open-frame PC build which is busy booting NetBSD. Sponsor pull-up poster for Entersekt/Modirum (my employer) in the background.

                                                        Alt...Marshall Kirk McKusick, Eric Allman, a couple of (much) younger BSD developers and myself hovering over an old open-frame PC build which is busy booting NetBSD. Sponsor pull-up poster for Entersekt/Modirum (my employer) in the background.

                                                          [?]Jan Schaumann » 🌐
                                                          @jschauma@mstdn.social

                                                          Advanced Programming the UNIX Environment

                                                          Some additional hints to set up your NetBSD environment for this class:

                                                          stevens.netmeister.org/631/vm-

                                                          With all sources extracted, familiarize yourself with ctags(1) et al to make browsing code a breeze:

                                                          youtu.be/TWog5NklSws

                                                            [?]Jan Schaumann » 🌐
                                                            @jschauma@mstdn.social

                                                            Advanced Programming the UNIX Environment

                                                            Week 2: File Descriptors

                                                            To introduce the concept of file descriptors, let's start with a simple question: how many file descriptors can a unix process open? In the process we encounter different limits that may apply across the system, for a given user, or just a process.

                                                            youtu.be/h5A1OQjuCqk

                                                              [?]Jan Schaumann » 🌐
                                                              @jschauma@mstdn.social

                                                              Advanced Programming in the UNIX Environment

                                                              Week 2: open(2) and close(2)

                                                              Having introduced the concept of file descriptors, let's look at what happens when we try to create a file, "create" an existing file, open an existing file, truncate a file, and look at the various other flags we can pass to open(2).

                                                              We also note the perhaps surprising number of ways in which open(2) can fail and take a look at openat(2) and TOCTOU defenses.

                                                              youtu.be/QnL4eYpb5Iw

                                                                [?]Jan Schaumann » 🌐
                                                                @jschauma@mstdn.social

                                                                Advanced Programming in the UNIX Environment

                                                                Week 2: read(2)/write(2)/lseek(2)

                                                                In this video lecture, we will go into the details of the read(2), write(2), and lseek(2). We'll also do a few weird things with file descriptors, and take a look at how we can ensure I/O efficiency when making these system calls.

                                                                youtu.be/EUUPw8MOV_A

                                                                  Jay 🚩 :runbsd: boosted

                                                                  [?]Jan Schaumann » 🌐
                                                                  @jschauma@mstdn.social

                                                                  Advanced Programming in the UNIX Environment

                                                                  Week 2: File Sharing

                                                                  In this final video lecture segment for our week 2 materials, we take a look at what it means when multiple processes access the same files and what the implications of that are on the syscalls we know. We conclude with a look at /dev/fd on different operating systems, including , , and

                                                                  youtu.be/CAbUtc86ULw

                                                                    [?]vermaden » 🌐
                                                                    @vermaden@mastodon.bsd.cafe

                                                                    Latest 𝗩𝗮𝗹𝘂𝗮𝗯𝗹𝗲 𝗡𝗲𝘄𝘀 - 𝟮𝟬𝟮𝟱/𝟬𝟵/𝟭𝟱 (Valuable News - 2025/09/15) available.

                                                                    vermaden.wordpress.com/2025/09

                                                                    Past releases: vermaden.wordpress.com/news/

                                                                      2 ★ 0 ↺

                                                                      [?]Ltning » 🌐
                                                                      @ltning@weirdr.net

                                                                      I had on another 286 for a while, and there's some 16-bit "port" of Linux that is not as old as it should be. And of course the venerable OS/2 1.x, and a few actual variants as you point out. I didn't know about V6on286, that's a beautiful little nugget, thank you!

                                                                      All of those things are absolutely wonderful and make many of todays software developers look ... spoiled? What I want, however - and what I love doing - is making this old hardware do stuff its makers never dreamt of, things that are as far removed from their time as possible. That's why I will, if permits, run bleeding edge BSD on a 286-on-486steroids, and why I run web+ftp+irc servers (yes, multitaskign) on one 286 and multiple BBS nodes on a 386 - like one used to do, of course.

                                                                      I cannot state often enough how amazing it is that there's still software developed today that will work under such constraints.


                                                                        7 ★ 2 ↺
                                                                        Jay 🚩 :runbsd: boosted

                                                                        [?]Ltning » 🌐
                                                                        @ltning@weirdr.net

                                                                        I did a thing so I don't have to wait 20+ seconds to SSH into (or out of) my running .

                                                                        https://github.com/ltning/sshbench


                                                                          1 ★ 2 ↺

                                                                          [?]Ltning » 🌐
                                                                          @ltning@weirdr.net

                                                                          There are only hot girls here. See proof in attachment.
                                                                          Note that the compiler process is running with nice so as not to make the poor lady freeze too much.


                                                                          Picture of NetBSD X11 desktop with htop(1) and hot-babe CPU monitor.

                                                                          Alt...Picture of NetBSD X11 desktop with htop(1) and hot-babe CPU monitor.

                                                                            30 ★ 9 ↺

                                                                            [?]Ltning » 🌐
                                                                            @ltning@weirdr.net

                                                                            And here we are. is simply amazing.


                                                                            Console screenshot. Plaintext 80x50 mode, with screen(1) running htop(1) and neofetch(1), split horizontally.

                                                                            Alt...Console screenshot. Plaintext 80x50 mode, with screen(1) running htop(1) and neofetch(1), split horizontally.