<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="sv">
	<id>https://wiki.linux.se/index.php?action=history&amp;feed=atom&amp;title=time_namespaces%287%29</id>
	<title>time namespaces(7) - Versionshistorik</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.linux.se/index.php?action=history&amp;feed=atom&amp;title=time_namespaces%287%29"/>
	<link rel="alternate" type="text/html" href="https://wiki.linux.se/index.php?title=time_namespaces(7)&amp;action=history"/>
	<updated>2026-05-27T05:01:11Z</updated>
	<subtitle>Versionshistorik för denna sida på wikin</subtitle>
	<generator>MediaWiki 1.38.4</generator>
	<entry>
		<id>https://wiki.linux.se/index.php?title=time_namespaces(7)&amp;diff=6243&amp;oldid=prev</id>
		<title>Admin: Skapade sidan med &#039;= time_namespaces(7) — Linux Manual Page =  == Namn == &#039;&#039;&#039;time_namespaces&#039;&#039;&#039; - översikt av Linux tidsnamnrymder  == Beskrivning == Tidsnamnrymder (time namespaces) virtualiserar värdena för två systemklockor:  * &#039;&#039;&#039;CLOCK_MONOTONIC&#039;&#039;&#039; (och motsvarande &#039;&#039;&#039;CLOCK_MONOTONIC_COARSE&#039;&#039;&#039; samt &#039;&#039;&#039;CLOCK_MONOTONIC_RAW&#039;&#039;&#039;), en icke-justerbar klocka som representerar monoton tid sedan—enligt POSIX—&quot;en obestämd punkt i det förflutna&quot;. * &#039;&#039;&#039;CLOCK_BOOTTIME&#039;&#039;&#039; (och motsvarande...&#039;</title>
		<link rel="alternate" type="text/html" href="https://wiki.linux.se/index.php?title=time_namespaces(7)&amp;diff=6243&amp;oldid=prev"/>
		<updated>2024-11-25T06:40:06Z</updated>

		<summary type="html">&lt;p&gt;Skapade sidan med &amp;#039;= time_namespaces(7) — Linux Manual Page =  == Namn == &amp;#039;&amp;#039;&amp;#039;time_namespaces&amp;#039;&amp;#039;&amp;#039; - översikt av Linux tidsnamnrymder  == Beskrivning == Tidsnamnrymder (time namespaces) virtualiserar värdena för två systemklockor:  * &amp;#039;&amp;#039;&amp;#039;CLOCK_MONOTONIC&amp;#039;&amp;#039;&amp;#039; (och motsvarande &amp;#039;&amp;#039;&amp;#039;CLOCK_MONOTONIC_COARSE&amp;#039;&amp;#039;&amp;#039; samt &amp;#039;&amp;#039;&amp;#039;CLOCK_MONOTONIC_RAW&amp;#039;&amp;#039;&amp;#039;), en icke-justerbar klocka som representerar monoton tid sedan—enligt POSIX—&amp;quot;en obestämd punkt i det förflutna&amp;quot;. * &amp;#039;&amp;#039;&amp;#039;CLOCK_BOOTTIME&amp;#039;&amp;#039;&amp;#039; (och motsvarande...&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Ny sida&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= time_namespaces(7) — Linux Manual Page =&lt;br /&gt;
