Ciro's tutorial: Linux Kernel Module Cheat.
Ciro's word of caution for 2019 aspiring system programmers: Should you waste your life with systems programming?
This is basically a direct consequence of backward design.
The higher the level you can operate at, the better.
The ideal level to operate at, and one of humankind's greatest ambitions is "AGI, make me money", the highest possible level.
Only go down a level when it seems necessary.
Magic software that allows you to write a single program that runs on a wide range of hardware.
Bare metal programming is to run a program without an operating system below it.
It ain't perfect, but it's decent enough.
Ciro Santilli's conversion to Linux happened around 2012, and was a central part of Ciro Santilli's Open Source Enlightenment, since it fundamentally enables the discovery and contribution to open source software. Because what awesome open source person would waste time porting their amazing projects to closed source OSes?
Ciro's modest nature can be seen as he likes to compare this event Buddha's Great Renunciation.
Linux should track glibc and POSIX command line utilities in-tree like BSD Operating System, otherwise people have no way to get the thing running in the first place without blobs or large out-of-tree scripts! Another enlightened soul who agrees.
You must watch this: truth Happens advertisement by Red Hat.
- stackoverflow.com/questions/11408041/how-to-debug-the-linux-kernel-with-gdb-and-qemu/33203642#33203642 How to debug the Linux kernel with GDB and QEMU?
As of 2020, no one knows how to build the major desktop distros fully from source into the ISO, and especially so in a reproducible build way. Everything is done in build servers somewhere with complicated layers of prebuilds. It's crap.
merlijn.sebrechts.be/blog/2020-08-02-why-one-snap-store/ has some very good comments on how
snapis more closed than Flatpak.
- the best full featured free OS we have today, since POSIX gave up short of any UI specification, and Chrome OS is not there yet
- usable and likely efficient Java API for apps if Oracle doesn't manage to destroy it with its lawsuit
However, many, many, many terrible horrors come with it:
- it hasn't made the move to desktop for too many years. It could destroy Microsoft Windows and replace it with open source, but they just won't budge towards an unified mobile/desktop setup.
- vendors litter it with uninstallable bloatware that should be illegal. European Union to the rescue!!! www.cnbc.com/2020/12/15/digital-markets-act-eus-new-rules-on-big-tech.html
- vendors lock down devices so it is very hard to get sudo, let alone to modify their images!
- there isn't enough hardware standardization for open source distros to thrive like on desktop
- code drops mean that "master" is useless and trying to contribute from outside vendors' closed walls is a waste of time: stackoverflow.com/questions/1809774/how-to-compile-the-android-aosp-kernel-and-test-it-with-the-android-emulator/48310014#48310014
- if you ever go below the Java API, e.g. to C++ or AOSP build, everything is horrendous and undocumented
- Google doesn't care about the CLI, even the hello world requires creating infinite out-of-control boilerplate from a GUI: stackoverflow.com/questions/20801042/how-to-create-android-project-with-gradle-from-command-line/46994747#46994747
- the boot is uber bloated and takes forever in cycle simulators
The video folder is
Respect. Big respect. Those people are hardcore from scratch hackers, and their wiki is amazing: wiki.archlinux.org/
It's just that Buildroot is more hardcore ;-)
But can you build the ISO full from source: Linux distribution buildable from source
The basis for Linux Kernel Module Cheat.
Buildroot is good.
This thing is sexy.
Ciro Santilli's Linux distro of choice as of 2019.
It ain't perfect, but it's decent enough.
The greatest advantage of it being that it has the likely largest desktop user base, and therefore the highest likelihood that your problems are solved on Ask Ubuntu, and goes together with Ciro's philosophy that "people should do everything in the same way to factor stuff out", especially the open source losers.
Ciro considers that the killer flaw of Ubuntu, and most desktop distros of 2020, is that no one under the Sun knows how to build them fully from source: Linux distribution buildable from source. This is why Ciro based the Linux Kernel Module Cheat on Buildroot, see also: Linux distribution buildable from source.
Their crash system does not have an amazing user interface.
Tested on Ubuntu 21.10.
After something crashes, look under
/var/crashfor a crash file, which helps to determine which package to report under on Launchpad.
E.g. a file
/var/crash/_usr_sbin_gdm3.0.crashmakes you want to file the bug under gdm at: bugs.launchpad.net/ubuntu/+source/gdm/+filebug
Then, while reporting the bug, you want to give the developpers access to thatUbuntu's crash report system has already uploaded the
.crashfile. But you can't publicly upload it because it contains memory dumps and could contain secret information. The way to do it is to look at the ID under:
sudo cat /var/crash/_usr_sbin_gdm3.0.uploaded
.crashfor you, so you just have to confirm it and give the ID on the ticket.
You can view a list of all your uploaded errors at:and each of those contain a link to:which you yourself cannot see.
xdg-open https://errors.ubuntu.com/user/$(sudo cat /var/lib/whoopsie/whoopsie-id)
https://errors.ubuntu.com/oops/<.uloaded error id>
askubuntu.com/questions/434431/how-can-i-read-a-crash-file-from-var-crash asks how to read the
Running:splits it up into a few files, but does not make any major improvements.
sudo apport-unpack /var/crash/_usr_sbin_gdm3.0.crash /tmp/app
sudo apt install apport-retrace sudo chmod 666 /var/crash/_usr_sbin_gdm3.0.crash apport-retrace -g /var/crash/_usr_sbin_gdm3.0.crash
echo "deb http://ddebs.ubuntu.com $(lsb_release -cs) main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/ddebs.list echo -e "deb http://ddebs.ubuntu.com $(lsb_release -cs)-updates main restricted universe multiverse\ndeb http://ddebs.ubuntu.com $(lsb_release -cs)-proposed main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/ddebs.list sudo apt install ubuntu-dbgsym-keyring
sudo apt updatefails with:
E: The repository 'http://ddebs.ubuntu.com impish-security Release' does not have a Release file.
Happening multiple times a day on Ubuntu 22.04 for Chromium, even though I turn computer on and off daily, unbearable:
- forum.snapcraft.io/t/how-to-disable-snapd-update-notifications-permanently/31117 Settings > Notifications > Snapd User Session Agent
GDM crashes sometimes when switching windows right after opening a new window: bugs.launchpad.net/ubuntu/+source/gdm/+bug/1956299
Please refer to Video "Linus Torvalds saying "Nvidia Fuck You" (2012)".
Does not happen every time, only some times. Can't figure out why. Usually happens when has suspended for a longer time.
bugs.launchpad.net/ubuntu/+source/nvidia-graphics-drivers-470/+bug/1946303 sounds like a likely report, Nvidia driver version 470, but can't find those error messages anywhere. The last line of:once was:which is when sleep starts.
journalctl -o short-precise -k -b -1
PM: suspend entry (deep)
This suggests that it is not a video bug then, seems that it is not waking up at all? Gotta try to SSH into it. OK. I did SSH into it, and that was fine, so it is just the video that won't start.
PM: suspend exit
bugs.launchpad.net/ubuntu/+source/linux/+bug/1949977 is another possible bug, based on kernel version. I'm running 5.13, which is one of the failing versions on the report. Can't find any interesting dmesg though.
In another crash:had the following interesting lines:and there was a corresponding
journalctl -o short-precise -k -b -1
nvidia-modeset: WARNING: GPU:0: Lost display notification (0:0x00000000); continuing. [24307.640014] NVRM: GPU at PCI:0000:01:00: GPU-18af74bb-7c72-ff70-e447-87d48378ea20 [24307.640018] NVRM: Xid (PCI:0000:01:00): 79, pid=8828, GPU has fallen off the bus. [24307.640021] NVRM: GPU 0000:01:00.0: GPU has fallen off the bus. [24328.054022] nvidia-modeset: ERROR: GPU:0: The requested configuration of display devices (LGD (DP-4)) is not supported on this GPU. [repeats several more times] [24328.056767] nvidia-modeset: ERROR: GPU:0: The requested configuration of display devices (LGD (DP-4)) is not supported on this GPU. [24328.056951] nvidia-modeset: ERROR: GPU:0: Failed to query display engine channel state: 0x0000927c:0:0:0x0000000f [24328.056955] nvidia-modeset: ERROR: GPU:0: Failed to query display engine channel state: 0x0000927c:1:0:0x0000000f [24328.056959] nvidia-modeset: ERROR: GPU:0: Failed to query display engine channel state: 0x0000927c:2:0:0x0000000f [24328.056962] nvidia-modeset: ERROR: GPU:0: Failed to query display engine channel state: 0x0000927c:3:0:0x0000000f [24328.056983] nvidia-modeset: ERROR: GPU:0: DP-4: Failed to disable DisplayPort audio stream-0 [24328.056992] nvidia-modeset: ERROR: GPU:0: Failed to query display engine channel state: 0x0000947d:0:0:0x0000000f
Related "GPU has fallen off the bus": askubuntu.com/questions/868321/gpu-has-fallen-off-the-bus-nvidia
Did Apple just fork it and made Mac OS X without giving anything back?
The real explanation: stackoverflow.com/questions/1780599/what-is-the-meaning-of-posix/31865755#31865755
If you are a programmer,
grepbecomes a verb: "to grep" means "to search text files".
The OS that the Gods ordered be made.
We are all somewhere in the spectrum.
For a quick and dirty introduction to the format, see: ELF Hello World Tutorial.
Whenever Ciro Santilli learns about molecular biology, he can't help but to feel that it feels like programming, and notably systems programming and computer hardware design.
- The most important analogy perhaps is observability, or more precisely the lack of it. For the computer, this is described at: The lower level you go into a computer, the harder it is to observe things.And then, when Ciro started learning a bit about biology techniques, he started to feel the exact same thing.For example when he played with E. Coli Whole Cell Model by Covert Lab, the main thing Ciro felt was: it is going to be hard to verify any of this data, because it is hard/impossible to know the concentration of each element in a cell as a function of time.More generally of course, this is exactly why making any biology discovery is so hard: we can't easily see what's going on inside the cell, and have to resort to indirect ways of doing so..This exact idea was highlighted by I should have loved biology by James Somers:
For a computer scientist, a biologist's methods can seem insane; the trouble comes from the fact that cells are too small, too numerous, too complex to analyze the way a programmer would, say in a step-by-step debugger.
- The boot process is another one. E.g. in x86 the way that you start in 16-bit mode, largely compatible into the 70's, then move to 32-bit and finally 64, does feel a lot the way a earlier stages of embryo development looks more and more like more ancient animals.
Docker is good.
As a lightweight virtualization however, it does break more often than full proper virtualization like QEMU after some updates.
The images also appear to randomly update slightly and break things, even though you've specified e.g.:
The leading open source cross architecture and KVM emulator of the 2010's.
Other notable people that are likely also awesome but Ciro has less familiarity with their contributions:
Eli focuses mostly on compiler toolchains, apparently with specific focus on
He also has some mathematics stuff, so cute: eli.thegreenplace.net/2015/change-of-basis-in-linear-algebra/
What is shocking about Fabrice this is that both are insanely important software that Ciro Santilli really likes, and both seem to be completely unrelated subjects!
At last but not least, Fabrice also studied in the same school that Ciro studied in France, École Polytechnique.
It is a shame that he keeps such a low profile, there are no videos of him on the web, and he declines interviews.
Another surprising fact is that Fabrice has not worked for the "Big Tech Companies" as far as can be publicly seen, but rather mostly on smaller companies that he co-founded: www.quora.com/Computer-Programmers/Computer-Programmers-Where-is-Fabrice-Bellard-employed