Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器 软件资源

软件开发小程序制作系统集成与运维空间租用硬件开发视频监控技术咨询与支持——联系电话:0311-88999002/88999003

首页 / 操作系统 / Linux

Linux内核算法知识点滴

Linux内核算法知识点滴

1.Linux 调度 I/O消耗型和处理器消耗型进程(保证及时的IO响应和高效的CPU利用率)负载平衡:每颗CPU上有一个进程队列,当CPU的负载差大于25%时运行负载平衡程序。(从最忙的CPU上取下一个优先级最高且CPU亲和力最小的进程到负载最轻的CPU进程队列中)。 为什么要取优先级最高的进程呢? 因为把优先级高的进程平均分配到各个CPU上去才能使系统的性能达到最高。CPU的亲和力:主要是高速缓存或是其它原因,如某个进程只能在某个CPU上运行。 ...
Linux初学者Patch程序使用攻略

Linux初学者Patch程序使用攻略

本文的目的是向Linux新手介绍一种无价的资源,Larry Wall的patch程序。patch是用来查找文件之间差异的GNU diff命令的一个接口;diff有很多选项,但是该命令最常用的用途是用来生成一个文件,该文件中列出了内容发生改变的行,显示两个原始文件、修改过的行以及由于内容没有变化而忽略掉的行。patch典型地用于把一个目录下的源代码文件更新到新的版本,从而就避免了下载整个新的源代码档案的必要。下载一个有效的 patch仅仅需要下载发生变化的那...
阅读Linux内核源码从何处着手

阅读Linux内核源码从何处着手

对Linux内核源码的分析,有两个很好的入口点:一个就是系统的引导和初始化,即从机器加电到系统核心的运行;另外一个就是系统调用,系统调用是用户程序或操作调用核心所提供的功能的接口。对于那些对硬件比较熟悉的爱好者,从系统的引导入手进行分析,可能来的容易一些;而从系统调用下口,则可能更合适于那些在dos或Uinx、Linux下有过C编程经验的高手。 下面就以系统的引导和初始化为例,简要描述一下源代码的阅读线索: 1、系统的启动和初始化: 在基于Intel...
在开源世界里我们的软件该如何编译

在开源世界里我们的软件该如何编译

基本上,尤其在Windows 和Mac OS X系统下,已经开发好的软件不需要用户再编译。程序员写好代码并编译后,封装为计算机可执行的二进制形式,用户就可以直接使用了。 然而现在,随着开源软件的增多,每个人都可以读和使用源代码,因而软件编译的最后一步工作已经转移到了用户身上,而且他们得根据自己使用的系统,Windows XP, Windows Vista, Mac OS X Tiger, Panther, Linux x86……来做编译工作。如果你发现自己...
掌握学习linux下的编程

掌握学习linux下的编程

虽说是以开源为基础的,而且在简单的程序上写起来是比较方便,不过有些时候确实让人头痛,让人想念微软的.Net或是MFC。 首先是标准不统一,最近在写一个基于线程池的服务器程序,用到了semaphore,还是存在mmap中的无名semaphore,调试得很愉快,于是高兴地把程序分发往各服务器,没料到在第一个服务器上装的时候就郁闷掉了,发现进程会永远地阻塞在sem_wait()上。后来一调查才意识到,我开发的环境是FC6(用的2.6内核),人家是支持整套Pos...
Linux下查找一个函数在哪个库文件中

Linux下查找一个函数在哪个库文件中

关于怎样查出一个库函数到底在哪个库文件中,我想到一个变通的办法,以查找fcntl函数在哪个库文件中为例吧: 1、找到一个使用fcntl的可执行文件,如test_fcntl。实在不行,自己编一个只有fcntl函数的c文件,然后编译一下得了。 2、使用“ldd test_fcntl”命令,可以追踪出该可执行文件到底使用了哪些库文件。通常可能有几个到几十个。 3、根据要查找的函数的作用和上一步所得到的各库文件的名字大致推测一下,该函数可能会在哪个或哪些库中...
学习下Linux中的库

学习下Linux中的库

soname 形式一般为lib.so.,以symbol link的方式存在于文件系统中,version的不同反映了接口的改变,其指向的实际文件的名字通常是在soname后加上..。 ldd/ldconfig 一个程序/shared库一般都要依赖其他的一些库,这可以用ldd来查看,它列出了依赖的库的soname,因为实际依赖是库的接口,而soname正是反映了库的接口信息。linux使用ELF作为可执行程序和库的格式,这些依赖的库的soname保存在...
在Linux编程中使用gcc

在Linux编程中使用gcc

为了了解linux的内核,使用vmware装了个Debian Linux。由于用惯了windows 一下子还改变不过来思维习惯(windows真是害人不浅啊^_^)。哈哈,装了后先写个c程序热热身,找了半天gcc竟然没装(因为是只装了debian的基本系统),那就先装个gcc吧。使用linux自带的软件管理器,插入安装盘,找到gcc,点击apply即可(看似简单的一句话,花了我n久时间啊)。 接下来使用vim写个test.c。vim的使用又有很多要学,不...
Linux下共享库的建立

Linux下共享库的建立

大多数LINUX程序都使用共享库。如果你感觉不到的话,大多数的C程序要用到的共享库libc.so.X,其中X是版本号。 1、检查程序的共享库 用ldd程序可以查询可执行程序所需要的共享库。下面是对一个用gcc2.96编译器编译的一般C程序做的查询(该程序使用的是ELF二进制格式): ldd a.out libc.so.6 => /lib/libc.so.6 (0x4003a000) /lib/ld-linux.so.2 => /lib/ld-l...
关于Linux下/sbin/init程序的执行过程

关于Linux下/sbin/init程序的执行过程

当init启动后,它通过执行各种启动事务来继续引导进程(检查并监视文件系统,启动后台程序daemons,等等),直至完成用户所有操作环境的设置工作。这里主要涉及4个程序:init、getty(agetty)、login和shell程序。 init进程的主要任务是根据/etc/rc文件中设置的信息,执行其中设置的命令,然后根据/etc/inittab文件中的信息,为每一个允许登录的终端设备使用fork()创建一个子进程,并在每个新创建的子进程中运行age...
<< 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 >>