自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小灰笔记

学习笔记,仅用于自我参考回忆!

  • 博客(1181)
  • 论坛 (1)
  • 收藏
  • 关注

原创 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 18

原创 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 8

原创 594_linux内核学习_sys.c中sys_time函数分析

全部学习汇总: https://github.com/GreyZhang/little_bits_of_linux 这次主要的分析对象是sys_time,不过在此之前先把一堆没有实现的接口一起简单过一下。 总体来看,这些信息都是关于存储、资源、文件等处理的,在我看到的这个版本的内核代码中还没有做完整的实现。 主角登场,感觉上除了可能有点保护作用外没有考虑到这个函数设计的价值。其实,就是一个简单的数据转换转移而已。继续往下看...

2021-04-14 22:01:54 20

原创 593_linux内核学习_sys.c中gid设置以及一些其他的简单接口

全部学习汇总: https://github.com/GreyZhang/little_bits_of_linux 今天开始看sys.c,不要求自己的速度多快了。尽量享受这种感觉,近几天也逐渐迁移回了emacs,感觉上这种不断熟、反复捶打一个技能的过程很有一种享受感。 今天的标题有点乱,因为很多函数设计简单,不需要直接分析,一起带过。 这一堆函数接口,其实都是当前未实现的设计。看了下,有一些让我多少有点收获。比如说,关于文...

2021-04-14 21:39:42 11

原创 592_AUTOSAR版本发布信息文档阅读

全部学习汇总:https://github.com/GreyZhang/learning_autosar_hard_way近段时间,工作上烦心事比较多。为了能够让自己的内心沉淀下来,尝试通过学习让自己充实起来。Linux的学习我还是会继续,而且会作为我当前的主课。此外,增加AUTOSAR文档的研读,补充自己之前的一个短板。文档比较多,争取每周能够拿出10个小时来看看,这样或许会耗掉我的大部分周末时间。希望能够学有所值。今天从最简单的一个发布说明信息文件开始看,而我的学习笔记记录的会是我的收获以及里面

2021-04-13 23:32:14 20

原创 591_linux内核学习_fork.c中的find_empty_process函数分析

全部学习汇总: https://github.com/GreyZhang/little_bits_of_linux 看到今天这个函数接口的时候比较舒心,一来是这个函数接口的内容少,二来是这个是fork.c的最后一个函数。今天应该可以大致结束这个文件的代码粗略的略读了。 先对代码进行一个注释说明: 寻找空的进程,其实是在任务的数组中找到不是这个pid的任务,之后还得找到任务数组中有空余的位置。最后,返回空余位置即可。如果全都看了...

2021-04-13 21:39:04 8

原创 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 18

原创 589_在spacemacs中使用elpa mirror插件

全部学习汇总: https://github.com/GreyZhang/editors_skills 在此之前,我尝试过这个插件但是没有成功。今天又一次尝试,主要的原因是因为这个插件其实用于管理平台迁移时候的插件字节码生成很有帮助。我在多个平台切换的时候,遇到过重新编译整个插件的文件夹elisp文件失败的情况。 插件的安装,在spacemacs中比较简单。 只需要在这个列表中增加这个插件的名字,之后重启emacs即可。如果是简...

2021-04-12 23:15:14 14

原创 588_linux内核学习_fork.c中的copy_mem分析

全部学习汇总:https://github.com/GreyZhang/little_bits_of_linux 前面,囫囵吞枣过完了exit.c的文件。接下来继续看一个之前已经有点开端的文件fork.c。从第一直觉看,这个应该就是提供进程复制功能的。看了一下,其实文件中还是涉及到好几个函数接口的。不过,好在代码行数其实不多。这么看,囫囵吞枣式的分析代码,这个文件的分析应该会很快。 看了一下代码,增加注释说明如下: 没有什么需...

2021-04-10 21:43:09 10

原创 587_linux内核学习_sys_waitpid函数分析

