It is said that I have high reliability required by a large-scale server average to use for a nucleus system system of the company. HP Serviceguard) is evaluated, and, in communication in particular, a system of the finance / securities system, the name operates even Japan without remodeling the existing package in conformity with the TCP/IP as much communication, a nucleus system system platform of the finance / securities system user as of 高可用 cluster package MC/ServiceGuard( which I can apply by the generation of the simple shell script. I incorporate a movement monitoring function (TOC timer) of MC/ServiceGuard in a kernel and have reliability, the results by the commercial cluster constitution.
In Japan, famous for what is used for a server of i-mode of NTT DOCOMO [1].
With the CPU of company's PA-RISC and Itanium of Intel origin guarantee the operation. The CPU architecture is different from the PA-RISC system, but, in the Itanium system, offers the compatibility of the binary level by an emulator (Aries binary translator) for EPIC adoption. But the re-compilation of the source code is necessary to get an Itanium system original performance avoiding the influence on performance by the emulation. In addition, object size tends to become big by a change of the CPU architecture.
Input and output data-processing capacity and the high availability at the high level are required to treat large-capacity also a large quantity of data by the large-scale system. The disk domain that can secure a system is managed by a logic volume manager (LVM, VxVM) and copes with substitute processing at the time of the flexible management and obstacle outbreak of the data area. On the other hand, I am optimized by journal file system (VxFS) to be able to perform input and output and the update handling of large-capacity data efficiently. In addition, I become able to perform restoration of the file structure at the time of the obstacle outbreak immediately. VxVM and VxFS adopted a commercial package of VERITAS company which ever existed.
The early version supported Apollo/Domain system. Even HP 9000 series 200, 300, 400 systems based on a processor of the Motorola 68000 series and HP 9000 series 500 system based on the FOCUS architecture of the HP were used.
It supports processor and the IA-64 processor of the PA-RISC range now in 2009. The version is HP-UX 11i v3 (B.11.31). It is placed the functional enhancement version of 11.0 for Internet as 11i. In 11i v1 (B.11.11), I standardize the function that I strengthened when I suggest i-mode gateway system (CIRCUS) of NTT DOCOMO and change thread movement to N:M thread on the top.
In addition, Tranpedia is simply not responsible for any show is only by translating the writings of foreign licenses that are compatible with CC-BY-SA license information.
The released terminal was Neo 1973 first, and the next subproject released Neo FreeRunner which was a succession model by the development of the hardware terminal which worked in Openmoko Linux on June 25 for [2] [3], the next 2,008 years [4]. Unlike other most cell-phone platforms, it is designed so that an end user revises the operating system and software stack, and there are other Openmoko-adaptive cell-phones.
On April 2, 2009, Openmoko cancels the development of the cell-phone, and it was said that I seem to concentrate on the hardware of other kinds [5], but does it when I continue selling it with support of current Neo FreeRunner [6].
Table of contents
History
It is about November 7, 2006 that a project of Openmoko which First International Computer (FIC) founded was announced [7], and [8], ハラルト ヴェルテ and others will promote a project as a core member.
Etymology
The origin named "Openmoko" assumes it an acronym of Open Mobile Kommunikations [9]. "GTA" which is a code name of the cell-phone series becomes the abbreviated designation of GSM-TI-AGPS which is the main component of the cell-phone [10].
Software
It is the cell-phone operating system called Openmoko Linux or Om first that Openmoko Inc. developed. This is X.Org Server, and graphical user interface and the Linux kernel which I built are used. In addition, I make it and maintain a package software using framework and opkg package system built in OpenEmbedded.GTK+ tool kit and a Matchbox window manager are employed in the Om 2007 version. Supported Qt tool kit and Enlightenment 17 in Om 2008 of the release in August, 2008, but is stable, and reach it with both versions; was not improved. As a result, Openmoko began development of Om 2009 with the goal of providing the middleware-based stable environment of freesmartphone.org where oneself financed. However, the software development by Openmoko was called off without this version being completed in April, 2009.
Still this work was inherited by some community. Several groups developed a modified version of the original software, and I was transplanted by other systems which worked with a cell-phone. The cell-phone of Openmoko supports Android and Debian, Gentoo, QtMoko, SHR now.
Hardware of Openmoko Inc
Neo 1973 which is the first smartphone using the Openmoko software
Neo 1973 GTA01 (a version: Bv4) which was the first smartphone was sold only in openmoko.com from July, 2007 to February, 2008.
As for the second design-based hardware of GTA01, a faster CPU (Samsung 2440) and Wi-Fi function were equipped with in car navigation called Dash Express.
A code name was Neo FreeRunner of GTA02, and the third hardware was a succeeding machine of Neo 1973.
Neo 1973 (code name :GTA01) was released only by a developer. I correspond to 900MHz, 1,800MHz, the GSM frequency band (English version) of 1,900MHz. I succeeded in operating much Linux and a program of the UNIX to work on a desktop and a server platform including a game and a utility with this smartphone. In addition, Linux, NetBSD, FreeBSD, L4 kernel work by the cause of the development by the user.
I can emulate software including Openmoko software suite with high-level compatibility on this hardware platform by using QEMU.
Neo FreeRunner (code name :GTA02) was a new version of Neo 1973, and faster processor (400MHz clock), 802.11b/g Wi-Fi, two accelerometers, 3D graphic accelerator were equipped with. It was released for the open market on June 25, 2008 [4].
Dash Express which was the GPS apparatus which worked in Openmoko Linux that Openmoko Inc. developed on January 2, 2008 was announced [11]. As for this apparatus, a code name called HXD8 is acquired at first, and it is thought that or almost none of Openmoko user interface is used at all, and, using the patch to the kernel which Openmoko Inc merely developed, navigation and the user interface are provided by operating application by Dash Navigation.
Next-generation device
I cooperated with the Golden Delicious computer which was a German engineering firm newly, and, the burr that the reference materials that what happened to GTA 03 under the influence of recession were some, OpenMoko started production of GTA 04 afterwards.
GTA 04 is equipped with Cortex-A8 ARM (1GHz) processor of the 800Mhz equivalency. This open source dynamo is equipped with 800MHz C64x+ DSP (digital signal processor) core and 3D graphic accelerator again.
Extensibility microSDHC of RAM and 32GB of 512MB that put an NAND flash of specifications and 512MB of the processor together is equivalent to iPhone 4 and the hardware specifications of 4s.
WikiReader is a leader for offline to read an article of Wikipedia [14].
Golden Delicious GTA04 board
Golden Delicious GTA04 board is succession of GTA02 board which Neo FreeRunner has built-in. Golden Delicious GmbH which was the sales agency of the upgraded version of Neo Freerunner announced the GTA04 project in mobile office provider of Munich in September, 2010. It was release of Openmoko Beagle Hybrid which used the Beagle Board platform which was made from a prototype if this was for development of next-generation Openmoko phone [15]. In the next month, Golden Delicious published a long-term aim to cast this cell-phone into the market [16]. GTA04 fits 筺体 of Neo Freerunner and can be connected to an outside display and other apparatuses [17]. It was October 10, 2011 that there was the first batch of GTA04A3 EA (initial lot), and [18], the first batch of the GTA04A4 version were January 31, 2012 [19]. The cell-phone completed from a beginning called OpenPhoenux or GTA04 Complete is sold [20].
Use:
A CPU: ARM TI DM3730 at 800MHz
Memory: 512MB RAM
Interconnection: WiFi, WLAN, Bluetooth
WLAN: UMTS module with 3.75G (improving to 14.4 MBit/s)
In addition, Tranpedia is simply not responsible for any show is only by translating the writings of foreign licenses that are compatible with CC-BY-SA license information.
The main function of dd is copying of data of the appointed number of bytes or the number of the blocks, and this function is used to completely remove a domain appointed using backup and /dev/zero and /dev/random of the hard disk (the whole or a partition unit or boot sector).
In addition, in computer フォレンジックス performed for the crime investigation and the in-house investigation of the company, this program may be used for work to copy the whole hard disk in a hard disk for the analysis. This is because I cannot copy the data of the unused sector including the deletion trace by the File Manager such as cp command that is usually used in the operating system or Windows Explorer.
When dd is data destroyer (data corruption program), between some users, I am called with irony. This is because I copy the whole hard disk by appointing a command-line switch appointing input and output adversely and there is not it and brings a result removing.
Table of contents
The option that a command-line can appoint
The option which appoints input and output
if=[file]: In substitution for standard input, I read it from file file
of=[file]: In substitution for standard output, I begin to write it to file file
The option which appoints size to copy
count=[blocks]: Hold it for the block blocks unit of the ibs byte and copy an input file
The option which appoints a start position of the reading and writing
skip=[blocks]: Hold it for the block blocks unit of the ibs byte and skip the top of the input file
seek=[blocks]: I do not begin to write the block blocks unit share of the obs byte in the top of the output
The option which appoints data size of one reading and writing
bs=[bytes]: By bytes parttimer does reading and an opening sentence at a time
ibs=[bytes]: I read by bytes byte at a time. The default is 512
obs=[bytes]: I begin to write by bytes byte at a time. The default is 512
The option which appoints data conversion of the on the fried food
conv=[CONVERSION]
noerror: Even if a reading error occurs, it continues
sync: When input block size does not reach the number of bytes that is not appointed in ibs, I perform パディング
Use example
I copy the partition on the hard disk on a different disk
In addition, Tranpedia is simply not responsible for any show is only by translating the writings of foreign licenses that are compatible with CC-BY-SA license information.
Constitution of the OS of a monolithic kernel and the microkernel
Conception diagram of the microkernel
The microkernel (British: microkernel) is the name of the kernel part of design thought of the operating system and such OS. A way of thinking that I leave only a minimum in the kernel space among various functions that the OS takes and can simplify an overall design by moving the remainder to the user level, and, as a result, the performance can improve. Because the kernel body is limited to a small function, I am called "microkernel", but may not necessarily constitute the small OS.
With an appearance of the microkernel, I came to call the conventional OS "a monolithic kernel" (will called the kernel of the monolith).
Table of contents
Characteristic
At first I limit a function offered in kernel space to virtualization, process control, interprocess communicationof the memory space and, in the pure microkernel, map the interrupts with respect for all communication. On top of that, I implement an associate kernel function such as file system and the device driver as those application and operate it in user space. A plural number operates those function sets by the unit called the server in some cases.
The merit of having such a form,
Improvement (I can perform Extensions, debugging easily) of the OS development efficiency
I can update the OS except the kernel without stopping the whole system
It becomes easy to build the OS specialized in application to provide only a necessary function
などである. In addition, it is advantageous to use of large-scale resources because generally the abstract degree of resources is high in the microkernel and can implement multiprocessor correspondence and communication of the network transmission naturally.
On the other hand, several-fold loss may appear from several percent when the overhead of function aspect each other is big and implements the function that is equal to a monolithic kernel to use interprocess communication at every place. (co-location) which I move a necessary function to the kernel space to avoid in particular the cost of the context switch and may operate like a monolithic kernel in an appearance.
History
The kernel of the early OS was relatively small partly because the memory capacity of the computer was small. As the ability of the computer grew up, the number of devices which a kernel must control increased. Still generally it was small even if, for example, the kernel of the original UNIX included device driver and file system. When address space spread to 32 bits from 16 bits, a kernel design ceased to be restricted by the hardware architecture, and the growth of the kernel began.
It is Berkeley Software Distribution to have become the beginning of the enlargement of the UNIX kernel (BSD). In addition to the role of the previous OS, I add plural file system by the BSD and include complete TCP/IP protocol stack, and various imagination devices which can work, and do an existing program on a network are added. I succeeded in a compact and high-performance OS design by the UNIX standardizing a resource in the concept called the file, and letting you joined a small process to treat a file together with a pipe and communicate mutually. However, with a change of the later use environment, resources not to be able to necessarily treat as a file increase. For example, the network communication is carried out in the concept called the socket, but the socket is not a file. As a result, it may be said that a situation that I am similar in a postscript, and the cord named the fault lets the OS enlarge occurred. Such a growth continued for years, and the source code of the kernel was enlarged in millions of lines. As a result, the possibility that a bug was underlying increased, and difficulty of the maintenance increased.
The microkernel begins in the point of view called such a "re-design of the UNIX". It was said that the microkernel design facilitated the management of the cord theoretically by cutting and bringing down the service group that was a part of the kernel between the user sky. In addition, it was thought that security and stability rose by reducing the quantity of the cord which worked by kernel mode. For example, it can continue functioning for the whole system because the microkernel is not affected even if network service crashes by buffer overrun.
The direct problems of the thing consisting of the cords that there are many OS's,
A memory area (footprint of the kernel space) that kernel in itself occupies grows big
It is disadvantageous to transplant characteristics and maintenance
といったものである. Furthermore, the implementation that I did not assume at the time of UNIX development such as multiprocessor and the virtual memory with the increase of calculator resources appeared, and it was thought that the refinement of the OS concept including them was necessary.
Therefore it is microkernel that I take "large-scale resources" and "high-speed communication" into consideration, and reached the development idea of the UNIX called "the cooperation movement by the process to communicate mutually". I was as a central concept with a file in the UNIX, but I put the principal objective into a process and communication in the microkernel, and every resource such as interrupt and I/O is abstracted thoroughly.
The microkernel developed in such a background in the 1980s was accompanied by some trials to let an existing built-in kernel fit a new system. With enormous work, careful cord management was required to develop device driver, a protocol stack, file system and other low-level systems included in a conventional kernel newly at a time. The service implemented as a program of the user space works like a normal user's program. Therefore not only handling of those services became easy, but also can optimize the left kernel part without minding a side effect. Furthermore, I could build the totally new OS on the common core region if I said and contributed to an OS study.
In addition, the reuse of the calculator resources which became old then was considered. In other words, it is a way of thinking that I connect it on the network even if it is an old system and can utilize as resources if transplant characteristics use the compact OS highly.
Early Local Area Network comes up in the 1980s, and the microkernel is very promising; was said technically. If it employs mechanism to scatter the functions of the kernel in the user space, this is because it can scatter systems on the network. The early microkernel such as Mach was proved to have a problem with performance, but considered that an advantage was bigger than it and played a key role of the OS study until the end of 1990s. In implemented Mach, I really succeeded in reduction of the quantity of original expected cord. An abstract degree is high, and the good microkernel with possibility is proper for a trend and is considered to be the thing which will be promising in the future at this time. However, the performance of the computer improved markedly in comparison with network performance in the meantime and was not able to ignore the issue of performance of the microkernel in consideration of an advantage of the ease of the development either. Various trials that performance improved an existing system were accomplished, but overheads always became the problem, and it was necessary to return the server which became the program of the user space to the kernel for the performance enhancement. It was not talked about the large-scale trial such as Mach by 2000, but the Mach kernel upgraded version called XNU which OPENSTEP adopted is adopted in Darwin and OS X [1]. As of 2012, Mach-based GNU Hurd functions, and Arch Linux and the test copy of Debian which adopted it are moving.
The large-scale study of the microkernel burnt down, but was able to continue researching and developing it. Most of issue of performance in the early microkernel design came to be considered to have been caused by the desire of the designer to want to implement services as many as possible by the system of the single use not the thing by the basic requirements of the concept. I used the assembly code and I depended on the architecture of the processor and usually did that I supported it by software and adopted a more practical approach to a problem, and the microkernel that performance was improved dramatically came to appear. The name called nanokernel (nanokernel) was used to distinguish such a new generation microkernel from the implementation including conventional many system services. However, I am not called the nanokernel when the shifts from conventional microkernel to a nanokernel are almost completed.
As a method in conjunction with microkernel and the closeness with エクソカーネル (English version) [2]. エクソカーネル has many a hyper visor and common points [3], but I do not insist on the very small nature and am specialized in virtual machine support. Actually, the L4 microkernel is used for the implementation of the hyper visor well.
Interprocess communication
Interprocess communication (IPC) is some kind of mechanism to enable the communication between processes, and the message transmission is used well. The shared memory is a kind of the interprocess communication mechanism closely, too, but, speaking of IPC, points to the message in microkernel generally. By IPC, I can build the OS by some small programs called the server and can call a server from others using IPC. I can implement the support of neighboring hardware like that, too, and there are device driver, a protocol stack, the file system of the network, various things including the graphics to the server.
There are an expression and the ceremony of async in IPC in the same period. Async IPC is similar to network communication. The transmission side publishes a message and continues processing. It is notified of whether the reception side checks the arrival of the message regularly by some kind of detection mechanism. A kernel manages a buffer and the cue for the message in async IPC, and a kernel handles the buffer overflow. In addition, two times of messages are copied (from the transmission side from a kernel and a kernel the reception side). In synchronization IPC, the transmission side or the reception side is blocked until another becomes the IPC possibility. The buffering is unnecessary for the multiple copy, too, but needs adroitness for programming because it is necessary for both to meet explicitly. Many programmers like the reception in the async transmission and the same period.
The first generation microkernel supported both synchronization IPC and async IPC generally, but the performance was bad. Jochen Liedtke showed that there was the cause for design and implementation of the IPC mechanism. He made IPC cost a one-tenth or less in L4 microkernel [4]. In IPC, both the transmission and the reception are supported in system call and it is only a synchronization type and hands data as many as possible in registers. Furthermore, Liedtke introduced a concept called direct process switch and, in the case of IPC, performed a direct (incomplete) context switch from the transmission side to the reception side. Therefore, in L4, I can transfer the message in the register when I hand some or all of the message in register group without copying it really. Furthermore, I remove an overhead calling a scheduler. This is suitable for IPC when I call a server for RPC in particular. Another optimization includes a thing called lazy scheduling, and do not scan a scheduling cue in IPC; keep on having blocked a thread by a lady cue during IPC to need it. When a scheduler is called, I put such a thread into a suitable waiting queue.
Even if much communication is the ceremony of synchronization by the client server type system basically and used the primitive which is async, clients usually call servers and will wait for a reply. Because the implementation became effective, the one came to provide only synchronization IPC primitive in the microkernel after L4. Synchronization can implement async IPC on IPC primitive using a supporting thread. However, it becomes clear for asynchronous communication support with the commercial product which adopted L4 that notice of async mechanism is necessary and adds it. A system such as this signal is not a thing transferring data, and the buffering by the kernel is unnecessary.
Another is blocked until one side of the communication becomes able to reply in synchronization IPC. Therefore, a deadlock state occurs easily when I use IPC without any restriction. In addition, when prevent a client sending a demand, and a reply from meeting; easily such as the denial-of-service attack is in a condition. Therefore, you must provide means to prevent a block to cross for a long term in synchronization IPC. Much microkernel provides time-out for IPC summons and limit flying hours. The setting of the time-out time is difficult, and, as a result, the time-out of the client is unlimited and really often does the time-out of the server with zero. As a result, it did not allow you to set time-out time optionally, and it was in a tendency to prepare only for a flag to show whether you let you fail in IPC immediately when a partner could not reply. I will thereby select whether it is zero as time-out time, or it is unlimited. The recent version of L4 and Minix comes to look like it, too (I can set time-out time optionally in QNX and former L4).
Server
A server in the microkernel is something like daemon, but some servers are given the special privilege which can access a part of the physical memory space. A server of the device driver becomes able to thereby communicate with hardware directly.
A basic server in the general-purpose microkernel includes a file system server, a device driver server, a network server, a display server, the server of the user interface device. I almost cover the service that the monolithic kernel of the Unix system provides in these servers group. The required server starts at the time of a setup and starts service. The server works in environment like the user application, and the development is similar to application, too. The frequent build and reboot becoming necessary for kernel development are unnecessary.
Furthermore, even if a disorder occurs with a server, the whole system does not crash and should merely reboot the server. However, because a part of the system state may be lost because a disorder occurs with a server; as for the application side corresponding to the server obstacle it is necessary. 例えば、TCP/IP接続を担うサーバがあるとする。 このサーバを再起動すると、アプリケーションから見てコネクションが失われることになるが、これは通常のネットワークでも起き得る障害である。 しかしアプリケーションが障害発生を予期していないサービスの場合、アプリケーションのコードを修正する必要がある。 QNXではサーバの再起動への対応として QNX High Availability Toolkit が提供されている[5]。
Direct Memory Access (DMA) を頻繁に行うデバイスドライバは、カーネルのデータ構造を含めた物理メモリの任意の位置に書き込める必要がある。そのようなドライバは信頼されていなければならないが、必ずしもカーネル内に含まれている必要はない。実際、カーネルの一部だからといってデバイスドライバがより信頼できるというわけではない。
ユーザーモードのドライバは実際にはマイクロカーネルより古くから存在する。1967年の Michigan Terminal System (MTS) で初めて(ファイルシステムも含めた)ユーザー空間のドライバがサポートされた[7]。歴史的には、ドライバをカーネルに含めることはあまり問題とされなかった。周辺デバイスの数は少なく、特権が必須だったためであり、カーネルに含めることで性能問題を防いでいた。Unixもそのスタイルを踏襲し[8]、Linuxや Windows XP 以前のWindowsも同様だった。デバイスの種類が豊富になってくると、ドライバのコード量も増大するようになり、カーネル全体に占める割合も増えていった。
複数サーバの商用システムはいくつか存在しており、例えばリアルタイムオペレーティングシステムのQNXやIntegrity(英語版)がある。そういったシステムとモノリシックなシステムとの包括的性能比較は公表されたことがない。さらに言えばそれら商用システムでは性能が最重要課題ではないようで、割り込み応答時間の保証や頑健性のための単純さが強調されている。複数サーバの高性能OSを構築する試みとしてIBMの Sawmill Linux というプロジェクトがあった[15]。しかし、このプロジェクトは完了することなく中止された。
近年のマイクロカーネル研究開発は、カーネルAPIの形式仕様とそのAPIのセキュリティ属性の形式的証明に集中している。第一の例として、EROSでの隔離機構の数学的証明があり、EROS API を単純化したモデルに基づいている[19]。より最近の例として、L4のバージョンの一種である seL4 のプロテクションモデルについて自動検証された包括的な証明がなされている[20]。
カーネルコードの量、すなわちハードウェアの特権モードで実行されるコードの量が極めて小さいカーネル。カーネルが極めて小さいことを強調する際に「ピコカーネル」という呼称も使われた。「ナノカーネル」という用語を生み出したのは Jonathan S. Shapiro で、The KeyKOS NanoKernel Architecture (1992) という論文で初めて使っている。それはMachへの冷笑的反応であった。彼はMachについて、本質的に非構造的であり、モノリシックであるのにマイクロカーネルと主張しているだけで、置き換えようとしているものより性能が悪いと評した。その用語が他でも使われ、さらにピコカーネルという呼称が生まれた背景には、従来のマイクロカーネルが「カーネルが小さい」という点から大きく外れていったことを示唆している。その後、ナノカーネルとピコカーネルはマイクロカーネルと同じ意味で使われるようになった。
^Alexander, Michael T. (1971). "Organization and Features of the Michigan Terminal System". Proceedings of the November 16–18, 1971, fall joint computer conference40: 589–591. doi:10.1145/1478873.1478951.
^Lions, John (1977-08-01). Lions' Commentary on UNIX 6th Edition, with Source Code. Peer-To-Peer Communications. ISBN978-1-57398-013-5.
^ abLiedtke, Jochen (December 1995). "On µ-Kernel Construction". 15th ACM symposium on Operating Systems Principles. pp. 237–250. doi:10.1145/224056.224075
^Chen, Bradley; Bershad, Brian (December 1993). "The Impact of Operating System Structure on Memory System Performance". 14th ACM Symposium on Operating System Principles. Asheville, NC, USA. pp. 120–33. doi:10.1145/168619.168629
Dan Hildebrand (1992). "An Architectural Overview of QNX". Proceedings of the Workshop on Micro-kernels and Other Kernel Architectures: 113–126. ISBN1-880446-42-1. - the basic QNX reference.
Black, D.L., Golub, D.B., Julin, D.P., Rashid, R.F., Draves, R.P., Dean, R.W., Forin, A., Barrera, J., Tokuda, H., Malan, G., and Bohman, D. (March 1992). "Microkernel Operating System Architecture and Mach". J. of Information Processing14 (4). - the basic Mach reference.
In addition, Tranpedia is simply not responsible for any show is only by translating the writings of foreign licenses that are compatible with CC-BY-SA license information.