Linux操作系统

linux源码分析(三)-start_kernel

2016-10-26 11:01 by 轩脉刃, 146 阅读, 收藏编辑

前置:这里使用的linux版本是4.8,x86体系。 start_kernel是过了引导阶段,进入到了内核启动阶段的入口。函数在init/main.c中。 set_task_stack_end_magic(&init_task); 这个函数是设置操作系统的第一个进程init。 这个init_task

linux源码分析(二)-启动过程

2016-10-25 13:01 by 轩脉刃, 362 阅读, 收藏编辑

前置:这里使用的linux版本是4.8,x86体系。 这篇是 http://home.ustc.edu.cn/~boj/courses/linux_kernel/1_boot.html 的学习笔记。 linux的启动过程有点像是小鱼吃大鱼,最后吃成一个胖子。 计算机中的PC寄存器是用来指示下个执行程

linux源码分析(一)

2016-10-24 10:29 by 轩脉刃, 393 阅读, 收藏编辑

前置:这里使用的linux版本是4.8,x86体系。 其实linux的内核启动的入口文件还是非常好找的,init/main.c。 static 和 extern 首先理解的是static和extern的区别: 这个代码说的是kernel_init函数的定义在这个文件中,extern说明init_IR

TCP的阻塞和重传机制

2016-07-18 11:48 by 轩脉刃, 1453 阅读, 收藏编辑

TCP的阻塞和重传机制 网络拥堵 现在网络上大部分的网络请求都是以TCP的方式进行传输的了。网络链路是固定的,各种链路情况也是不一样的。网络拥堵一直是TCP协议设计和使用的时候尽力要避免的。比如,从TCP协议的网络包协议设计来看,TCP使用一发一答的ACK的网络包确认方式,而不是使用NAK这种会增加

TCP的定时器

2016-07-11 10:00 by 轩脉刃, 279 阅读, 收藏编辑

TCP的定时器 在TCP协议中有的时候需要定期或者按照某个算法对某个事件进行触发,那么这个时候,TCP协议是使用定时器进行实现的。在TCP中,会有四种定时器: 重传定时器 坚持定时器 保活定时器 2MSL定时器 这四个定时器都有各自的具体作用。 重传定时器 TCP是可靠的,因此,它对于发出去的信息,

大话keepalive

2016-04-05 10:23 by 轩脉刃, 1293 阅读, 收藏编辑

大话keepalive 我们说到keepalive的时候,需要先明确一点,这个keepalive说的是tcp的还是http的。 tcp的keepalive是侧重在保持客户端和服务端的连接,一方会不定期发送心跳包给另一方,当一方端掉的时候,没有断掉的定时发送几次心跳包,如果间隔发送几次,对方都返回的是

也说说TIME_WAIT状态

2016-03-28 09:46 by 轩脉刃, 1395 阅读, 收藏编辑

也说说TIME_WAIT状态 一个朋友问到,自己用go写了一个简单的HTTP服务端程序,为什么压测的时候服务端会出现一段时间的TIME_WAIT超高的情况,导致压测的效果不好呢? 记得老王有两篇文章专门说这个,当时粗粗看了一遍,正好碰上这个问题,又翻出来细细搂了。 第一个要弄懂的,是TIME_WAI

内存那些事

2015-10-16 12:09 by 轩脉刃, 1008 阅读, 收藏编辑

内存那些事 linux中的free m可以查看当前的内存使用情况 [yejianfeng@iZ23fsd ~]$ free m total used free shared buffers cached Mem: 7869 7737 132 0 489 4419 /+ buffers/...

shell的历史

2015-05-21 12:17 by 轩脉刃, 1006 阅读, 收藏编辑

# shell的历史# shell概况人想要和操作系统进行交互,传送指令给操作系统,就需要使用到shell。宏义的shell是人与机器交互的页面,它分为两种,一种是有界面的,比如GUI,另外一种是没有界面的,完全是指令操作的(CLI)。我们一般说的shell指的就是命令行界面。## Bourne s...

说说常用的服务器操作

2014-07-02 11:14 by 轩脉刃, 1471 阅读, 收藏编辑

想写写自己日常常用的服务器操作,但是想到这个题目还是有点大的。鸟哥两本linux私房菜的书才说完了所有的服务器操作命令,这里一次性列出来也不现实。差不多这里就写写一些比较常用的命令吧。 ps aux|grep XXX 这个是最常用的命令了,查看一个进程的状态啥的。还能看到端口号,运行时间等。如果需要批量关掉这些进程,也可以延生使用管道: ps aux|grep XXX|awk '{pr...

