From owner-freebsd-current@freebsd.org Sun Nov 15 13:02:16 2015 Return-Path: Delivered-To: freebsd-current@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7EB56A27B29 for ; Sun, 15 Nov 2015 13:02:16 +0000 (UTC) (envelope-from dan_partelly@rdsor.ro) Received: from mail.rdsor.ro (mail.rdsor.ro [193.231.238.10]) by mx1.freebsd.org (Postfix) with ESMTP id 1A95D1E56 for ; Sun, 15 Nov 2015 13:02:15 +0000 (UTC) (envelope-from dan_partelly@rdsor.ro) Received: from [192.168.1.101] (unknown [79.119.24.18]) by mail.rdsor.ro (Postfix) with ESMTP id 9746A15705 for ; Sun, 15 Nov 2015 14:54:01 +0200 (EET) From: Dan Partelly Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Subject: libXO-ification - Why - and is it a symptom of deeper issues? Message-Id: <0650CA79-5711-44BF-AC3F-0C5C5B6E5BD9@rdsor.ro> Date: Sun, 15 Nov 2015 14:54:01 +0200 To: freebsd-current@freebsd.org Mime-Version: 1.0 (Mac OS X Mail 9.1 \(3096.5\)) X-Mailer: Apple Mail (2.3096.5) X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 15 Nov 2015 13:02:16 -0000 Hi all, I was looking at the new facility of dumping JSON,XML from many utils in = base and after some funny minutes, I couldn't stop ask myself =E2=80=9C = Ok, this is funny , but why ? =E2=80=9C And I couldn't find a real = answer. Ill outline what I think: 1. Undoubtedly, it makes base code slightly harder to understand and = maintain.=20 2. I have seen the idea that this makes the information dumped by = utilities in the base easily accessible programatically. OK, maybe it = does , but it doesn't fit with the current paradigm of "tool | filter | tool=E2=80=9D= at all. There are no tools able to accept JSON and filter it in any = meaningful way, and I dont see too many ppl changing their code to read JSON instead of text. = I don't even see the base tools changing. This output may be useful in = corner cases only. 3. The integration of libxo IMO only points at a much deeper issue IMO. = It is only an expression of the need of a mechanism aimed at binary code = reuse. But it does not solve the problem, it only adds yet another = possibility in a world where too much choices already result in too much = splits and incompatible APIs.=20 4. This whole effort would have been IMO much better served by porting = the bulk of ifconfig(8) , route(8) and wpaclient(8) to a library API, = much like the libs for geom, zfs , etc , ready for reuse of 3rd party = code. Eventually writing network control daemons in time over it , much = like solaris does. 5. A port of partial OS config data to UCL =E2=80=A6. would induce yet = induce another orthogonality violation. What makes UCL better than the = bestiary of ad hoc databases already existing in BSDs ? Programatic = readability, yes. but it does not add any real much needed functionality = such as *transactional databases* for system tools. Why not research a = proper solution - easily accessible by other programs ,orthogonal , = transactional, and ACL protected solution which can be used all over = the place , from OS boot, to ABI management, service management, network = management, user management. I hope this day will come, a day when I = will not have to edit a single config file manually, yet I would have = access to all the config and system state easy with wrapper APIs. In = the light of this point, why go with UCL ? It is not orthogonal, it is = not transnational, and editing the config files directly would result in = the same old human errors which bite as all from time to time. 5. It is my opinion that Solaris addressed some of those issue. Solaris = FMRI and SMF are lightyears ahead of the very tired models we keep using = on BSDs. Why not build on the insight offered by those (or even on the = insight offered by Windows :P) , then inventing more adhoc solutions and = ad-hoc databases, which do not address the real issues we have , like = binary code reuse, service management issues, lack of a system wide = published -subscriber bus ( not kdbus :P ) fault detection and reaction, = fault reporting, all much needed parts of a modern OS.=20 And now thee questions 1. Why lib XO ? Why burden the OS for some corner cases where it may be = useful ? 2. Was there any real talk on how to bring FreeBSD up to speed regarding = those issues ? A period of research on what exists, on what can be done = , and ensure important things are not showed in background and replaced = with yet another ad-hoc config database which lacks modern features ? =46rom where I am standing, this could be a project spawning multiple = years , but it would be well worth it, and in my opinion it would be = also worthy of=20 the freeSBD foundation sponsorship for several years in a row. The = features I touched upon became very important parts of oder OSes, and = rightly so.=20 Note: this message is serious and it is not intended to start flame wars, = religious crusades, or offend anyone.=20 =20=