ls
, on the other hand ps
, vim, perl, gzip, tar and a whole lot more. Linux has never had any division into a "base system" and "additional utilities." The whole system is “extra utilities”. MySQL is no different from ls, from KDE, whois, dc, GnuCash ... Every bit of the system is a package of add-ons. On the contrary, BSD has always had a centralized development model. There was always a community that was “responsible” for the system. BSD does not use the GNU ls or GNU libc, it uses the BSD ls and BSD libc, which are direct descendants of those ls and libc that were distributed with the BSD from the CSRG. They were never designed or assembled independently. You cannot “go download the BSD libc” anywhere, because in the BSD world, the libc itself is meaningless. ls itself is meaningless. The kernel itself is pointless. The system is a single unit, not small pieces gathered in a heap. Further, X is not part of the basic FreeBSD system. This is a package of add-ons. Since X is not part of the base system, X applications such as xterm, KDE, Gnome, Mozilla, gaim, xmms, etc. obviously also can not be part of the base system. These are applications that are treated differently. The main difference is where they are developed. NetBSD and OpenBSD have X in their base, due to the way it is integrated with the console driver. Both of them use heavily modified versions, so it’s not advisable to store them as separate packages. The entire basic system is developed together. To be precise, there are parts of the base system, such as sendmail, BIND, tcpdump, ssh, etc., which are actually stand-alone packages and are developed separately. There are some GNU applications such as groff, gcc, gzip that are familiar to all Linux users. But to them a special relationship, they are imported into the tree, and then formed in accordance with the rest of the system. In fact, many of them are used as BSD-only; BIND and sendmail were originally developed at Berkeley as part of BSD, and only later became available as separate applications. My FreeBSD assures that it works with gcc version 3.2.2. Technically, this is not exactly gcc 3.2.2; This is a FreeBSD compiler based on gcc 3.2.2. The tcpdump version that is installed on the system is not technically version 3.7.2, this is FreeBSD tcpdump, based on tcpdump 3.7.2. In most cases, of course, the version of the package in FreeBSD is almost indistinguishable from the vendor version. Usually, several compilation changes (Makefiles, etc.) are made for cleanliness of the build in accordance with the rest of the system, and sometimes several important patches for proper compilation and execution. Some changes are wider, some are cumbersome. But they are brought together and forced to work together. It is guaranteed that all components of the basic BSD system are designed to match each other. The reason for introducing a package developed by a third party into the basic system is usually that the package meets the basic requirements and is easiest to use in it by default. At present, FreeBSD uses the OpenSSH ssh server and client, which are integrated into the base system, because at the moment direct security access method is the base method for any system, and its implementation was a practical necessity. gcc and binutils are part of the base system, because ... well, they are needed to build the base system. X, Gnome, PostgreSQL, Apache, and so on are not part of the base system and will probably never enter, because they are not required to lift and run the system, will not be used on many systems, do not require such tight integration, ... there are many more reasons. It is important to emphasize this aspect of the “base system”, because, I believe, it contains the most noticeable difference in the BSD and Linux development methodologies. A Linux distributor can put all the pieces together and test them for mutual conformity prior to release. Some packages may be modified. But this is completely different from the intense integration in BSD. In particular, the fact that many components of the base system are not taken “from somewhere”, but have already lived life as part of the system. Some Linux distributions (Debian and Gentoo, as I understand it, the most noticeable in this group) are much closer to the base / ports than others. They have a certain trait between what is needed to start the system, and all the other packages that you might want to install on the system. How is this different from a basic BSD system? The fact that most packages are still developed and maintained on the side, and then just going to the Linux distribution. No, for example, such a thing as "Gentoo tftp" is a third-party package. Although many packages in BSD are third-party, almost the entire “basic system” has never been “from somewhere” - it has always been BSD. The basic system is sometimes branded “minimalist” or “lean”, meaning that it is designed with a single the desire to make it as small and concise as possible. But it's not exactly that. Of course, we want to see it that way, but it is developed in this way, because it is intended to be exactly what it is in name - the base of the system. Never in my life have I run BSD just with what is in the database, and probably never will. I don't know anyone who would do it. The base is needed in order to provide the necessary tools for working in the system and allow you to update and install applications. Then you simply install everything you need according to the purpose of the system. I was told that all of the above is more true for FreeBSD than for NetBSD or OpenBSD, which in many ways have broader criteria for inclusion in the base system. As always, you should consult your system documentation to know exactly where it goes.Source: https://habr.com/ru/post/31444/
All Articles