# An Evaluation of the Security of Bare Machine Computing (BMC) Systems against Cybersecurity Attacks
## 2 Conventional Systems  
Conventional systems evolved from mainframes, resulting in desktops, laptops, smartphones, and IoT devices. Most of these systems use some form of an OS or kernel. During the mainframe era, there was no Internet and no online users. The OS was used as a mediator for many users and application programs to provide their services. The OS protected itself from users and protected users from each other. As computers evolved over the years, OSs continued to play a significant role in building computer and information systems. Later, when the Internet became the primary vehicle for communication between users, communication merged with computing, thus extending the OS's role to provide communication. Now, most computing systems have computing and communication on a single device. For example, smartphones perform computing, communication, and control as part of the same system, and they are seamlessly homogenized to work on the Internet. Smartphones resulted in user-centric computing serving client applications.  
Figure 2 illustrates how computer applications use system calls or APIs provided by the OS. Application programmers are isolated from hardware and focus on writing applications in each programming language. There is heterogeneity at every level, including communication protocols, system libraries, device drivers, third-party software, network interface cards, standards, OSs, and computer architectures. They follow an evolutionary path and continue changing and enhancing products rapidly.  
During this evolution, open systems, standards, free software, free access, remote control of devices, and globalization proliferated worldwide, resulting in billions of users [1] and the IoT [33]. A given application's security depends on the security of the underlying OS and may be compromised due to OS vulnerabilities [2]. As OS versions and releases often change, its platform-related entities change accordingly. These fast changes in hardware and software may also introduce more security vulnerabilities.  
Figure 3 illustrates a typical application development process and its development and execution environments. A given application only controls the functional flow and plays no role in maintaining an execution environment. When an application is created, it is linked with the system or external libraries. When an application is running, its execution is dependent on a variety of OS components. In addition, there may be other applications running in a multi-programming model. Today's Internet applications running on a device may be affected by cookies, network programs, sockets, shared memory, and background downloads. As the current OS provides computing, communication, and control in each box, a running application may be exposed to the side effects of the host OS and other applications running at the same time.  
Figure 3: Conventional application development process.  
Figure 2: OS-based system.  
Conventional system properties are typically classified into two categories: system guidelines and system characteristics.