What is the purpose of the .note section? If it is left out, it appears from ktrace that the kernel assumes the binary uses some other ABI, e.g., Linux, etc. (compat_linux, etc.) and the /emul shadow directory gets searched.
I have several personal hacks for doing this I have written over the years but I've yet to find anyone else who tried to automate it.
For example, one task is to determine the functions in a library that are not actually used in your program and exclude those from linking, instead of blindly linking libraries full of unused functions (that sometimes cause name conflicts).
"You're browsing without Javascript! If you have no idea what that means, you should ask your technical friend about it. Otherwise - kudos."
No, kudos to you. I could count on one hand the number of times I have been congratulated by one of these capability detection messages for browsing without Javascript.
I agree firewalls and NAT are a nuisance, and today's internet is not one iota as cool as the BBS days. The nuisances introduced by "ISPs" have hindered but in the long run have not stopped reliable peer to peer internet. I will not name the commonly known examples lest it divert the conversation.
There are a variety of workarounds for dealing with firewalls and NAT, and after years of using them "experimentally", I can attest that they work reliably, at least for me. Some of them are well-known, some of them are commonly used, others are not.
If IP addresses assigned to so-called "reliably reached" servers were as static as you imply in practice, there would be little need for a mechanism like DNS. (And I'm not saying there is, just pointing out that there are a lot of folks who believe IP addresses must be able to change without notice.)
In my experience, domestic internet connections with "dynamic" IP addresses are "reliable enough" to do some "useful" things besides simply partaking in the "calf-cow" web.
For me, not being baited into buying stuff is a nice side effect.
I block ads because it's fun to see how badly Google, Apple, Microsoft, apps and websites want data about computer users.
It's a game (I would guess that's how they see it); one that forces the user to be vigilant about networking.
Understood. However try to reconcile this with the thought experiment I gave above. You would be saying that these Windows exploits would not work because users have IP addresses that are changing too frequently. Is it possible that _in practice_ many "dynamic" IP addresses are actually quite static (i.e., remaining the same for months or longer)? In _theory_ they could change by the day or week.
Many times I see commenters on HN making statements to the effect of "users cannot run their own servers" and spurring a "debate" in the context of someone trying to innovate away from the current asymmetric, client-server, "calf-cow" internet.
I saw one such commment earlier today.
Thought experiment:
What about exploits like this one, among so many others over the years, in Microsft Windows?
In many cases it sure looks like the user is "running a server".
There is a port open and listening, waiting for connections. And some remote client can connect and issue commands.
"Google makes deployment much easier by using static linking..."
Unless you only are referring to only the Go compiler, can you provide a cite for this statement?
I also use static linking as much as I can. Sometimes it requires quite a bit of work due to how open source developers structure their build systems. I wonder if some folks at Google have also spent significant amounts of time unravelling idiosyncratic build systems found in open source projects to make static, portable binaries.
I often see commenters on HN and elsewhere making commments against static linking. It would be useful to be able to cite to Google's internal practices; these commenters also seem to attribute superior knowhow to Google staff.
OK, so the author purports to be on the side of "end users". And he purports to share empathy with users who get annoying messages that their browser is lacking, outdated, etc.
As an "end user" who has gotten hundreds of such messages over the years, I ask: How about Silverlight? Have you ever gotten an annoying message along the lines of "Sorry, you need Silverlight"?
I have. And I assure you I do not need Silverlight to watch video.
Speaking of empathy, just this week I believe someone posted to HN about a still undisclosed 0-day for Silverlight that someone wrote years ago, that still works flawlessly and recently sold for tens of thousands of US dollars on the black market.
Also, if you learn to use installboot(8) you can make your own PXE bootable images.
I would read the Makefiles in the OpenBSD source tree to see how they make their install images.
Note I'm not an OpenBSD user and have not installed it in many years so I'm not the best person to ask. I use an earlier distribution, the one that spawned OpenBSD. Similar but not the same.
"I guess people using BSD... burn an image to a USB stick..."
I always thought "burn" referred to optical storage like CD-ROM?
Not sure about others, but when I do BSD installs I do not have to click any buttons. I do not need a mouse.
I can lazily use something as small as an 8M stick for the install image. It couldn't be much easier.
With the size of today's RAM (500M+), using the install image I can make the custom image with my personal kernel configs, utilities, and settings entirely in memory without needing to write anything to a HDD. Then I just dd the image to the removable media. That is the slowest step.
My custom images are quite small too, under 16M, and need no access to a HDD. The system runs just fine in RAM, no swap.
I guess I could do the same setup with "Arch" but I imagine it would take considerable work undoing pre-configurations based on assumptions about how I would want my system configured.
Easier perhaps to just compile my own custom Linux kernel and "initrd". Build from the ground up.
I like the flexibility and control with BSD. Not to say Linux does not have flexibility and control, too. It certainly does. I just rarely see ordinary Linux users making use of it when installing. Instead many if not all decisions have already been made, and everything is pre-configured. "One click..."
Kudos to the OpenBSD folks for the network drivers.
progress(1) is a separate utility on BSD; one of my favorites. (Although it is also built in to BSD ftp.)
I regularly use progress with dd, tar and other utilities.
At least one BSD dd now has a "msgfmt" option that outputs parseable, printf-style format strings.
Truthfully, I prefer it when these basic utilities are static except for fixing bugs. Using the new features in scripts means the scripts might lose some portability.