Is hardware more reliable than software?

Source: Internet
Author: User

Someone told me that hardware is more reliable than software.
This sentence is wrong. I will prove it below.
If the hardware is reliable,
And our program logic is correct,
A program that runs logically correct on a reliable hardware,
There is no reason to say that it is less reliable than the underlying hardware,
There is no reason to say that the hardware is more reliable than the software.

However, from another perspective, Why do many people have this understanding, and most of them have the experience of developing software on the basis of hardware? Although this sentence is wrong, it is obviously not a plug-in, but based on the actual experience, where is the inevitability?

My opinions are as follows:
1. The logic to be implemented by software is more complex than that of hardware
2. When demand changes, the software is more impacted than the hardware.

They are the root cause of the "hardware is more reliable than software" statement. I will discuss in detail the basis for these ideas.
1. The logic to be implemented by software is more complex than that of hardware
Obviously, we can't simply understand this sentence. The logic that a CPU needs to implement is more complicated than the BUSY software projects we have on hand, even more complex logic than most of the famous software products we can see at ordinary times, but the most critical point is that when we buy these hardware devices in the electronics market, their complicated hardware logic is encapsulated after well-defined interfaces, so we don't have to worry about it, their reliability is guaranteed by the tests of the major companies that produce them. Our most common application is to connect chips with different functions, this is usually easy (compared with the complicated logic encapsulated in the chip ). In other words, the degree of "code reuse" in the hardware industry is far higher than that in the software industry. Even in the embedded development community, the object-oriented thinking has not been popularized, many companies and projects Choose C rather than C ++ (this is closely related to the slow development of C ++ compilers in the embedded development field ), this further limits the possibility of large-scale code reuse. The more code we need to write, the higher the possibility of errors.
.

2. When demand changes, the software is more impacted than the hardware.
When a user needs to change the usage of a function or add a new function, software is often required to be modified, or we are more inclined to modify software (cost reasons?) than to modify hardware ?), Modifications are often inevitable (at least very likely) introduce new logical defects, while the underlying hardware facilities gradually mature, however, our program may crash due to several hasty attempts to consider unexpected changes. This is also the basis for many people to think that hardware is more reliable than software.

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.