上一页 1 ··· 73 74 75 76 77 78 79 80 81 ··· 101 下一页
摘要: 注意,强符号和弱符号都是针对定义来说的,不是针对符号的引用。 一、概述 在C语言中,函数和初始化的全局变量(包括显示初始化为0)是强符号,未初始化的全局变量是弱符号。 对于它们,下列三条规则使用: ① 同名的强符号只能有一个,否则编译器报"重复定义"错误。 ② 允许一个强符号和多个弱符号,但定义会选 阅读全文
posted @ 2018-01-11 17:59 zzfx 阅读(427) 评论(0) 推荐(0) 编辑
摘要: 一、编译链接 在编写linux驱动程序时,时常会发现链接出错,当时往往不知道错误在哪。现在了解到链接器的工作原理之后,明白当时为什么出错了。对于以后有效率地编写驱动程序有很大帮助。一个C语言程序,经过诸如GCC之类的编译器编译成可执行文件一般会经历4个处理过程,这个大部分的linux入门书籍都有讲到 阅读全文
posted @ 2018-01-10 22:01 zzfx 阅读(479) 评论(0) 推荐(1) 编辑
摘要: 链接器如何解析多重定义的全局符号 在编译时,编译器向会便器输出每个全局符号,汇编器把这些信息隐含地编码在可重定位目标文件的符号表内。函数和初始化的全局变量是强符号,未初始化的全局变量是弱符号。根据强弱符号的定义,unix链接器使用以下规则处理多重定义的符号:1)不允许有多个重定义符号是强符号;2)如 阅读全文
posted @ 2018-01-10 21:59 zzfx 阅读(703) 评论(0) 推荐(0) 编辑
摘要: 编译器生产组件; 链接器将这些组件拼装到一起。 阅读全文
posted @ 2018-01-10 20:09 zzfx 阅读(227) 评论(0) 推荐(0) 编辑
摘要: hook的本质就是在本原可执行文件中加东西。 本质就是添加东西; 阅读全文
posted @ 2018-01-10 18:23 zzfx 阅读(308) 评论(0) 推荐(0) 编辑
摘要: 在Mac的开发中, 有没有想过当我们点击可执行文件之后,Mac究竟做了什么事情才让我们的程序运行起来? 对于应用层开发人员或者普通的用户而言, 其实无需知道的这么详细;但是对于内核开发人员而言, 如果能了解这一系列的过程, 那么将增强我们的内核的开发功底。 那么下面我们开始分析我们的鼠标点击之后, 阅读全文
posted @ 2018-01-10 18:03 zzfx 阅读(1140) 评论(2) 推荐(0) 编辑
摘要: 通过分析下面这个最熟悉的可执行文件,来好好总结和了解下Mach-O这种文件格式,并且也总结下系统在执行可执行文件几个过程: + 解析文件 + 依赖建立 + 初始化运行环境 + 执行进程 http://blog.csdn.net/bjtufang/article/details/50628310 阅读全文
posted @ 2018-01-10 18:00 zzfx 阅读(265) 评论(0) 推荐(0) 编辑
摘要: 业务域:事务; 功能域:分层、分块; 技术域:实现。 阅读全文
posted @ 2018-01-08 21:57 zzfx 阅读(110) 评论(0) 推荐(0) 编辑
摘要: 1)文档描述; 2)模型描述; 3)架构描述; 4)代码描述; 阅读全文
posted @ 2018-01-08 21:41 zzfx 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 结构、角色、职责。 阅读全文
posted @ 2018-01-08 19:29 zzfx 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 优化系统结构,使信息和物质流在结构内的流动更畅通。 构造定律(constructal law) 优化系统结构,使信息和物质流在结构内的流动更畅通。 构造定律(constructal law) 由Adrian Bejan于1995创立的构造定律(constructal law): For a fini 阅读全文
posted @ 2018-01-08 14:44 zzfx 阅读(735) 评论(0) 推荐(0) 编辑
摘要: 快看!看!深入研究自然,你就会明白一切。 - 爱因斯坦 复杂性是被低估的。复杂越高,开发人员会感到不安。对其的理解认知负荷代价就越高,我们就更不快乐。真正的挑战是在构建我们的系统时要保持其有序以及工程师的生产方式。对于这一点,一个简单的物理规律可以帮助我们:构造定律 the Constructal 阅读全文
posted @ 2018-01-07 22:35 zzfx 阅读(416) 评论(0) 推荐(0) 编辑
摘要: 1)结构; 2)算法(业务逻辑) 阅读全文
posted @ 2018-01-07 22:29 zzfx 阅读(455) 评论(0) 推荐(0) 编辑
摘要: 1、什么是socket 我们知道进程通信的方法有管道、命名管道、信号、消息队列、共享内存、信号量,这些方法都要求通信的两个进程位于同一个主机。但是如果通信双方不在同一个主机又该如何进行通信呢?在计算机网络中我们就学过了tcp/ip协议族,其实使用tcp/ip协议族就能达到我们想要的效果,如下图(图片 阅读全文
posted @ 2018-01-05 20:58 zzfx 阅读(408) 评论(0) 推荐(0) 编辑
摘要: inode是一个重要概念,是理解Unix/Linux文件系统和硬盘储存的基础。 我觉得,理解inode,不仅有助于提高系统操作水平,还有助于体会Unix设计哲学,即如何把底层的复杂性抽象成一个简单概念,从而大大简化用户接口。 下面就是我的inode学习笔记,尽量保持简单。 理解inode 作者:阮一 阅读全文
posted @ 2018-01-05 19:26 zzfx 阅读(227) 评论(0) 推荐(0) 编辑
摘要: 关键术语: 超级快(super block)对象: 一个超级块对应一个具体的文件系统(已经安装的文件系统类型如 ext2,此处是实际的文件系统,不是 VFS)。 iNode 对象: inode是内核文件对象的元数据,inode 仅仅只是保存了文件对象的属性信息,包括:权限、属组、数据块的位置、时间戳 阅读全文
posted @ 2018-01-05 18:57 zzfx 阅读(468) 评论(0) 推荐(0) 编辑
摘要: VFS所支持的文件系统类型可以归结为以下三大类: 基于磁盘的文件系统(Ext2, Ext3等) 网络文件系统(NFS等) 特殊文件系统(proc, sysfs) Linux的目录形成一个树形结构,根目录是 /。根目录位于根文件系统中。在Linux中通常是Ext2或Ext3。其他文件系统挂载在根文件系 阅读全文
posted @ 2018-01-05 18:49 zzfx 阅读(433) 评论(0) 推荐(0) 编辑
摘要: VFS的面向对象的思想,如下图: VFS在上层用户空间的进程与底层特定文件系统之间起到一个承上启下的作用, 对上:封装标准的系统调用接口给用户空间app,user space app不必关心特定文件系统的实现细节。 对下:抽象出标准的开发接口给真实文件系统,只要实现这些接口,就可以实现一个新的真实文 阅读全文
posted @ 2018-01-05 16:51 zzfx 阅读(696) 评论(0) 推荐(0) 编辑
摘要: Facade(外观)模式为子系统中的各类(或结构与方法)提供一个简明一致的界面,隐藏子系统的复杂性,使子系统更加容易使用。 阅读全文
posted @ 2018-01-05 16:30 zzfx 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 结:联系、连接、结合、节,组合的部位; 构:要素、构成、构造。 用于描述部分、整体及联系。 阅读全文
posted @ 2018-01-05 15:02 zzfx 阅读(737) 评论(0) 推荐(0) 编辑
上一页 1 ··· 73 74 75 76 77 78 79 80 81 ··· 101 下一页