经过近两个月的紧张开发后,Linus终于发布了2.6.22版的Linux内核。
和以前的2.6版内核一样,这个内核也包含了很多有趣的特性和更新,Kernel Newbies上有较为详细的概述。我从其中选择些自己感兴趣的内容进行简单的分析:
SLUB内存分配器:内存管理部分经过了较长时间的沉默后又进入了活跃的开发阶段,这次的改进主要是针对:当前的Slab内存管理代码较为晦涩难懂,不易于维护,这也是内存管理部分一直没人“敢”动的原因,不过它确实一直工作得不错;复杂的不仅仅是代码还有它所采用数据结构,大量的链表和Slab元数据占用了大量的内存空间,这种情况在“大”系统上尤其严重;这些复杂性也导致了内存的垃圾回收工作比较难做。终于,还是有人跳出来接受了这个挑战,他的对策就是SLUB内存分配系统。SLUB不仅精简了Slab的代码,而且改进了它所用的数据结构,避免了不必要的内存消耗,提高了空间利用率,当然时间效率上也有不小的提升:5-10%,而这些对于用户(内核开发人员)来说都是不可见的,因为他保留了原Slab的API。
krealloc:对于用户空间的C程序员来说realloc应该不陌生,没错,krealloc就是相应的内核版本,它能增加或缩小动态申请的内存空间,并尽量不重新分配内存空间,还能在一定程度上减小内部碎片。
quicklist:有的时候Slab的内存管理方式都有些显得沉重,为此内核的开发人员发明了面向页的内存管理方式,通过基于percpu单向列表的cache机制降低了重复调用__get_free_page和free_page的开销。
异步加密API:它的实现方式比较有意思,是通过一个加密守护进程(cryptd)将原本同步的加密操作异步化。其实,异步和同步本身就是可以相互转化的,这方面的例子还有glibc中aio模拟库和正在进行中的内核异步事件接口syslets。另外,syslets似乎比较占优势,乘着多核的东风多线程的时代已经在悄然逼进...
cancel_work_sync():同步取消一个任务是这次重构工作队列(workqueue)的一个产物,这个东西应该是很有用的,就像同步取消一个定时器的操作del_timer_sync()一样。有添就有删,这次的倒霉鬼是run_scheduled_work()。
可推迟定时器(Defered Timer):它属于环保节能工程的一部分,体现了Linux内核程序员对全球气候的关注,降低功耗的同时也增加了笔记本等移动设备的续航时间。那么它的原理呢?这得从动态滴答(Dynamic Tick)说起,它能在系统没有负载时取消作为操作系统“心跳”的定时器,使系统进入“休克”状态,从而降低系统的能耗;在接下来的休克过程中,如果有中断发生,系统将被唤醒,这个中断有可能是系统休克前设定的最近定时器的中断或者其它,但是并不是所有的定时器都有严格的时间限制,如果一个定时器可以推迟,那么唤醒操作将是不必须的,所以可推迟定时器的概念产生了...另外,工作队列中也定义了类似的工作。
信号/定时器事件通知:最终还是signalfd/timerfd进入了Linux内核,并且内核维护人员们认为我前面一篇文章提到过的用户空间的实现方式为hack,并称前者才是正途,更加Unixy,我想这一定是指“功能正交”。与他们同时引入的还有更加通用的eventfd系统调用,能用于用户空间的事件分发和等待和内核空间的事件分发。
网络:新引入了两个TCP拥塞控制算法:Illinois和YeAH-TCP,其中前者的作者还是一名华人,可以让我们华人小高兴一下!另一个高速的TCP拥塞控制算法CUBIC(BIC的加强版)也得到了更新。


