> Let's reminisce on some OS-bundled databases of Unix: The libdb files, the utmp/wtmp/btmp style files, the /etc/services and /etc/passwd style ascii databases.
I would argue that you can't really call this a (ascii) database, because it isn't (no transactions, no data types, no query language, no parallel write, nothing). It's what you get with unix - shitty stream of bytes.
Take /etc/passwd. It does have a query language. getpwent(), login, passwd
It has data types -- again getpwent() (man getpwent) needs pwd.h
It has "parallel writes". Multiple users can use passwd at the same time. It has "transactions" -- mostly because of inodes.
Similar comments apply to utmp and wtmp (note that utmp and wtmp are not ascii -- they are binary records). /etc/services is ALSO structured but is ascii. Less controlled, because it is almost always "read-only".
Of course, in a very strange sense, you are correct. Any structure imposed is NOT by the kernel -- this is "post init", or user level.
I would argue that you can't really call this a (ascii) database, because it isn't (no transactions, no data types, no query language, no parallel write, nothing). It's what you get with unix - shitty stream of bytes.