
Linux
lihenair
这个作者很懒,什么都没留下…
展开
-
Ubuntu Kernel Tree Setup
cd /usr/srcsudo apt-get install mkinitramfs mkisofssudo apt-get install build-essential kernel-packageapt-cache search linux-sourcesudo apt-get install linux-sourcetar -jxvf linux-source-xxx.tar.bz2cd linux-source-xxxmake menuconfigsudo makesudo make modu原创 2011-03-07 21:44:00 · 1156 阅读 · 0 评论 -
Linux错误码编码
//linux-2.6.36//翻译professional linux kernel architecture §2.4.4#define MAX_ERRNO 4095//0~~~4KiB虚拟空间#ifndef __ASSEMBLY__#define IS_ERR_VALUE(x) unlikely((x) >= (unsigned long)-MAX_ERRNO翻译 2012-03-08 21:26:25 · 2028 阅读 · 0 评论 -
do_fork()浅析
linux-2.6.36.3/* * Ok, this is the main fork-routine. * * It copies the process, and if successful kick-starts * it and waits for it to finish using the VM if required. */long do_fork(u原创 2012-03-14 11:12:41 · 2269 阅读 · 0 评论 -
Cygwin如何配置Java编译环境
http://cs.nyu.edu/~yap/prog/cygwin/FAQs.htmlQ: Can I execute programs installed under the Window's directory?E.g., javac.A: There is no difference between executable programsunder cygwin and tho转载 2012-03-16 10:19:40 · 11845 阅读 · 0 评论 -
Installing Software in GNU/Linux
Installing Software in GNU/LinuxOriginally posted by Jason LambertIntroductionFor the benefit of people new to Linux, I have written a generic explanation of howto install software in Linu转载 2012-06-02 22:15:19 · 1622 阅读 · 0 评论 -
ftruncate函数
ftruncate()函数函数功能:改变文件大小相关函数:open、truncate表头文件:#include 函数原型:int ftruncate(int fd, off_t length)函数说明:ftruncate()会将参数fd指定的文件大小改为参数length指定的大小。参数fd为已打开的文件描述词,而且必须是以写入模式打开的文件。如果原来的文件件大小比参数leng转载 2012-06-04 16:15:07 · 6425 阅读 · 0 评论 -
linux kill命令的使用
转自http://www.linuxsense.org/archives/106.htmlkill命令可以从kill这个词来大致了解下它的作用,是的,它用来杀死(kill)一个进程。下面是kill命令的详解。1.作用kill命令用来中止一个进程。 2.格式kill [ -s signal | -p ] [ -a ] pid … kill -l [ signal转载 2012-06-25 19:30:37 · 765 阅读 · 0 评论 -
深入LInux内核结构学习笔记---进程表示
Linux2.6.24struct task_struct {volatile long state;/* -1 unrunnable, 0 runnable, >0 stopped */void *stack;atomic_t usage;unsigned int flags;/* per process flags, defined below */unsigned i原创 2012-09-26 10:36:28 · 1519 阅读 · 0 评论 -
Linux客户端下的LaTex相关操作
目录编译tex文件,生成dvi文件查看dvi文件dvi文件转化成ps文件查看ps文件dvi文件转化成pdf文件ps文件转化成pdf文件查看pdf文件编译tex文件,生成dvi文件latex filename.texlatex filename这里,后缀.tex是可选的。该命令可生成dvi文件。查看d转载 2013-08-08 15:19:24 · 955 阅读 · 0 评论 -
错误:提领指向不完全类型的指针
今天编译C程序,出现错误:提领指向不完全类型的指针(Error: dereferencing pointer to incomplete type pointer)的错误。之前没有遇到过,问了问Google,回答如下:包含声明结构体定义的头文件。这个错误多出现在访问结构或者联合体的成员。由于结构体定义在了C文件里,为了解决这个错误,只好把函数写到C文件里。错误的原因声明原创 2014-02-17 11:29:04 · 15572 阅读 · 0 评论 -
Kill detached screen session
Kill detached screen session [closed]转载 2014-04-21 11:16:43 · 1690 阅读 · 0 评论 -
Linux tcpdump命令详解
简介 用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具。 tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。 实用命令实例 默认启动 复制代码 tcpdump 复制代码普通转载 2014-10-07 20:32:42 · 1509 阅读 · 0 评论 -
Tmux使用初体验
tmux #开启tmuxtmux ls #显示已有tmux列表(C-b s)tmux attach-session -t 数字 #选择tmuxC-b c 创建一个新的窗口C-b n 切换到下一个窗口C-b p 切换到上一个窗口C-b l 最后一个窗口,和上一个窗口的概念不一样哟,谁试谁知道c-b w 通过上下键选择当前窗口中打开的会话C-b 数字 直接跳到你按的数字转载 2015-08-27 17:34:39 · 1059 阅读 · 0 评论 -
怎样在Ubuntu 14.04中安装Java
想知道如何在Ubuntu 14.04中安装Java?安装Java肯定是安装Ubuntu 14.04后首先要做的几件事情之一,而且这也很简单。许多人比较厌恶Java,但是很有可能因为某些原因你需要安装Java,尽管你很讨厌它。在这篇文章中,我们将展示如何在Ubuntu 14.04安装Java(也可能在Linux Mint 17同样适用)。JRE vs OpenJDK vs Oracle JD转载 2015-09-07 17:28:36 · 611 阅读 · 0 评论 -
linux vfs 解析 之 mount 文件系统
linux vfs 解析 之 mount 文件系统 (上)http://blog.sina.com.cn/s/blog_5219094a0100calt.htmllinux vfs 解析 之 mount 文件系统 (中)http://blog.sina.com.cn/转载 2011-09-30 14:54:19 · 730 阅读 · 0 评论 -
bus driver device data type relation
linux2.6.36.3, drivers\base\base.h /** * struct device_private - structure to hold the private to the driver core portions of the device原创 2011-08-14 21:34:50 · 781 阅读 · 0 评论 -
setup_processor()
Linux version 2.6.35 arch\arm\kernel\setup.cstatic void __init setup_processor(void){ struct proc_info_list *list; /*原创 2011-09-26 16:26:06 · 1213 阅读 · 0 评论 -
SYSCALL_DEFINEx的定义
<br />in linux-2.6.36.3<br />#define SYSCALL_DEFINE0(name) asmlinkage long sys_##name(void)<br />#define SYSCALL_DEFINE1(name, ...) SYSCALL_DEFINEx(1, _##name, __VA_ARGS__)<br />#define SYSCALL_DEFINE2(name, ...) SYSCALL_DEFINEx(2, _##name, __VA_原创 2011-03-22 19:15:00 · 3772 阅读 · 0 评论 -
Linux 启动流程 粗解(一)
今天同事给讲了讲linux启动过程 粗略的一个分析 做个笔记根据现在做的一些android项目分析linux系统启动过程 大体分成两个部分 compile startup 两部分相辅相成 紧密结合1. compile首先运行make menuconfig/config等congfig脚本 配置编译选项和系统配置选项CONFIG_XXX_XXX=y 在内核有些作为配置选项 有些是编译进内核的模块(如插入移动硬盘 首先要将USB驱动加载到内核中 即make config时要选中编译USB模块 这样该模块就会在内原创 2011-05-26 12:55:00 · 2406 阅读 · 0 评论 -
__define_initcall()
/* * A "pure" initcall has no dependencies on anything else, and purely * initializes variables that couldn't be statically initialized. * * This only exists for built-in code, not for modules. */#define pure_initcall(fn) __define_initca原创 2011-05-31 17:19:00 · 1159 阅读 · 0 评论 -
Linux 启动流程 粗解(二)
另一个重要函数 在 start_kernel中最后调用的函数 0# 1#进程都是在这里启动的static noinline void __init_refok rest_init(void) __releases(kernel_lock){ int pid; rcu_scheduler_starting(); /* * We原创 2011-06-03 16:13:00 · 1261 阅读 · 0 评论 -
PID
/* * What is struct pid? * * A struct pid is the kernels internal notion of a process identifier. * It refers to individual tasks, process groups, and sessions. While * there are processes原创 2011-06-09 15:15:00 · 4046 阅读 · 0 评论 -
_setup()
System.map中有很多函数的链接,其中有些以__setup开头的函数,其定义如下: /* * Only for really core code. See moduleparam.h for the normal way. * * Force the alignment so the compiler doesnt space elements of the *原创 2011-06-09 21:17:00 · 1989 阅读 · 0 评论 -
paging_init()
paging_init()负责建立仅用于kernel而用户空间不可访问的页表。在IA-32系统的4GB虚拟地址空间总是以3:1的比例分配,用户态应用占用3G,kernel占用1G。当前系统上下文与分配的kernel的虚拟地址无关,每个进程都有自己指定的地址空间。这样分配的原因如下:当从用户态切换到内核态时,kernel必须嵌入到一个可靠的环境。因此分配部分地址空间仅用于kernel翻译 2011-06-21 15:33:00 · 2839 阅读 · 0 评论 -
likely and unlikely
http://topic.youkuaiyun.com/u/20070429/08/24ea26d2-1ce1-4e97-acb1-1c08b4fba736.htmllikely和unlikely是gcc扩展的跟处理器相关的宏:#define likely(x) __builtin_expect(!!(x), 1)#define unlikely(x) __buil转载 2011-06-27 18:19:00 · 1092 阅读 · 0 评论 -
Linux系统中的信号量(semphore)与互斥体(mutex)
Linux系统中的信号量(semphore)与互斥体(mutex)http://www.embexperts.com/viewthread.php?tid=31转载 2011-07-11 10:33:25 · 8361 阅读 · 0 评论 -
blkdev_open
#define UTS_RELEASE "2.6.35.7-perf"/kernel/fs/block_dev.cconst struct file_operations def_blk_fops = { .open = blkdev_open,...};st原创 2011-07-25 15:33:27 · 2625 阅读 · 0 评论 -
struct block_device *bdget(dev_t dev)
struct bdev_inode { struct block_device bdev; struct inode vfs_inode;};struct block_device *bdget(dev_t dev){ struct block_device *原创 2011-07-19 09:39:59 · 1987 阅读 · 0 评论 -
container_of()
kernel version "2.6.35.7-perf"include/linux//** * container_of - cast a member of a structure out to the containing structure * @ptr: the原创 2011-07-19 10:08:59 · 686 阅读 · 0 评论 -
bus_register
/** * bus_register - register a bus with the system. * @bus: bus. * * Once we have that, we registered the bus with the kobject *原创 2011-08-11 22:19:08 · 1654 阅读 · 0 评论 -
Linux 启动流程 粗解(三)
http://www.newsmth.net/bbsanc.php?path=%2Fgroups%2Fcomp.faq%2FKernelTech%2Fkernelsrc_reading_20040130%2FM.1038836997.A1.改源代码编译的Makefile,将g原创 2011-09-23 11:48:56 · 779 阅读 · 0 评论 -
[译]指定进程更新/proc/pid/smaps中PSS值得频率是多久?
问题: 如果n个进程共享大小为M的库L,那么它们对PSS的贡献是M/n。 现在假定一个进程终止了,那么贡献值变成M/(n-1)。Q1:我的问题是这种变化在多久反映到仍然运行和使用共享库的进程的PSS值? Q2:作为一个普通情况,假定只有两个进程使用大小为100 k的共享库L。每个进程的PSS贡献是50K。现在当P2死亡了,只有一个进程使用库L。这样他的PSS将会增加变成100K。多快会发生,翻译 2017-03-21 18:05:17 · 1399 阅读 · 0 评论