>>964322 (OP)
DHCP is a protocol defined by RFCs. ISC DHCPD and Kea are "Unix network-related software" written in the UNIX languages C and C++. DHCPD is a great example of how much C sucks. It has its own memory manager with its own strings because C's suck. Its configuration file has its own expression evaluation language. It uses a text file as a log-structured database because that's the UNIX way. None of this bullshit has anything to do with the DHCP protocol itself and there is other DHCP software.
https://www.isc.org/wp-content/uploads/2017/08/dhcp41conf.html
https://www.isc.org/wp-content/uploads/2017/08/dhcp41eval.html
https://www.isc.org/wp-content/uploads/2017/08/dhcp41leases.html
>>Store leases and host reservations in a MySQL, PostgreSQL or Cassandra database rather than a text file
An SQL database is a better choice for a database than a text file. Weenies use "shell script database programs" with text files and all that bullshit.
>>964483
>The command moved to /usr/bin/true. I don't know when, where and especially why.
AT&T's PDP-11 ran out of disk space.
>>964495
>Having it be a C program makes more sense as it no longer requires having a shell loaded. So a login manager can handle things like shells set to /bin/true without wasting time spawning a shell just to load an empty file and return 0.
If UNIX was modular, they would be able to specify a lack of shell without that bullshit. They probably assumed every user was going to be logged into the PDP-11 and typing at a terminal, so they never bothered.
>>964554
DHCPD lease file already is a database.
>The lease file is a log-structured file - whenever a lease changes, the contents of that lease are written to the end of the file. This means that it is entirely possible and quite reasonable for there to be two or more declarations of the same lease in the lease file at the same time. In that case, the instance of that particular lease that appears last in the file is the one that is in effect.
This statement is automatically added to the top of new lease files by
the server. It indicates the internal byte order of the server. This
permits lease files generated on a server with one form of byte order
to be read by a server with a different form. Lease files which do not
contain this entry are simply treated as having the same byte order as
the server reading them. If you are migrating lease files generated
by a server that predates this statement and is of a different byte
order than the your destination server, you can manually add this
statement. It must proceed any lease entries. Valid values for this
parameter are little-endian and big-endian.
I thought these lease files were "plain text." Why does plain text depend on byte order?
You speak of 'Un*x' as if was some complete and well formed
entity, particularly when it comes to networking (which was
only glommed on in recent history).
I just loved that what AT*T sold as the "Basic Networking
Utilities" package was UUCP! Basic Networking, yeah right.
For g*ds sake, RFC1 is dated 1969, before Un*x was even
starting taking up disk space.
Funny thing about your subject line is that
who am i | sed 's/\!.*//'
is almost certainly the most portable command line to return
the current hostname!!
That's why we have C -- a language designed to make every
machine emulate a PDP-11. That's why we have a file system
that forces every file to be viewed as a sequence of bytes
(after all, that's what they are, right?). That's why
"protocols" depend on byte-order.
They have never separated the program from the machine. It
never entered their tiny, pocket-protectored with a
calculator-hanging-from-the-belt mind.