
linux基础
文章平均质量分 51
huangjun1989
这个作者很懒,什么都没留下…
展开
-
LVM逻辑卷管理
LVM逻辑卷管理就是将物理卷组成卷组,再将卷组抽象成逻辑卷,格式化、挂载逻辑卷。具体描述如下图: Ø 新建分区用来组合成逻辑卷fdisk /dev/sdagpartedparted-lØ 形成物理卷pvcreate /dev/sda3 /dev/sda4Ø 创建vgvgcreate name-of-vg /dev/sda3 /dev/sda4原创 2016-09-26 20:28:01 · 275 阅读 · 0 评论 -
linux信号
综述信号是软中断,大多数的重要的应用程序需要处理信号。信号为处理异步事件提供看方法:用户在终端键入中断键,来停止一个程序,或者说是下一个的程序在管道中过早地终止。POSIX标准提供了可靠的规则,我们将要讨论的是这种情况。先熟悉一般的信号和每个信号的作用。随后,我们将了解早期实现中出现的错误。信号的概念所有的信号都有一个以SIG开头的名称,比如说:SIGABRT是中断信号,当一个程序调用原创 2016-09-27 21:49:12 · 237 阅读 · 0 评论 -
网络文件系统基础
说到网络文件系统,我们大家比较熟悉的有2种:cifs和nfs先了解下nfsNFSSun RPC远程过程调用流程:A、 服务器启动,注册端口B、 客户端启动,通过端口映射器获取port,获取服务器文件系统的本地fdC、 进行数据读写时,客户端的操作会被内核识别为NFS,然后通过RPC完成。 NFS的一些操作是幂等的:read,getattr,statfs原创 2016-09-27 22:04:39 · 244 阅读 · 0 评论 -
linux下的内存管理
概述linux内存管理基础知识,反复看深入理解linux内核内存分区 •位于最低端的 ZONE_DMA 内存区域是为 ISA 设备保留的,这些设备仅有 16MB的 DMA 寻址能力。• ZONE_NORMAL 中的页面具有 1:1 线性映射的物理地址和逻辑地址。运行在内核态的代码可以方便和高效地访问,内核中大部分数据结构的内存对象都使用这个区中的内存。• Z转载 2016-09-28 20:14:56 · 835 阅读 · 0 评论 -
ssh服务相关问题
1、在脚本中使用ssh命令,报如下错误:ssh: Could notresolve hostname T02-OSD101: Name or service not knownlost connection但是,在shell下使用ssh 到同一主机名,却没有报错;原因是什么?使用telnet连接该机器,被拒绝了:huangjun:/bsdocfs/shell-script#te原创 2016-09-28 20:54:39 · 502 阅读 · 0 评论 -
包管理系统总结
Debian/Ubuntu使用apt-get、aptitude、dpkgrhel/Centos使用yum/rpm安装生成rpm包需要的依赖包yum-builddep,前提是依赖包在Yum的仓库中,或者本地rpm文件,例如安装ceph在oracle linux下的依赖时: sudo yum-builddep –y /tmp/ceph.spec/tmp/ceph.s原创 2016-09-28 21:11:18 · 379 阅读 · 0 评论 -
用户管理和工作管理
集群管理工具http://bbs.chinaunix.net/thread-2002080-1-1.htmlPdsh:Atp-get install pdsh用法:Pdsh –w ssh:root@192.168.2.10 hostnamelinux IO重定向ls /dev/ 1> filename 将标准输出重定向到文件filename中ls -sss /dev原创 2016-09-28 21:15:56 · 300 阅读 · 0 评论 -
Linux IO调度算法
查看磁盘IO调度算法$cat /sys/block/sdX/queue/schedulerI/O 调度器决定 I/O 操作何时运行在存储设备上以及运行多久。它也被称为 I/O elevator(I/O 升降机、I/O电梯)。红帽企业版 Linux 7 提供三种 I/O 调度器。deadline为除了SATA盘外所有块设备的默认 I/O 调度器。Deadline 尝试为指向原创 2016-09-28 21:22:22 · 513 阅读 · 0 评论 -
常见系统调用总结
fcntl操作文件描述符#include #include Int fcntl(int fd, int cmd, …);主要的三种用途:A、 复制文件描述符 F_DUPFD(long),返回新的文件描述符B、 文件描述符标记位目前唯一被操作的标记是FD_CLOEXECF_GETFD(void)F_SETFD(long)C、 文件状态标记通过ope原创 2016-09-28 20:52:52 · 846 阅读 · 0 评论 -
虚拟文件系统proc
/proc 文件系统是 GNU/Linux 特有的。它是一个虚拟的文件系统,因此在该目录中的所有文件都不会消耗磁盘空间。通过它能够非常简便地了解系统信息,尤其是其中的大部分文件是人类可阅读的(不过还是需要一些帮助)。许多程序实际上只是从 /proc 的文件中收集信息,然后按照它们自己的格式组织后显示出来。有一些显示进程信息的程序(top、ps 等)就是这么作的。/proc 还是原创 2016-09-28 21:49:16 · 387 阅读 · 0 评论 -
LVS介绍
初识LVS什么是LVS?Linux Virtual Server,linux虚拟服务器LVS的目标?该项目的任务是:使用集群技术为linux建立一个高性能和高可用性的服务器,可以提供很好的扩展性、可靠性和服务可行性。LVS的主要内容?项目主要是开发先进的IP负载均衡软件(IPVS)、应用层负载均衡软件(KTCPVS)和集群管理组件。(对于大规模的TCP链接请求进行均衡,说到原创 2016-09-28 21:57:11 · 300 阅读 · 0 评论 -
分布式理论
CAP理论Consistency AvaiablityPartition tolerance(分区容错性)系统无法放弃一致性,如果放弃了,说明数据不可信牺牲一致性,是说不使用强一致性,而是弱一致性分布式系统的数据复制需求:A、 可用性将数据复制到多个主机上,消除单点故障B、 性能将数据分片,分布到多台主机上,可以提高并发度,从而提高系统性能强一致原创 2016-09-28 22:18:26 · 336 阅读 · 0 评论 -
设计模式
创建型设计模式单例模式它允许一个类有且仅有一个实例 单例模式的优点:在内存中只有一个对象,节省内存空间。避免频繁的创建销毁对象,可以提高性能。避免对共享资源的多重占用。可以全局访问。适用场景:由于单例模式的以上优点,所以是编程中用的比较多的一种设计模式。我总结了一下我所知道的适合使用单例模式的场景:需要频繁实例化然后销毁的对象。创建对象时耗时过多或者原创 2016-09-28 22:20:53 · 333 阅读 · 0 评论 -
分布式文件系统基础
分布式文件系统基础技术A、 fstrim/discard调用 TRIM整理 NAND 上的碎片有两种方法,一是挂载 ext4分区时加上 discard选项,二是使用 fstrim命令。Android 4.3中的 TRIM 是用 fstrim 实现的,但一般 Linux发行版并不建议使用 fstrim的方法,而是使用 mount ext4分区时加上 d原创 2016-09-27 22:11:02 · 2645 阅读 · 0 评论 -
linux下帮助文档汇总
概述linux下有丰富的文档资料,在日常运维和开发过程中,经常会用到。三种基本方式man、info、LINUX howto 编程的时候需要查阅许多资料:包括数据结构的定义、函数的使用说明、参数列表等,都是可以使用man命令来获取的;安装posix接口的manpage:$ apt-get install manpages-posix$ apt-get i原创 2016-09-28 20:32:31 · 569 阅读 · 0 评论 -
c++单元测试gtest
Ceph工程使用gtest做单元测试https://code.google.com/p/googletest/https://code.google.com/p/googletest/wiki/Primer TEST_P 测试参数专用函数 TEST_FTEST_F宏会直接生成一个类,这个类继承自上面我们写的测试类比如,定义了TestFunc类class Test原创 2016-10-07 20:49:35 · 671 阅读 · 0 评论 -
linux下终端复用软件之tmux
linux下常用的终端复用软件,有screen和tmux,本人一直用tmux,总结一下常用的用法1、源码编译下载tmux-2.0wget http://downloads.sourceforge.net/tmux/tmux-2.0.tar.gztar -xzvf tmux-2.0.tar.gzcd tmux-2.0./configure && make && make原创 2016-10-07 20:10:38 · 327 阅读 · 0 评论 -
多线程编程基础
线程值得参考:http://www.csc.villanova.edu/~mdamian/threads/posixthreads.html线程控制创建线程#include int pthread_create(thread_id, attr, func, arg)其中func表示该线程需要执行的代码地址终止线程从线程代码处returnpthread_canc原创 2016-09-27 21:45:39 · 255 阅读 · 0 评论 -
linux 下的文件I/O方式
标准访问文件的方式Linux 中,这种访问文件的方式是通过两个系统调用实现的:read()和 write()。当应用程序调用 read()系统调用读取一块数据的时候,如果该块数据已经在内存中了,那么就直接从内存中读出该数据并返回给应用程序;如果该块数据不在内存中,那么数据会被从磁盘上读到页高缓存中去,然后再从页缓存中拷贝到用户地址空间中去。如果一个进程读取某个文件,那么其他进程就都原创 2016-09-27 20:59:50 · 301 阅读 · 0 评论 -
linux进程控制
daemon守护进程 守护进程就是没有控制终端,在后台运行。在系统自举时开始运行,直到系统停止运行。 那么守护进程的处理结构?怎样写一个守护进程并且如何知晓在系统出现错误的时候能及时的报告状态。 可能是因为daemons调用了setsid导致用户层的daemons没有控制终端。 所有的用户层的daemons是进程组的leader、sessionleader和原创 2016-09-27 21:31:21 · 334 阅读 · 0 评论 -
为内核制作补丁patches
需要为kernel制作补丁原始的kernel命名为linux-x.y.z作了修改的kernel就命名为linux为2个生成补丁diff –urN linux-x.y.z/ linux/ > my-patch-u参数指定将会使用统一的diff格式,如果没有这个参数的话,这个补丁将会是很丑陋、不适合阅读的。-r参数指定遍历的diff所有的目录。-N参数指定在修改中出现的新文原创 2016-09-26 20:36:11 · 695 阅读 · 0 评论 -
linux系统引导
Linux系统既可以以自动方式也可以以手动方式来引导。手动方式:系统先自动执行一些过程,然后到某时刻,在运行大多数脚本前,把控制权交给系统管理员。此时,计算机处于“单用户模式”,大多数系统进程还没有运行,其他用户还不能登录系统。Linux系统的加载过程如下:1) 加载并初始化内核2) 检测和配置设备3) 创建内核线程4) 操作员干预(仅限于手动引导)5)原创 2016-09-26 20:58:02 · 341 阅读 · 0 评论 -
linux磁盘分区
Linux下一个磁盘可以有16个次设备号minor其中,主分区和扩展分区占据4个,逻辑分区占据后12个。操作系统必须建立在主分区上(不是逻辑分区,也不是扩展分区)逻辑分区只能建立在扩展分区上,而不是主分区。分区的指标:1) 分区的大小2) 分区的类型:就是该分区被格式化为的文件系统类型。文件系统表示该分区数据的组织方式。常用分区:1)/boot分原创 2016-09-26 21:01:08 · 708 阅读 · 0 评论 -
编译linux内核入门
1) 编译linux内核,然后引导grup进入bootloader进入新编译的内核;2014-06-08编译linux内核步骤:http://kernelnewbies.org/FAQ/KernelCompilationA、 下载linux最新stable内核源码https://www.kernel.org/B、 解压内核源码到/usr/src目录下C、 Cd /usr/src原创 2016-09-26 21:03:26 · 261 阅读 · 0 评论 -
linux内核态和用户态
Ø 用户态:能使用的资源较少,但是对于安全性、可靠性要求较低,程序的编写和维护也较为简单。比如:文件系统—用户的数据;用户应用程序;Ø 内核态:访问的资源多,但是可靠性、安全性要求很高,维护管理都比较复杂;比如:CPU管理和内存管理(从安全的角度考虑);诊断、测试程序(因为需要访问计算机的所有资源);IO管理(要访问各种设备和底层数据结构);文件系统---本身的数据管理,宏数据结构的管理;原创 2016-09-26 21:05:02 · 314 阅读 · 0 评论 -
linux下日志文件系统
日志文件系统介绍日志文件系统可以在系统发生断电或者其他系统故障时保证整体数据的完整性,linux是目前支持日志文件系统最多的操作系统之一。比如说:ext3、reiserfs、XFS和JFS日志技术,采用标准的测试工具PostMark和Bonnie++进行测试,根据性能进行分析。所谓日志文件系统是在传统文件系统的基础上,加入文件系统更改的日志记录,它的设计思想是:跟踪记录文件系统的变化,并将原创 2016-09-26 21:07:46 · 404 阅读 · 0 评论 -
快照snapshot技术
1 快照的作用(1)主要是能够进行在线数据恢复,当存储设备发生应用故障或者文件损坏时可以进行及时数据恢复,将数据恢复成快照产生时间点的状态。(2)快照的另一个作用是为存储用户提供了另外一个数据访问通道,当原数据进行在线应用处理时,用户可以访问快照数据;还可以利用快照进行测试等工作。2 快照的基本形式快照有三种基本形式:基于文件系统式的、基于子系统式的和基于卷管理器/虚拟化式的,而原创 2016-09-26 21:17:55 · 492 阅读 · 0 评论 -
linux设备文件
UNIX和Linux中比较重要的三个设备文件是:/dev/console,/dev/tty和/dev/null。 /dev/console 这个设备代表的是系统控制台,错误信息和诊断信息通常会被发送到这个设备。 每个UNIX系统都会有一个指定的终端或显示屏用来接收控制台信息。/dev/tty 如果一个进程有控制终端的话,那么/dev/tty就是这个控制终端的别名。 像cro原创 2016-09-27 20:16:23 · 418 阅读 · 0 评论 -
makefile初级基础
Makefile一般的设计工程都需要自己书写makefile,控制整个项目代码的编译。Makefile的核心思想:target : prerequestistuscommand目标:依赖 操作系统执行的命令 命令列表中的每条命令必须以一个Tab开头,注意不能是空格,Makefile的格式不像C语言的缩进那么随意,对于Makefile中的每个以Tab开头的命令,原创 2016-09-27 20:18:49 · 332 阅读 · 0 评论 -
GCC编译归纳总结
概述一般在做项目的时候,都忽略了这个步骤,因为makefile是别人写好的,自己只要执行make操作就ok了,但是真正的项目开发,需要程序员有这项基本技能。弄明白gcc/g++编译器的基本参数和使用方法,在编译make出错后会有很大的帮助。 GCC使用心得一个最为基本的工程,包含一个头文件.h和一个实现文件.c,还有一个测试文件test.cpp。那么如何让这测试文件能顺原创 2016-09-27 20:25:30 · 429 阅读 · 0 评论 -
Clang编译器
一个比gcc更轻量的编译器网址网址:http://clang.llvm.org/get_started.html 包含clang 和 clang++编译器clang++ test_leveldb.cc -o /tmp/level -I/usr/local/include/ /usr/local/lib/libleveldb.so之前在freebsd下用gcc-c++ 4.8原创 2016-09-27 20:31:39 · 434 阅读 · 0 评论 -
Linux下压缩与解压以及打包与解包
平常在工作过程中,会与各种压缩文件打交道有些是常用的(tar.gz,zip等),有些不常用(rar)总结归纳,不断更新.tar解包: tar xvfFileName.tar打包:tar cvfFileName.tar DirName(注:tar是打包,不是压缩!).gz解压1:gunzipFileName.gz解压2:gzip -dFileName.gz原创 2016-09-27 20:48:17 · 965 阅读 · 0 评论 -
linux内核设计与实现:系统调用
1) 函数声明中都有asmlinkage限定词,用于通知编译器仅从栈中提取该函数的参数。2) 系统调用getXXX()在内核中被定义为sys_getXXX()。这是Linux中所有系统调用都应该遵守的命名规则。 系统调用号:在linux中,每个系统调用都赋予一个系统调用号,通过这个独一无二的号就可以关联系统调用。当用户空间的进程执行一个系统调用的时候,这个系统调用号就被用来指原创 2016-09-27 20:56:37 · 380 阅读 · 0 评论 -
linux:a protable operating system
linux:a protableoperating systemlinus大神的硕士论文(2011.06阅读)设计思路:简便性、高效性和移植性具体实现微内核microkernel:微内核是内核的精简版本,它设计成在很小的内存空间内增加移植性,提供模块化设计,以使用户安装不同的接口,如UNIX、DOS、Windows、Workplace OS、Workp1ace UNIX等。IB原创 2016-09-27 20:46:37 · 419 阅读 · 0 评论 -
编程获取linux系统配置
获取系统当前的内核信息#include int uname(struct utsname *buf); 运行时获取配置信息#include long sysconf(int name);比如,要获取当前的页大小sysconf(_SC_PAGESIZE);后面继续更新原创 2016-09-27 21:10:24 · 214 阅读 · 0 评论 -
Socket通信基础
Socket通信简介Pipe、FIFO、消息队列、semaphores和shared memory等经典的IPC方法。这些方法只是允许同一机器上的不同进程间进行通信。本节,我们将会介绍不同机器上运行的进程间的通信机制(与同一网络连接):网络IPC。本章将描述socket 网络IPC的接口,进程可以使用这些接口来和另外的进程进行通信,不管是在同一机器还是在不同的机器上。这也是socket原创 2016-09-27 21:12:41 · 421 阅读 · 0 评论 -
linux常用工具vim
主要是总结一些常用的vim快捷键和方式先来看一张图vim快捷键选定鼠标所在的字符串,然后搜索只要设置了hlsearch,就能使用’*’符合进行搜索,选定之后,然后再使用’*’切换到下一个,作用类似n键; vim 查看函数原型可以分为系统函数和自定义函数系统函数:用shift+K 如何进行批处理:比如:将10行代码全部注释掉;V之后,选择10行原创 2016-10-07 20:02:00 · 338 阅读 · 0 评论