笔记整理—内核!启动!—linux应用编程、网络编程部分(6)随机数与proc文件系统

devtools/2024/9/29 19:01:11/

        随机数实际上只存在于理论上,我们正常情况下接触到的随机数都是伪随机数。我们可用使用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文件系统。


http://www.ppmy.cn/devtools/118840.html

相关文章

基于Java的宠物之家小程序 宠物服务小程序【源码+调试】

精彩专栏推荐订阅:在下方主页👇🏻👇🏻👇🏻👇🏻 💖🔥作者主页:计算机毕设木哥🔥 💖 文章目录 一、宠物之家小程…

【hot100-java】【零钱兑换】

R9-dp篇 class Solution {public int coinChange(int[] coins, int amount) {int ncoins.length;int [][] fnew int[n1][amount1];//除2防止下面1溢出Arrays.fill(f[0],Integer.MAX_VALUE/2);f[0][0]0;for (int i0;i<n;i){for (int c0;c<amount;c){if(c<coins[i]) f[i…

Python爬虫获取指定内容

要使用Python爬虫获取指定内容&#xff0c;通常需要以下几个步骤&#xff1a; 确定目标URL和请求头&#xff1a;首先&#xff0c;你需要明确你要爬取的网页的URL&#xff0c;并设置请求头&#xff08;headers&#xff09;来模拟浏览器请求&#xff0c;以避免被服务器识别为爬虫…

Linux下的git开篇第一文:git的意义

目录 1.git版本控制器 2.git gitee&&github 3.Linux中gitee的使用 &#xff08; 三板斧 git add git commit -m " " git push &#xff09; 4.git log 查看之前的修改信息 &#xff08;所有提交日志&#xff09; 5.git status 查看工作目录与本地…

“领航猿1号” 正式更名为 “AGI舰长”

亲爱的朋友们&#xff0c;很高兴的告诉大家&#xff1a; 我各个平台的账号昵称正式 由“领航猿1号” 更名为 “AGI舰长” 为什么更名&#xff1a; 为了更好的更专注的为大家提供关于“AI大模型全栈”的分享&#xff0c;特此以 AI 为关键元素更名账号名称&#xff0c;大家可以…

北斗三号多模对讲机TD70:公专网融合、数模一体、音视频调度,推动应急通信效能升级

随着国家对应急通信和精准定位技术的重视程度不断提高&#xff0c;相关技术和设备的研发与应用也得到了迅猛发展。特别是在边防巡逻、林业巡防、海上作业等领域&#xff0c;通信设备的可靠性和功能性直接关系到人员的生命安全和任务的成功完成。 近年来&#xff0c;我国政府高度…

梧桐数据库(WuTongDB):向量化查询优化器在实际实现中的技术细节和底层算法

关于向量化查询优化器的进一步细节&#xff0c;特别是在实际实现中的技术细节和底层算法&#xff0c;我们可以从几方面深入探讨&#xff1a;包括源码分析、具体算法优化和硬件层面的进一步利用。我将以ClickHouse和Apache Arrow为例&#xff0c;同时详细解释实现中的一些关键组…

【C++】——vector深度剖析模拟实现

低头赶路&#xff0c;敬事如仪 目录 1、模拟vector 1.1底层结构 1.2构造析构 1.3尾插扩容 1.4迭代器 1.5增删查改 1.6模拟中的注意事项 2、vector模拟补充 2.1迭代器区间构造问题 2.2memcpy深浅拷贝问题 2.3动态二维数组的模拟及遍历 1、模拟vector 想要模拟实现自…