lonetree 于 2007-07-11 10:12:42发表:
大侠,能给我发一份吗?
lonetree@qq.com
谢谢!
feildingellen 于 2007-07-10 17:15:49发表:
Miss zhang
feilding@163.com
feildingellen 于 2007-07-10 17:14:42发表:
feilding@163.com
This is ellen from elitehunt company,if you are interested in the position,send your resume /CV here, The JD are as the following,more infomation you can log on to our website:www.elitehunt.com
Software Application Engineer-PDA
>
工作地点:Shanghai
> Software
> Application Engineer-PDA
>
Location:Shanghai
> Responsibilities and Details
> Description
> In this position, you
will be working globally in a joint effort with US
> counterparts and other site. Your
responsibilities will include but not be limited to:
> -
> Understanding Company
Mobility and Mobile Internet Device (MID) and/or Ultra Mobile PC
> (UMPC) stratagem and
technology
> - Helping customers, Independent Software Vendor (ISV),
> carrier and
broadcaster to develop best mobile application (Linux* application for MID
> and
Windows* for UMPC)
> - Enabling the Mobility and/or MID and/or UMPC ecosystem
> -
>
Focusing on the key mobile segments and enabling the new usage models, such as keep in
>
touch, MDTV, in-car, internet, entertainment and other vertical usage
> - Supporting link
> team and local Original Equipment Manufacturer (OEM) design win, as the technical
leader,
>
> identifying the technology trends and creating the new segment for Company
Mobility and
> MID and/or UMPC platform
> Qualifications
> You should possess at least
a Bachelor of
> Science degree in Computer Engineering, Electrical Engineering, Computer
Science or an
> equivalent with six years of related working experience or a Master's
degree with four
> years of related experience. Additional qualifications include:
> -
Excellent
> communication (English and Chinese) and presentation skills
> - Familiarity
with the
> mobility software ecosystem and industry which include laptop cell phone or
other
> embedded system
> - Deep understanding of Independent Software Vendor (ISV)
enabling
> process
> - Good at Linux* technology for Company? Architecture or ARM*
> -
Understanding
> of Linux* kernel, device driver and application development process and
technology
> -
> Deep understanding of Company? architecture and Company's mobile
architecture
> - Good
> understanding of Company tools such as VTune(TM) and/or Company
Product Portfolio (IPP),
> Mobile Software Developer Kit (SDK), thread checker or gaming
Test Development Kit (TDK)
> and others
> - Good understanding of mobile software
technology
> - Good skills in
> high-level programming language (C and C++).
> -
Familiarity with one of the following
> segments: MDTV, in-car, entertainment or
internet
> - Strong self learning skill and work
> smart
> - Experience with embedded
operation system environments such as WinCE*, Linux*,
> Real Time Operating System
(RTOS) skills would be an added advantage
> Senior Software
> Engineer--TCP/IP/BIOS
>
工作地点:Shanghai
> Senior Software
> Engineer--TCP/IP Networking
security/BIOS
> Location:Shanghai
> Responsibilities and
> Details
> Description
>
In this position, you will be responsible for the design and
> implementation of
software modules based on the Company? Platform Innovation Framework
> for Extensible
Firmware Interface (EFI) (the Framework), especially network-based
> modules. The
Framework is Company's next generation firmware solution which is designed
> to enable
the Basic Input Output System (BIOS) industry and the customers to accelerate
> the
evolution of innovative, differentiated, platform designs. Your responsibilities will
>
> include but not be limited to:
> - Working with architects and other senior engineers
to
> complete the module-level design
> - Implementing the modules on top of the
Framework,
> including necessary unit test and document writing
> - Responsible for bug
fixing and
> problem solving according to the feedback of validation team and internal
and/or external
>
> customers
> - Leading a small team to complete a project
>
Qualifications
> You must possess
> at least a Bachelor of Science degree in one of the
Engineering fields such as Computer
> Science, Computer Engineering or Electrical
Engineering with at least more than three
> years,and have related software development
experience. Additional qualifications
> include:
> - Familiarity with TCP and/or IP
network stack principles and implementations
> - Experienced in C and/or C++
programming, very familiar with data structure
> -
> Familiarity with Operating System
(OS) principles and experienced in the development on
> Linux* and Windows*
> -
Knowledge of security algorithm and network security principles
> -
> Knowledge in
software engineering and software product process
> - Good communication
> skills and
good team working
> - Product experience, especially embedded system
> development
would be an added advantage
> Senior Software Engineer -Linux kernel