
Linux
文章平均质量分 88
系统编程、网络编程等等
爱写流水账的NiGo
塞翁失马,焉知非福。
展开
-
Linux:从min宏开始入手LKM
引言本学期开了陈老师的OS课程,作业比较丰富。对于我这种放飞自我的人来说,作业是“选做 = 不做,必做 = 乱做”的,但是点进去任务的页面,稍微看了一眼觉得挺感兴趣的,也有一点点自己的小问题,决定记录一下。任务如下:任务详情搭建Linux环境,编写Linux内核模块,二选一或者都做1.编写Linux内核模块,并求最大数,参考,https://mp.weixin.qq.com/s/0ZVNbTj7fGs8Gi03vj541A和 https://mp.weixin.qq.com/s/Kvle_fgr原创 2021-09-11 22:12:19 · 2049 阅读 · 1 评论 -
Docker:overlay2浅析
目录引言Union File Systemoverlay和overlay2参考引言之前大一看《鸟哥的Linux私房菜》时,了解到mount命令。大概是这么个意思:将一个块设备挂载到目录上,使得访问该目录时相当于访问该设备,挂载时,原目录的内容将暂时被隐藏,而不会消失。看来Linux的虚拟文件系统还是很“海纳百川”的嘛。下面也说说我这一年对mount命令基础用法的一些实践:插U盘时,我们可以整一些小花样,不通过Linux的一些图形化文件管理器打开它时(使用这些管理器时实际上会自动帮我们挂载到run原创 2021-04-22 15:34:37 · 11874 阅读 · 2 评论 -
鸟哥的Linux私房菜学习笔记(一):文件、目录与磁盘格式
目录第6章 Linux的文件权限与目录配置第7章 Linux文件与目录管理第6章 Linux的文件权限与目录配置Page: 139-160Linux是一个多用户、多任务的系统,因此可能常常有多人同时使用这台主机来工作,考虑到个人隐私和喜好,文件所有者这个概念的就显得很重要了。每个账号都可以有多个用户组支持。root是万能的“天神”。出现“Permission deny”是权限设置错误...原创 2020-03-27 23:27:23 · 341 阅读 · 0 评论 -
abi:用json解析和对比linux平台下elf文件
目录引言parse_elf_jsonc.ccompare_elf_cJSON.c引言前段时间接触到了跟abi(注意不是api)相关的知识,简单的了解了一下elf文件格式并写了两个小样例。具体的步骤为:修改readelf命令源码,增加其对h、S、l参数的json输出(修改后的代码过长就不放了)。可以不修改json源码,我用linux平台下的json-c写了一个自己的样例。对比获得的json文件,这里我用cJSON写了一个针对改后readelf的简单对比。说实话对这方面兴趣真不大,发这篇博客当原创 2021-03-28 22:29:00 · 535 阅读 · 1 评论 -
Linux系统编程:多线程交替打印ABC
引言分享关于线程的一道测试题,因为网上基本都是Java的解决方法,决定自己写一篇来记录一下线程的学习。问题描述编写一个至少具有三个线程的程序(称之为线程 A、B 和 C),其中线程 A 输出字符’A’,线程 B 输出字符’B’,线程 C 输出字符’C’。使得最终输出结果为“ABCABCABC…”。思路拿到这题后,我的想法是把问题简化。原题让我们交替打印ABC,那么我们只要先考虑如何交替打印AB即可,然后在B之后衔接C,在C之后衔接A即可。那么,如何使两个线程能够按照顺序去执行任务呢?关于线程原创 2020-07-21 22:16:06 · 2941 阅读 · 1 评论 -
Linux网络编程:简易客户端和服务端的实现
Directory通信流程服务端客户端一些小问题服务端代码客户端代码通信流程服务端socket()—>创建套接字(用于监听)bind()------>绑定地址结构listen()----->设置最大监听套接字数量accept()---->阻塞等待客户端连接(返回一个新的套接字用于通信)read()------->读取数据foo()--------->处理数据write()------->写回数据close()------->返回第5步或结原创 2020-06-11 22:09:28 · 1729 阅读 · 0 评论 -
Linux系统编程:生产者消费者问题
Description生产者消费者共享缓冲区,生产者向缓冲区中放数据,消费者从缓冲取中取数据,当缓冲区中被放满时,生产者进程就必须进入挂起状态,直到消费者从缓冲中取走数据时,生产者才能继续向缓冲区中存放数据,同样当缓冲取中没有数据时,消费者进程就必须进入挂起休眠状态,直到生产者向缓冲区中放入数据时,消费者才能被唤醒继续从缓冲区中取走数据。分析首先介绍我相对熟悉的sem写法:用数组并对其下标进行简单的%操作来实现环形数组,用于生产/消费产品。该写法的核心是定义两个sem,一个用来表示剩余可容纳的产原创 2020-06-06 19:30:35 · 1751 阅读 · 0 评论 -
Linux系统编程:哲学家问题
Description有五个哲学家绕着圆桌坐,每个哲学家面前有一盘面,两人之间有一支筷子,这样每个哲学家左右各有一支筷子。哲学家有2个状态,思考或者拿起筷子吃饭。如果哲学家拿到一只筷子,不能吃饭,直到拿到2只才能吃饭,并且一次只能拿起身边的一支筷子。一旦拿起便不会放下筷子直到把饭吃完,此时才把这双筷子放回原处。如果,很不幸地,每个哲学家拿起他或她左边的筷子,那么就没有人可以吃到饭了。分析该问题涉及Linux系统编程中经典的线程同步问题。本篇采用信号量sem来实现。信号量sem相当于进阶版的mute原创 2020-06-06 19:12:43 · 948 阅读 · 0 评论 -
Linux系统编程:my_ls(l、R、A、r、n、h、i、颜色的实现)
参数的解析输出对齐原创 2020-04-02 10:36:55 · 775 阅读 · 2 评论 -
LinuxC编程实战学习笔记(一)
目录4.5 调试器gdb4.5 调试器gdbPage:95 - 104/* 启动 */$ gcc -g test.c -o test //-g参数必须加$ gdb test //gdb 程序文件名 加上-q参数不输出版权说明$ gdb -q //也可以直接输入gdb,用file命令装入需要调试的程序(gdb) file test //(...原创 2020-03-29 15:38:14 · 421 阅读 · 0 评论