jgreco
Resident Grinch
- Joined
- May 29, 2011
- Messages
- 18,680
Parallel to a little open source drama this morning...
As a longtime proponent of open source software, the fact of the matter is that we're still surrounded by proprietary software, and it isn't trivial to get away from that. I'm perhaps dating myself a little bit here, but I got to thinking about this a bit and found it to be fascinatingly deep. Years ago, we built many systems out of discrete logic, because CPU's were expensive, complicated designs. You used discrete circuits to encode and decode, do logical/arithmetic operations, etc., and indeed many early computers were built out of discrete logic components.
In the '80's, a conventional personal computer might consist of a 6502 CPU (4528 transistors), a few specialized I/O chips for audio, video, and other I/O, some discrete memory chips for storage, and then other miscellaneous logic to tie it all together. It was probably possible for a human to fully grasp what was going on inside these systems, and the inclusion of circuit schematics in things such as Commodore's C-64 Programmers Reference Guide certainly encouraged that.
At some point, probably in the '90's, electronic design had significantly shifted, and we started to see heavy use of microcontrollers in many applications where discrete logic had formerly been the solution. This makes a certain kind of sense, because a microcontroller can be reprogrammed without redesigning a circuit, and is capable of very complex logic in a very small package. As of 2019, certain microcontrollers are as small as a grain of rice (ATtiny) - and dirt cheap. This has translated into these things being everywhere, being used for everything.
As our computers have become more complicated, though, we're seeing more and more subsystems built in. Most of these have firmware or even complete operating systems, and many are not open source, some can't even be easily investigated.
Think of all the devices directly attached to your computer which are powered by software/firmware.
Start at the keyboard and mouse, both of which have firmware or even upgradeable software. Moving towards the computer, the typical USB controller is a software-powered device. I/O controllers are frequently powered by firmware, and devices such as an HBA are actually full CPU's with a lot of access into your system. I/O devices such as hard drives, SSD's, printers, etc., also have their own CPU and firmware. The server/PC CPU/chipset itself these days has things like the IME, with full platform access, and that's sometimes supplemented by IPMI/BMC. Graphics subsystems are their own compute powerhouses, and it's easy to forget that even your monitor is probably a tiny computer driving a standard LCD display. Your nice wireless Bluetooth headphones -again, a microcontroller in there. Your power supply might be reporting to your motherboard using a microcontroller. Even the FANS on your server are likely to have a little microcontroller in them to convert the PWM and to drive the tachy signal. And anyone who wants to point out that I missed any of a hundred other embedded firmware-driven devices along the way -- YES YOU ARE CORRECT! Feel free to list them below if you want! This is just my super-incomplete list of obvious ones.
While I appreciate the desire for everything to be open source software, the reality is that it is very difficult to assemble an environment where that is actually so. I don't know that there's a realistic way to get to the all-open-source model.
To that end, I'm not really sure why the hot issue of the last 24 hours is "Jira isn't open source". Surely it is more of a realistic operational concern that LSI HBA firmware isn't open source, or that the system BIOS code isn't open source. As much as I'd love for there to be a free open source competitor to Jira that was feature-for-feature comparable, the truth is that open source software often lags in development funding, because people download it and use it for free, leaving the developers to struggle to come up with a strategy (such as paid support) to fund development.
I, for one, very much appreciate that iXsystems has released the vast majority of TrueNAS as FreeNAS and made this freely available. iXsystems has done massive amounts of work to improve the state of ZFS on FreeBSD, and (IIRC) has sponsored stuff such as @mav@'s kernel iSCSI work. I've had accounts on Jira, Redmine, and other bug management systems, and they all have their ins and outs, but Jira *is* really nice. Compare and contrast to people forced to work under tragic systems such as debbugs ... such developer frustration when tools that are literally a quarter of a century newer are available.
Where the choice is an equal or nearly-equal one between an open source and a proprietary solution, I try to favor the open source one. And I try to contribute back somehow. Which is why I'm here, posting as many helpful replies as I can reasonably afford the time to, because I do appreciate FreeNAS, ZFS, and iXsystems. But if the developers want to use Jira to manage their bugs because it is so much better than the alternatives, I am definitely fine with that.
As a longtime proponent of open source software, the fact of the matter is that we're still surrounded by proprietary software, and it isn't trivial to get away from that. I'm perhaps dating myself a little bit here, but I got to thinking about this a bit and found it to be fascinatingly deep. Years ago, we built many systems out of discrete logic, because CPU's were expensive, complicated designs. You used discrete circuits to encode and decode, do logical/arithmetic operations, etc., and indeed many early computers were built out of discrete logic components.
In the '80's, a conventional personal computer might consist of a 6502 CPU (4528 transistors), a few specialized I/O chips for audio, video, and other I/O, some discrete memory chips for storage, and then other miscellaneous logic to tie it all together. It was probably possible for a human to fully grasp what was going on inside these systems, and the inclusion of circuit schematics in things such as Commodore's C-64 Programmers Reference Guide certainly encouraged that.
At some point, probably in the '90's, electronic design had significantly shifted, and we started to see heavy use of microcontrollers in many applications where discrete logic had formerly been the solution. This makes a certain kind of sense, because a microcontroller can be reprogrammed without redesigning a circuit, and is capable of very complex logic in a very small package. As of 2019, certain microcontrollers are as small as a grain of rice (ATtiny) - and dirt cheap. This has translated into these things being everywhere, being used for everything.
As our computers have become more complicated, though, we're seeing more and more subsystems built in. Most of these have firmware or even complete operating systems, and many are not open source, some can't even be easily investigated.
Think of all the devices directly attached to your computer which are powered by software/firmware.
Start at the keyboard and mouse, both of which have firmware or even upgradeable software. Moving towards the computer, the typical USB controller is a software-powered device. I/O controllers are frequently powered by firmware, and devices such as an HBA are actually full CPU's with a lot of access into your system. I/O devices such as hard drives, SSD's, printers, etc., also have their own CPU and firmware. The server/PC CPU/chipset itself these days has things like the IME, with full platform access, and that's sometimes supplemented by IPMI/BMC. Graphics subsystems are their own compute powerhouses, and it's easy to forget that even your monitor is probably a tiny computer driving a standard LCD display. Your nice wireless Bluetooth headphones -again, a microcontroller in there. Your power supply might be reporting to your motherboard using a microcontroller. Even the FANS on your server are likely to have a little microcontroller in them to convert the PWM and to drive the tachy signal. And anyone who wants to point out that I missed any of a hundred other embedded firmware-driven devices along the way -- YES YOU ARE CORRECT! Feel free to list them below if you want! This is just my super-incomplete list of obvious ones.
While I appreciate the desire for everything to be open source software, the reality is that it is very difficult to assemble an environment where that is actually so. I don't know that there's a realistic way to get to the all-open-source model.
To that end, I'm not really sure why the hot issue of the last 24 hours is "Jira isn't open source". Surely it is more of a realistic operational concern that LSI HBA firmware isn't open source, or that the system BIOS code isn't open source. As much as I'd love for there to be a free open source competitor to Jira that was feature-for-feature comparable, the truth is that open source software often lags in development funding, because people download it and use it for free, leaving the developers to struggle to come up with a strategy (such as paid support) to fund development.
I, for one, very much appreciate that iXsystems has released the vast majority of TrueNAS as FreeNAS and made this freely available. iXsystems has done massive amounts of work to improve the state of ZFS on FreeBSD, and (IIRC) has sponsored stuff such as @mav@'s kernel iSCSI work. I've had accounts on Jira, Redmine, and other bug management systems, and they all have their ins and outs, but Jira *is* really nice. Compare and contrast to people forced to work under tragic systems such as debbugs ... such developer frustration when tools that are literally a quarter of a century newer are available.
Where the choice is an equal or nearly-equal one between an open source and a proprietary solution, I try to favor the open source one. And I try to contribute back somehow. Which is why I'm here, posting as many helpful replies as I can reasonably afford the time to, because I do appreciate FreeNAS, ZFS, and iXsystems. But if the developers want to use Jira to manage their bugs because it is so much better than the alternatives, I am definitely fine with that.