Hwclock_k8s 源码分析

Hwclock_k8s 源码分析hwclock解析hwclock用于操纵rtc中的时间1/判断命名所属包linux@ubuntu:~/project/tmp/300/drv/test_trc$dpkg-Shwclockutil-linux:/etc/init.d/hwclock-saveutil-linux:/usr/share/man/man8/hwclock.8.gzutil-linux:/etc/init/

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

hwclock解析

hwclock用于操纵rtc中的时间


1/判断命名所属包

linux@ubuntu:~/project/tmp/300/drv/test_trc$ dpkg -S hwclock
util-linux: /etc/init.d/hwclock-save
util-linux: /usr/share/man/man8/hwclock.8.gz
util-linux: /etc/init/hwclock.conf
util-linux: /usr/share/doc/util-linux/README.Debian.hwclock
util-linux: /etc/init.d/hwclock
util-linux: /sbin/hwclock
util-linux: /etc/init/hwclock-save.conf

Jetbrains全家桶1年46,售后保障稳定


2/下载源码包

mkdir src;cd src
sudo apt-get source util-linux
//会下载四个文件
linux@ubuntu:~/project/tmp/src$ ll
total 6148
drwxrwxr-x  3 linux linux    4096  425 21:00 ./
drwxrwxr-x 24 linux linux    4096  425 20:55 ../
drwxr-xr-x 31 root  root     4096  425 21:00 util-linux-2.20.1/
-rw-r--r--  1 root  root   101161  330  2012 util-linux_2.20.1-1ubuntu3.diff.gz
-rw-r--r--  1 root  root     2972  330  2012 util-linux_2.20.1-1ubuntu3.dsc
-rw-r--r--  1 root  root  6174190 1217  2011 util-linux_2.20.1.orig.tar.gz

3/打印运行make

./configure
make -n > log
//通过分析文件log,可以看到他切进了hwclock目录,并make all

4/分析子目录的makefile

cd hwclock;make all -n > log
//分析log可以看出,编译了目录下的所有.c文件成.o,也编译了lib/strutils.c文件成.o,然后用libtool 链接了所有的.o文件成hwclock

5/分析主文件

//一般情况下,主文件的名字很有特点,就是和程序很类似.或者是main.c之类的
所以我们分析hwclock.c
里面一开始就用了
1. 用getopt_long对参数解析,并设置状态位
2.根据不同的状态位执行不同的函数
  2.1determine_clock_access_method函数确定了操作时钟的方法套件,可以用 probe_for_rtc_clock 或者 probe_for_cmos_clock
  2.2systohw对应rtc这块用了probe_for_rtc_clock的套件,先获取时钟,然后再用ioctl
  2.2systohw对应coms这块用了probe_for_cmos_clock 的套件,先获取时钟,然后在用coms_write
  2.3注意一点,不管是coms还是etc,写入hw的时间都是BCD码.

##另:

  • 分析源码其实也可以从busybox分析.busybox好像主打rtc.而apt-get源上的兼容cmos和rtc

  • busybox的源码和从apt-get源下的源码是差不多的.只不过在打开etc设备的时候,busybox这块会一直检查是否EBUSY

  • 而在实际运行过程中,arm板上 hwclock -w 执行过程会长达十秒钟,因为卡在了打开设备失败.

  • 但是pc机上,运行hwclock却没有这种问题,大概是用的cmos,直接写了.


##参考文档

TCP/IP 某些最常见的错误原因码 (errno)列表

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/206796.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • springboot面试大全

    springboot面试大全https://blog.csdn.net/Kevin_Gu6/article/details/885474241SpringBoot有哪些优点?起步依赖自动配置应用监控2springboot的核心配置文件,以及加载顺序?bootstrap(.properties/.yml)用来加载系统相关的配置application(.properties/.yml)用来…

    2022年5月5日
    33
  • 存储过程基础语法

    存储过程基础语法存储过程1CREATE OR REPLACE PROCEDURE 存储过程名2IS3BEGIN4NULL;5END;行1:CREATE&

    2022年7月1日
    18
  • 【Cover Letter 】SCI 投稿加分必备,手把手教你写 投稿Cover Letter

    【Cover Letter 】SCI 投稿加分必备,手把手教你写 投稿Cover LetterCoverLetter是我们投稿时,与手稿一同发送给编辑的投稿信。一封内容简洁的投稿信,会让编辑对你文章的第一印象加分不少。今天,我们一起来学习一下,一篇给文章加分的投稿信应该怎么写。投稿信的内容主要包含文章的标题、类型,没有一稿多投的声明,文章的主要内容及亮点,还有通讯作者的信息。敲黑板!一篇投稿信最重要的两点,是语言简洁和符合期刊标准。所以,要想写好投稿信,我们务必要了解各…

    2022年4月30日
    55
  • androidX_android targetSdkVersion

    androidX_android targetSdkVersionAndroidX简介:Android9.0(APIlevel28)发布时,AndroidX也作为一个新的支持库发布出来了。AndroidX时Jetpack的一部分,它包含了现有的支持库和最新的

    2022年8月6日
    1
  • 用python 画几个简单图案

    用python 画几个简单图案1turtleturtle这个库真的很好玩,用很简单几行代码就能画出好看的图案,最近无聊翻了翻之前自己画的哈哈哈哈,分享几个代码 画一个类似五颜六色的棒棒糖图案importturtl

    2022年7月6日
    19
  • 13典藏AutoHotKey脚本让您生活更轻松

    13典藏AutoHotKey脚本让您生活更轻松AutoHotKey是最好的Windows自动化程序之一,可以执行最简单的操作到最艰巨的任务。AutoHotKey是一个免费的开源程序,通过这种脚本语言您的任何Windows日常任务。即使“脚本语言”听起来令人生畏,实际它非常易于使用,并且您可以做各种很酷的事情。让我分享我最喜欢和最常用的AutoHotKey脚本,这些脚本使我的日常任务更加轻松,这可能会对您有所帮助。在开始之前,假定您已经知道如何安装和配置AutoHotKey。此外,请注意以英文分号开头的行是注释。1.搜索快捷方式…

    2022年7月21日
    11

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号