如何添加自定义脚本到开机自启动

2014-06-25 21:19 by 轩脉刃, 2955 阅读, 收藏编辑

我的机器有个coreseek服务,但是没加到开启启动中去,导致机房一旦重启了机器,我的服务便不能使用了。所以我需要把coreseek的searchd加到自启动服务中去。写一个脚本auto_coreseek.sh:#!/bin/sh#chkconfig:2345 80 90#description:a...

你不一定懂的cpu显示信息

2013-10-23 11:48 by 轩脉刃, 17354 阅读, 收藏编辑

在使用top命令的时候会看到这么一行: 里面的各个值分别是什么意思呢? 今天被问到这个问题,发现答的不是很清楚。果然啊,天天用最多的top命令都还没摸透。。。惭愧。。。于是就查了些资料: 官方解释 Cpu(s)表示的是cpu信息。各个值的意思是: us: user cpu time (or) % CPU time spent in user space sy: system cpu...

制作火焰图(纯笔记)

2013-10-17 13:55 by 轩脉刃, 1567 阅读, 收藏编辑

安装systemtap 按照官网说的安装:http://sourceware.org/systemtap/wiki/SystemTapOnCentOS 我的操作系统是centos uname -rm: 2.6.18-164.el5xen x86_64 yum install systemtap wget http://debuginfo.centos.org/5/x86_64/kern...

《精通Linux内核必会的75个绝技》知识杂记

2013-10-16 18:17 by 轩脉刃, 891 阅读, 收藏编辑

http://www.ibm.com/developerworks/cn/linux/l-cn-utrace/ utrace是为运行态的进程提供trace和debug支持。 utrace能做如下事情: 1 跟踪目标进程的各种事件 2 Debugger能控制调试程序,让目标暂停或者单步执行 3 对目标进程地址空间的访问能力 可以使用nuttcp来确认两机之间的吞吐量 在一台机器上使用n...

lnmp_auto:自动化安装lnmp环境脚本

2013-10-12 09:38 by 轩脉刃, 1315 阅读, 收藏编辑

朋友找我在一台机器上帮忙安装下discuz。想着搭建过好几次的lnmp了,但是还没有使用过“一键安装”的自动化脚本,去网上有搜索出来,但是运行的时候发现用root运行别人的脚本还是真危险的事情,于是明白这不是个轮子,而是个井,每个程序员有必要自己挖一口的了。所以想着自己写个自动化安装lnmp的脚本lnmp_auto。 源代码在github上:https://github.com/jianfeng...

希望早几年知道的5个Unix命令

2013-09-17 08:20 by 轩脉刃, 1971 阅读, 收藏编辑

原文: http://spin.atomicobject.com/2013/09/09/5-unix-commands/ 希望早几年知道的5个Unix命令 使用*nix系统已经有一段时间了。但是还是有一些命令是被我一直忽略的,现在我希望我能早几年发现这些命令。 1 man ascii 这个命令会打印出八进制,十六进制和十进制的ascii码表。难以置信我是一个月之前才知道这个命令的。我总是...

Linux内核知识

2013-09-05 09:04 by 轩脉刃, 2287 阅读, 收藏编辑

版本 linus树 Linux内核最初创始人--Linus Torvalds管理一个Linus树,linus树也称为主线(mainline)。一般指的upstream,“上游”,也指这个linus树或者各种开发树。 linus树是以2.6.x这样的三个数字来表示。比如Linux 2.6.18-164.el5xen 的linus树中的内核版本就是2.6.18 stable树 这个是针对某个...

Linux的Cgroup

2013-09-03 13:45 by 轩脉刃, 17807 阅读, 收藏编辑

为什么要有cgroup Linux系统中经常有个需求就是希望能限制某个或者某些进程的分配资源。也就是能完成一组容器的概念,在这个容器中,有分配好的特定比例的cpu时间,IO时间,可用内存大小等。于是就出现了cgroup的概念,cgroup就是controller group,最初由google的工程师提出,后来被整合进Linux内核中。 Cgroup是将任意进程进行分组化管理的Linux内核功...

SystemTap知识(二)

2013-09-01 11:30 by 轩脉刃, 921 阅读, 收藏编辑

