Linux学习
文章平均质量分 85
Mr.Idleman
Live a simple life.
展开
-
计算机存储层次及常用存储简介
存储层次是在计算机体系结构下存储系统层次结构的排列顺序。 每一层于下一层相比 都拥有 较高的速度 和 较低延迟性 ,以及 较小的容量 (也有少量例外,如AMD早期的Duron CPU)。大部分现今的中央处理器的速度都非常的快。大部分程序工作量需要存储器存取。由于高速缓存的效率和存储器传输位于层次结构中的不同等级,所以实际上会限制处理的速度,导致中央处理器花费大量的时间等待存储器I/O完成工作。存储器的种类很多,按其用途可分为主存储器和辅助存储器,主存储器又称内存储器(简称内存),辅助存储器又称外存储器原创 2023-07-05 20:07:16 · 138419 阅读 · 1 评论 -
时间基础概念及Linux中的时间函数
本文介绍了时间相关的基本概念,譬如GMT时间、UTC时间以及全球24个时区的划分等,并且给大家介绍了Linux系统下常用的时间相关的系统调用和库函数,主要有9个:time/ctime/localtime/gmtime/mktime/asctime/strftime/gettimeofday/settimeofday。GMT是格林威治标准时间 ,UTC是基于原子钟的国际标准时间。jiffies是内核中定义的一个全局变量,内核使用 jiffies 启动以来的系统节拍数。原创 2023-05-31 19:15:02 · 193448 阅读 · 0 评论 -
Linux 终端特殊符号含义大全
Linux 终端中有许多特殊符号,本文对常用的进行了总结:1. `$` 表示变量/普通终端用户:用于引用变量的值/表示终端中的普通用户。2. `#` 表示注释/超级用户:用于在脚本中注释代码/表示终端中的超级用户。3. `/` :根目录/目录分隔符。4. `~` :当前用户的主目录。5. `.` :当前目录。6. `..` :上级目录。7. `` 输出重定向符号:将命令输出重定向到指定文件。9. `>>` 输出追加符号:用于将用原创 2023-05-20 23:37:10 · 210649 阅读 · 0 评论 -
Linux 文件系统原理 / 虚拟文件系统VFS
VFS是一个抽象层,其向上提供了统一的文件访问接口,而向下则兼容了各种不不同类型的文件系统。不仅仅是诸如Ext2、Ext3、Ext4、XFS、windows家族的NTFS和Btrfs等常规意义上的文件系统,还可以是比如上图的proc等伪文件系统和设备,也可以是诸如NFS、CIFS等网络文件系统。VFS 采用标准的Linux系统调用读写位于不同物理介质上的不同文件系统,即为各类文件系统提供了一个统一的操作界面和应用编程接口,VFS是一个内核软件层。原创 2023-05-08 20:45:26 · 200587 阅读 · 1 评论 -
Linux 内存分配/内存管理 相关接口
一个进程可以通过增加堆的尺寸来分配内存。堆是一个用来存放动态分配的变量的空间,它位于未初始化数据段(bss)之后,它的顶叫做 `program break` ,这个地方会根据内存的分配和释放而变化。一般来讲C语言堆内存的分配一般会使用 `malloc()` ,它是基于 `brk()和sbrk()` 所实现的。原创 2023-05-06 18:32:06 · 200453 阅读 · 0 评论 -
Linux 信号学习
早期Unix系统中的信号机制比较简单和原始,后来在实践中暴露出一些问题,因此,**把那些建立在早期机制上的信号叫做"不可靠信号",Linux 中信号值小于。如果进程当前正在执行信号处理函数,在处理信号期间接收到了新的信号,如果该信号是信号掩码中的成员,那么内核会将其阻塞,将该信号添加到进程的等待信号集(等待被处理,处于等待状态的信号)中,,从数字1开始顺序展开。在信号处理函数调用时,进程会自动将当前处理的信号添加到信号掩码字段中,这样保证了在处理一个给定的信号时,如果此信号再次发生,那么它将会被阻塞。原创 2023-05-04 20:48:34 · 200725 阅读 · 2 评论 -
Linux 执行python脚本时格式字符串报错“SyntaxError: invalid syntax”
服务器部署python3代码时格式字符串报错“SyntaxError: invalid syntax”原创 2022-09-22 23:21:31 · 200823 阅读 · 0 评论 -
Linux 文件描述符
在 Linux 操作系统中,当一个应用程序或进程操作系统资源时,首先会触发文件调用事件,通过应用程序或进程发送一个调用文件的信号给操作系统内核,内核会在 打开文件表 中增加一条记录,同时将打开文件表中新增的记录返回给应用程序或进程,而应用程序或进程接收到来自内核返回的信息,称为文件描述符(file desrciption)。原创 2023-04-14 22:33:52 · 200795 阅读 · 0 评论 -
Buildroot 如何添加新的包(自建app)
本文介绍如何将新包(用户空间库或应用程序)集成到 Buildroot 中。它还显示了现有包是如何集成的,这是解决问题或调整其配置所必需的。原创 2023-03-02 16:43:44 · 202083 阅读 · 0 评论 -
KConfig语言学习(一文全览)
菜单选项可以有多个属性。并不要求这些属性可以用在任何地方。每个配置选项都必须指定类型。在5种类型中 tristate 和 string 为基本类型,其他类型都是基于这两个基本类型。bool 布尔类型:取值范围为Y/N。tristate 三态类型:取值范围为Y/N/M,相较bool类型,tristate类型的菜单项多了编译成内核模块的选项。string 字符串:默认菜单选项显示对应字符串。int 整型hex 十六进制和bool。原创 2023-03-01 16:49:01 · 203571 阅读 · 0 评论 -
Linux挂载Windows端NFS服务(实现板端Linux与PC互传文件)
kernel编译时打开NFS客户端。服务在宿主机打开kernel文件夹,先`make clean`,然后`make menuconfig`,进入配置界面:使用`/`查找`NFS`,找到`Network File Systems`配置项,如图这里是3,选择进入:进入后选择加载`NFS client support`模块,下面还有`NFS server support`模块,如果需要让系统作为服务端也可以打开。然后保存配置到`.config`,再`make`。make完成后,将导出的镜像烧写到板端flash。原创 2022-11-18 21:02:24 · 200957 阅读 · 0 评论 -
.ko 加载报错 “unknown symbol in module or invalid parameter” 排查解决方法
今天参照Sigmastar的文档,修改config重新编译kernel,打开板上RNDIS虚拟网口。猜想问题的原因应该是前置模块未加载,进行排查,最终得出了遇到相关问题的解决方法。可以看到,是由于缺乏一系列前置符号量导致该错误的。按照步骤重编后,在demo.sh加入。查询grep的输出,最终找到了来源是。我们在板上系统加载该ko文件,再加载。原创 2022-11-17 19:09:43 · 202112 阅读 · 2 评论 -
Linux学习笔记(第二周):Linux磁盘与文件管理
Linux磁盘与文件管理Linux文件系统硬盘分区Partition和MBREXT文件系统Data Block (数据区块)inode table(inode 表格)Superblock (超级区块)Filesystem Description (文件系统描述说明)Block Bitmap (区块对照表)inode Bitmap (inode 对照表)查询文件系统 `dumpe2fs`目录树目录目录树读取EXT2/EXT3 文件的存取与日志式文件系统的功能数据的不一致 (Inconsistent) 状态日志原创 2022-04-22 14:04:01 · 200368 阅读 · 0 评论 -
Linux学习笔记(第一周)
文章目录Linux 笔记基本概念UNIX 体系结构内核登录shellGNU工具常用指令Linux系统的在线求助:`man page `与 `info page`编辑器:`nano`数据同步写入磁盘:`sync`关机命令:`shutdown`重新启动,关机:`reboot`切换运行等级:`init`文件权限文件权限概念权限对文件的重要性权限对目录的重要性切换用户:`su`创建用户:`useradd`修改用户密码:`passwd`删除用户:`userdel`查看当前用户信息:`whoami`注销用户:`logo原创 2022-04-17 20:15:55 · 203025 阅读 · 0 评论