全部学习汇总: https://github.com/GreyZhang/little_bits_of_linux 继续看exit.c,还剩下最后一个函数接口。 这个接口的调用,也是在汇编中调度的。 首先,接口填充到了这个调度表中。 而调度则是在这段汇编代码中,看起来,不整明白这堆代码,理解这部分多少有点无望了。...

2021-04-08 21:59:43 13

原创 586_linux内核学习_sys_exit函数的调用分析

全部学习汇总: https://github.com/GreyZhang/little_bits_of_linux 前面分析过do_exit函数,关于这个函数的调用有一个还在exit.c文件中。关于这个函数接口的设计是以及使用还是需要进一步看一下。 函数的设计就是传入一个错误码,然后补8bit的0作为退出码。 函数接口,也被写在了这个调度表中。这个看过好几次了,在汇编中有调度。 看起来,不弄明白这一...

2021-04-03 21:41:31 29

原创 585_linux内核学习_do_exit的执行分析

do_exit的执行分析全部学习汇总: 全部汇总之前分析了一下do_exit的实现,今天看看这个函数接口的调用情况。先看一下全部的函数调用情况:接下来,逐个看看。说起来,这种使用方式又是一个新鲜的模式。使用extern,声明的同时定义函数。其实,这个也很容易理解,结合之前我看的C语言教材中的一句话:通常函数的声明中,extern只是多此一举。这样的话,其实在理解的时候直接忽略掉即可。从名称以及内容看,这个应该是存储超出之后的处理接口,处理的方式则是提示加退出。...

2021-04-03 21:28:03 25

原创 584_linux内核学习do_exit函数分析

全部学习汇总: https://github.com/GreyZhang/little_bits_of_linux 继续看exit.c代码,这次看do_exit函数。 关于函数的调度,还得在后面的代码中继续分析。 总体感觉应该是针对于用户应用程序的。里面涉及到几个概念没有弄明白,如果这样下去,这个内核代码可能还得再看第二轮啊!...

2021-03-31 22:44:08 59

原创 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 17

原创 582_linux内核学习_检查一个进程组是否是孤立进程组

全部学习汇总: https://github.com/GreyZhang/little_bits_of_linux 其实,整个逻辑还是比较明确的。什么情况下是一个孤立进程组呢?那就是,查找了全部的任务,符合“任务的父任务用户组与传入用户组不同并且两个对话还是相同的”这个条件。 如果上面的条件,查找了全部任务一个都找不到成立的,那么这个就是出现了孤立的进程组。 我多少有一点不理解,为什么这个会是一个比较麻烦的事情。而从上面的注释...

2021-03-30 22:16:09 25

原创 581_linux内核学习_exit中的杀进程函数以及系统kill函数

全部的学习汇总: https://github.com/GreyZhang/little_bits_of_linux 这次打包,看2个接口。如果单纯一个接口可能会太少了,一起看两个吧! 这个函数的名称基本上没有什么大的问题,主要是带着权限以及相应的信号处理相应的进程。 这个函数的名字其实有点问题了,而之前我的疑惑可能也是因为这个接口的名字。这估计也是为什么shell命令中信号发送的命令是kill吧! 其...

2021-03-30 21:44:58 23

原创 580_linux内核学习_exit中两个进程以及进程组函数分析

全部学习汇总: https://github.com/GreyZhang/little_bits_of_linux 这次看两个进程以及进程组相关的接口实现。 其实,这个总体的设计思想还是很简单的,就是一个遍历查询。 感觉上,这个应该就是把一个信号向任务组中符合条件的任务发了一轮。 这里的err,其实有点不好理解。我个人的感觉是这个定义的地方,逗号运算符的行为与现在我用的平台以及工具的定义是不同的。...

2021-03-30 21:25:12 22

原创 579_linux内核学习_exit中的send_sig函数分析

全部的学习汇总: https://github.com/GreyZhang/little_bits_of_linux 继续分析这个额exit.c的文件,这次看一个比较简单的函数,send_sig。 这是一个内联函数,也是一个静态的函数。应该是考虑了效率以及访问的保护。这个函数大概看一下,基本上是一个信号的状态修改动作接口。 这个函数里面考虑了一些简单,比如说信号的忽略检查。其中应该有两个信号,涉及到任务的停止切换,比较特殊。...

