tag 标签: Software

相关博文
  • 热度 26
    2015-8-14 19:55
    2187 次阅读|
    0 个评论
    Here is my proposed definition of firmware:   ‘Firmware is the art of designing software that successfully controls and/or monitors the physical and natural world through electronics.’   It’s not your father’s definition is it? But I would argue the definition has actually changed over the years.   Words change their meaning when the old meaning no longer has value or is obsoleted by the modern world. This is called (yes there really is a name for this) etymology. For example computer used to mean a person who computes.   Argh! My ears cannot hear it! English!! Engineers hate English! It’s our kryptonite! Which is also why engineers hate writing things down or creating requirement documentation. But a poorly written requirement will wreak havoc and chaos on your project.   So does a poor definition wreak havoc!   So as much as we all profess our love of math and hate (ok have a strong distaste for) English, having no clear definition for what hundreds of thousands of engineers use to define their profession is not helpful.   What is the present definition of the word firmware you ask? Oh it’s a mess. I did some research on this. I’ve also done various surveys on the word through the firmware LinkedIn group. None of it’s pretty.   I went searching for the definition at IEEE’s standards definition database. Sound like the logical source right?   I found 11 different definitions.   Yes 11 variants of a definition that is no longer relevant. Regardless, the going theme seems to be software that resides in non-volatile storage that can be read only by a computer.   Really. Or should I say really not helpful.   How does this convey anything useful and distinguish it from software? Is this what you tell people when they ask you what firmware is? How is this definition really different then saying firmware is software? All that is added to the definition is the software’s residence -- that being non-volatile memory (well at least until you move said firmware into RAM, but I digress).   In an attempt to improve things, many have abandoned the use of the word firmware and replaced it with embedded software. Not sure how this solves anything. In fact I think it makes matters worse. It ties it even tighter to software and lessens the useful distinction.   Yet how many computer scientists do you know that write firmware? I’ve done studies on this and it’s very few. In a recent survey I did of degrees held by firmware engineers, I found that of 377 sampled, 13% held a bachelors in computer science. The great majority (43%) had a bachelor’s degree in electrical engineering. About 80% had an engineering degree of some kind. Clearly there is an important engineering role in firmware that is sorely missing from 1) your father’s definition, and 2) definitions characterizing it as software, which is not a field of engineering.   So firmware is a field of engineering. No, you can’t call it software engineering since this is the engineering of software itself. In fact I still fail to see how calling us ‘embedded software engineers’ is helpful since embedded just categorizes a field of software engineering.   Firmware engineers must have a strong grasp of engineering first and foremost. After that they need a good understanding of electronics. I say this because a well-written piece of firmware should have a driver layer that connects directly to electronic circuits. Also a well-written piece of firmware should also have some kind of device layer where the devices are often electronic sub-systems. For example if you are to measure voltage, you should understand at a high level the electronics that create that voltage. Much of the application layer must rely on engineering concepts. Similarly, if I am controlling a mechanical system through electronic stimulus, I need to have some understanding of both electrical and mechanical engineering.   Eventually you escape the engineering such as in a GUI implementation on a TFT LCD touchscreen. So at some point it departs from engineering yet remains a science -- computer science in fact. It is at this point where the ‘software’ that resides in the non-volatile storage really is purely software.   So which definition do you think would help clarify to friends and family, organizations, corporations, colleges and Universities?   ' Software that resides in non-volatile storage '?   Or…   ‘Firmware is the art of designing software that successfully controls and/or monitors the physical and natural world through electronics.’   Back to the trenches! Thanks for reading!   Bob Scaccia is President of USA Firmware, a Software, Hardware, Firmware and IoT Consulting and Design Services Company located in Brecksville, Ohio. Bob also runs the largest Embedded Software group on LinkedIn with 14,000 members and growing and has written articles on firmware curriculum, trends, best practices and using object oriented approaches in the C language.
  • 热度 24
    2015-6-29 17:37
    2221 次阅读|
    0 个评论
    So what's the problem with “free” as in “free beer”? I'm a sucker for “buy one, get one free” offers. There are a variety of costs, sometimes hidden, in free (as in beer) software.   Free (as in beer) software makes it difficult to recover the cost of developing software. (The Free Software Foundation (FSF) has a confusing article about how to sell free software  on their website, which skirts the question of how to be paid for developing software, but does include a pitch for donating money to the FSF.) There are ways to make money developing software, but the most effective of these is to either sell support services (like RedHat), build the software into a product (like Cisco), or to use the software internally to provide a service (like Google).   If you happen to have a great idea for a program, something new and novel, FOSS makes it difficult to create a company around your idea. Venture capitalists will not fund development that can be easily undercut simply by copying sources off a website. One can count the major software companies on a few fingers: Microsoft, Oracle, Adobe, Intuit, and a few more, all founded before the rise of FOSS. Of course, if you happen to develop a proprietary program that runs on a smart phone, no matter how pointless  it may seem, the VCs come running.   People confuse cost with value, and this extends to the areas of accounting and taxes. In 2008, the Linux Foundation estimated the cost to develop the Linux kernel at $1.4B, with the cost of a complete distribution about $10.8B. But for the users, the cost is zero. The value of the Open Source software that they use on a company's balance sheet is the cost of acquisition, namely zero. Where development of a new proprietary software product may qualify for an RD tax credit, developers of Open Source software that will not be sold or leased may have a more difficult time justifying the credit.   Few people invest time, money, or energy on things that have little or no cost. You're likely to skimp on maintenance on the $500 clunker you bought to haul junk while sparing no expense on the new SUV you bought for $50K. There is also the Tragedy of the Commons, where a shared resource used by all tends to be over-used to the detriment of all. We don't have to worry about overgrazing the Town Commons, but there is a parallel with Open Source Software, where programs used by many are often supported by very few. The Heartbleed security flaw brought to public attention that a widely used and critical software library, OpenSSL, was maintained by one full-time employee and ten volunteers on a shoe-string budget. Despite the fact that this library was used by many major companies and was an integral part of their products and services, it was Open Source. Where similar software from a proprietary software company would have generated a revenue stream which would fund support and development, the OpenSSL Project depended on donations. There are a number of similar Open Source Software projects, such as the Network Time Protocol (NTP), which are critical to the Internet, but which have minimal support. (The Linux Foundation, in response to the lack of support for OpenSSL and other projects, created the Core Infrastructure Initiative, CII, funded by a number of major tech companies.  CII will fund two full-time core OpenSSL developers)   We think of donations as charity, not as paying for development and maintenance of critical software packages. Indeed, a corporation might have to go through its “corporate giving” department to contribute to one of the FOSS projects, where the application for a donation might be weighed against donations to the local theater company or food bank. Voluntary donations have allowed a number of projects to stave off starvation, but that doesn't result in them thriving. Many companies that use free software almost never think about the cost of development, the value of the software to their products and internal development, or the risk that they are exposed to if the software is not maintained.   Finally, the last hidden cost I see in Free and Open Source Software is minimizing the value of time, energy, and creativity expended by the people who develop software. Few people would say that everyone who writes a book, composes a song, or paints a picture should give their creative work away for free. But many in the FOSS community have a different standard for software developers. People and companies who sell software rather than give it away are characterized as if they are stealing something that belongs to everyone — an opinion widely expressed by the Free Software Foundation and Software Freedom Conservancy.   Science fiction writer Robert Heinlein popularized the saying “There ain't no such thing as a free lunch” in his 1966 novel, The Moon is a Harsh Mistress . While Free and Open Source Software has many positive aspects, including high quality, transparency, and creativity, let's not forget that there are hidden costs. These include a far smaller software development economy (except for games) compared with our vibrant hardware development economy, higher risks from insufficiently maintained software, and undervaluing software development talent (again, except in the area of games). These costs may not be easy to quantify, but they should not be forgotten.   Michael Eager is principal consultant at Eager Consulting in Palo Alto, Calif. He has over four decades experience developing compilers, debuggers, and simulators for a wide range of processor architectures used in embedded systems. His current and former clients include major semiconductor companies and systems developers. Michael has been a member of the ISO C++ Standard Committee and ABI Committees for several processor architectures. He is chair of the Debugging Standards Committee for DWARF, a widely used debug data format. He is active in the open-source and Linux communities.  
  • 热度 23
    2015-6-29 17:35
    2134 次阅读|
    0 个评论
    We often hear the word “freedom” in connection with Free Software and Open Source Software (FOSS). Actually, most use of the word comes from the   Free Software Foundation (FSF) and its founder, Richard M. Stallman, repeating the term over and over , until the word is almost devoid of meaning . The four freedoms expressed by Stallman are the freedom to run a program as you wish, freedom to study or modify a program, freedom to redistribute a program, and freedom to distribute modified copies of a program.    Now, there might be reasons to debate whether Stallman's use of “freedom” has the same meaning as in “freedom of speech” or “freedom of religion” but that's a topic for a different article. When asked about “free software”, Stallman and others will throw out the quip “free as in speech, not free as in beer”. Apparently, someone, somewhere is giving away free beer. I want to find that person.   Anyone can download the source for the many thousands of FOSS programs, modify it, and redistribute a new version. But in practice, only a very small number of people ever download and build a FOSS program from source. I do on occasion, when a program isn't available in my distribution's repository. Of the few people who download the source of a program, a much smaller number will actually study it to see how it works and an even smaller number will make changes.    I use FOSS software. I use GNU tools, LibreOffice, Firefox, GIMP, and more. Like the great majority of Linux users, I use whichever version of a package is included in my Linux distribution. I'm very unlikely to ever modify any of these programs, even if I have the “freedom” to do so. The reasons are simple: Large programs like these are complex and take considerable time to comprehend how they work.   I recently had an online exchange with someone who was upset that his Linux distribution did not provide support for a peripheral he just bought. He said that he had to purchase a driver to get it to work and that this was the first time in many years that he had paid for any kind of software. He wasn't concerned about the freedom to modify the software, or the freedom to understand how it works, or freedom to redistribute it, both because he lacked the technical background and, more important, lacked the desire to do any of these. The price for the driver was very modest, but he thought that the Linux community should have software support for any hardware on the market available without cost.   In practice, the operative word in FOSS is not “freedom” but “free” as in without charge.   I use Adobe Acroread on Linux, which is free software. That is, free as in free ware, no charge but no source, and with a click-to-accept license. I use Chrome which is built out of a large number of FOSS packages, but which has a license agreement no less restrictive than that included with any proprietary program, prohibiting reverse engineering, creating a derivative work, or copying Chrome. (The rationale, as I understand it, is that Chrome is inextricably related to the proprietary services which Google provides, such as collecting your browsing habits and selling it to advertisers.) Chrome is now the most popular browser, with over 50% of the market, beating both FOSS browser Firefox and proprietary Internet Explorer. Like everyone else, I have dozens of apps installed on my Android smartphone. Almost all are free. That is, there is no charge to install them. Some apps are full function, others crippled or adware to encourage me to purchase a fully functional version. Almost all are closed source, although no one seems concerned.   While there is a small, impassioned, and very vocal community which is concerned about Free Software, the great majority are mostly interested in Free.   Free as in free beer, not free as in freedom.   Notes: The word “freedom” appears 43 times in Stallman's 3-page article “Why Open Source misses the point of Free Software,” Communications of the ACM, June, 2009, vol. 52(6). pp. 31–33, https://www.gnu.org/philosophy/open-source-misses-the-point.html . This is called “semantic satiation”. See Wikipedia .     Michael Eager is principal consultant at Eager Consulting in Palo Alto, Calif. He has over four decades experience developing compilers, debuggers, and simulators for a wide range of processor architectures used in embedded systems. His current and former clients include major semiconductor companies and systems developers. Michael has been a member of the ISO C++ Standard Committee and ABI Committees for several processor architectures. He is chair of the Debugging Standards Committee for DWARF, a widely used debug data format. He is active in the open-source and Linux communities.
  • 热度 27
    2015-6-15 19:59
    2278 次阅读|
    0 个评论
    We usually hear the word “freedom” in relation to Free Software and Open Source Software (FOSS). Actually, most use of the word comes from the   Free Software Foundation (FSF) and its founder, Richard M. Stallman, repeating the term over and over , until the word is almost devoid of meaning . The four freedoms expressed by Stallman are the freedom to run a program as you wish, freedom to study or modify a program, freedom to redistribute a program, and freedom to distribute modified copies of a program.    Now, there might be reasons to debate whether Stallman's use of “freedom” has the same meaning as in “freedom of speech” or “freedom of religion” but that's a topic for a different article. When asked about “free software”, Stallman and others will throw out the quip “free as in speech, not free as in beer”. Apparently, someone, somewhere is giving away free beer. I want to find that person.   Anyone can download the source for the many thousands of FOSS programs, modify it, and redistribute a new version. But in practice, only a very small number of people ever download and build a FOSS program from source. I do on occasion, when a program isn't available in my distribution's repository. Of the few people who download the source of a program, a much smaller number will actually study it to see how it works and an even smaller number will make changes.    I use FOSS software. I use GNU tools, LibreOffice, Firefox, GIMP, and more. Like the great majority of Linux users, I use whichever version of a package is included in my Linux distribution. I'm very unlikely to ever modify any of these programs, even if I have the “freedom” to do so. The reasons are simple: Large programs like these are complex and take considerable time to comprehend how they work.   I recently had an online exchange with someone who was upset that his Linux distribution did not provide support for a peripheral he just bought. He said that he had to purchase a driver to get it to work and that this was the first time in many years that he had paid for any kind of software. He wasn't concerned about the freedom to modify the software, or the freedom to understand how it works, or freedom to redistribute it, both because he lacked the technical background and, more important, lacked the desire to do any of these. The price for the driver was very modest, but he thought that the Linux community should have software support for any hardware on the market available without cost.   In practice, the operative word in FOSS is not “freedom” but “free” as in without charge.   I use Adobe Acroread on Linux, which is free software. That is, free as in free ware, no charge but no source, and with a click-to-accept license. I use Chrome which is built out of a large number of FOSS packages, but which has a license agreement no less restrictive than that included with any proprietary program, prohibiting reverse engineering, creating a derivative work, or copying Chrome. (The rationale, as I understand it, is that Chrome is inextricably related to the proprietary services which Google provides, such as collecting your browsing habits and selling it to advertisers.) Chrome is now the most popular browser, with over 50% of the market, beating both FOSS browser Firefox and proprietary Internet Explorer. Like everyone else, I have dozens of apps installed on my Android smartphone. Almost all are free. That is, there is no charge to install them. Some apps are full function, others crippled or adware to encourage me to purchase a fully functional version. Almost all are closed source, although no one seems concerned.   While there is a small, impassioned, and very vocal community which is concerned about Free Software, the great majority are mostly interested in Free.   Free as in free beer, not free as in freedom.   Notes: The word “freedom” appears 43 times in Stallman's 3-page article “Why Open Source misses the point of Free Software,” Communications of the ACM, June, 2009, vol. 52(6). pp. 31–33, https://www.gnu.org/philosophy/open-source-misses-the-point.html . This is called “semantic satiation”. See Wikipedia .
  • 热度 22
    2014-11-12 16:20
    1738 次阅读|
    0 个评论
    In the 70s and 80s, when I was still in South Africa, it was fairly difficult for me to keep up with technology. I had set up my own company and bought myself an Intel MDS II development system. The cost of the system was more than the cost of my house. But the real problem was the cost of software for both the Intel system and later PC software. When you translated the cost in South African rands and compared it to the cost of living, it was impossible to fund the purchases. What might cost an American one month's salary would cost a South African a year's salary or more. This problem persists around the world. As a result, I must admit there were times that I was less than fully legal in my use of software.   When my book, Excel by Example , was published in 2004, within four or five months a copy appeared on the EDAboard.com website. I believe the forum was based in Eastern Europe. Its philosophy was that it was OK for anyone to upload any book until the author or publisher objected. I decided to engage the participants of the forum and proceeded to call them a bunch of pirates. There was some reaction. As you can see in the quote below, one respondent actually threatened me if I requested that the site take down my book:   I forget to say, if you don't give up EDAboard with your complaints, I going to put your book at rapidshare.de and others file share web sites (and spread it to any know EBOOK forum to me, only 10 multiply each 100000 users). That means 10 of thousands free of charge downloads. That I gonna do for all your publishers, and all theirs books that I have (round 200). Other users think same, as I think about that. You gonna suffer, because you exposed your name here, and you will be "crucified". EDAbord just have (or have had) your book, that someone took from somewhere at internet, and simply upload it. There is numerous places that post your book, there are not gonna remove it by your request like EDAboard easily do. Just ask, don't harm all users. Whats done is done. I managed to download 30Gb science book just from one place for just one night. Give me your email I'll send list to you. Round 7000 titles. Lot of Newnes books, few houndred. You can't do that from edaboard. Just 300 Mb max downloads for one month here. What do you what, I can put them in circling .Let Newnes harm EDAboard and me, and your publishers are going to pay . Here is a one example, and that can be done for all. Newnes books. h**p://www.edaboard.com/ftopic122544.html Try to stop that first my angry friend, free sharing. Edaboard gives you bigger benefit than harm (even in your case). Give up, your book is deleted. I don't want any harm to you, don't make harm to me and others!!!!!   Aside from that extreme, there appeared to be two schools of thought. The first seemed to be one of entitlement. I think this was based on the fact -- as I mentioned earlier -- that these books could never be purchased normally and so everybody simply downloaded copies anyway. At that time, there was another web site (rapidshare.de) based in Germany that seemed to have every book under the sun. These were somehow locked until you registered. It was pointed out to me that the knowledge was out there anyway. I passed all the information on to my publisher, but they seemed completely unable to do anything about it.   I got involved in a more philosophical argument with an engineer from Pakistan, in which he took a far more intriguing argument that all knowledge should be free. He made a good case for this point of view in that it was for the betterment of mankind. Sooner or later the copyright would lapse, and it would become public. Besides, he thought, there was nothing really revolutionary in what I had written. On top of those things, I had a job and I was financially supported during my acquisition of the knowledge, some of which happened on company time.   Of course, I countered with the argument of the expenses associated with my education, the hours spent researching the subject, the hours spent writing the book, and the hardware and materials purchased. All of this did not include the publisher's cost of printing the book.   In the end, the forum administrator put the kibosh on the whole discussion and withdrew my book. When I checked just prior to that, it seemed to me that there had been several thousand downloads, so I guess I should take it as a compliment that my book was that popular, even though I saw no financial reward from these downloads. In the years since then, EDAboard.com has cleaned up its act, and there is no pirated stuff there at all. You can still find illegal copies on the Web, though, without really trying too hard.   Nevertheless, my experience in South Africa -- followed by my discussions on EDAboard, have left me conflicted. Certainly, when you go to an event like the Embedded Systems Conference (ESC), the lecturers are not paid, and they present information for free. The same is true for trade magazines  -- the readers get the information for free. Yet books can be quite pricey, and -- when translated into foreign currency -- they can become unaffordable. And as for software …   What do you think?   Aubrey Kagan Engineering Manager Emphatec
相关资源