IT评测·应用市场-qidao123.com

标题: 条记整理—内核!启动!—linux应用编程、网络编程部分(6)随机数与proc文 [打印本页]

作者: 石小疯    时间: 2024-9-27 11:08
标题: 条记整理—内核!启动!—linux应用编程、网络编程部分(6)随机数与proc文
        随机数实际上只存在于理论上,我们正常情况下接触到的随机数都是伪随机数。我们可用利用rand()连续多次调用返回一个伪随机数;利用srand()去设置随机数产生的种子。
        rand()返回的值为0~rand_MAX之间的一个数,a=rand%6就返回0~6之间的一个值。只去利用rand()函数,多次访问的值为相同值,因为返回的是同一序列,rand()的默认利用1为种子。所以每次利用rand()函数都应该去利用srand()函数设置随机数种子,从而得到不同的随机数。一般为了得到不同的随机数种子,会利用time的返回值做种子,tiem以秒为单位,利用连续调用的最短时间为1秒以上,究竟种子相同则输出的随机数将会相同。
        正常的项目中,随机数将不只会利用rand()函数去得到,而是利用一定的算法去实现更真实一些的随机数,例如可用利用内核中的随机事件作为随机数种子。
        
        proc文件体系
        操作体系级别调试:
        (1)简单的程序将利用单步调试:对环境有要求如JLink。
        (2)复杂的程序利用printf打印调试信息。
        (3)框架体系利用日记记载信息作为调试:输出重定向。
        (4)内核调试存在的逆境:①内核不能利用以上三种调试方法。②项目太大,添加一个功能会对其他功能造成影响。③编辑成本高。
        为了降低内核调试于学习的难度,引入了proc文件体系。
        在内核架构添加一个虚拟文件体系,内核运行时,将一些关键数据布局以文件的形式呈现于/proc目录中,将不可见的数据布局以可见的方式呈现。
        /proc/cmdline存放的就是bootcmd的操作值。
        /proc目录下的文件巨细都是0,因为都是虚拟文件,本质就是内核一个数据布局格式化后的字符串。
        /proc/cpuinfo可见的cpu信息。
        /proc/devices所有装备安装的东西。
        这些文件也就是有了体系情况输出的可能。利用shell中的cat结合正则表达式可用得到想要的信息。
        sys文件体系,本质和proc文件体系一样,都是虚拟文件体系,都是将内核信息可视化。区别在于/proc为只读,但/sys为可读可写。写入时支持值更改,但有可能会对硬件造成影响,因为有的硬件只负责输出。原本的proc文件体系是支持值更改的,背面由于proc的管理逐渐杂乱,出现了sys文件体系。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 IT评测·应用市场-qidao123.com (https://dis.qidao123.com/) Powered by Discuz! X3.4