上一页 1 ··· 20 21 22 23 24

2018年2月13日

ext2文件系统

摘要: 很久以来,就想写一篇关于ext 家族文件系统的文章,源于我刚工作的时候,曾经一不小心rm -rf,误删除了很多文件,当时真想有个数据恢复软件能帮我把数据回复了。当然学习数据恢复,首先要学习文件系统。最近工作原因,好长时间没看学习Linux kernel 相关的东西,感觉面目可憎。扯远了,开始我们的e 阅读全文

posted @ 2018-02-13 20:28 AlanTu 阅读(543) 评论(0) 推荐(0) 编辑

与进程相关的文件系统

摘要: 进程是通过文件描述符(file descriptor,fd)来访问文件的,每个进程最多能同时使用NR_OPEN个文件描述符,这个值在include/linux/limits.h中定义为1024。每一个进程用一个打开文件表files_struct来描述进程的文件描述符使用情况。每一个文件都有一个文件指 阅读全文

posted @ 2018-02-13 20:27 AlanTu 阅读(810) 评论(0) 推荐(0) 编辑

Linux VFS数据结构

摘要: 先说明一下,linux内核中各种数据结构也不停的在变,所以不同版本的内核各个数据结构的定义可能会差别很大,这一组关于linux 文件系统的文章中的代码都摘自linux-2.6.34.1。 VFS依赖于数据结构来保存其对于一个文件系统的一般表示。 超级块结构:存放已安装的文件系统的相关信息 索引节点结 阅读全文

posted @ 2018-02-13 20:20 AlanTu 阅读(995) 评论(0) 推荐(0) 编辑

虚拟文件系统

摘要: VFS的层次 文件系统实现与用户进程(或C库)之间。 文件系统分类 基于磁盘的文件系统(ext2/3 fat iso9660…)、虚拟文件系统(proc)、网络文件系统(nfs) 通用文件模型 VFS提供一种结构模型,包含了一个强大的文件系统所应具备的所有组件。所有的文件系统实现,都必须提供与VFS 阅读全文

posted @ 2018-02-13 20:19 AlanTu 阅读(1043) 评论(0) 推荐(0) 编辑

linux文件系统 - 初始化(三)

摘要: 执行init程序 一、目的 内核加载完initrd文件后,为挂载磁盘文件系统做好了必要的准备工作,包括挂载了sysfs、proc文件系统,加载了磁盘驱动程序驱动程序等。接下来,内核跳转到用户空间的init程序,由init完成创建磁盘设备文件、加载磁盘文件系统、从rootfs切换到磁盘根文件系统等工作 阅读全文

posted @ 2018-02-13 20:16 AlanTu 阅读(1688) 评论(0) 推荐(0) 编辑

linux文件系统 - 初始化(二)

摘要: 加载initrd(上) 一、目的 本文主要讲述linux3.10文件系统初始化过程的第二阶段:加载initrd。 initrd是一个临时文件系统,由bootload负责加载到内存中,里面包含了基本的可执行程序和驱动程序。在linux初始化的初级阶段,它提供了一个基本的运行环境。当成功加载磁盘文件系统 阅读全文

posted @ 2018-02-13 20:14 AlanTu 阅读(843) 评论(0) 推荐(0) 编辑

linux文件系统 - 初始化(一)

摘要: 术语表: struct task:进程 struct mnt_namespace:命名空间 struct mount:挂载点 struct vfsmount:挂载项 struct file:文件 struct super_block:超级块 struct dentry:目录 struct inode 阅读全文

posted @ 2018-02-13 20:09 AlanTu 阅读(4151) 评论(0) 推荐(0) 编辑

fork()和写时复制

摘要: 写时复制技术最初产生于Unix系统,用于实现一种傻瓜式的进程创建:当发出fork( )系统调用时,内核原样复制父进程的整个地址空间并把复制的那一份分配给子进程。这种行为是非常耗时的,因为它需要: · 为子进程的页表分配页面 · 为子进程的页分配页面 · 初始化子进程的页表 · 把父进程的页复制到子进 阅读全文

posted @ 2018-02-13 16:52 AlanTu 阅读(1161) 评论(0) 推荐(0) 编辑

Linux共享内存使用常见陷阱与分析