Unbuntu安装systemtap:http://www.cnblogs.com/hdflzh/archive/2012/07/25/2608910.html1 更新源到http://mirror.ubuntu9.com/topmirror/sourceslist/all/54772423e19231bbb722a69fd878df28.list2 apt-get install systemtap3 apt-get install systemtap-sdt-dev4$ cd $HOME$ sudo apt-get install dpkg-dev debhelper gawkapt-ge

Linux Shell参数替换

2013-06-03 10:01 by 轩脉刃, 2214 阅读, 收藏编辑

Bash中的$符号的作用是参数替换,将参数名替换为参数所代表的值。对于$来说,大括号是可选的,即$A和${A}代表同一个参数。 ${}带冒号的有下面几种表达式: ${parameter:-word} 如果parameter为null或者未设置,整个参数替换表达式值为word ${parameter:=word} 如果parameter为null或者未设置,整个参数替换表达式值为word,...

系统知识点笔记

2013-03-21 22:26 by 轩脉刃, 564 阅读, 收藏编辑

shell脚本出现问题:unexpected end of file这个是windows下的shell的结束符在linux下标示失败的问题可以在linux下vim打开:set fileformat=unix系统seq的-f用法:seq -f '201303%02g.mp4' 1 31|xargs -i cp 20130101.mp5 {}shell使用mail命令发邮件echo "hell2o" | mail -s "testtitle" jianfengye110@gmail.com读取脚本的绝对路径:readlink -f "

系统知识点

2013-02-17 17:41 by 轩脉刃, 1131 阅读, 收藏编辑

如何连号输出 seq 1 0 | xargs -i echo a_{} 查看两个文件夹的不同 diff -Naur test test2 输出到每天不同的日志文件 /usr/local/bin/php /home/q/system/test/api/bootstrap/index.php -m msg.clearMsg -t shell >> /home/yejianfeng/clea...

在darwin上使用基于SecurID的Cisco VPN

2013-02-04 12:36 by 轩脉刃, 1324 阅读, 收藏编辑

借鉴了@jqlblue的这篇 http://blog.sina.com.cn/s/blog_4c6b0c8e01017dev.html 步骤: 1 (如果已经知道组密码了,就直接忽略) 假设你在windows上已经登录过 进入路径如:C:\Program Files\Cisco Systems\VPN Client\Profiles 打开这个文件夹下的文件会看到诸如 enc_Grou...

GCC知识

2013-01-17 09:41 by 轩脉刃, 1866 阅读, 收藏编辑

像C语言这样的静态语言,运行的步骤是先将C经过编译器转化成汇编语言,汇编语言再经过汇编器转化成机器语言模块,然后链接器将程序的机器语言模块和库程序的机器语言模块和起来,生成可执行文件,最后再由加载器加载这个可执行文件,产生输入输出。 在这个环节中,gcc就是扮演着编译器的角色。gcc原本只能编译C语言,但是后来,经过扩展之后也能处理JAVA/OC等语言了。GCC现在已经成为类Unix操作系...

从文件视角看mysql

2012-12-11 18:37 by 轩脉刃, 1809 阅读, 收藏编辑

