Jump to content
 







Main menu
   


Navigation  



Main page
Contents
Current events
Random article
About Wikipedia
Contact us
Donate
 




Contribute  



Help
Learn to edit
Community portal
Recent changes
Upload file
 








Search  

































Create account

Log in
 









Create account
 Log in
 




Pages for logged out editors learn more  



Contributions
Talk
 



















Contents

   



(Top)
 


1 Advantages  





2 Disadvantages  





3 Examples  



3.1  Early computers  





3.2  Embedded systems  







4 Development  





5 See also  





6 References  





7 Further reading  














Bare machine






العربية
Català
Eesti
Español
فارسی
Français


 

Edit links
 









Article
Talk
 

















Read
Edit
View history
 








Tools
   


Actions  



Read
Edit
View history
 




General  



What links here
Related changes
Upload file
Special pages
Permanent link
Page information
Cite this page
Get shortened URL
Download QR code
Wikidata item
 




Print/export  



Download as PDF
Printable version
 
















Appearance
   

 






From Wikipedia, the free encyclopedia
 

(Redirected from Bare metal)

In computer science, bare machine (orbare metal) refers to a computer executing instructions directly on logic hardware without an intervening operating system. Modern operating systems evolved through various stages, from elementary to the present day complex, highly sensitive systems incorporating many services. After the development of programmable computers (which did not require physical changes to run different programs) but prior to the development of operating systems, sequential instructions were executed on the computer hardware directly using machine language without any system software layer. This approach is termed the "bare machine" precursor to modern operating systems. Today it is mostly applicable to embedded systems and firmware with time-critical latency requirements, while conventional programs are run by a runtime system overlaid on an operating system.

Advantages

[edit]

For a given application, in most of the cases, a bare-metal implementation will run faster, using less memory and so being more power efficient. This is because operating systems, as any program, need some execution time and memory space to run, and these are no longer needed on bare-metal. For instance, any hardware feature that includes inputs and outputs are directly accessible on bare-metal, whereas the same feature using an OS must route the call to a subroutine, consuming running time and memory.[1]

Disadvantages

[edit]

For a given application, bare-metal programming requires more effort to work properly and is more complex because the services provided by the operating system and used by the application have to be re-implemented regarding the needs. These services can be:

Debugging a bare-metal program is difficult since:

Bare-metal programming is generally done using a close-to-hardware language, such as Rust, C++, C, assembly language, or even for small amounts of code or very new processors machine code directly.[2] All the previous issues inevitably mean that bare-metal programs are very rarely portable.

Examples

[edit]

Early computers

[edit]

Early computers, such as the PDP-11, allowed programmers to load a program, supplied in machine code, to RAM. The resulting operation of the program could be monitored by lights, and output derived from magnetic tape, print devices, or storage.

Embedded systems

[edit]

Bare machine programming remains common practice in embedded systems, where microcontrollersormicroprocessors often boot directly into monolithic, single-purpose software, without loading a separate operating system. Such embedded software can vary in structure, but the simplest form may consist of an infinite main loop, or "superloop", calling subroutines responsible for checking for inputs, performing actions, and writing outputs.

Development

[edit]

The approach of using bare machines paved the way for new ideas which accelerated the evolution of operating system development.

This approach highlighted a need for the following:

For example, programs were loaded into the PDP-11 by hand, using a series of toggle switches on the front panel of the device. Keyboards are far superior to these vintage input devices, as it would be much faster to type code or data than to use toggle switches to input this into the machine. Keyboards would later become standard across almost every computer, regardless of brand or price.

Computer monitors can also easily display the output of a program in a user friendly manner. For example, one would have to be intimately knowledgeable about a specific early computer and its display system, consisting of an array of lights, to even begin to make sense of the status of the computer's hardware. In contrast, anybody who can read should be able to understand a well-designed user interface on a modern system, without having to know anything about the hardware of the computer on which the program is being run.

See also

[edit]

References

[edit]
  1. ^ Gordon, Abel; Amit, Nadav; Har'El, Nadav; Ben-Yehuda, Muli; Landau, Alex; Schuster, Assaf; Tsafrir, Dan (2012). "ELI". ACM SIGPLAN Notices. 47 (4): 411–422. doi:10.1145/2248487.2151020.
  • ^ "Practical Guide to Bare Metal C++". Retrieved December 16, 2022.
  • Further reading

    [edit]
    Retrieved from "https://en.wikipedia.org/w/index.php?title=Bare_machine&oldid=1230469800"

    Categories: 
    Classes of computers
    History of software
    Operating systems
    Hidden categories: 
    Articles with short description
    Short description is different from Wikidata
    Articles lacking in-text citations from May 2021
    All articles lacking in-text citations
     



    This page was last edited on 22 June 2024, at 21:55 (UTC).

    Text is available under the Creative Commons Attribution-ShareAlike License 4.0; additional terms may apply. By using this site, you agree to the Terms of Use and Privacy Policy. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a non-profit organization.



    Privacy policy

    About Wikipedia

    Disclaimers

    Contact Wikipedia

    Code of Conduct

    Developers

    Statistics

    Cookie statement

    Mobile view



    Wikimedia Foundation
    Powered by MediaWiki