&lt;br /&gt;
== Namn ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;time_namespaces&amp;#039;&amp;#039;&amp;#039; - översikt av Linux tidsnamnrymder&lt;br /&gt;
&lt;br /&gt;
== Beskrivning ==&lt;br /&gt;
Tidsnamnrymder (time namespaces) virtualiserar värdena för två systemklockor:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;CLOCK_MONOTONIC&amp;#039;&amp;#039;&amp;#039; (och motsvarande &amp;#039;&amp;#039;&amp;#039;CLOCK_MONOTONIC_COARSE&amp;#039;&amp;#039;&amp;#039; samt &amp;#039;&amp;#039;&amp;#039;CLOCK_MONOTONIC_RAW&amp;#039;&amp;#039;&amp;#039;), en icke-justerbar klocka som representerar monoton tid sedan—enligt POSIX—&amp;quot;en obestämd punkt i det förflutna&amp;quot;.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;CLOCK_BOOTTIME&amp;#039;&amp;#039;&amp;#039; (och motsvarande &amp;#039;&amp;#039;&amp;#039;CLOCK_BOOTTIME_ALARM&amp;#039;&amp;#039;&amp;#039;), en icke-justerbar klocka som är identisk med &amp;#039;&amp;#039;&amp;#039;CLOCK_MONOTONIC&amp;#039;&amp;#039;&amp;#039;, men som också inkluderar tid då systemet har varit suspenderat.&lt;br /&gt;
&lt;br /&gt;
Processer i en tidsnamnrymd delar värden för dessa klockor inom sin namnrymd. Detta påverkar olika API:er som mäter mot dessa klockor, inklusive: [[clock_gettime(2)]], [[clock_nanosleep(2)]], [[nanosleep(2)]], [[timer_settime(2)]], [[timerfd_settime(2)]] och filen &amp;#039;&amp;#039;&amp;#039;/proc/uptime&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Den enda metoden att skapa en tidsnamnrymd i nuläget är genom att anropa [[unshare(2)]] med flaggan &amp;#039;&amp;#039;&amp;#039;CLONE_NEWTIME&amp;#039;&amp;#039;&amp;#039;. Detta anrop skapar en ny tidsnamnrymd men placerar inte den anropande processen i den nya namnrymden. Istället placeras processen efterföljande barnprocesser i den nya namnrymden. Detta gör att klockförskjutningar (se nedan) kan ställas in innan den första processen placeras i namnrymden. Den symboliska länken &amp;#039;&amp;#039;&amp;#039;/proc/pid/ns/time_for_children&amp;#039;&amp;#039;&amp;#039; visar tidsnamnrymden där en process barnsprocesser kommer att skapas. (En process kan använda en filbeskrivare för att öppna denna symboliska länk i ett anrop till [[setns(2)]] för att flytta sig till namnrymden.)&lt;br /&gt;
&lt;br /&gt;
=== /proc/pid/timens_offsets ===&lt;br /&gt;
Varje tidsnamnrymd har förskjutningar som uttrycks relativt den initiala tidsnamnrymden. Dessa förskjutningar definierar värdena för de monotona och uppstartsklockorna i namnrymden. Dessa förskjutningar exponeras via filen &amp;#039;&amp;#039;&amp;#039;/proc/pid/timens_offsets&amp;#039;&amp;#039;&amp;#039;. Filens innehåll består av rader med tre fält separerade med mellanslag:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;klock-id&amp;gt; &amp;lt;förskjutning-sekunder&amp;gt; &amp;lt;förskjutning-nanosekunder&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;klock-id&amp;#039;&amp;#039;&amp;#039; är en sträng som identifierar vilken klocka förskjutningen gäller. Den kan vara antingen &amp;#039;&amp;#039;monotonic&amp;#039;&amp;#039; för &amp;#039;&amp;#039;&amp;#039;CLOCK_MONOTONIC&amp;#039;&amp;#039;&amp;#039; eller &amp;#039;&amp;#039;boottime&amp;#039;&amp;#039; för &amp;#039;&amp;#039;&amp;#039;CLOCK_BOOTTIME&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
* De två övriga fälten beskriver förskjutningarna (sekunder och nanosekunder) för klockan i namnrymden. Dessa förskjutningar uttrycks relativt klockvärdena i den initiala tidsnamnrymden.&lt;br /&gt;
&lt;br /&gt;
I den initiala tidsnamnrymden är filens innehåll följande:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat /proc/self/timens_offsets&lt;br /&gt;
monotonic           0         0&lt;br /&gt;
boottime            0         0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I en ny tidsnamnrymd som inte har några medlemmar kan klockförskjutningarna modifieras genom att skriva rader i samma format till filen &amp;#039;&amp;#039;&amp;#039;timens_offsets&amp;#039;&amp;#039;&amp;#039;. Filen kan skrivas till flera gånger, men när den första processen har skapats i eller gått in i namnrymden kommer alla ytterligare skrivningar till filen att misslyckas med felet &amp;#039;&amp;#039;&amp;#039;EACCES&amp;#039;&amp;#039;&amp;#039;. &lt;br /&gt;
&lt;br /&gt;
För att skriva till filen måste processen ha kapabiliteten &amp;#039;&amp;#039;&amp;#039;CAP_SYS_TIME&amp;#039;&amp;#039;&amp;#039; i användarnamnrymden som äger tidsnamnrymden.&lt;br /&gt;
&lt;br /&gt;
==== Felkoder vid skrivning till /proc/pid/timens_offsets ====&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;EINVAL&amp;#039;&amp;#039;&amp;#039;: Värdet för förskjutning-nanosekunder är större än 999,999,999.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;EINVAL&amp;#039;&amp;#039;&amp;#039;: Ett ogiltigt klock-id har angetts.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;EPERM&amp;#039;&amp;#039;&amp;#039;: Anropande process saknar kapabiliteten &amp;#039;&amp;#039;&amp;#039;CAP_SYS_TIME&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;ERANGE&amp;#039;&amp;#039;&amp;#039;: Förskjutning-sekunder är utanför tillåtet intervall:&lt;br /&gt;
  ** Förskjutning-sekunder får inte sättas till ett värde som gör att klockan i namnrymden blir negativ.&lt;br /&gt;
  ** Förskjutning-sekunder får inte sättas till ett värde som gör att klockans tid överstiger hälften av värdet av kärnkonstanten &amp;#039;&amp;#039;&amp;#039;KTIME_SEC_MAX&amp;#039;&amp;#039;&amp;#039; (ungefär 146 år).&lt;br /&gt;
