what really defines consciousness/humans
LLM has triggered this discussion in many places and I feel the opinions are mostly personally motivated, not really coming from a semblance of objective observation. Because it's just that hard a topic, but yes. This is a derail.
I get what you're saying entirely while at the same time one can become cynical by going into full QA mode and doing things like asking about the name of H.P. Lovecraft's cat and demanding an MNIST classifier in QBASIC (which, in fairness, ChatGPT actually blocked out into subroutines out for me).
Most people that try to get help from an LLM for their task go about it the wrong way, they approach it top-down (hey gpt, write me a program that scrapes names from websites) instead going from the bottom up (hey gpt, how would I go about downloading "example.com/index.html' with shell tools? And then "how would I search for text in the downloaded file now?" "how can I search for strings that are prefixed with the text 'Name:'?") This approach helps LLMs basically by building a context and indirectly prune possible pathways you don't want away as more and more unlikely. (since you went about building the context like this, the LLM will not try to suddenly solve the problem with python, for example) It is a useful tool if you think about the limitations. I also would not use something like the ChatGPT website directly but make calls to the API of the various models, or run a model locally. The websites have so many normie filters (which also is just a ton of context that is secretly included in every query) that they become borderline useless because the model basically gets primed for unrelated nonsense which is incredibly "distracting" for an LLM.
separate the environments
My brother in Linux, have you considered namespaces? Linux let's you isolate programs in various ways, e.g. network namespaces you can put a program in so it cannot communicate with other programs outside the namespace or over your network interfaces. You can do this on a very granular, file system level where a program can e.g. only access certain files in /etc/, hell even only certain devices in /dev and /sys. They are an immensely powerful tool to isolate without having to use an VM. I mostly use
bwrap, you can write scripts with that really easy.
Here is a simple skeleton script as an example that uses bwrap. You can put it in a directory, then you create two subdirectories ("home" and "game"). "game" contains your game files, "home" will be the folder that contains dotfiles, for wine for example, so you won't clutter your filesystem and can have a custom enviroment for each wine-ran game. The program started inside bwrap will not have access to your network or home folder. This script assumes a very simple system using X and ALSA with a global ALSA config. You might have to allow local connections to your X server, depending on your setup.
Bash:
#!/bin/sh
CMD="wine [add name of game exe here]"
bwrap \
--unshare-all \
--dir /home/user \
--bind home /home/user \
--bind game /home/user/game \
[you might have to adjust the following lines for your distro, no commenting here, remove this line]
--ro-bind /usr /usr \
--ro-bind /bin /bin \
--ro-bind /lib /lib \
--ro-bind /etc /etc \
--dev /dev \
--proc /proc \
--dev-bind /dev/dri /dev/dri \
--dev-bind /dev/snd /dev/snd \
--perms 1755 --dir /sys \
--ro-bind /sys /sys \
--ro-bind /tmp/.X11-unix /tmp/.X11-unix \
--clearenv \
--setenv DISPLAY "$DISPLAY" \
--setenv LC_ALL C \
--setenv WINEDEBUG -all \
--setenv HOME /home/user \
--die-with-parent \
--new-session \
--chdir /home/user/game \
$CMD
This is very lax and basically just covers the bases that wine doesn't have more enviroment variables than it needs to, that files in your home directory can't be read/written to (outside of the game and home folder you just created) that the program cannot escalate privileges, and that the program cannot access the internet, which usually is more than enough to diminish the danger of most programs. (try out to see what's visible by changing CMD to your shell interpreter) It also turns wine's debugging messages off which really can slow down programs. This script can be adjusted and improved upon in various ways. You could for example start the game in a different X server without session and window management, which increases security and also helps with lag caused by e.g. compositors. You could change the first block of ro-binds to point at the installation of a different distribution, this comes in handy if you want to run glibc binaries in a musl distribution, for example. You could also carefully analyze which absolute minimum of files a program needs with ldd (be careful with ldd if you don't trust the program, it's basically like executing it) and strace and tighten it up a bit further. This script allows access to all gpus and sound cards of the system via dev, and to absolutely everything (eg temperature sensors and battery status - SuperIO) via /sys. You could improve on it further to only give the minimum needed access to the gpu and nothing else via sys, e.g.:
Bash:
--ro-bind "/sys/devices/$GPUPATH" "/sys/devices/$GPUPATH"
--ro-bind /sys/dev/char /sys/dev/char \
where GPUPATH is the PCI path of the GPU, e.g.
GPUPATH="pci0000:00/0000:00:02.0"
This is also handy when you have several GPUs in your system and want to make sure a specific one is picked.
Sky's the limit with bwrap, it gives you very granual control.
You can also run programs in different network namespaces and have e.g. start all programs without network access by default and only move them to the appropiate network namespace if you want them to have network access.