这里的几个rpm意义分别是:(http://docs.oracle.com/cd/E17952_01/refman-5.0-en/linux-installation-rpm.html) MySQL-client:包含最少的访问mysql服务器所需要的客户端命令。里面包含的是像mysql,mysqladmin这样的工具。 MySQL-devel:包含开发mysql客户端所需要的库。里面没有...

NUMA的取舍

2012-12-10 18:30 by 轩脉刃, 7839 阅读, 收藏编辑

现在的机器上都是有多个CPU和多个内存块的。以前我们都是将内存块看成是一大块内存,所有CPU到这个共享内存的访问消息是一样的。这就是之前普遍使用的SMP模型。但是随着处理器的增加,共享内存可能会导致内存访问冲突越来越厉害,且如果内存访问达到瓶颈的时候,性能就不能随之增加。NUMA(Non-Uniform Memory Access)就是这样的环境下引入的一个模型。比如一台机器是有2个处理器,有4个...

架构整洁之道

2012-09-10 10:00 by 轩脉刃, 4370 阅读, 收藏编辑

这篇文章是翻译(Uncle Bob Martin)的文章。原文在这:http://blog.8thlight.com/uncle-bob/2012/08/13/the-clean-architecture.html。这篇文章作者尝试使用简单的观点将各种架构的共通之处和最终目标说清楚。全文要说清楚的就是一件事“如何写出整洁的架构”。作者希望在架构系统的时候只需要秉持最简单的两个观点(分层和依赖规则)开发,就能开发出干净整洁的系统架构。 以下是译文 过去几年间有许多关于系统架构的观点。比如: 1 六角架构(Hexagonal Architecture )。 这种架构是由Alistai...

Linux IO模型漫谈(6)- 信号驱动IO模型

2012-06-11 22:10 by 轩脉刃, 3540 阅读, 收藏编辑

Unix上有定义了许多信号。源自Berkeley的实现使用的是SIGIO信号来支持套接字和终端设备上的信号驱动IO。 信号驱动IO模型主要是在UDP套接字上使用,在TCP套接字上几乎是没有什么使用的...

nginx源码学习Unix - Unix域协议

2012-06-08 10:53 by 轩脉刃, 1929 阅读, 收藏编辑

说到什么是域协议就会出现这么个解释: UNIX域协议并不是一个实际的协议族,而是在单个主机上执行客户/服务器通信的一种方法,所用API与在不同主机上执行客户/服务器通信所使用的API相同。UNIX域协议可以视为IPC方法之一。 我们白话解释下Unix域协议在什么情况下使用和怎么使用? Unix域协议主要用在同一台机子的不同进程之间传递套接字。为什么不用TCP或者U...

Linux IO模型漫谈(5)- IO复用模型之select

2012-06-07 09:05 by 轩脉刃, 4603 阅读, 收藏编辑

首先需要了解的是select函数: select函数 #include<sys/select.h> #include<sys/time.h> int select (int maxfd , f...

Linux IO模型漫谈(4)- 非阻塞IO

2012-06-05 09:03 by 轩脉刃, 3239 阅读, 收藏编辑

首先先说一下,阻塞IO会在哪些地方阻塞住呢?输入操作read, 输出操作write,接受请求操作accept,发送请求操作connect,这四个地方阻塞进程。 非阻塞IO的模型图示在前面的章节有讲过,它和阻塞IO的最大区别就是:如果连接或者操作不能立即建立,那么连接的建立照样能发起,只是会返回一个错误信息。 同样,先说明几个用到的函数和操作: 1 fcntl函数 其全名为”file control“。顾名思义,fcntl可以执行各种操作符控制操作。#include <fcntl.h>int fcntl(int fd, int cmd, .. /* int arg */)第一个参数f

Linux IO模型漫谈(3) -- 阻塞式IO实现

2012-06-04 09:48 by 轩脉刃, 1709 阅读, 收藏编辑

在理解代码前有几个函数先说一下: 1 sockaddr_in 套接字地址结构 struct sockaddr_in { uint8_t sin_len; //长度字段,这个sockaddr_in结构的长度,一般不用设置和检查它 sa_family_t sin_family; //协议族,TCP,UDP等协议族就设置为AF_INET...

服务器性能查看常用命令

2012-06-01 06:35 by 轩脉刃, 8956 阅读, 收藏编辑

最近在调试程序的时候经常需要查看服务器的性能问题。那么到底是需要查看服务器的哪些性能呢,如何查看性能呢?下面主要就说一下一些查看服务器性能的命令。 注:由于参数过多,我只列出了几个常观察的参数,更多的参数说明有附带链接作为参考 free –m 查看内存使用情况 这个命令比较简单,-m 代表下面的是以M为单位 Mem是表示物理内存,主要看 Mem free代表还有多少内存可以 说一下第二行的 -/+ buffers/cache: used = 第一行的used - buffers - cached (表示实际使用的内存总数) free = 第一行的free + buffer...

Linux操作系统的更多相关文章

  1. Linux操作系统备份之三:通过二进制拷贝(dd)方式实现Linux操作系统数据的备份

    前面有两篇文章,<Linux操作系统备份之一:使用LVM快照实现Linux操作系统数据的在线备份>和<Linux操作系统备份之二:通过tar拷贝分区实现Linux操作数据的在线备份& ...

  2. Linux操作系统备份之二:通过tar拷贝分区实现Linux操作数据的在线备份

    http://www.tektea.com/archives/2163.html. 在<Linux操作系统备份之一:使用LVM快照实现Linux操作系统数据的在线备份>文章中,我们介绍了使 ...

  3. 安装linux操作系统

    安装双操作系统; 1 0. 介绍: 1 1 实验环境: 2 2. 实验准备: 2 3.开始安装: 2 1 制作U盘启动工具: 2 2.安装LinuxOS. 3 2.1在windowOS中划分60G空间 ...

  4. 在Linux操作系统下备份恢复技术的应用 转自https://yq.aliyun.com/articles/50205?spm=5176.100239.blogcont24250.9.CfBYE9

    摘要: 安全防护:在Linux操作系统下备份恢复技术的应用  原文参见:http://linux.chinaunix.net/techdoc/system/2005/12/19/925898.shtm ...

  5. 献给初学者:谈谈如何学习Linux操作系统

    本文出自 “技术成就梦想” 博客,请务必保留此出处http://ixdba.blog.51cto.com/2895551/569329. 为了能把这篇不错的文章分享给大家.所以请允许我暂时用原创的形式 ...

  6. Linux操作系统备份之一:使用LVM快照实现Linux操作系统数据的在线备份

    这里我们讨论Linux操作系统的备份. 在生产环境,客户都会要求做全系统的数据备份,用于系统崩溃后的一种恢复手段.这其中就包含操作系统数据的备份恢复. 由于是生产环境,客户都会要求备份不中断业务,也就 ...

  7. 安装Kali Linux操作系统Kali Linux无线网络渗透

    安装Kali Linux操作系统Kali Linux无线网络渗透 Kali Linux是一个基于Debian的Linux发行版,它的前身是BackTrack Linux发行版.在该操作系统中,自带了大 ...

  8. 使用 /proc 文件系统来访问 linux操作系统 内核的内容 && 虚拟文件系统vfs及proc详解

    http://blog.163.com/he_junwei/blog/static/19793764620152743325659/ http://www.01yun.com/other/201304 ...

  9. linux 操作系统下c语言编程入门

    2)Linux程序设计入门--进程介绍 3)Linux程序设计入门--文件操作 4)Linux程序设计入门--时间概念 5)Linux程序设计入门--信号处理 6)Linux程序设计入门--消息管理  ...

  10. Linux操作系统基础(四)保护模式内存管理(2)【转】

    转自:http://blog.csdn.net/rosetta/article/details/8570681 Linux操作系统基础(四)保护模式内存管理(2) 转载请注明出处:http://blo ...

