Is it possible to 'mix and match' hardware and software from different vendors to make a flight management system? I want to prepare a study about FMSes and I can see that there are several independent software providers, does that mean their software can be installed on different hardware platforms?
If you are thinking of the analog of installing windows or linux on a given physical personal computer then the answer is more or less no. Not because its not possible but more because thats not how avionics are made or how the avionics pipeline has developed over the years. Avionics also work quite differently than your basic home computer as they are designed to be far more redundant and have far more real time conscious operations. You, as a user a free to run any software you like on your computer as its unregulated and does not matter if say one process blocks another, a process fails, a process produces erroneous outputs or a process all together destroys the machine, these things would not be great in avionics.
There are two basic flavors of avionics "software" components/updates:
Database updates: these occur regularly when a new dataset is made available and update the waypoints, VOR's, Frequencies, and Maps in the system.
Database updates all ultimately contain the same information (generally speaking). Depending on where you are in the world the information is maintained by various regulatory authorities as well as some other companies. However to play nice with a given FMS the data may need to be delivered in a specific format. As far as I know there are no public FMS data formats and generally you need to get the database updates directly from the maker of the unit.
These could be interchangeable with some coordination but the various makers have a steady income stream from the updates so there is little incentive to change the model.
Data sets from someone other than the manufacturer will most likely not load and may come on the wrong card type or be incompatible with the loading system. Likewise not all units are capable of consuming/making use of the full data set.
Software Updates: these occur perhaps on a schedule or perhaps when needed and change the functionality of the system. Or if there is a bug in the system.
Avionics tend to be quite proprietary largely because it costs a lot of money to certify and design avionics on top of this manufacturers of avionics components have certain responsibilities to upholding certificates. If problems arise with the unit arise they may need to provide a fix, as such its simpler to have control over the whole unit, both soft and hardware. This also helps to cut down on the potential combinations of software/hardware units in the event of an issue either on the software or hardware side, it also absolves you from needing to certify all possible combinations.
One things thats very important is that due to the use case, avionics tend to blur the lines between hardware and software in terms of what is implemented where. Keep in mind that generally anything that can be implemented in code can be implemented in pure discrete logic. Similarly most things implemented classically in hardware can be modeled in software. As such the blurred lines and often tight coupling and required knowledge across the platform makes it almost required to do it all as one.
You can find a lot more about the FAA's hardware and software certification process here as well as some notes on avionics software here. There is also some decent tangentially related info in this answer.
But its not all for naught, things like the ARINC standards have been developed allowing for the creation of Integrated Modular Avionics and pushed for standardizing at least parts of the equation and opening future possibilities of at least mixing and matching components.