摘要: 所谓共享内存就是使得多个进程可以访问同一块内存空间,是最快的可用IPC形式。是针对其他通信机制运行效率较低而设计的。往往与其它通信机制,如 信号量结合使用,来达到进程间的同步及互斥。其他进程能把同一段共享内存段“连接到”他们自己的地址空间里去。所有进程都能访问共享内存中的地址。如果一 个进程向这段共 阅读全文

posted @ 2018-02-13 16:51 AlanTu 阅读(1060) 评论(0) 推荐(0) 编辑

linux可重入、异步信号安全和线程安全

摘要: 一 可重入函数 当一个被捕获的信号被一个进程处理时,进程执行的普通的指令序列会被一个信号处理器暂时地中断。它首先执行该信号处理程序中的指令。如果从信号处理 程序返回(例如没有调用exit或longjmp),则继续执行在捕获到信号时进程正在执行的正常指令序列(这和当一个硬件中断发生是所发生的事情相 似 阅读全文

posted @ 2018-02-13 16:36 AlanTu 阅读(719) 评论(0) 推荐(0) 编辑

Linux中断的系统调用

摘要: 早期UNIX系统的一个特性是:如果在进程执行一个低速系统调用而阻塞期间捕捉到一个信号,则该系统调用就被中断不再继续执行。该系统调用返回出错,其errno设置为EINTR。这样处理的理由是:因为一个信号发生了,进程捕捉到了它,这意味着已经发生了某种事情,所以是个好机会应当唤醒阻塞的系统调用。 为了支持 阅读全文

posted @ 2018-02-13 16:32 AlanTu 阅读(2895) 评论(0) 推荐(0) 编辑

库与运行库

只有注册用户登录后才能阅读该文。 阅读全文

posted @ 2018-02-13 16:18 AlanTu 阅读(36) 评论(0) 推荐(0) 编辑

线程的概念

摘要: 1 什么是线程 线程,有时被称为轻量级进程,是程序执行的最小单元。一个标准的线程由线程ID、 程序计数器(pc)、一组寄存器和堆栈组成。通常,一个进程由多个线程组成,每个线程之间共享进程的内存空间(包括代码段、数据段、堆等)及一些进程级的 资源(如打开的文件描述符和信号)。如下图所示: 2 线程的访 阅读全文

posted @ 2018-02-13 16:15 AlanTu 阅读(380) 评论(0) 推荐(0) 编辑

C++ 虚函数表浅析

摘要: 一、背景知识(一些基本概念) 虚函数(Virtual Function):在基类中声明为 virtual 并在一个或多个派生类中被重新定义的成员函数。 纯虚函数(Pure Virtual Function):基类中没有实现体的虚函数称为纯虚函数(有纯虚函数的基类称为虚基类)。 C++ “虚函数”的存 阅读全文

posted @ 2018-02-13 16:07 AlanTu 阅读(261) 评论(0) 推荐(0) 编辑

C++虚函数工作原理

摘要: 一、虚函数的工作原理 虚函数的实现要求对象携带额外的信息,这些信息用于在运行时确定该对象应该调用哪一个虚函数。典型情况下,这一信息具有一种被称为 vptr(virtual table pointer,虚函数表指针)的指针的形式。vptr 指向一个被称为 vtbl(virtual table,虚函数表 阅读全文

posted @ 2018-02-13 16:05 AlanTu 阅读(596) 评论(0) 推荐(0) 编辑

深入浅出单实例Singleton设计模式

摘要: 单实例Singleton设计模式可能是被讨论和使用的最广泛的一个设计模式了,这可 能也是面试中问得最多的一个设计模式了。这个设计模式主要目的是想在整个系统中只能出现一个类的实例。这样做当然是有必然的,比如你的软件的全局配置信 息,或者是一个Factory,或是一个主控类,等等。你希望这个类在整个系统 阅读全文

posted @ 2018-02-13 15:41 AlanTu 阅读(224) 评论(0) 推荐(0) 编辑

《角斗士》一个帝国的史诗绝唱

摘要: 公元前27年的世界地理版图如果可以像霍格沃茨里的魔法那样被装裱在一个永远具有生命力的相框里,那么这幅照片注定只有一个名字。是的,罗马。 不可一世的奥古斯都大帝带着他的罗马骑兵将罗马帝国的印记刻在了整个世界近五分之一的地域。埃及女王克莱奥帕特拉那条带领她走向毁灭的毒蛇,见证了一个不 可复制的帝国的诞生 阅读全文

posted @ 2018-02-13 15:36 AlanTu 阅读(1661) 评论(0) 推荐(0) 编辑

《妖猫传》大唐盛世背后那些事

摘要: 即使不看服化道,只看剧情,这也是今年国产的最佳电影。理由如下。 《妖猫传》的核心主旨并不是大唐风流的展现、更不是讲述一个无聊的人人都爱杨贵妃的玛丽苏故事。 其实,这个故事并不简单,它真正想要表达的东西就隐藏在片子中,等待有心人的发现。 大家一定记得,白居易和空海刚组队时,曾经看过一场幻术表演:瓜翁用 阅读全文

posted @ 2018-02-13 15:25 AlanTu 阅读(501) 评论(0) 推荐(0) 编辑

程序员之路

摘要: 前言 你是否觉得自己从学校毕业的时候只做过小玩具一样的程序?走入职场后哪怕没有什么经验也可以把以下这些课外练习走一遍(朋友的抱怨:学校课程总是从理论出发,作业项目都看不出有什么实际作用,不如从工作中的需求出发) 建议: 不要乱买书,不要乱追新技术新名词,基础的东西经过很长时间积累而且还会在未来至少1 阅读全文

posted @ 2018-02-13 13:31 AlanTu 阅读(270) 评论(0) 推荐(0) 编辑

职业规划

摘要: 认识自己 人生的规划很重要,从上大学时就要好好规划,这对国人来说尤其重要。因为对于国人来说,人生的头20年都是被别人规划的,导致了自己根本不会给自己做规划。这点是相当危险的。 人生短暂,属于自己黄金的时间不多,如果把太多的时间浪费在寻找道路和方向上,很有可 能会导致一事无成,要及早确定自己的规划,然 阅读全文

posted @ 2018-02-13 12:49 AlanTu 阅读(223) 评论(0) 推荐(1) 编辑

一些重要的算法 - 索引

摘要: 下面是一些比较重要的算法,原文罗 列了32个,但我觉得有很多是数论里的,和计算机的不相干,所以没有选取。下面的这些,有的我们经常在用,有的基本不用。有的很常见,有的很偏。不过了解 一下也是好事。也欢迎你留下你觉得有意义的算法。(注:本篇文章并非翻译,其中的算法描述大部份摘自Wikipedia,因为维 阅读全文

posted @ 2018-02-13 11:33 AlanTu 阅读(362) 评论(0) 推荐(0) 编辑

面试官如何招聘程序员 - 续

摘要: 谈谈关于招聘和面试这方面的东西,主要是以下这些原因: 近半年来我在进行了大量的招聘工作,对面试有一些新的体会。 酷壳最近发布了几篇趣味面试题(面试题一,面试题二,面试题三),从回复中让我有一些思考。 我有一个同事最近面试了一家公司,他和我分享了一个博士专家对他的面试,也让我思考了一些。 在豆瓣上看到 阅读全文

posted @ 2018-02-13 11:13 AlanTu 阅读(255) 评论(0) 推荐(0) 编辑

面试官如何招聘程序员

摘要: 工作这么多年来,即被面试过,也面试过他人,对于程序员的面试,经历过很不错的面试,很专业的面试,也经历过一些BT和令人不爽的面试,我个人觉得 一个好的面试,面试官是很重要的,所以,本文想从“面试官”的角度来阐述一下。于是,有了下面这样一篇的文章,希望本文对你的职场经历有用,特别是那些正 在招聘和面试程 阅读全文

posted @ 2018-02-13 11:11 AlanTu 阅读(364) 评论(0) 推荐(0) 编辑

趣味面试题

摘要: 1.“火柴棍式”程序员面试题 有时候,有些面试题是很是无厘头,这不,又有一个,还记得小时候玩的的“火柴棍游戏”吗,就是移动一根火柴棍改变一个图或字的游戏。程序面试居然也可以这么玩,看看下面这个火柴棍式的程序面试题吧。 下面是一个C程序,其想要输出20个减号,不过,粗心的程序员把代码写错了,你需要把下 阅读全文

posted @ 2018-02-13 10:59 AlanTu 阅读(1145) 评论(0) 推荐(0) 编辑

上一页 1 ··· 20 21 22 23 24

导航