摘要: 之前结合网上博客整理的笔记,希望能帮你解除疑惑! 阅读全文
posted @ 2019-10-27 09:42 Duikerdd 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 先解释一下Shell : Shell是一个功能为命令行解释器的应用程序,连接了用户和Linux内核,让我们能高效和安全地使用Linux内核。 要写一个minishell,我们要先理解它的过程: 读取输入->>命令解析->>创建子进程->>(子进程)程序替换->>(父进程)进程等待 代码及注释如下: 阅读全文
posted @ 2019-10-26 13:57 Duikerdd 阅读(559) 评论(0) 推荐(0) 编辑
摘要: 学了冯诺依曼体系结构,我们知道: 硬件决定软件行为,数据都是围绕内存流动的。 可想而知,内存是多么重要。当然,我们这里说的内存是虚拟内存(详情看Linxu壹之型)。 1.C/C++内存布局 2.C语言动态内存管理方式 申请内存 : malloc/calloc/realloc 释放 : free ma 阅读全文
posted @ 2019-10-26 11:31 Duikerdd 阅读(2576) 评论(0) 推荐(5) 编辑
摘要: malloc/free和new/delete傻傻分不清?动态内存管理的面试题难道你了?来看这篇文章,包你全会。 1.malloc/free和new/delete的区别 (1)malloc/free是函数, new/delete是操作符; (2)malloc/free不会调用构造/析构函数,new/d 阅读全文
posted @ 2019-10-25 12:09 Duikerdd 阅读(400) 评论(0) 推荐(0) 编辑
摘要: 分享知乎上看到的一句话,共勉: 学习周期分为学习,思考,实践,校正四个阶段,周期越短,学习效率越高。 前面讲的都是操作系统如何管理进程,接下来,看看用户如何进行进程控制。 1.进程创建 先介绍一下函数: pid_t fork(void); 返回值: 子进程返回0 父进程返回子进程id,创建子进程失败 阅读全文
posted @ 2019-10-23 14:45 Duikerdd 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 1.环境变量是什么? 环境变量一般是指在操作系统中指定系统运行环境的一些功能性参数。 比如,我们运行程序链接的静态/动态库,不需要知道它的位置也能链接成功,就是因为有相关环境变量帮助我们查找,环境变量可以简化我们的操作。 简化操作实例: 1.我们写个hello.c文件,并gcc出可执行文件 2.测试 阅读全文
posted @ 2019-10-16 09:07 Duikerdd 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 1.程序地址空间 首先,我们先看学c/c++时候学到的程序内存布局: 准确地说,程序地址空间其实就是进程的地址空间,实际就是pcb中的mm_struct。 接下来,我们用fork()演示一下进程的地址空间。 //父子进程数据独有demo 1 #include<stdio.h> 2 #include< 阅读全文
posted @ 2019-10-15 15:26 Duikerdd 阅读(737) 评论(0) 推荐(0) 编辑
摘要: 1.什么是进程? 对用户来说,进程是正在运行的程序。 进程由程序,数据,和PCB组成。 对操作系统来说,进程就是PCB,PCB包含了正在运行程序的全部信息。 比如标识符,状态,优先级,内存指针,上下文数据等 Linux下PCB叫task_struct。 2.进程的描述信息 内存指针: 程序和数据运行 阅读全文
posted @ 2019-10-13 10:24 Duikerdd 阅读(301) 评论(0) 推荐(0) 编辑
摘要: 最近复习C语言,对反汇编感兴趣,就用下图举例解释一下我的理解,如有错还请大佬指教。 首先,认识两个常用指令 : lea > 取地址赋值 mov > (同类型)赋值 其次理解 dword ptr [] : dword(double word)即双字,也就是四字节 ptr(point)即指针 []放的是 阅读全文
posted @ 2019-08-11 14:36 Duikerdd 阅读(744) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2019-02-09 18:18 Duikerdd 阅读(1018) 评论(0) 推荐(0) 编辑