随机推荐

  1. Netbackup磁带过期处理

    bpexpdate -m <mediaid> -d 0 如果不通过,看是否被其他media server写入数据.使用 nbemmcmd -listhost 查看所有media serve ...

  2. Commons IO - IOUtils

    IOUtils is a general IO stream manipulation utilities. This class provides static utility methods fo ...

  3. 转摘 Eclipse智能提示及快捷键

    1.java智能提示 (1). 打开Eclipse,选择打开" Window - Preferences". (2). 在目录树上选择"Java-Editor-Conte ...

  4. SQL 数据库基础语句

    一.基础 1.说明:创建数据库CREATE DATABASE database-name 2.说明:删除数据库drop database dbname3.说明:备份sql server--- 创建备份 ...

  5. ubuntu下使用vi是方向键变乱码 退格键不能使用的解决方法

    ubuntu下使用vi是方向键变乱码 退格键不能使用的解决方法 转载:http://blog.csdn.net/yao_qinwei/article/details/8761777 在插入模式下,按删 ...

  6. Mysql数据表的操作

    表的操作 前提:选择数据库 语法: use 数据库名; 1.创建数据表 语法: create table 表名( 字段1 字段类型 [附加属性], 字段2 字段类型 [附加属性], 字段3 字段类型 ...

  7. sqlplus 可以登录 plsql 不能登录

    最开始我以为是system用户被锁定了,但是解锁后仍然不可以登录.大神指导之后可以了,说是缺少监听器,解决过程如下: 1.将“tnsnames.ora”和“listener.ora”两个文件里的“lo ...

  8. c#基础学习笔记-----------委托事件

    这里有一个比较简单的委托实例应用(跨窗体操作控件) http://blog.csdn.net/bdstjk/article/details/7004035 还有一个比较详细的介绍并深入理解委托事件的讲 ...

  9. Trie树入门及训练

    什么叫Trie树? Trie树即字典树. 又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种.典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本 ...

  10. 第七章 探秘Qt的核心机制-信号与槽

    第七章 探秘Qt的核心机制-信号与槽 注:要想使用Qt的核心机制信号与槽,就必须在类的私有数据区声明Q_OBJECT宏,然后会有moc编译器负责读取这个宏进行代码转化,从而使Qt这个特有的机制得到使用 ...