Heim php教程 PHP开发 Device Mapper-Mechanismus im Linux-Systemkernel (1) (5)

Device Mapper-Mechanismus im Linux-Systemkernel (1) (5)

Dec 23, 2016 pm 02:11 PM

Der User-Space-Teil des Device Mappers ist für Entwickler optional, um ihre eigenen Speicherverwaltungstools zu implementieren. Tatsächlich verwenden viele unserer gängigen logischen Volume-Manager, wie LVM2, dmraid und andere Tools, den Device Mapper Die Benutzerraumbibliothek richtet einen unabhängigen Satz von Verwaltungstools gemäß ihren eigenen Verwaltungsanforderungen ein, verwendet jedoch nicht das von ihr bereitgestellte dmsetup-Tool. Selbst das logische Volume-Managementsystem auf Unternehmensebene von IBM ist nicht in der Implementierung enthalten Die User-Space-Bibliothek des Device Mappers implementiert eine Reihe eigener Funktionsbibliotheken, die vollständig auf der ioctl-Definition im Kernel basieren.

Zieltreiber

Device Mapper bietet eine einheitliche Architektur, die es Benutzern ermöglicht, über das Zieltreiber-Plug-in ihre eigenen E/A-Verarbeitungsregeln entsprechend den tatsächlichen Anforderungen festzulegen, sodass der Zieltreiber das Gerät vollständig verkörpert Mapper-Flexibilität. Oben haben wir den Zieltreiber mehr als einmal erwähnt und die Funktionen des Zieltreibers beschrieben. Hier stellen wir die Implementierung des Zieltreibers im Detail mit dem einfachsten linearen Zieltreiber vor.

Der Zieltreiber definiert hauptsächlich die Verarbeitungsregeln für E/A-Anfragen. Im Geräte-Mapper wurde eine einheitliche Schnittstelle für den Betrieb des Zieltreibers definiert. In der Implementierung wird die Schnittstelle durch die von uns erwähnte Struktur „target_type“ definiert oben, das die folgenden Zieltreibermethoden definiert:

Methode zum Löschen des Zielgeräts; Anforderungsmethode;

4 Methode zum Beenden der E/A-Anfrage;

6 ;

7 Erhalten Sie Zugriff auf den aktuellen Zielgerätestatus;

Benutzer können die oben genannten Methoden selektiv implementieren Aber im Allgemeinen müssen mindestens die ersten drei Methoden implementiert werden, sonst funktioniert es unter dem Geräte-Mapper nicht richtig. Der lineare Zieltreiber implementiert nur die ersten drei Methoden und Methode 7. Er vervollständigt die lineare Zuordnung vom logischen Adressraum zum physischen Adressraum und kann ein logisches Gerät bilden, indem mehrere physische Geräte linear verbunden werden, wie in Abbildung 4 beschrieben In werden die drei kontinuierlichen Räume /dev/sda, /dev/sdb und /dev/sdc über den linearen Zieltreiber zu einem großen logischen Blockgerät geformt. Die Implementierung des linearen Ziels ist sehr einfach. Seine Erstellungs- und Löschmethoden vervollständigen hauptsächlich die Anwendung und Freigabe der vom linearen Zielgerät verwendeten Struktur. Die Implementierung der IO-Zuordnungsverarbeitungsmethode ist noch einfacher, wie im folgenden Code gezeigt:

Die Zuordnungsmethode besteht darin, die an das zugeordnete logische Gerät gesendete Bio-Anfrage linear entsprechend der Zuordnungsbeziehung zum entsprechenden Standort des physischen Geräts umzuleiten, das durch das lineare Zielgerät As dargestellt wird Wie im Code gezeigt, besteht die spezifische Implementierungsmethode darin, den bi_bdev von bio zu ändern. Der Gerätezeiger ist der Gerätezeiger, der dem Zielgerät entspricht, und die Sektornummer bi_sector, in der die E/A-Anforderung beginnt, wird entsprechend der Startadresse des Zielgeräts geändert und den Offsetwert der Bio-Anfrage auf dem zugeordneten Gerätegerät, wodurch die Umleitung der IO-Anfrage abgeschlossen wird. Die Implementierung anderer Zieltreiber ist ebenfalls ähnlich. Sie können sie gemäß den vom Geräte-Mapper definierten Schnittstellenspezifikationen implementieren und die von Ihnen benötigten Funktionen kombinieren. Ich werde sie hier nicht einzeln vorstellen im Kernel.

(T114)

Das Obige ist der Inhalt des Device Mapper-Mechanismus (1) (5) im Linux-Systemkern. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn) !

static int linear_map(struct dm_target *ti, struct bio *bio,

        union map_info *map_context)

{

 struct linear_c *lc = (struct linear_c *) ti->private;