2021-03-30 21:19:14 22

原创 578_linux内核学习_audit_ptree函数分析

全部学习汇总: https://github.com/GreyZhang/little_bits_of_linux 继续看内核代码,这次看一个很有意思的调试检测函数,audit_ptree。最初看这个函数的时候有点蒙圈,但是把树状结构的关系结合社会关系做一个类比,其实理解起来很容易。 这个函数基本就是用来做测试的,毕竟是对一系列任务进行扫描检查,数量不小。 首先需要确认的是一切任务(包括父子进程)都应该在列表之内,或者为空...

2021-03-28 21:48:30 23

原创 577_linux内核学习_bad_task_ptr函数分析

全部学习汇总: https://github.com/GreyZhang/little_bits_of_linux 结合之前采用的一个模型或者说思维模式,其实这个解释很容易。直接贴出我增加了注释的代码如下: 其实,在前面的release函数中,这个函数其实是可以用一下的。但是,看上去是没有用到。 其实,看起来还是不能直接用的。因为这个函数只能够判断有效性,但是无法找到接下来需要处理的地下交通站在哪里。...

2021-03-26 22:37:27 27

原创 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 52

原创 575_linux内核学习_release函数分析

全部学习汇总: https://github.com/GreyZhang/little_bits_of_linux 大概看了一下release的设计实现,我做了一个类比的注释。 其实,这种设计很类似于地下党组织的单线联系模式,也有点家庭社会群体的概念形式。根据这种类比,就比较容易理解了。 软件的调用也是很明确的,其实就是出现了僵尸进程的时候。对于僵尸进程,我现在的理解还比较肤浅,看起来对于这个函数真正使用的情况还得后面分析...

2021-03-26 22:00:32 14

原创 574_watch命令的使用

全部学习汇总: https://github.com/GreyZhang/bash_basic之前,为了监控树莓派上的温度并且实时更新,我还写过一个简单的小脚本。脚本中没有什么真材实料,只是通过python接口定时调用系统的命令接口而已。今天接触到了一个命令watch,感觉用来做这个工作太合适了,而且还有更好的感官体验。这次的测试我是在nanopi neo3上测试的,系统是ubuntu core。整体体验上,其实这个小机器的性能还是不错的,只是摸着有点烫手。这个也是我又重新来查看温度的一个原因。

2021-03-25 21:30:44 14

原创 573_玩客云安装qbittorrent

全部学习汇总:工具安装比较简单,但是网络上看到很多说法说这个得安装docker。关于工具的安装,直接执行如下命令:apt-get install qbittorrent-nox安装成功之后,运行qbittorrent-nox -d之后,可以通过8080端口在浏览器中访问。访问的方式可以使用Ip,也可以使用主机名。访问的效果如下:输入账号密码即可使用,账号admin,密码adminadmin。登录之后的效果:可以添加链接或者BT种子来下载资源。这个比较好的一个功

2021-03-21 11:38:14 63

原创 572_一加手机7上安装sz以及rz工具

全部学习汇总: https://github.com/GreyZhang/little_bits_of_linux 如果即时传送一些小文件,sz和rz还是很有用的,我这边尝试安装还是成功了的。安装方式也很简单,直接下载代码然后编译即可。 wget http://www.ohse.de/uwe/releases/lrzsz-0.12.20.tar.gz 运行以上命令,获取软件包。 tar zxvf lrzsz-0...

2021-03-07 15:41:24 37

原创 571_一加手机7上尝试搭建一个简单的C开发环境

全部学习汇总: https://github.com/GreyZhang/little_bits_of_linux 前面,在手机上安装了termux的环境。尝试安装了一批软件,这一次比较幸运完成了我一直想安装的emacs。看了一下,版本还是挺高的。 接下来,尝试安装下spacemacs,我直接把我自己以前用的文件包放进来。 解压缩,待会清除掉在windows上编译的elc文件,直接启动。 space...

