Minutes 2025-10-09
Jump to navigation
Jump to search
- We have two presentations today!
- First, a Computer Rescue Idea by Professor Kiernan!
- Who is Professor Kiernan?
- Worked at Ford
- Designed features for vehicles
- How users would interact with them
- Used Linux since 2007
- Linux Mint really impressed him
- But driver support was really bad
- Saw the potential
- Kept checking in on the state of Linux back every year
- Eventually things got really good
- Teaches some humanities courses at Tech
- Been speaking at MTU since 2002
- Hobby is giving friends' older computers a new life with Linux Mint/ZorinOS
- They don't know how to flash installer images onto a USB drive, but he can do that part
- Then, using the computer is simple enough and they can handle the rest
- Has an older MacBook Air with ZorinOS on it
- Prescient book from 1960
- Ahead of its time, predicted a lot
- coined "Planned Obsolescence"
- Apple devices getting worse and worse nowadays
- absurdly thin
- non-repairable
- Throw sand in their gears!
- 'Computer rescue' akin to a 'pet rescue'
- Save old machines from recycling and landfills
- B.A.S.I.C. group
- Run by Professors Steelman (Human Factors) and Wallace
- Seems to have been disrupted by the pandemic
- So many Windows 7/10 machines around that can't easily upgrade to Windows 11
- Plenty of Intel Mac's still around, can't run more recent versions of macOS
- Talk about how we might rescue Copper Country computers with Linux
- Help out a region he loves to keep computers out of the trash
- Who is Professor Kiernan?
- For our second presentation, Pipes by Ron!
- How water gets around your house
- and Super Mario
- But seriously, pipes are used to send the output of one program to the input of another program
- Allow two processes to communicate with each other
prog1 | prog2
- Can pipe
cattogrep(though you shouldn't do that), etc - Subtleties
- Programs run in a pipe are run concurrently
- Demonstrated by running
yes | less - Can see that
lessreceives input whileyesis still running psshows yes and less are still both running
- Programs are unaware of the pipe
- Means we can just use our normal I/O functions without any special considerations
grepjust takes from stdin- If you run
grepwithout providing a filename, you can just type into it to have strings recognized grepdoesn't know we're typing its input, it just received it through stdin- The developers didn't have to do anything special to enable this to happen
- If you run
- Pipe()
- Pipe just takes in an array of integers
- Populated the array with two file description
fd[0](read)fd[1](write)
- This works because pipes are always unidirectional
- Ties into UNIX "everything is a file"
- Pipes are just two file descriptors
- Interact with them as normal files
- Using pipes between processes
- Fork the child process
- Will block reading from the pipe until it is ready
- Making this work with stdin/out
dup2()allows duplicating file descriptors- Have one file description (
oldfd) pretend to be another file descriptor (newfd) - Program that thinks it is writing to stdout is actually writing to the 'inside' of the pipe for another program to receive
- Adding in
exec()- Lets us wipe and replace the child's process in memory with a new process
- Forked copy gets copy of all file descriptors
- Example with a program that runs
ls -albut modifies the output before printing to stdoutexec()needs an array with each element being an argument of the command you want to run- last element needs to be
NULL execvp()= uses path, that's what the 'p' is for
pipe()-form()-dup()-exec()pattern is so common there's a C library to do it more easilypopen()
- Takes either "r" or "w" to define which end of the pipe it is supposed to be.
- Named pipes
- Literally files
mkfifo- creates a file in
/tmp/ - Multiple processes can interact with it because it's just a file
- Questions
- How does
popen()handle the input command?- Ron checked the manpage
- Apparently just passes it to:
/bin/sh -c <arg>
- What
popen()('r' or 'w') do you start first?- Left side (input) of pipe is the "write" side, and is what you create first
- Right side (output) is the "read" side, and is created second
- Freya got clickbaited, still doesn't know how to fix her sink
- A lot of things in Linux/UNIX 'pretend' to be files
- Plant can turn off her GPU by
echo 0 > /proc/<some_thing> - KVM pretends to be a file you interact with through
ioctl's
- Plant can turn off her GPU by
- Windows named pipes are in
\\?<thing>- Related to how NFS is
\\<share_name>
- Related to how NFS is
- How does
- How water gets around your house
- Chris swung by just to shill XCP-NG
- Proxmox has its... 'issues'
- LUG Proxmox incident earlier today
- Went down in #general in the LUG discord
- Three "Proxmox moments" in a row
- Random disk I/O lockup on node, VMs froze on all r/w operations
- Rebooting that node made the cluster lose quorum since two nodes were already offline
- All nodes webUI unavailable
- After a while, quorum was finally restored
- Wiki VM got migrated to a node that didn't have its VM storage image, then failed to start
- Required manual intervention
- Then finally after all that clusterfuck everything is back online
- October 8th, 2025 6:55PM: The LUG AI incident
- Anti-AI versus Pro-AI forces in the LUG discord
- Sarten X misquoted something, came off as calling someone "princess"
- It all went downhill from there
- Simone submitting an essay on favorite digital space
- Chose LUG Discord
- Said "ultimately a place where people can put aside their differences"
- Then the AI incident happened
- Needs to append essay with "except in matters of Artificial Intelligence"