 bio->bi_bdev = lc->dev->bdev;

 bio->bi_sector = lc->start + (bio->bi_sector - ti->begin);

 return 1;

}
Nach dem Login kopieren

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Verwenden des Task-Managers unter Linux Verwenden des Task-Managers unter Linux Aug 15, 2024 am 07:30 AM

Es gibt viele Fragen, die Linux-Anfänger oft stellen: „Verfügt Linux über einen Task-Manager?“, „Wie öffnet man den Task-Manager unter Linux?“ Windows-Benutzer wissen, dass der Task-Manager sehr nützlich ist. Sie können den Task-Manager öffnen, indem Sie in Windows Strg+Alt+Entf drücken. Dieser Task-Manager zeigt Ihnen alle laufenden Prozesse und den von ihnen belegten Speicher, und Sie können einen Prozess aus dem Task-Manager-Programm auswählen und beenden. Wenn Sie Linux zum ersten Mal verwenden, werden Sie auch nach etwas suchen, das einem Task-Manager unter Linux entspricht. Ein Linux-Experte verwendet am liebsten die Befehlszeile, um Prozesse, Speicherverbrauch usw. zu finden, aber Sie müssen das nicht tun

Lösen Sie das Problem der verstümmelten Anzeige von Grafiken und Diagrammen auf dem chinesischen Überwachungsserver Zabbix Lösen Sie das Problem der verstümmelten Anzeige von Grafiken und Diagrammen auf dem chinesischen Überwachungsserver Zabbix Jul 31, 2024 pm 02:10 PM