2021-03-07 15:36:20 46

原创 570_termux中实现与安卓系统之间的文件共享

全部学习汇总: https://github.com/GreyZhang/little_bits_of_linux 之前发现,termux的文件无法实现与安卓之间的共享。本来以为是必须要root之后才可以,后来查看了下发现本身其实termux就可以支持。 只要输入 termux-setup-storage 之后,提示确认即可。会提示相应目录会被清空。我这边也就不再进行第二次演示做记录。之后,会生成如下的目录:...

2021-03-07 14:25:14 115

原创 569_termux下查看一加7手机的配置信息以及基本系统信息

全部学习汇总: https://github.com/GreyZhang/little_bits_of_linux 在一加手机7上再度安装了termux,部署了ssh服务。接下来你看看手机的基本情况: 首先,lsb_release的命令不支持,可能少安装了一些软件包吧。这部分信息暂且不看了。接下来,先看看处理器。 看上去,的确是比树莓派赏心悦目多了。我好奇,这个功耗会是多少? 看一下任务的基础情况,而存...

2021-03-07 13:00:13 67

原创 568_termux工具安装信息以及基于此实现ssh远程访问安卓

全部学习汇总: https://github.com/GreyZhang/little_bits_of_linux 这个,其实算是我学习树莓派的续篇。 为什么想考虑这样的一个功能实现呢?其实我想实现手机与PC之间的文件互传,并且我不想用数据线。我目前家中的网络有树莓派搭建的NAS和一个群晖,第一步的考虑自然是先利用群晖。以往,我也用过,但是后来发现我遇到了一个问题:好几种方式下,群晖的各种终端工具都把文件的数目限制在了1000个。而我这次想要传输的是...

2021-03-07 12:27:09 36

原创 567_linux内核学习_signal.c文件的泛读与分析

全部学习汇总: https://github.com/GreyZhang/little_bits_of_linux 这次,把signal.c的文件全都看一下,粗略泛读。后面应该也是这么个模式,不会像之前分的那么细了。 这一部分,其实之前是看过了的。 这部分,前面也看过了。主要是信号挂起的处理,我觉得技巧点应该是在于形参处理与寄存器操作的结合。 这两个函数,从命名看的话我们需要站在内核的角度来看。存储...

2021-03-07 11:20:23 33

原创 566_linux内核学习_信号挂起函数分析

全部学习汇总: https://github.com/GreyZhang/little_bits_of_linux 看一下信号挂起函数的设计: 首先是函数的注释说明。 接下来看看函数实现。 关于函数的调用,在代码中搜索,其实又回到了汇编代码的那一部分。 还是通过对这个系统调用表的处理来实现的。 感觉上,这里面的寄存器的信息获取,很可能是把函数的参数获取到了...

2021-03-07 11:16:04 45

原创 565_C语言中关于减号操作符使用的一点小细节以及曾经的误解

全部学习汇总: https://github.com/GreyZhang/c_basic 看到了一段代码: 上面这段代码来自于linux早期的内核代码,而让我突然间觉得不适应的是71行,在一个宏定义前面直接增加了一个符号。这样,合理吗?当然是合理的,只是我自己没有这么用过而已。 其实,我们可以缩减一下代码,做一个简单的demo。 也就是这个样子了,做一个编译测试: 其实,看到结果...

2021-03-06 16:25:50 164

原创 564_linux内核学习_信号掩码的获取以及设置

全部学习汇总: https://github.com/GreyZhang/little_bits_of_linux 这一次开始看信号的设计模块文件,signal.c。这个模块的设计,用到了很多POSIX的接口设计。而信号的一些数据结构的定义,其实是在POSIX相关的库文件里面提供的。 关于信号的一些设计,主要是在11行包含的这个头文件里面进行的声明或者定义。 接下来,先看两个最简单的函数,作为这个模块学习的一个开篇。...

2021-03-06 14:24:35 41 1

原创 563_linux主机之间使用命令行进行文件拷贝

