`
dxiao2
  • 浏览: 26516 次
  • 性别: Icon_minigender_1
  • 来自: 太原
社区版块
存档分类
最新评论

Linux,时钟和时间

阅读更多
Linux,时钟和时间

介绍:

本文档解释了如何从linux下设置计算机的时钟,如何设置您的时区和其它与linux如何保存时间相关的材料。
您的计算机有两个时钟,一个是始终运行的、由电池供电的( 硬件的、BIOS或CMOS )时钟,另一个是由运行在您的计算机上的操作系统维护的( 系统 )时钟。硬件时钟通常只在操作系统启动时用来设置系统时钟,然后直到重启或关闭系统,由系统时钟来记录时间。在Linux 系统中,您可以选择用UTC/GMT 时间或本地时间来记录硬件时钟。推荐的选项是用UTC 记录,因为夏令时可以自动记录。使用UTC 记录硬件时钟的唯一不足是,如果您使用双系统,其它操作系统,如DOS 要求硬件时钟用本地时间设置,那么在那个操作系统里时间将是错误的。

设置时区:

Linux 下的时区是通过建立从/etc/localtime[1] 到/usr/share/zoneinfo [2] 目录下与您所在时区相符的文件的符号链结实现的。例如,由于我在南澳大利亚,/etc/localtime就是到/usr/share/zoneinfo/Australia/South的符号链结。要建立这个链结,运行:
ln -sf ../usr/share/zoneinfo/your/zone /etc/localtime

替换your/zone 为形如Australia/NSW或Australia/Perth 的文件。看看/usr/share/zoneinfo目录都有什么时区。

[1] 这里假设/usr/share/zoneinfo 是到/etc/localtime 的链结的前提是Redhat Linux
[2] 在旧版本的系统里,您会发现使用/usr/lib/zoneinfo而不是/usr/share/zoneinfo。参考后面“一些应用程序中时间错误”。

设置UTC 或本地时间:

当Linux 启动时,一个启动脚本运行/sbin/hwclock 程序复制当前硬件时钟时间到系统时钟。hwclock 假定硬件时钟设置为本地时间,除非它使用了--utc 参数。在RedHat Linux下您不是编辑启动脚本,而是编辑/etc/sysconfig/clock 文件,相应的改变UTC 一行为UTC=true或UTC=false。

设置系统时钟:

在Linux 下设置系统时钟使用date命令。例如,设置当前时间和日期为July 31,11:16pm,运行date 07312316 ( 注意这里的时间是24小时制) ;如果您想设置年份为1998,
应该运行date 073123161998 ;要是也想设置秒,运行date 07312316.30或date 073123161998.30。要查看Linux 当前本地时间,使用date,不带参数。

设置硬件时钟:

要设置硬件时钟,我喜欢的方式是首先设置系统时钟,然后设置硬件时钟为当前系统时钟时间,使用命令/sbin/hwclock --systohc (或 /sbin/hwclock --systohc --utc ) ,如果您使用UTC 保存硬件时钟) 。要查看当前硬件时钟的设置,不带参数运行hwclock 。如果硬件时钟是UTC 保存,而您想看相应的本地时间,运行/sbin/hwclock --utc 。

一些应用程序中时间错误:

如果一些应用程序,如date显示了正确的时间,而另一些则错误,而您运行着RedHat Linux 5.0/5.1,您很可能遇到了一个由于将时区信息从/usr/lib/zoneinfo 移动到/usr/share/zoneinfo 引起的bug 。修复的方法是建立一个从/usr/lib/zoneinfo 到/usr/share/zoneinfo 的符号链结:
ln -s ../share/zoneinfo /usr/lib/zoneinfo 。

小结:

*/etc/sysconfig/clock 设置硬件时钟,无论是用UTC 保存还是用本地时间保存
*建立/etc/localtime到/usr/share/zoneinfo/...的符号链结来设置时区
*运行date MMDDhhmm 来设置当前系统日期/ 时间
*运行/sbin/hwclock --systohc [--utc]来设置硬件时钟

其它有趣的注解:

Linux kernel总是按照从UTC 时间1970年1 月1 日午夜开始的秒数来储存和计算时间,无论您的硬件时钟是否用UTC 保存。转换到本地时间的工作是运行时完成的。这样做的一个妙处是,如果某人从不同的时区使用您的计算机,他可以设置时区环境变量,所有的日期和时间可以按他的时区正确显示。

如果自UTC 1972年1 月1 日开始的秒数用保存为带正负号32位整数,如同在您的Linux/Intel 系统上一样,您的时钟将在2038年停止工作。Linux 没有Y2K 问题,但是确实存在2038年的问题。令人期望的是,那时我们都会使用64位系统来运行Linux 了。64位整数将使我们的时钟一直运行到大约2922.71亿年。

其它值得一看的程序:

* rdate ──从远程机器获得当前时间;可以用来设置系统时间
* xntpd ──类似rdata ,但是它是相当精确的,并且您需要有永久的网络连结xntpd 持续地运行,记录网络延时、时钟漂移等事件但是也有一个程序( ntpdate ) 包括在内,像rdate 一样设置当前时间。

相关信息:

* date(1)
* hwclock(8)
* /usr/doc/HOWTO/mini/Clock
分享到:
评论

相关推荐

    采用混合时钟模式提高Linux时钟精度的方法.pdf

    《采用混合时钟模式提高Linux时钟精度的方法》这篇论文主要探讨了如何在Linux操作系统中提升时钟精度以满足实时任务的需求,特别是在数控系统中的应用。时钟精度对于实时任务的响应时间和调度至关重要,而传统的...

    Linux时钟同步的方法

    Linux时钟同步的方法 Linux系统中的时钟同步是指将Linux系统的时钟与一个公共的时钟源同步,以确保系统时钟的准确性。时钟同步的方法可以分为两类,一类是使用NTP(Network Time Protocol)服务器来同步时钟,另一...

    linux内核的时钟中断详解

    实时时钟(RTC)是一种能够在系统断电后仍保持运行的时钟芯片,主要用于维护系统的时间和日期信息。在PC机中,RTC通常与CMOS RAM集成在一起,由主板上的电池供电。RTC芯片如MC146818提供了64个寄存器,其中时钟与...

    linux软硬时钟.doc

    在Linux系统中,时钟管理是一项至关重要的任务,...总的来说,Linux时钟管理是一个复杂且精细的领域,涉及到系统运行的多个层面,理解这些概念对于优化系统性能、编写时间敏感的应用程序以及确保系统稳定性至关重要。

    linux rtc时钟读写和ID获取

    在 Linux 系统中,重新设置操作系统时间和 RTC 时间可以通过以下步骤实现: 1. 首先调用命令设置操作系统时间:`date –s 2012.11.1-10:30:30` 2. 然后调用 `hwclock –systohc` 命令将操作系统时间设置到 RTC 时钟...

    linux时钟,可以缩放,也可放大到整个屏幕

    总之,Linux时钟的可缩放和全屏功能是通过多种方式实现的,包括调整终端字体、使用桌面小部件、编写自定义程序等。这些方法不仅可以满足日常使用,还特别适用于测试和录像场景,使时间显示更加清晰易见。无论你是...

    嵌入式Linux下时钟同步系统的分析与实现.pdf

    《嵌入式Linux下时钟同步系统的分析与实现》这篇文献主要探讨了在嵌入式Linux环境下,如何实现网络精确时钟同步协议(PTP,Precision Time Protocol)以达到高精度的时间同步。PTP是IEEE 1588标准的一部分,主要用于...

    linux系统时间和硬件时钟问题(date和hwclock)

    ### Linux系统时间和硬件时钟问题详解 #### 一、核心概念理解 在深入探讨Linux系统时间和硬件时钟的问题之前,我们需要先明确几个重要的概念。 **1. 系统时间与硬件时间** - **系统时间**: 当我们在Linux系统中...

    Linux 时钟 总结 HZ TICK 定时器

    以下将详细解析Linux时钟系统的基本概念、关键数据结构以及相关函数的实现原理。 #### 基本概念 **2.1 时钟(源)** 时钟源是所有电子设备的基础,对于计算机来说,时钟源通常是晶振或其他类型的振荡器,它们提供...

    Linux之时钟中断详解

    该中断的作用是为了定时更新系统日期和时间,使系统时间不断地得到跳转。另外该中断的中断处理函数除了更新系统时间外,还需要更新本地CPU统计数。指的是调用scheduler_tick递减进程的时间片,若进程的时间片递减到0...

    提高嵌入式Linux时钟精度的方法.pdf

    总结起来,提高嵌入式Linux时钟精度的方法主要包括增强内核抢占性、细化时钟粒度和优化调度算法。具体实施时,可以根据平台特性选择合适的技术,如MontaVista Linux的HRT机制,以适应不同处理器架构(如ARM、MIPS、...

    linux系统上使用qt修改开发板时间

    Qt是一个流行的跨平台应用程序开发框架,它提供了丰富的GUI控件,包括QTimeEdit和QDateEdit,用于处理时间和日期。本篇文章将详细介绍如何在Linux环境下利用Qt的这两个控件来修改开发板的时间。 首先,我们需要了解...

    修改linux系统和硬件时间

    #### 一、Linux时钟的概念与分类 在理解如何修改Linux系统的时钟之前,我们先来了解一下Linux时钟的基本概念及其分类。 **1.1 Linux时钟概述** Linux系统中存在两种类型的时钟:系统时钟(System Clock)和硬件时钟...

    嵌入式Linux应用开发完全手册笔记_系统时钟和定时器

    在嵌入式Linux应用开发中,系统时钟和定时器是至关重要的组成部分,它们为操作系统提供了时间基准,用于调度任务、处理中断以及实现各种实时性需求。本笔记将深入探讨这两个概念及其在嵌入式环境中的应用。 首先,...

    ARM9嵌入式Linux开发-系统时钟和定时器

    本篇文章将详细讲解ARM9处理器中的系统时钟和定时器,以及如何在嵌入式Linux环境下进行相关开发。 首先,我们要理解系统时钟和定时器的概念。系统时钟是计算机硬件中提供时间基准的组件,它为整个系统提供了一个...

    Linux-C时钟传送程序源代码

    这个“Linux-C时钟传送程序”就是利用C语言编写的一个示例,它包含了发送端和接收端,目的是实现不同主机间的时钟同步。下面将详细解释这个程序可能涉及到的关键知识点。 1. **套接字编程**:时钟传送涉及到网络...

    申延超_嵌入式Linux应用开发完全手册笔记_系统时钟和定时器

    在嵌入式Linux应用开发中,系统时钟和定时器是至关重要的组成部分,它们负责管理系统的执行流程,确保任务按时执行。本笔记基于申延超的《嵌入式Linux应用开发完全手册》,深入探讨了这一主题。 首先,系统时钟是...

    linux时钟中断详细分析

    在Linux操作系统中,时钟中断是系统运行过程中至关重要的一部分,它负责维护系统的时间基准和调度任务。...因此,深入掌握Linux时钟中断的工作原理,对于提升Linux系统理解和编程能力具有极大的价值。

    Linux内核时钟.doc

    在Linux操作系统中,时钟模块是内核的一部分,负责提供系统时间和频率 references,并控制系统的执行顺序和进度。 二、时钟模块的设计和实现 Linux内核时钟模块的设计和实现主要涉及到以下几个方面: 首先,时钟...

    Linux时钟精度的提高方法.docx

    系统时钟通常是由定时器硬件,如Intel 8254可编程定时器芯片,驱动的,产生周期性的时钟中断来更新系统时间和执行任务调度。而动态定时器则依赖于系统时钟中断,用于调度未来某一时刻的事件。 标准的Linux 2.6内核...

Global site tag (gtag.js) - Google Analytics