3.2 获取系统信息笔记

3.2 获取系统信息
3.2.1 关于时间的概念
    3.2.1.1    GMT 格林泥质时间  作为全球国际时间,用以描述全球性的时间,方便大家记忆。
    3.2.2  UTC时间  

3.2.2 linux系统中的时间
    1、jiffies的引入
        jiffies是linux内核中的一个全局变量,这个变量用来记录以jiffies 为单位
    长度的一个 数值。
        内核配置的时候定义了一个节拍时间,实际上linux内核系统的调度系统工作时是以这个节拍为时间片的。
    2、linux系统如何记录时间
        内核在开机时会读取RTC获取一个基准时间,,用这个时间对应一个jiffies值,
        其实开机时操作系统只在开机时读取一次RTC,整个系统。
    3、常用时间相关的API
        time系统调用返回当前时间以秒为单位的距离 1970-01-01 00
         #include <time.h>

       char *asctime(const struct tm *tm);
       char *asctime_r(const struct tm *tm, char *buf);

       char *ctime(const time_t *timep);
       char *ctime_r(const time_t *timep, char *buf);

       struct tm *gmtime(const time_t *timep);
       struct tm *gmtime_r(const time_t *timep, struct tm *result);

       struct tm *localtime(const time_t *timep);
       struct tm *localtime_r(const time_t *timep, struct tm *result);

       time_t mktime(struct tm *tm);
       
       gmtime 得到的是国际时间
       locatime 得到的是本地时间
       

3.3.3 时间相关的API实战1
        time
        #include <time.h>

        time_t time(time_t *t);

        ctime 格式固化的,没法调整
        ctime_r
3.2.4 时间相关的API实战2
        mktime mktime用来向操作系统设置时间使用的
        asctime  
        strftime 
3.2.5 linux中使用随机数
    1、随机数和伪随机数
        随机数是随机出现,没有任何规律的一组数列
        真正完全随机的数列是不存在的,只是一种理想情况。我们平时要用到
        随机数时,一般通过算法得到伪随机数。
        平时说到的随机数,基本都是伪随机数。
    2、linux中随机相关API
        连续多次调用rand函数可以返回一个伪随机序列
        srand函数用来设置rand获取的伪随机序列的种子
        每次执行时,设置不同的种子,得到不同的伪随机序列。
        一般常规做法:用time函数的返回值来做srand的参数。
        
    3、实战演示
    4、总结和说明
    5、在linux系统中 获取真正的随机数。
        1、linux系统收集系统中随机发生事件的时间(譬如鼠标,触摸屏操作和坐标等),作为随机种子去生成随机数序列。
3.3.6 proc文件系统介绍    
     1、操作系统级别的调试
     2、简单程序单部调试
     3、框架体系日记记录信息调试
     4、内核调试的困境
     proc虚拟文件系统的工作原理
        项kernel这样庞大的项目,给里面添加/更改一个工能是非常麻烦的,因为你这添加的一个功能可能会影响其他已经有的。
        
        为了降低内核调试和学习难度,
        proc 文件 系统的思路是:在内核中 构建一个虚拟的文件系统proc,内核运行时将内核中关键的数据以文件的方式呈现在/proc目录中的一些特定文件中。这将相当于不可见的内核中的数据结构以一种可视化的方式呈现给内核开发者。
      cmdline
      cpuline
      devices
      interrupts
3.3.7 proc文件系统的使用
    1、kesg 内核打印信息 version 版本信息
       cat以手工查看
    2、在程序中可以文件IO访问
    3、在shell程序中用cat命令结合正则表达式来获取并处理内核信息
    4、扩展:sys文件系统
       可视化数据接口
       可读可写
       proc和sys功能是一样的,这是历史原因造成的,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小相619

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值