全部学习汇总: https://github.com/GreyZhang/little_bits_of_linux 想把自己NAS上的文件转一部分到挂载在树莓派上的硬盘,本来想先拷贝到windows之后再拷贝到的树莓派的samba。后来想想麻烦,应该有什么网络的传输方式才对。 试了一下samba,没有成功挂载磁盘。找了一个单个文件测试ssh的scp倒是成功了。接下来,直接做一个拷贝。 我还是使用之前的tmux,只要是看到有拷贝动作...

2021-03-06 11:49:08 30

原创 562_debian buster中尝试修改时间

全部学习汇总: https://github.com/GreyZhang/little_bits_of_linux玩客云的armbian现在用着还是有些问题,一个典型的问题就是时间不对。其实,我的时间大概落后了三个小时。使用timedatectl list-timezones可以列出系统支持的时区设置。至于我要选择的,应该是东八区。东八区的时区代表应该是这里的亚洲香港。接下来,尝试设置时区:timedatectl set-timezone Asia/Hong_Kong。设

2021-03-02 21:18:23 64

原创 561_尝试分析NAS自动重启的原因

全部学习汇总: https://github.com/GreyZhang/little_bits_of_linux这可能是我尝试解决我遇到得linux服务的第一个问题,借助于网络上的各种资料。而且,还不一定能够解决,但是我觉得这种尝试的经历还是值得去记录一下的。我整了一个armbian的NAS,使用的过程中学会了使用top命令,这个命令除了可以提供给我一般的进程信息之外,还能够让我看到开机时间。而且,只要是ssh首次连接,我也能够看到这个开机时间。但是,我有点好奇的是我的树莓派持续很多天不关机其实是

2021-03-02 21:15:10 215

原创 560_linux内核学习_sched.c文件sched_init函数分析

全部学习汇总: https://github.com/GreyZhang/little_bits_of_linux 今天看看这个sched.c的文件中的sched_init函数,且不说能够收获什么,看完这个函数肯定能够让我松一口气。看完这个,这个文件的分析学习也就到此为止了。 首先应该是有一个数据类型应该是先了解看看: 应该说是一个结构体而不是一个数据类型了,具体的定义如下: 这里定义了一个数据类型,其...

2021-03-02 00:11:11 83

原创 559_使用iostat查看磁盘的读写情况

全部学习汇总: https://github.com/GreyZhang/little_bits_of_raspberry_pi 前面,安装并使用过iotop,基本能够看得出磁盘的读写情况,实时显示。今晚上看到了一个新命令,iostat,测试了一下老母鸡的armbian是内置的。 我想在树莓派上用一下发现没有这个名,尝试做了安装。安装需要通过sudo apt-get install sysstat,效果如下: 之后,输入ios...

2021-03-01 22:33:30 83

原创 558_linux内核学习_几个获取进程ID的函数

全部学习汇总: https://github.com/GreyZhang/little_bits_of_linux 继续看sched.c,这次看几个简单的函数。看完结束今天的学习,眼看这个文件终于快到底了。(哭笑) 直接看代码吧! 其实,最后一个不是这个功能相关的,但是看着似乎不是很麻烦,一起打包了。关于进程ID、父进程ID、用户ID、有效用户ID、用户组ID、有效用户组ID。这些功能的获取都是很简单的,其实就是一个结构体的成...

2021-02-28 22:36:02 43

原创 557_linux内核学习_sys_alarm函数的功能以及分析

全部学习汇总: https://github.com/GreyZhang/little_bits_of_linux 继续之前么有分析完的内核文件sched.c,这一次看一个比较简单的函数sys_alarm。源代码如下: 接下来,按照初步的理解做一个注释: 其实,这里就是一个alarm数值的获取判断。 继续往下,看看这个函数的调用。windows的emacs有点小慢,卡顿,我试试切换WSL的模式。...

2021-02-28 22:12:29 37

空空如也

grey_csdn的留言板

发表于 2020-01-02 最后回复 2020-05-15

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除