Linux
挨踢的小胖
这个作者很懒,什么都没留下…
展开
-
Linux进程间通信之共享内存
共享内存区是可用IPC形式中最快的。一旦这样的内存区映射到共享它的进程的地址空间,这些进程间数据的传递就不再涉及内核(这里说的不涉及内核的含 义是:进程不再通过执行任何进入内核的系统调用来彼此传递数据)。然而往该共享内存区存放信息或从中取走信息的进程间通常需要某种形式的同步,同步的方式 有多种,比如:信号量、互斥锁等等。 以下两图分别描述了读写消息时,一个要进入内核,而一个不进入内核的情况原创 2013-04-20 01:03:44 · 625 阅读 · 0 评论 -
Linux磁盘工具
1、df - report file system disk space usagedf displays the amount of disk space available on the file system containing each file name argument. If no file name is given, the space available on all原创 2017-02-15 17:17:39 · 407 阅读 · 0 评论 -
Linux AIO
Linux下的AIO目前比较知名的有Glibc AIO与Kernel Native AIO原创 2016-03-14 14:19:41 · 412 阅读 · 0 评论 -
怎样自己写一个简单的操作系统
如非业务需要必要,不建议自己实现完整的计算机操作系统。重造车轮的累赘先不说。 在自己造的过程中,仿佛体验了事无巨细一切都要自己实现的艰辛,和访问底层硬件处理dirty work带来的虚假的智力/经验上升的快感和空洞的谈资的积累。 这不一定带来良好的效率。当然,如果你的时间不值钱,那就无所谓了,你就瞎掰吧。 操作系统的实践中已经有相当多的best practice ,原创 2013-08-11 20:44:20 · 1796 阅读 · 1 评论 -
Linux下时间机制
一)ANSI clock函数 1)概述:clock 函数的返回值类型是clock_t,它除以CLOCKS_PER_SEC来得出时间,一般用两次clock函数来计算进程自身运行的时间.ANSI clock有三个问题:1)如果超过一个小时,将要导致溢出.2)函数clock没有考虑CPU被子进程使用的情况.3)也不能区分用户空间和内核空间.所以clock函数在linux系统上转载 2013-04-20 01:14:01 · 838 阅读 · 0 评论 -
FUSE的程序的编译
通过configure生成的makefile文件,直接make即可将FUSE中所有的example都进行编译。但是如果要单独编译其中的某个例子,或者编译自己写好的文件系统,按照文档的说法是这样的: Gcc -Wall `pkg-config fuse --cflags --libs` hello.c -o hello 注意“ ` ”是键盘左上角,数字转载 2013-04-20 01:01:44 · 1321 阅读 · 0 评论 -
进程切换时机
(一)当前进程放弃CPU的情形可以分成两种:1.进程主动地放弃CPU,大体可以分为两类:1)隐式地主动放弃CPU。往往是因为需要的资源目前不能获取,如执行read、select等系统调用的过程中。这种情况下的处理过程如下:(1) 将进程加入合适的等待队列。(2)把当前进程的状态改为TASK_INTERRUTIBLE或TASK_UNINTERRUT转载 2013-04-19 17:30:29 · 2152 阅读 · 0 评论 -
"inode、block的概念"和"几个文件系统概念:geometry、sector 、block"
inode--------------------------------- 提到inode,我们不得不先介绍硬盘的整体结构。硬盘中包含多个硬盘盘片,硬盘盘片为圆形,每个硬盘盘片都有一个可以读写的磁头(Head),将这个磁头固定,使硬盘盘片旋转一周,所走轨迹就是磁道(Track)。硬盘内所有盘片的相同磁道号的集合成为磁柱(Cylinder)。每一磁道被划分成许多区域,每个区域叫一个扇原创 2013-04-20 01:04:50 · 1334 阅读 · 0 评论 -
system()和execve()区别
system是用shell来调用程序=fork+exec+waitpid,而exec是直接让你的程序代替用来的程序运行。system 是在单独的进程中执行命令,完了还会回到你的程序中。而exec函数是直接在你的进程中执行新的程序,新的程序会把你的程序覆盖,除非调用出错,否则你再也回不到exec后面的代码,就是说你的程序就变成了exec调用的那个程序了。看一下,下面的例子.转载 2013-04-20 01:14:39 · 6234 阅读 · 0 评论 -
Docker构建开发环境
以往在新的机器上构建开发环境时,往往需要安装比较多的工具软件,这个过程比较耗时。有人会说,那可以把这些命令固化在shell脚本中。当然这也是一个可行的方法。 随着Docker的发展,容器与容器云大行其道。本着熟悉Docker的想法,加之Docker具有简化配置、快速部署的特点,这里尝试使用Docker来构建开发环境。 原始镜像为Ubuntu,常用的开发工...原创 2018-02-25 19:16:27 · 1697 阅读 · 0 评论