Moritz Systems is a proud contributor and member of the BSD community, with a primary focus on the NetBSD technology. NetBSD is a free, fast, secure and highly portable Operating System, available for a wide range of platforms, from large-scale servers and powerful desktop computers to IOT and Edge Computing devices. We believe that all users of Open Source should have the freedom of choice between alternative solutions and that is why we provide BSD licensed software services to our customers.
Moritz Systems are experts in embedded solutions that host innovative solutions in Fintech, Insurtech, Smart Energy, Smart Buildings. Industry 4.0 (IIoT), HealthTech, Medtech, Digital Health, Martech, Sustainability and Waste Management.
A pipe is a first-in-first-out interprocess communication channel. The pipe version as it is known today was invented by an American Computer Scientist Douglas McIlroy and incorporated into Version 3 AT&T UNIX in 1973 by Ken Thompson.
It was inspired by the observation that frequently the output of one application is used as an input for another. This concept can be reused to connect a chain of processes. This is frequently observed in UNIX shell constructs that utilize the | operator.
System initialization is one of the niche areas that few people look into. The exact details vary considerably between different platforms, firmwares, CPU architectures and operating systems, making it difficult to learn it all. Usually, if something is not working correctly during the early stages of system startup or if the OS does not boot, it rarely has anything to do with the code responsible for booting. Most of the time, it is due to other factors, such as the boot media or BIOS configuration.
In the previous part of this article, I have described the basic methods of getting and setting the baseline registers of 32-bit and 64-bit x86 CPUs. I have covered General Purpose Registers, baseline Floating-Point Registers and Debug Registers along with their ptrace(2) interface.
In the second part, I would like to discuss the XSAVE family of instructions. I will describe the different variants of this instruction as well as explain the differences between them and their limitations.
In this article, I would like to shortly describe the methods used to dump and restore the different kinds of registers on 32-bit and 64-bit x86 CPUs. The first part will focus on General Purpose Registers, Debug Registers and Floating-Point Registers up to the XMM registers provided by the SSE extension. I will explain how their values can be obtained via the ptrace(2) interface.
We are looking for a candidate to fill the position of a BSD/Linux kernel developer. The programmer will be responsible for device drivers and bootloaders for embedded x86_64 and aarch64-based systems.