TL;DR: In this paper, the authors propose a flexible anykernel architecture which enables running kernel drivers in a variety of configurations, examples of which include microkernel-style servers and application libraries.
Abstract: The monolithic kernel architecture is significant in the real world due to the large amount of working and proven code. However, the architecture is not without problems: testing and development is difficult, virtualizing kernel services can be done only by duplicating the entire kernel, and security is weak due to a single domain where all code has direct access to everything. Alternate kernel architectures such as the microkernel and exokernel have been proposed to rectify these problems with monolithic kernels. However, alternate system structures do not address the common desire of using a monolithic kernel when the abovementioned problems do not apply.
We propose a flexible anykernel architecture which enables running kernel drivers in a variety of configurations, examples of which include microkernel-style servers and application libraries. A monolithic kernel is shown to be convertible into an anykernel with a reasonable amount of effort and without introducing performance-hindering indirection layers. The original monolithic mode of operation is preserved after the anykernel adjustments, and alternate modes of operation for drivers are available as a runtime choice. For non-monolithic modes of operation, the rump kernel is introduced as a lightweight container for drivers. A rump kernel runs on top of a hypervisor which offers high-level primitives such as thread scheduling and virtual memory. A production quality implementation for the NetBSD open source OS has been done. The anykernel architecture and rump kernels are evaluated both against four years of real-world experience from daily NetBSD development as well as against synthetic benchmarks.; Monoliittisen ytimen kayttojarjestelmat ovat merkittavia, koska ne sisaltavat suuren maaran olemassaolevia ja testattja ajureita. Monoliittinen arkkitehtuuri ei kuitenkaan ole ongelmaton: virtualisointi onnistuu vain virtualisoimalla ydin kokonaisuutena, ytimen testaus on vaikeaa ja tietoturva on heikkoa johtuen siita, etta ytimessa suoritettavalla ohjelmistolla on suora paasy kayttojarjestelman kaikkiin osiin. Vaihtoehtoisia ydinarkkitehtuureita, kuten mikroydin ja eksoydin, on ehdotettu korjaamaan monoliittisen arkkitehtuurin ongelmia. Vaihtoehtoisissa malleissa on kuitenkin ongelmana se, etteivat ne tue yleista halua kayttaa monoliittista ydinta, kun yllamainitut ongelmat eivat ole relevantteja.
Tassa tyossa luodaan joustava jokaydin. Se mahdollistaa ajureiden suorittamisen monissa konfiguraatioissa, esimerkkeja joista ovat mikroydin-tyyliset palvelimet ja sovelluskirjastot. Monoliittisen ytimen muuntamisen jokaytimeksi naytetaan onnistuvan saadyllisella vaivalla ilman suorituskykya heikentavia abstraktioita. Mahdollisuus suorittaa ajureita monoliittisessa ytimessa sailyy ja muut suorituskonfiguraatiot tarjotaan ajonaikaisena valintana. Muita kuin monoliittisista suorituskonfiguraatiota varten maaritellaan tynkaydin, joka on ajoymparisto ajureille. Tynkaytimen suoritus tapahtuu hyperkaihtimen paalla. Hyperkaihdin tarjoaa tynkaytimelle korkean…
TL;DR: The proposed architecture and implementation of kernel-level distributed IPC mechanism using device driver framework offering transparency and high performance offer 12.73% ~ 75.84% enhanced performance as compared to other distributed I PC models depending upon data length.
Abstract: The applications of distributed computing are ubiquitous ranging from client/server based Internet systems to the cluster or grid and cloud computing systems. The distributed applications require efficient and transparent distributed interprocess communication (IPC) mechanism as a service from the operating systems supporting those applications. This paper describes the designed architecture and implementation of kernel-level distributed IPC mechanism using device driver framework offering transparency and high performance. The implementation is made in Linux monolithic kernel and the performance is measured by conducting the experiments in real-life execution environments. The experimental data illustrate that the distributed IPC in Ethernet network takes 629Ýs for small messages (25Bytes) and 2929Ýs for relatively large messages (5KB). The experiments in wireless network achieve 34528Ýs and 42511Ýs for the small and large messages, respectively. On the average, the designed architecture achieves distributed IPC time as 0.899Ýs/Byte in Ethernet and 92.628Ýs/Byte in wireless network environments. The proposed architecture and implementation offer 12.73% ~ 75.84% enhanced performance as compared to other distributed IPC models depending upon data length.
TL;DR: This work discusses the advantages of a microkernel based approach to Operating System Design as given by the Genode operating system framework, and proposes two test security applications that are based on the OTS Threat Management application and a client-server based security application using the PolarSSL library.
Abstract: In a period when financial transactions have become substantially online, it is important from both se curity and functional perspective to have a secure and rob ust operating environment where these transactions can be performed. Although many operating systems can be configured to be reasonably secure, the problem behind the approach is in the design of the operati ng system. For example, most Linux distributions (including the acclaimed SELinux) execute a monolithic kernel approach, which essentially do not differentiate between the basic kernel operations a nd the operating system functionality built over th em. This work discusses the advantages of a microkernel based approach to Operating System Design as given by the Genode operating system framework, and proposes two test security applications ‐ a) An OTS Threat Management application which we build into the Genode framework; and b) A client-server based security application using the PolarSSL library, wh ich we build into the framework.
TL;DR: This paper aims to simulate the performance of multicore hybrid kernels through dyn amic kernel module customized attachment/ deattachment for multicore machines and proposes a new technique for loading dynamic kernel modules based on the user needs and machine capabilities.
Abstract: Traditional monolithic kernels dominated kernel structures for long time along with small sized kernels,few hardware companies and limited kernel functionalities. Monolithic kernel structure was not applicable when the number of hardware companies increased and kernel services consumed by different users for many purposes. One of the biggest disadvantages of the monolithic kernels is the inflexibility due to the need to include all the available modules in kernel compilation causing high time consuming. Lately, new kernel structure was introduced through multicore operating systems. Unfortunately, many multicore operating systems such as barrelfish and FOS are experimental. This paper aims to simulate the performance of multicore hybrid kernels through dynamic kernel module customized attachment/ deattachment for multicore machines. In addition, this paper proposes a new technique for loading dynamic kernel modules based on the user needs and machine capabilities.
TL;DR: In this article, the performance of multicore hybrid kernels through kernel module customized attachment/deattachment for multicore machines has been simulated and a new technique for loading dynamic kernel modules based on the user needs and machine capabilities is proposed.
Abstract: Traditional monolithic kernels dominated kernel structures for long time along with small sized kernels, few hardware companies and limited kernel functionalities. Monolithic kernel structure was not applicable when the number of hardware companies increa sed and kernel services consumed by different users for many purposes. One of the biggest disadvantages of the monolithic kernels is the inflexibility due to the need to include all the available modules in kernel compilation causing high time consuming. L ately, new kernel structure was introduced through multicore operating systems. Unfortunately, many multicore operating systems such as barrelfish and FOS are experimental. This paper aims to simulate the performance of multicore hybrid kernels through dyn amic kernel module customized attachment/ deattachment for multicore machines. In addition, this paper proposes a new technique for loading dynamic kernel modules based on the user needs and machine capabilities.