最近将服务器内的数据迁移到移动硬盘上做备份时,发现 Centos 6.5 识别不了 NTFS 文件系统的移动硬盘,google 了一下才发现原因是 Linux 内核不支持 NTFS。重新编译内核是一种方法,但是也可以采用安装一个软件来解决,本文就是讲述如何安装这个软件以及在 Linux 挂载 NTFS 文件系统的移动硬盘。

阅读全文 »

文本文件和二进制文件的定义

  首先,计算机的存储在物理上是二进制的,也就是在物理存储方面没有区别都是 01 码。所以文本文件与二进制文件的区别并不是物理上的,而是逻辑上的,也就是编码上。简单来说,文本文件是基于字符编码的文件,常见的编码有 ASCII 编码,UNICODE 编码等等。二进制文件是基于值编码的文件,你可以根据具体应用,指定某个值是什么意思(这样一个过程,可以看作是自定义编码

阅读全文 »

查看 Linux 命令的系统调用和库函数的调用可通过下面的命令。

  • strace -c command:判断 command 命令的系统调用的类型、次数、消耗时间(-f 则连同 command 命令 fork 出来的子进程一同统计,-e 指定列出某一具体的系统调用的参数)
  • ltrace 用法同 strace, 但是追踪的是命令调用的库函数,strace 追踪的是系统调用

下面是 CPU 缓存的一些概念,所用命令均是在 Linux 平台下

  • 可通过命令 getconf -a| grep CACHE | grep size 查看 CPU 的各级缓存大小
  • 也可以通过命令 lscpu | grep ^L 查看
  • CPU 缓存以行(line)单位,主内存以页(page)为单位,磁盘以块(block)为单位
  • CPU 缓存一般分为指令缓存(I-Cache)和数据缓存(D-Cache),且两者一般都是分开的
  • 缓存控制器(cache controller)判断 CPU 要获取的指令和数据是否在 CPU 缓存中,从一级缓存往下找,直到主内存和磁盘,且从找到的那一级开始往上面所有级缓存 , 如下图所示:

  • 评判软件优秀与否的一种标准:对 cpu 缓存的命中率

内核版本与 CPU 调度算法

早期 Linux 版本中的调度算法非常简单易懂:在每次进程切换时,内核扫描可运行进程的链表,计算进程的优先权,然后选择 “最佳” 进程来运行。这个算法的主要缺点是选择 “最佳” 进程所要消耗的时间与可运行的进程数量相关,因此,这个算法的开销太大,在运行数千个进程的高端系统中,要消耗太多的时间。

Linux 2.6 的调度算法就复杂多了。通过设计,该算法较好地解决了与可运行进程数量的比例关系,因为它在固定的时间内(时间复杂度 O (1))选中要运行的进程。它也很好地处理了与处理器数量的比例关系,因为每个 CPU 都拥有自己的可运行进程队列。而且,新算法较好地解决了区分交互式进程和批处理进程的问题。因此,在高负载的系统中,用户感到在 Linux2.6 中交互应用的响应速度比早期的 Linux 版本要快。

阅读全文 »

linux 环境变量种类

按照生成周期看,可以分为二类

  • 永久的(需要修改配置文件,变量永久生效)
  • 临时的,使用 export 命令声明即可,变量在关闭 shell 时失效.
阅读全文 »
0%