
Linux
grey_csdn
这个作者很懒,什么都没留下…
展开
-
1161_Virtualbox中安装Debian
Virtualbox软件的安装我没有进行过什么特殊的处理,主机是windows 10,安装我直接双击安装。除了安装的目录改成了D盘,其他的一切全都是默认。选择的Linux系统为debian-11.2.0-amd64-netinst.iso。 这个是我的Virtualbox安装后打开的界面,接下来新建一个虚拟机。 接下来选择的信息如上图。 内存选择了2GB。接下来,下一步剩下的操作,一切全都选择了默认。 接下来,设置中按照自己的感觉修改了如下的信...原创 2022-02-16 22:30:52 · 725 阅读 · 0 评论 -
1056_linux下使用命令行进行磁盘格式化
linux下使用命令行进行磁盘格式化Grey全部学习汇总: https://github.com/GreyZhang/little_bits_of_linuxlinux下使用命令行进行磁盘格式化环境以及目标过去十几年,其实我跟linux打交道的时间还是很多的。但是大部分的时间可能是直接把这个当做一个windows的替代品,在我自己的电脑上使用了。最近两年,我开始使用NAS,不管是成熟的产品还是自己基于树莓派等做的尝试都是基于Linux。当前,用的比较多的是一个基于S805的玩客云,主要还原创 2022-01-18 07:28:46 · 248 阅读 · 0 评论 -
877_linux趣味命令之figlet
全部学习汇总: GitHub - GreyZhang/little_bits_of_linux: My notes on the trip of learning linux. 之前看过一个字符趣味命令cowsay,能够在字符上加上一个小动物的效果。这里还有一个figlet,可以把字符转成类似艺术字的效果。 树莓派上安装简单: sudo apt-get install figlet 测试: 这种...原创 2021-10-26 21:40:25 · 138 阅读 · 0 评论 -
876_linux趣味命令之screenfetch
全部学习汇总: GitHub - GreyZhang/little_bits_of_linux: My notes on the trip of learning linux. 这一次,再看一个趣味命令。这次看的是screenfetch,其实之前接触过另一个类似的,叫做linuxlogo。 我们先看一下linuxlogo的效果: 我的测试是在树莓派上进行的,使用的是树莓派3A+。 screenfetch的安装简单:...原创 2021-10-25 21:27:42 · 591 阅读 · 0 评论 -
855_linux下的JPEG格式图像无损压缩
全部学习汇总: https://github.com/GreyZhang/little_bits_of_linux 我现在手写的笔记大概有100本,一大箱子,收藏起来很费劲。现在的手机这么方便,其实很容易转换成照片。但是,照片又特别吃存储。其实,针对简单的文字类的笔记,能够看清基本就可以了,可以尝试进行一下压缩。 我使用WSL,安装了ubuntu,找到了一个jpegoptim的软件,使用还是很方便的。 安装很容易: sudo ap...原创 2021-10-12 21:09:58 · 133 阅读 · 0 评论 -
783_linux趣味命令之使用ascii码显示图像aview
全部学习汇总: GitHub - GreyZhang/little_bits_of_linux: My notes on the trip of learning linux. 经常看到别人的代码中带有ASCII码形式的图像,感觉很有趣。可能,有一部分的图形是一些人自己一点点编排的,不过我发现了一个可以快速生成这样图形的工具aview。 安装比较简单:sudo apt-get install aview 这个软件需要imagema...原创 2021-09-14 20:21:03 · 272 阅读 · 0 评论 -
782_linux趣味命令之ls的错误纠正提示命令sl
全部学习汇总: GitHub - GreyZhang/little_bits_of_linux: My notes on the trip of learning linux. 这一次来看一个有点小趣味儿的命令sl。这并不是一个一般系统自带的命令,需要我们去安装一下。 我使用树莓派做的这个测试,安装如下: sudo apt-get install sl 之后,查看sl的手册: 根据描述,...原创 2021-09-14 19:48:00 · 175 阅读 · 0 评论 -
745_在命令行中显示linux logo
全部学习汇总: https://github.com/GreyZhang/little_bits_of_linux 以前很多次看到别人展示平台搭建的时候,展示过一个截图:在命令行中显示linux的logo。今天折腾树莓派的时候偶然发现了这个功能,原来是一个额外的小工具。 为了验证这个是不是一个通用的工具,我先测试一下WSL。 首先安装工具linuxlogo工具。 接下来,看看运行效果::...原创 2021-08-24 23:27:11 · 341 阅读 · 0 评论 -
726_在WSL中使用I3文件管理器
全部学习汇总: https://github.com/GreyZhang/little_bits_of_linux 我知道很多高手都在使用I3,或许是大道至简。其实,这种风格也很符合我自己的选择,也想体验一下。但是我现在的系统默认用的其实是windows,为什么是windows,有太多历史的包袱在。但是好在现在WSL也可以让我们用一下很多linux的功能,总比借助虚拟机好一些。 WSL的安装这里不提了,我安装了ubuntu。 首先安装一下I3。...原创 2021-08-16 22:25:14 · 440 阅读 · 0 评论 -
608_linux内核学习_panic.c文件分析
全部学习汇总: https://github.com/GreyZhang/little_bits_of_linux 这个文件没想到这么简单,内容这么少。前面接触了几个大文件,让我觉得看完一边内核代码有点遥遥无期。接着来这么几个小文件,似乎心情都多了几分舒畅。 这种接口的设计,在我现在熟悉的嵌入式软件平台上似乎也有。至少最近接触的illd软件包中就有这样的设计。当系统异常进入trap的时候通常就会有一个类似的处理。 这个接口的设...原创 2021-05-07 23:45:03 · 222 阅读 · 0 评论 -
607_linux内核学习_printk.c文件分析
全部学习汇总: https://github.com/GreyZhang/little_bits_of_linux 其实,printk在使用上跟printf也没有太大的差异。看这个接口的时候,多少还是有一点点觉得有意思。我一直觉得类似的功能可能会用一个比较大的缓存区,没想到这里只有1K。另外就是,这个接口最初接触到的时候其实是在嵌入式平台上,在这里看到之后确实是有点觉得有意思亲切感。 没有去做什么确认,不过印象中之前看到的printk似乎是基于串...原创 2021-05-07 23:26:58 · 178 阅读 · 0 评论 -
606_linux内核学习_sys.c中时间获取与设置接口
全部学习汇总: https://github.com/GreyZhang/little_bits_of_linux 继续sys.c的分析,今天基本可以结束这个文件的分析了。生下来的两个代码较多的接口,都是关于时间处理的。顺带着,还有一个最后的接口一起看了吧。 这里两个主要的时间处理接口,分别是时间的获取以及设置接口。还有一个掩码设置接口。这俩接口,多少有点让我联想到了shell命令。Shell命令的实现,最终是否是落实到了这样的系统接口上...原创 2021-05-07 23:11:43 · 153 阅读 · 0 评论 -
605_linux内核学习_sys.c中sys_getrusage接口分析
全部学习汇总: https://github.com/GreyZhang/little_bits_of_linux 继续分析sys.c,今天看一个资源统计接口。这两天状态有点一般,也多少有点怀疑继续下去的意义了。好在,还可以顺手联系一下emacs。 看上去,系统内核的处理很多时候关键点似乎还是在于数据结构的设计。数据结构之上,增加一点设计理念。 我一直觉得,我似乎缺少一个比较正规的软件设计模式或者理念的学习。如果感觉正确的...原创 2021-05-07 22:52:30 · 249 阅读 · 0 评论 -
604_linux内核学习_sys.c中资源限值的两个处理接口
全部学习汇总: https://github.com/GreyZhang/little_bits_of_linux 继续看sys.c,这个文件看着很有希望分析完了。像我现在浮光掠影的看一下,其实还是简单的。Windows下的emacs反应速度有点问题,这让我觉得WSL可真是一个好东西。后续的代码分析,或许可以大部分用WSL来练练手了。 其实,这些接口的实现看起来是不难的。越来越觉得具备操作系统的设计思想才是最重要的,等我现在的这份代码看完,接下来...原创 2021-05-05 22:13:24 · 135 阅读 · 0 评论 -
603_linux内核学习_sys.c中用户名以及主机名处理
全部学习汇总: https://github.com/GreyZhang/little_bits_of_linux 继续看sys.c文件,这次看两个计算机名以及主机名的处理接口。 首先了解一下这个私有变量,存储了计算机本身的一些私有属性。接着是一个获取系统名称的接口,看得出这个系统设计再检查上考虑的很周全。而系统名称的获取,其实就是围绕这个私有的变量。接下来的设置host名称,其实也是这个私有变量的处理。 这个host名称...原创 2021-05-05 20:57:27 · 177 阅读 · 0 评论 -
602_linux内核学习_sys.c中检查任务是否属于某个用户组
全部学习汇总: https://github.com/GreyZhang/little_bits_of_linux 继续看sys.c,接着做剩下函数的分析。 从可理解性上看,这个函数到时可理解性相对简单的。其实就是检查当前的任务,或许更应该叫做进程是否属于传入的用户组。 从函数命名上,这个倒是让我想到了lisp,里面大量的布尔判断的函数都是xxp这样的函数命名。 从单纯的代码实现角度理解,这些接口固然是容易...原创 2021-05-05 19:11:53 · 144 阅读 · 0 评论 -
601_linux内核学习_sys.c中用户组信息的获取与设置
全部学习汇总: https://github.com/GreyZhang/little_bits_of_linux 先看看代码,按照我自己的理解加点注释说明。 这正好是一对功能接口,一个是读一个是写,一个是设置一个是获取。两个操作都是最简单的C语言基础实现,比较值得注意的还是这里面的概念信息。同时,这里用到了用户空间与内核空间数据交换的概念。 这里面有一个基础概念信息,算是一个常识性的信息,一个任务最多可以拥有32个用户组...原创 2021-05-05 18:32:29 · 230 阅读 · 0 评论 -
600_linux内核学习_sys.c中两个session处理相关函数分析
全部学习汇总: https://github.com/GreyZhang/little_bits_of_linux 这里面包括两个函数,其中一个是获取任务属性。直接读取结构体成员信息基本就可以ile。 第二个是设置session的id,类似的处理基本上是先检查各种有效性然后再做处理。而这里有一个基础的概念,也就是leader,这个是用来标识session创建的任务身份。 这个基本上没有什么软件设计技巧,只是一个常识的学习积累。...原创 2021-05-05 18:16:51 · 154 阅读 · 0 评论 -
599_linux内核学习_sys.c中sys_setpgid函数分析
全部学习汇总: https://github.com/GreyZhang/little_bits_of_linux 趁热打铁,再补一次拉下的课程。简单分析一个函数sys_setpgid。 其实,看这种大神段子般的注释有时候比看代码更加过瘾。能够看得出,早期的这个内核也并不是一个完美的存在。 有点给自己的懒惰找借口的感觉了,看着大神不懂这么多的概念直接放弃,我也有点想直接放弃了!(捂脸哭)...原创 2021-05-03 21:54:26 · 164 阅读 · 0 评论 -
598_linux内核学习_sys.c中sys_brk函数分析
全部学习汇总: https://github.com/GreyZhang/little_bits_of_linux 工作太忙,在身心疲累的状态下持续加班,五一也基本被工作吞掉了。看到我TODO清单中,自我成长的计划延后了一大堆。拖着疲累的身体、顶着有点要裂的脑袋,今天还是要重新走出新的一步。哪怕,仅仅是象征的一步。 之前看过sys.c文件,内容其实不多。应该可以很快看完,哪怕一次一个函数也应该很快就能够看完。今天,就先再看一个函数。...原创 2021-05-03 21:17:26 · 189 阅读 · 3 评论 -
597_linux内核学习_sys.c中两个时间获取函数
全部学习汇总: https://github.com/GreyZhang/little_bits_of_linux 停止了很多天没学习了,工作压得有点喘不过气了。忙里偷闲,学习还是得继续。 主要功能是用来获取时间,时间是1970年1月1号开始到当前的秒。 这个主要是用来获取任务运行时间的,包括当前任务的CPU、系统运行时间,也包括子任务的相关参数。 关于这个时间信息的结构体,看上去注释与网络信息多少...原创 2021-04-25 22:59:41 · 172 阅读 · 0 评论 -
596_linux内核学习_sys.c中sys_setuid函数分析
全部学习汇总: https://github.com/GreyZhang/little_bits_of_linux 继续sys.c文件,感觉这个文件应该也会很快拿下。接下来,看看sys_setuid函数。 其实,代码逻辑还是很简单的。后面,还是要补充一下这些属性的概念。 一直以来,我以为BSD和unix就是差不多一回事儿,而POSIX就是他们通用的接口。而现在看看这个注释,似乎不该做此理解。看起来,关于这几个系统的发展历史故事...原创 2021-04-15 23:44:18 · 219 阅读 · 0 评论 -
595_linux内核学习_sys.c中sys_setreuid函数分析
全部学习汇总: https://github.com/GreyZhang/little_bits_of_linux 继续分析sys.c,看一下sys_setreuid函数的实现。 简单理解其实就是一个任务属性而已,但是设计的意图我是不明确的。这样,越来越觉得,其实在学习这部分之前我应该先去熟悉一下linux使用以及开发环境才是。后面,这个课程一定得补上去。...原创 2021-04-15 23:32:25 · 189 阅读 · 0 评论 -
594_linux内核学习_sys.c中sys_time函数分析
全部学习汇总: https://github.com/GreyZhang/little_bits_of_linux 这次主要的分析对象是sys_time,不过在此之前先把一堆没有实现的接口一起简单过一下。 总体来看,这些信息都是关于存储、资源、文件等处理的,在我看到的这个版本的内核代码中还没有做完整的实现。 主角登场,感觉上除了可能有点保护作用外没有考虑到这个函数设计的价值。其实,就是一个简单的数据转换转移而已。继续往下看...原创 2021-04-14 22:01:54 · 264 阅读 · 0 评论 -
593_linux内核学习_sys.c中gid设置以及一些其他的简单接口
全部学习汇总: https://github.com/GreyZhang/little_bits_of_linux 今天开始看sys.c,不要求自己的速度多快了。尽量享受这种感觉,近几天也逐渐迁移回了emacs,感觉上这种不断熟、反复捶打一个技能的过程很有一种享受感。 今天的标题有点乱,因为很多函数设计简单,不需要直接分析,一起带过。 这一堆函数接口,其实都是当前未实现的设计。看了下,有一些让我多少有点收获。比如说,关于文...原创 2021-04-14 21:39:42 · 173 阅读 · 0 评论 -
591_linux内核学习_fork.c中的find_empty_process函数分析
全部学习汇总: https://github.com/GreyZhang/little_bits_of_linux 看到今天这个函数接口的时候比较舒心,一来是这个函数接口的内容少,二来是这个是fork.c的最后一个函数。今天应该可以大致结束这个文件的代码粗略的略读了。 先对代码进行一个注释说明: 寻找空的进程,其实是在任务的数组中找到不是这个pid的任务,之后还得找到任务数组中有空余的位置。最后,返回空余位置即可。如果全都看了...原创 2021-04-13 21:39:04 · 284 阅读 · 0 评论 -
590_linux内核学习_fork.c中copy_process函数分析
全部学习汇总: https://github.com/GreyZhang/little_bits_of_linux 继续分析fork.c,看样子,这个文件应该能够结束的很快。最近工作的不顺心、堵心让我更有了找点慰藉的东西的想法。学习吧,这就是最好的选择。这次看看copy_process函数。 开始的时候有点吃惊这个函数的传入参数数目多,后来分析代码的时候基本清楚其实这些基本都是CPU的寄存器。 看上去,这个进程的复...原创 2021-04-12 23:54:24 · 236 阅读 · 2 评论 -
588_linux内核学习_fork.c中的copy_mem分析
全部学习汇总:https://github.com/GreyZhang/little_bits_of_linux 前面,囫囵吞枣过完了exit.c的文件。接下来继续看一个之前已经有点开端的文件fork.c。从第一直觉看,这个应该就是提供进程复制功能的。看了一下,其实文件中还是涉及到好几个函数接口的。不过,好在代码行数其实不多。这么看,囫囵吞枣式的分析代码,这个文件的分析应该会很快。 看了一下代码,增加注释说明如下: 没有什么需...原创 2021-04-10 21:43:09 · 321 阅读 · 0 评论 -
587_linux内核学习_sys_waitpid函数分析
全部学习汇总: https://github.com/GreyZhang/little_bits_of_linux 继续看exit.c,还剩下最后一个函数接口。 这个接口的调用,也是在汇编中调度的。 首先,接口填充到了这个调度表中。 而调度则是在这段汇编代码中,看起来,不整明白这堆代码,理解这部分多少有点无望了。...原创 2021-04-08 21:59:43 · 210 阅读 · 0 评论 -
586_linux内核学习_sys_exit函数的调用分析
全部学习汇总: https://github.com/GreyZhang/little_bits_of_linux 前面分析过do_exit函数,关于这个函数的调用有一个还在exit.c文件中。关于这个函数接口的设计是以及使用还是需要进一步看一下。 函数的设计就是传入一个错误码,然后补8bit的0作为退出码。 函数接口,也被写在了这个调度表中。这个看过好几次了,在汇编中有调度。 看起来,不弄明白这一...原创 2021-04-03 21:41:31 · 234 阅读 · 0 评论 -
585_linux内核学习_do_exit的执行分析
do_exit的执行分析全部学习汇总: 全部汇总之前分析了一下do_exit的实现,今天看看这个函数接口的调用情况。先看一下全部的函数调用情况:接下来,逐个看看。说起来,这种使用方式又是一个新鲜的模式。使用extern,声明的同时定义函数。其实,这个也很容易理解,结合之前我看的C语言教材中的一句话:通常函数的声明中,extern只是多此一举。这样的话,其实在理解的时候直接忽略掉即可。从名称以及内容看,这个应该是存储超出之后的处理接口,处理的方式则是提示加退出。...原创 2021-04-03 21:28:03 · 246 阅读 · 0 评论 -
584_linux内核学习do_exit函数分析
全部学习汇总: https://github.com/GreyZhang/little_bits_of_linux 继续看exit.c代码,这次看do_exit函数。 关于函数的调度,还得在后面的代码中继续分析。 总体感觉应该是针对于用户应用程序的。里面涉及到几个概念没有弄明白,如果这样下去,这个内核代码可能还得再看第二轮啊!...原创 2021-03-31 22:44:08 · 270 阅读 · 0 评论 -
583_linux内核学习_has_stopped_jobs函数分析
全部学习汇总: https://github.com/GreyZhang/little_bits_of_linux 继续分析exit.c文件,这次看一下has_stopped_jobs函数。人得跟随潮流,以后也要去用一下新鲜的东西,再接下来的一段时间内,让emacs退居二线,只作为我自己的任务管理工具。而开发,跟代码打交道的时候,用一下VS Code。 整体的思想其实很简单,看起来,操作系统中很多的处理都是状态机,各种查询跳转。这个状态机,处理的...原创 2021-03-31 21:55:19 · 166 阅读 · 0 评论 -
582_linux内核学习_检查一个进程组是否是孤立进程组
全部学习汇总: https://github.com/GreyZhang/little_bits_of_linux 其实,整个逻辑还是比较明确的。什么情况下是一个孤立进程组呢?那就是,查找了全部的任务,符合“任务的父任务用户组与传入用户组不同并且两个对话还是相同的”这个条件。 如果上面的条件,查找了全部任务一个都找不到成立的,那么这个就是出现了孤立的进程组。 我多少有一点不理解,为什么这个会是一个比较麻烦的事情。而从上面的注释...原创 2021-03-30 22:16:09 · 177 阅读 · 0 评论 -
581_linux内核学习_exit中的杀进程函数以及系统kill函数
全部的学习汇总: https://github.com/GreyZhang/little_bits_of_linux 这次打包,看2个接口。如果单纯一个接口可能会太少了,一起看两个吧! 这个函数的名称基本上没有什么大的问题,主要是带着权限以及相应的信号处理相应的进程。 这个函数的名字其实有点问题了,而之前我的疑惑可能也是因为这个接口的名字。这估计也是为什么shell命令中信号发送的命令是kill吧! 其...原创 2021-03-30 21:44:58 · 198 阅读 · 0 评论 -
580_linux内核学习_exit中两个进程以及进程组函数分析
全部学习汇总: https://github.com/GreyZhang/little_bits_of_linux 这次看两个进程以及进程组相关的接口实现。 其实,这个总体的设计思想还是很简单的,就是一个遍历查询。 感觉上,这个应该就是把一个信号向任务组中符合条件的任务发了一轮。 这里的err,其实有点不好理解。我个人的感觉是这个定义的地方,逗号运算符的行为与现在我用的平台以及工具的定义是不同的。...原创 2021-03-30 21:25:12 · 177 阅读 · 0 评论 -
579_linux内核学习_exit中的send_sig函数分析
全部的学习汇总: https://github.com/GreyZhang/little_bits_of_linux 继续分析这个额exit.c的文件,这次看一个比较简单的函数,send_sig。 这是一个内联函数,也是一个静态的函数。应该是考虑了效率以及访问的保护。这个函数大概看一下,基本上是一个信号的状态修改动作接口。 这个函数里面考虑了一些简单,比如说信号的忽略检查。其中应该有两个信号,涉及到任务的停止切换,比较特殊。...原创 2021-03-30 21:19:14 · 424 阅读 · 0 评论 -
578_linux内核学习_audit_ptree函数分析
全部学习汇总: https://github.com/GreyZhang/little_bits_of_linux 继续看内核代码,这次看一个很有意思的调试检测函数,audit_ptree。最初看这个函数的时候有点蒙圈,但是把树状结构的关系结合社会关系做一个类比,其实理解起来很容易。 这个函数基本就是用来做测试的,毕竟是对一系列任务进行扫描检查,数量不小。 首先需要确认的是一切任务(包括父子进程)都应该在列表之内,或者为空...原创 2021-03-28 21:48:30 · 182 阅读 · 0 评论 -
577_linux内核学习_bad_task_ptr函数分析
全部学习汇总: https://github.com/GreyZhang/little_bits_of_linux 结合之前采用的一个模型或者说思维模式,其实这个解释很容易。直接贴出我增加了注释的代码如下: 其实,在前面的release函数中,这个函数其实是可以用一下的。但是,看上去是没有用到。 其实,看起来还是不能直接用的。因为这个函数只能够判断有效性,但是无法找到接下来需要处理的地下交通站在哪里。...原创 2021-03-26 22:37:27 · 175 阅读 · 0 评论 -
576_nanopi neo3 openwrt固件的web配置功能小结
全部学习汇总: https://github.com/GreyZhang/little_bits_of_linux我个人体验,其实官方提供的两个基础的固件,openwrt还有ubuntu core。两个我都大概用了一下,其实在稳定性上我是偏向于openwrt这个固件的。固件非常小,而且表现比较稳定。为了具体说明两个的稳定性差异,梳理一下我遇到的问题。ubuntu core使用中的问题梳理:1. 镜像超过8GB,这个其实也不算是什么问题,但是官方wiki中说8GB的卡就可以,如果...原创 2021-03-26 22:31:29 · 711 阅读 · 0 评论