Die Unterstützung für Chinesisch durch Zabbix ist nicht sehr gut, aber manchmal wählen wir Chinesisch für Verwaltungszwecke. In der von Zabbix überwachten Weboberfläche werden unter dem Grafiksymbol kleine Quadrate angezeigt. Dies ist falsch und erfordert das Herunterladen von Schriftarten. Beispiel: „Microsoft Yahei“, „Microsoft Yahei.ttf“ heißt „msyh.ttf“, laden Sie die heruntergeladene Schriftart nach /zabbix/fonts/fonts hoch und ändern Sie die beiden Zeichen in /zabbix/include/defines.inc.php Datei unter define('ZBX_GRAPH_FONT_NAME','DejaVuSans');define('ZBX_FONT_NAME'

7 Möglichkeiten, wie Sie das Registrierungsdatum von Linux-Benutzern überprüfen können 7 Möglichkeiten, wie Sie das Registrierungsdatum von Linux-Benutzern überprüfen können Aug 24, 2024 am 07:31 AM

Wussten Sie, wie man das Erstellungsdatum eines Kontos auf einem Linux-System überprüft? Wenn Sie es wissen, was können Sie tun? War es Ihnen gelungen? Wenn ja, wie geht das? Grundsätzlich verfolgen Linux-Systeme diese Informationen nicht. Welche alternativen Möglichkeiten gibt es also, an diese Informationen zu gelangen? Sie fragen sich vielleicht, warum ich das überprüfe? Ja, es gibt Situationen, in denen Sie diese Informationen möglicherweise noch einmal überprüfen müssen, und sie werden Ihnen zu diesem Zeitpunkt hilfreich sein. Zur Überprüfung können Sie die folgenden 7 Methoden verwenden. Verwenden Sie /var/log/secure. Verwenden Sie das aureport-Tool. Verwenden Sie .bash_logout. Verwenden Sie den Befehl chage. Verwenden Sie den Befehl useradd. Verwenden Sie den Befehl passwd. Verwenden Sie den letzten Befehl. Methode 1: Verwenden Sie /var/l

Erfahren Sie in 5 Minuten, wie Sie Schriftarten zu Fedora hinzufügen Erfahren Sie in 5 Minuten, wie Sie Schriftarten zu Fedora hinzufügen Jul 23, 2024 am 09:45 AM

Systemweite Installation Wenn Sie eine Schriftart systemweit installieren, steht sie allen Benutzern zur Verfügung. Der beste Weg hierfür ist die Verwendung von RPM-Paketen aus den offiziellen Software-Repositories. Bevor Sie beginnen, öffnen Sie das „Software“-Tool in Fedora Workstation oder andere Tools, die das offizielle Repository verwenden. Wählen Sie in der Auswahlleiste die Kategorie „Add-ons“ aus. Wählen Sie dann innerhalb der Kategorie „Schriftarten“ aus. Sie sehen die verfügbaren Schriftarten ähnlich wie im Screenshot unten: Wenn Sie eine Schriftart auswählen, werden einige Details angezeigt. Abhängig von mehreren Szenarios können Sie möglicherweise eine Vorschau einiger Beispieltexte für die Schriftart anzeigen. Klicken Sie auf die Schaltfläche „Installieren“, um es Ihrem System hinzuzufügen. Abhängig von der Systemgeschwindigkeit und der Netzwerkbandbreite kann dieser Vorgang einige Zeit dauern

Was soll ich tun, wenn die fehlenden WPS-Schriftarten unter dem Linux-System dazu führen, dass die Datei verstümmelt wird? Was soll ich tun, wenn die fehlenden WPS-Schriftarten unter dem Linux-System dazu führen, dass die Datei verstümmelt wird? Jul 31, 2024 am 12:41 AM

1. Suchen Sie die Schriftarten Wingdings, Wingdings2, Wingdings3, Webdings und MTExtra im Internet. 2. Öffnen Sie den Hauptordner, drücken Sie Strg+h (versteckte Dateien anzeigen) und prüfen Sie, ob ein .fonts-Ordner vorhanden ist 1. Kopieren Sie die heruntergeladenen Schriftarten wie Wingdings, Wingdings2, Wingdings3, Webdings und MTExtra in den .fonts-Ordner im Hauptordner. Starten Sie dann wps, um zu sehen, ob immer noch ein Erinnerungsdialogfeld „System fehlt“ angezeigt wird Box. Wenn nicht, nur Erfolg!

Centos 7 Installation und Konfiguration NTP-Netzwerk-Zeitsynchronisationsserver Centos 7 Installation und Konfiguration NTP-Netzwerk-Zeitsynchronisationsserver Aug 05, 2024 pm 10:35 PM

Experimentelle Umgebung: Betriebssystem: LinuxCentos7.4x86_641. Sehen Sie sich die aktuelle Serverzeitzone an, listen Sie die Zeitzone auf und legen Sie die Zeitzone fest (wenn es bereits die richtige Zeitzone ist, überspringen Sie sie bitte): #timedatectl#timedatectllist-timezones#timedatectlset-timezoneAsia /Shanghai2. Verständnis der Zeitzonenkonzepte: GMT, UTC, CST, DSTUTC: Die gesamte Erde ist aus Gründen der Vereinheitlichung in vierundzwanzig Zeitzonen unterteilt. Es wird eine einheitliche Zeit verwendet, die als Universal Coordinated Time (UTC) bezeichnet wird

So verbinden Sie zwei Ubuntu-Hosts mit einem Netzwerkkabel mit dem Internet So verbinden Sie zwei Ubuntu-Hosts mit einem Netzwerkkabel mit dem Internet Aug 07, 2024 pm 01:39 PM

So verwenden Sie ein Netzwerkkabel, um zwei Ubuntu-Hosts mit dem Internet zu verbinden 1. Bereiten Sie Host A: Ubuntu16.04 und Host B: Ubuntu16.042 vor. Host A verfügt über zwei Netzwerkkarten, eine ist mit dem externen Netzwerk verbunden und die andere ist angeschlossen Gastgeber B. Verwenden Sie den Befehl iwconfig, um alle Netzwerkkarten auf dem Host anzuzeigen. Wie oben gezeigt, sind die Netzwerkkarten auf dem A-Host (Laptop) des Autors: wlp2s0: Dies ist eine drahtlose Netzwerkkarte. enp1s0: kabelgebundene Netzwerkkarte, die mit Host B verbundene Netzwerkkarte. Der Rest hat nichts mit uns zu tun, kein Grund zur Sorge. 3. Konfigurieren Sie die statische IP von A. Bearbeiten Sie die Datei #vim/etc/network/interfaces, um eine statische IP-Adresse für die Schnittstelle enp1s0 zu konfigurieren, wie unten gezeigt (wobei #==========

werfen! Ausführen von DOS auf Raspberry Pi werfen! Ausführen von DOS auf Raspberry Pi Jul 19, 2024 pm 05:23 PM

Aufgrund unterschiedlicher CPU-Architekturen ist die Ausführung von DOS auf dem Raspberry Pi zwar nicht einfach, stellt aber auch keine großen Probleme dar. FreeDOS dürfte jedem bekannt sein. Es ist ein vollständiges, kostenloses und gut kompatibles Betriebssystem für DOS. Es kann einige ältere DOS-Spiele oder kommerzielle Software ausführen und auch eingebettete Anwendungen entwickeln. Solange das Programm unter MS-DOS ausgeführt werden kann, kann es auch unter FreeDOS ausgeführt werden. Als Initiator und Projektkoordinator von FreeDOS werden mir viele Anwender als Insider Fragen stellen. Die Frage, die mir am häufigsten gestellt wird, ist: „Kann FreeDOS auf einem Raspberry Pi laufen?“ Diese Frage ist nicht überraschend. Schließlich läuft Linux auf dem Raspberry Pi sehr gut

See all articles