&lt;br /&gt;
== Anmärkningar ==&lt;br /&gt;
* Tidsnamnrymder kräver att kärnan är konfigurerad med &amp;#039;&amp;#039;&amp;#039;CONFIG_TIME_NS&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
* Tidsnamnrymder virtualiserar inte klockan &amp;#039;&amp;#039;&amp;#039;CLOCK_REALTIME&amp;#039;&amp;#039;&amp;#039; för att undvika komplexitet och ökad belastning i kärnan.&lt;br /&gt;
* Symboliska namn rekommenderas över numeriska värden när man skriver till &amp;#039;&amp;#039;&amp;#039;timens_offsets&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
== Exempel ==&lt;br /&gt;
Följande exempel visar hur tidsnamnrymder fungerar:&lt;br /&gt;
&lt;br /&gt;
1. Visa inode-numret för den aktuella tidsnamnrymden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ readlink /proc/$$/ns/time&lt;br /&gt;
time:[4026531834]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Visa systemets uptime och klockvärden med ett exempelskript:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ uptime --pretty&lt;br /&gt;
up 21 hours, 17 minutes&lt;br /&gt;
&lt;br /&gt;
$ ./clock_times&lt;br /&gt;
CLOCK_REALTIME : 1585989401.971 (18356 days +  8h 38m 51s)&lt;br /&gt;
CLOCK_TAI      : 1585989438.972 (18356 days +  8h 39m 28s)&lt;br /&gt;
CLOCK_MONOTONIC:      56338.247 (15h 41m  8s)&lt;br /&gt;
CLOCK_BOOTTIME :      76633.544 (21h 19m 23s)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Skapa en ny tidsnamnrymd med &amp;#039;&amp;#039;&amp;#039;unshare&amp;#039;&amp;#039;&amp;#039; och ändra förskjutningarna:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo unshare -T -- bash --norc&lt;br /&gt;
ns2# echo &amp;quot;monotonic $((2*24*60*60)) 0&amp;quot; &amp;gt; /proc/$$/timens_offsets&lt;br /&gt;
ns2# echo &amp;quot;boottime $((7*24*60*60)) 0&amp;quot; &amp;gt; /proc/$$/timens_offsets&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Visa innehållet i &amp;#039;&amp;#039;&amp;#039;timens_offsets&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ns2# cat /proc/$$/timens_offsets&lt;br /&gt;
monotonic      172800         0&lt;br /&gt;
boottime       604800         0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5. Kör uptime och klockvärden i den nya namnrymden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ns2# uptime --pretty&lt;br /&gt;
up 1 week, 21 hours, 18 minutes&lt;br /&gt;
&lt;br /&gt;
ns2# ./clock_times&lt;br /&gt;
CLOCK_REALTIME : 1585989457.056 (18356 days +  8h 37m 37s)&lt;br /&gt;
CLOCK_TAI      : 1585989494.057 (18356 days +  8h 38m 14s)&lt;br /&gt;
CLOCK_MONOTONIC:     229193.332 (2 days + 15h 39m 53s)&lt;br /&gt;
CLOCK_BOOTTIME :     681488.629 (7 days + 21h 18m  8s)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Se även ==&lt;br /&gt;
* [[nsenter(1)]]&lt;br /&gt;
* [[unshare(1)]]&lt;br /&gt;
* [[clock_settime(2)]]&lt;br /&gt;
* [[setns(2)]]&lt;br /&gt;
* [[namespaces(7)]]&lt;br /&gt;
* [[time(7)]]&lt;br /&gt;
&lt;br /&gt;
== Colophon ==&lt;br /&gt;
Den här sidan är en del av Linux manualprojekt. För mer information, se [https://www.kernel.org/doc/man-pages/].&lt;br /&gt;
&lt;br /&gt;
= Sidslut =&lt;br /&gt;
&lt;br /&gt;
Orginalhemsidan på Engelska :https://www.man7.org/linux/man-pages/man7/time_namespaces.7.html&lt;br /&gt;
&amp;lt;HR&amp;gt;&lt;br /&gt;
Det här är en maskinöversättning av Linux man sidor till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på &lt;br /&gt;
https://www.linux.se/kontaka-linux-se/&lt;br /&gt;
&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;Tack till [https://datorhjalp.se Datorhjälp] som har  sponsrat [https://www.linux.se Linux.se] med webbhotell.&lt;br /&gt;
&lt;br /&gt;
[[Kategori:Övrig Informationsmanual]]&lt;br /&gt;
[[Kategori:Linuxmanual]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
</feed>