Friday, February 29, 2008
Thursday, April 26, 2007
Linux 2.6.21 Changelog
Short overview (for news sites, etc)
2.6.21 improves the virtualization features merged in 2.6.20 with VMI (http://lwn.net/Articles/175706), a paravirtualization interface that will be used by Vmware (and maybe -probably not- Xen) software. KVM does get initial paravirtualization along with live migration and host suspend/resume support (http://lwn.net/Articles/223839). 2.6.21 also gets a tickless idle loop mechanism called "Dynticks" (http://lwn.net/Articles/223185), a feature built in top of "clockevents" which unifies the timer handling and brings true high-resolution timers. Other features are: bigger kernel command-line, optional ZONE_DMA; support for the PA SEMI PWRficient CPU, for a Cell-based "celleb" architecture from Toshiba, better PS3 support: support for NFS IPv6, IPv4 <-> IPv6 IPSEC tunneling support, UFS2 write support, kprobes for PPC32, kexec and oprofile for ARM, public key encription for ecryptfs, Fcrypt and Camilla cipher algorithms, NAT port randomization, audit lockdown mode, many new drivers and many other small improvements.
Important things (AKA: ''the cool stuff'')
VMI (Virtual Machine Interface)
VMI is a virtualization feature built in top of the paravirt_ops paravirtualization implementation introduced in 2.6.20.
Paravirtualizated kernels need to be modified to run under a hypervisor. The goal of VMI is to become the common paravirtualization interface for hypervisors like Xen and Vmware. Vmware will certainly use VMI; Xen was going to use VMI but they may develop their own VMI-like interface. Any hypervisor can use VMI by providing a (GPLed) ROM; the ROM describes how the low-level VMI kernel must use the hypervisor. A VMI-enabled kernel can also boot on bare hardware and no hypervisor with no performance impact (commit 1 2, 3, 4, 5, 6, 7, 8)
More details about VMI can be found in this LWN article: "The VMI virtualization interface"
KVM updates
KVM does evolve at a very fast pace, due to its clean design. This release (KVM-15) brings many new features:
*
Initial paravirtualization support, which has much faster performance
* Live migration (the guest continues running even while being migrated) support. It's possible to migrate a guest from a Intel CPU to an AMD CPU
* Host Suspend/resume support
* CPU hotplug support - a useful feature for data centers, where you can add/remove CPUs according to the load
* A stable userspace interface
Recommended LWN article: "KVM-15"
(commit 1, 2, 3, 4, 5)
Dynticks and Clockevents
Recommended LWN article: "Clockevents and dyntick"
(This feature touches a lot of low-level x86 code, so regressions are possible. If you have problems with 2.6.21, please report it)
Clockevents is a building block of dynticks. A example of a clock devices is the device which makes timer interrupts. The handling of those devices was made in the architecture-specific code, so there wasn't an unified way of using those devices. The clockevents patch unifies the clockdevice handling so the kernel can use the timer capabilities of those devices in a unified manner. This also allows to implement true high-resolution timers.
Dynticks (aka: dynamic ticks) it's a configurable feature for x86 32bits (x86-64 and ARM support is already done but not ready for this release; PPC and MIPS support are in the works) that changes the heart of the mechanism that allow a system to implement multitasking. To know what dyntick does, first you should know some basics: Traditionally, multitasking is implemented thanks to a timer interrupt that is configured to fire N times in a second. Firing this interrupt causes a call to the operative system's process scheduler routines. Then, the scheduler decides what process should run next, the process that was running before the timer interrupt was fired, or another process. This is how true multitasking is implemented in all the general-purpose operative systems, it's also what stops processes from being able to monopolize the CPU time: The timer interrupt will be fired regardless of what the process is doing and the operative system will be able to stop it.
N (the number of times the timer interrupt is fired in each second, aka 'HZ') is a hardcoded compile-time architecture-dependent constant. For Linux 2.4 (and Windows), HZ=100 (the timer interrupt fires 100 times per second). 2.6 increased HZ to 1000, for several reasons: 100 was the HZ value that x86 had been using since forever, and it didn't really had a lot of sense in modern CPUs that runs much faster: Higher HZ means smaller process time slices, which improves the minimum latency and interactivity. The downside is higher timer overhead (negligible in modern hardware, although some server-oriented distros package kernels with HZ=100 because of minor performance gains) and high pitch noises in some systems due to low-quality, cheap capacitators
Anyway, the issue is that the timer is fired HZ times in every second - even if the system is doing nothing. Dynticks is a feature that stops the system from waking up HZ times per second. When the system is entering the idle loop it disables the periodic timer interrupt, and programs the timer to fire the next time a timer event is needed. This means your system will be 'disabled' while there's nothing to do (unless a interrupt happens - ej: a incoming packet through your network). For now, dynticks does just that. However, this infrastructure will allow to create a innovative power-saving feature: When dynticks is in "tickless" mode and the system is waiting for the timer interrupt, the power-saving feature of modern CPUs will be used. This can save a few W when the laptop is idle.
Dynticks adds some nice configurable debugging features: /proc/timer_list prints all the pending timers, allowing developers to check if their program is doing something wrong when it should be doing nothing, /proc/timer_stat, in the other hand, collects some timer statistics, allowing to detect the source of commonly-programmed timers.
(commit 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28)
ASoC
The ASoC (ALSA System on Chip) layer has been added to the ALSA sound system. Its aim is to provide improved support for sound processors on embedded systems. The ASoC core is designed to allow reuse of codec drivers on other platforms, reuse of platform specific audio DMA and DAI drivers on different machines, easy I2S/PCM digital audio interface configuration between codec and SoC, and allow machines to add controls and operations to the audio subsystem. e.g. volume control for speaker amp.
To achieve all this, ASoC splits an embedded audio system into 3 components: 1. Codec driver: The codec driver is platform independent and contains audio controls, audio interface capabilities, codec dapm and codec IO functions 2. Platform driver: The platform driver contains the audio dma engine and audio interface drivers (e.g. I2S, AC97, PCM) for that platform. 3. Machine driver: The machine driver handles any machine specific controls and audio events. i.e. turning on an amp at start of playback.
It includes a dynamic power management subsystem, designed to allow portable and handheld Linux devices to use the minimum amount of power within the audio subsystem at all times. It is independent of other kernel PM and as such, can easily co-exist with the other PM systems. DAPM is also completely transparent to all user space applications as all power switching is done within the ASoC core. No code changes or recompiling are required for user space applications. DAPM makes power switching decisions based upon any audio stream (capture/playback) activity and audio mixer settings within the device.
A number of platform and codec drivers for ASoC have been merged as well.
(commit 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39)
Dynamic kernel command-line
The current implementation stores a command-line buffer allocated to COMMAND_LINE_SIZE (a compile-time constant) size - 256 bytes on x86. This is not enougth space today, some systems hit a limit when they use too many module parameters, video settings, initramfs parameters etc. It's possible to increase COMMAND_LINE_SIZE to a greater value, but there's a problem: a static buffer of that size (say, 2KB) will be allocated even if you aren't using all of it.
So in 2.6.21 the size of the boot command line it's allocated dynamically. A static buffer is still allocated (2K in i386), but the contents are copied into a dinamically-allocated buffer with the exact size, then the static buffer is freed with the rest of the initdata data
(commit 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31)
Optional ZONE_DMA
ZONE_DMA was created for handling x86-specific ISA DMA uglities. Some arches do not need ZONE_DMA at all, the newer x86 systems are not needing ISA DMA and are starting to include IOMMUs. 2.6.21 makes possible to completely disable ZONE_DMA. This also makes possible some compiler optimizations
(commit 1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
devres
"devres" is an optional subsystem for drivers that greatly simplifies the task of driver housekeeping, if you have to acquire+map then later unmap+free a bunch of device-related resources (MMIO, PIO , IRQs, iomap, PCI, DMA resources). The aim is to make easier for programmers to allocate & free resources & handle errors for a driver writer. A device driver can allocate arbirary size of devres data which is associated with a release function. On driver detach, release function is invoked on the devres data, then, devres data is freed (commit)
Recommended LWN article: "The managed resource API"
GPIO API
The GPIO API implements a simple and minimalist programming interface for GPIO APIs. A "General Purpose Input/Output" (GPIO) is a flexible software-controlled digital signal. They are provided from many kinds of chip, and are familiar to Linux developers working with embedded and custom hardware.
(commit 1, 2, 3, 4, 5, 6)
New drivers
Here are some important new drivers that have been added to the Linux tree:
* Graphics:
o
Add fbdev driver for the old S3 Trio/Virge (commit)
o
Driver for the Silicon Motion SM501 multifunction device framebuffer subsystem (commit), (commit)
* Storage devices:
o
Add two drivers for the it8213 IDE device, one using the old IDE stack (commit), (commit) and other using libata (commit)
o
Add IDE Driver for Delkin/Lexar/etc.. cardbus CF adapter (commit)
o
Add IDE driver for Toshiba TC86C001 (old IDE stack) (commit)
o
Add SCSI driver for SNI RM 53c710 (commit)
o
Add driver for Initio 162x SATA devices (commit)
* Networking devices
o
Add driver for the latest 1G/10G Chelsio adapter, T3 (commit), (commit)
o
Add driver for the Attansic L1 ethernet device (commit)
o
Add driver for the Gigaset M101 wireless ISDN device (commit)
o
Add PC300too alternative WAN driver (commit)
o
Add driver for Silan SC92031 device (commit)
o
Add driver for the Davicom DM9601 USB 1.1 ethernet device (commit)
* Various
o
Add driver to charge USB blackberry devices (commit)
o
Add driver for iowarrior USB devices. (commit)
o
Add support for the GTCO CalComp/InterWrite USB tablet (commit)
o
New driver for the Analog Devices ADM1029 hardware monitoring driver (commit)
Crashing soon a kernel near you
This is a list of some of the ongoing patches being developed at the kernel community that will be part of future Linux releases. Those features may take many months to get into the Linus' git tree, or may be dropped. The features are tested in the -mm tree, but be warned, it can crash your machine, eat your data (unlikely but not impossible) or rape your sister (just because it has never happened it doesn't means you're safe):
*
Con Colivas' RSDL process scheduler, which seems to work much better than the stock scheduler according to some reports (LWN article)
* For too long the linux wireless support hasn't been as bright as it should, specially from a desktop-ready POV. A new wireless stack based on the GPLed Devicescape wifi stack has been being developed for many time and soon will be merged. It brings better hardware support, better wireless capabilities, and better tool enablement.
*
The Blackfin architecture
*
Utrace (LWN article)
*
Revoke()/frevoke() system calls (LWN article)
* Mel Gorman's fragmentation avoidance patches and Lumpy reclaim
* Unionfs
*
EXT 4 patches (wiki)
* Lguest
*
Adaptive Readhead
* Reiser 4
Various core changes
*
Remove the SMT-nice feature which idles sibling cpus on SMT cpus to facilitiate nice working properly where cpu power is shared. The idling of cpus in the presence of runnable tasks is considered too fragile, easy to break with outside code, and the complexity of managing this system if an architecture comes along with many logical cores sharing cpu power will be unworkable (commit)
*
EDAC: Add support for Fully-Buffered DIMM APIs to core (commit)
*
Add shadow directory support for sysfs (commit)
*
Add whole_disk partition attribute for disks (commit)
*
Use zone-based counters for: free_pages (commit) and for inactive and active counts (commit)
*
Make mincore work for anon mappings, nonlinear, and migration entries (commit)
*
lockdep: add graph depth information to /proc/lockdep (commit)
*
Support for reshape of a raid6 (commit)
*
Relay: add CPU hotplug support (commit)
*
List all active probes in the system in /sys/kernel/debug/kprobes/list (commit)
*
PCI: Make PCI device numa-node attribute visible in sysfs (commit) Export the numa-node attribute of PCI devices in sysfs so that user applications may choose where to be placed accordingly.
*
PCIEHP: Add Electro Mechanical Interlock (EMI) support to the PCIE hotplug driver. (commit) * EDAC: Add memory scrubbing controls API to core (commit)
*
Make MSI useable more architectures (commit)
*
New toplevel target: headers_check_all (commit)
*
Add the module name for built in kernel drivers (commit)
*
Add retain_initrd boot option to control freeing of initrd memory after extraction (commit)
*
Allow taint flags to be set from userspace by writing to /proc/sys/kernel/tainted, and add a new taint flag, TAINT_USER, to be used when userspace has potentially done something dangerous that might compromise the kernel. This will allow support personnel to ask further questions about what may have caused the user taint flag to have been set. Recommended LWN article: "Tainting from userspace" (commit)
Architecture-specific changes
* x86-32
o
Compile with -freg-struct-return, which returns struct and union values in registers when possible (like pte_t) (commit)
o
Convert i386 PDA code to use %fs (commit)
o
Add option to show more code in oops reports (commit)
o
Support Classic MediaGXm (commit)
* x86-64
o
Add copy_from_user_nocache. This does user copies in fs write() into the page cache with write combining. This pushes the destination out of the CPU's cache, but allows higher bandwidth in some case (commit)
* PPC
o
Add support for the Toshiba's Cell Reference Set 'Celleb' Architecture (commit 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
o
Pa Semi PWRficient CPU support (commit 1), 2, 3, 4, 5, 6, 7, 8, 9, 10)
o
Add kprobes support to ppc32 (commit)
o
Add stackEnable stack overflow checking (DEBUG_STACKOVERFLOW) and stack usage (DEBUG_STACK_USAGE) on ppc32 (commit)
o
Freescale 8xx support (commit), (commit 1, 2, 3, 4, 5)
o
83xx: Add support for MPC8349E-mITX-GP (commit), add base support for the MPC8313E RDB (commit)
o
85xx: Add support for the 8568 MDS board (commit), (commit)
o
PS3: System manager support (commit), vuart add async read (commit), AV Settings Driver (commit), repository storage support (commit), virtual Frame Buffer Driver (commit)
o
Remove the broken Gemini support (commit)
o
Add mpc52xx/lite5200 PCI support (commit) and support for the MPC52xx ATA controller (commit)
o
Add PMI driver for cell blade (commit)
o
Open Firmware serial port driver (commit)
o
Add support for AMCC Taishan 440GX evaluation board (commit)
* ARM
o
Add kexec support (commit)
o
Add support for SMDK2443 (commit)
o
Add ARM11 oprofile support (commit), (commit), (commit)
o
Add support for AT91SAM9263 (commit 1, 2, 3, 4)
o
Add Samsung S3C2443 support (commit), (commit), (commit)
o
Add support for AT91SAM9XE processors. (commit)
o
AACI record support on Versatile platform (commit)
o
Add support for the RealView/EB MPCore revC platform (commit)
o
Add initial board support for Contec Hypercontrol Micro9 boards. (commit)
o
Add Armzone QT2410 support(commit)
* S390
o
Mark kernel text section read-only. (commit)
o
noexec protection on s390 hardware. This hardware does not have any bits left in the pte for a hw noexec bit, so this is a different approach using shadow page tables and a special addressing mode that allows separate address spaces for code and data (commit)
o
Support for s390 Pseudo Random Number Generator (commit)
o
Boot from NSS support (commit)
o
Add AF_IUCV socket support (commit)
o
Rewrite of the IUCV base code (commit), (commit), (commit)
o
Adapt the following drivers to the new IUCV API: netiucv (commit), vmlogrdr (commit), monreader (commit),
o
Hypervisor filesystem (s390_hypfs) for z/VM (commit)
o
Calibrate delay and bogomips (commit)
o
Add support for clock synchronization to an external time reference (ETR) (commit)
o
Add crypto support for 3592 tape devices (commit)
* PARISC
o
Generic BUG (commit)
o
Add TIF_RESTORE_SIGMASK support (commit)
o
Generic time infrastructure support (commit)
* MIPS
o
Add basic support for the SMARTMIPS extension. This extension is currently implemented by 4KS[CD] CPUs support (commit)
o
Iomap implementation (commit)
o
Add UART support for Philips PNX8330/8550/8950 (commit)
o
Add Cobalt Server front LED (commit) and MTD device support (commit)
o
TURBOchannel bus support for the DECstation (commit),(commit)
* SPARC64
o
Add PCI MSI support on Niagara. (commit)
o
Remove the broken SUN_AURORA driver. (commit)
*
IA64: Altix: Add ACPI SSDT PCI (commit) and ACPI SSDT PCI device support (commit)
Filesystems
* eCryptfs
o
Public key encryption support (commit), (commit)
o
Encrypted passthrough: it provides an option to provide a view of the encrypted files such that the metadata is always in the header of the files, regardless of whether the metadata is actually in the header or in the extended attribute. This mode of operation is useful for applications like incremental backup utilities that do not preserve the extended attributes when directly accessing the lower files (commit)
o
Introduce the ability to store cryptographic metadata into an lower file extended attribute rather than the lower file header region. The two new nmount options are: 1) ecryptfs_xattr_metadata: when set, newly created files will have their cryptographic metadata stored in the extended attribute region of the file rather than the header 2) ecryptfs_encrypted_view: when set this option causes eCryptfs to present applications a view of encrypted files as if the cryptographic metadata were stored in the file header, whether the metadata is actually stored in the header or in the extended attributes (commit)
* GFS2
o
Add writepages for "data=writeback" mounts (commit)
o
Speed up readdir (commit)
o
Increase default lock limit (commit)
o
Shrink gfs2_inode memory by half (commit)
* CIFS:
o
Additional POSIX CIFS Extensions infolevels (commit), (commit)
o
Allow update of EOF on remote extend of file (commit)
* XFS
o
Reduction global superblock lock contention near ENOSPC (commit)
o
Make growfs work for amounts greater than 2TB (commit)
*
NFS: IPv6 support (commit 1, 2, 3, 4, 5, 6, 7, 8, 9)
*
Minix: V3 format support (commit)
*
UFS2: read/write support (commit), (commit), (commit)
*
JFFS: Remove JFFS (version 1), as scheduled. Unmaintained for years, few if any users (commit)
*
JFS: Add lockdep annotations (commit)
*
Debugfs: implement symbolic links (commit)
Networking
*
Add Camellia cipher support to IPSEC (commit), (commit)
*
IPv4 over IPv6 IPsec tunnel (commit)
*
IPv6 over IPv4 IPsec tunnel (commit)
*
Make net use the jiffies rounding code (commit)
*
Add CONFIG_NET_KEY_MIGRATE option which makes it possible for user application to send or receive MIGRATE message to/from PF_KEY socket. This feature is required, for instance, in a Mobile IPv6 environment with IPsec configuration where mobile nodes change their attachment point to the Internet. Detail information can be found in the internet-draft "draft-sugimoto-mip6-pfkey-migrate" (commit), (commit)
* NETFILTER
o
NAT: optional source port randomization support (commit)
o
Add IPv6-capable TCPMSS target support (commit)
o
Add SANE connection tracking helper (commit)
o
Introduces match for Mobility Header (MH) described by Mobile IPv6 specification (RFC3775) (commit)
* XFRM
o
Add CONFIG_XFRM_MIGRATE option which makes it possible for for user application to send or receive MIGRATE message to/from netlink socket (commit)
o
User interface for handling XFRM_MSG_MIGRATE (commit)
o
Extension for dynamic update of endpoint address(es) (commit)
*
X.25: Add /proc/net/x25/forward to view active forwarded calls. (commit) and /proc/sys/net/x25/x25_forward to control forwarding (commit). Also add call forwarding (commit)
Various subsystems
Software suspend
crypto/audit
*
Audit: "lockdown" mode where further configuration changes cannot be made. Any attempt to change the configuration while in this mode is audited. To change the audit rules, you'd need to reboot the machine (commit)
*
Add the Camellia cipher algorithm. Camellia is a symmetric key block cipher developed jointly at NTT and Mitsubishi Electric Corporation (commit 1, 2, 3)
*
tcrypt: Added test vectors for SHA384 HMAC and SHA512 HMAC (commit)
*
Allow multiple frontends per backend (commit)
*
fcrypt: Add FCrypt from RxRPC (commit)
*
pcbc: Add Propagated CBC template (commit)
Drivers
Network drivers
*
sky2: add Wake On Lan support (commit), Yukon Extreme support (commit)
*
s2io: Making LRO and UFO as module loadable parameter. (commit) and add a loadable parameter to enable or disable vlan stripping in frame (commit)
*
ucc_geth: Add support to local-mac-address property (commit)
*
zd1211rw: 4 new ZD1211B device ID's (commit), (commit), (commit)
*
prism54: add ethtool -i interface (commit)
*
ipw2200: add iwconfig rts/frag auto support (commit)
*
sungem_phy: support bcm5461 phy, autoneg (commit)
*
spidernet: add support for Celleb (commit), (commit)
*
skge: WOL support (commit)
*
forcedeth: statistics supported (commit)
*
natsemi: Support Aculab E1/T1 PMXc cPCI carrier cards (commit)
*
phylib: Add support for Marvell 88e1111S and 88e1145 (commit)
*
Remove the broken SKMC driver (commit)
*
Remove the broken OAKNET driver (commit)
SATA/IDE/SCSI
*
IDE: ACPI support for IDE devices (commit)
* SATA
o
Update libata core layer to use devres (commit), (commit)
o
Add PIIX3 support to ata_piix (commit)
o
Support PCI MSI in sata_vsc (commit)
o
sata_promise: ATAPI support (commit), add TX2plus PATA support (commit)
o
sata_sis: support SiS966/966L (commit), add support for PATA (commit)
o
sata_via: PATA support (commit)
o
sata_nv: add suspend/resume support (commit)
o
pata_cs5520: add suspend/resume support (commit)
o
libata: implement HDIO_GET_IDENTITY (aka hdparm -i) (commit)
o
ACPI _SDD (commit) and _GTF support (commit)
* SCSI
o
qla3xxx: Add support for Qlogic 4032 chip. (commit)
o
fusion: greater than 255 target and lun support (commit), inactive raid support (commit)
o
lpfc: add PCI error recovery support (commit)
o
wd33c93: Support fast SCSI with WD33C93B (commit)
o
qla2xxx: Add MSI-X support. (commit)
o
libsas: Add a sysfs knob to enable/disable a phy (commit)
o
aic94xx: Add support for scanning SAS devices asynchronously (commit)
Graphics
*
Add display output class (commit), (commit)
*
Remove broken video drivers that had already been marked as BROKEN in 2.6.0 three years ago and are still marked as BROKEN: FB_CYBER, FB_VIRGE, FB_RETINAZ3 and FB_SUN3 (commit)
*
remove the broken FB_S3TRIO driver (commit)
*
tgafb: support the DirectColor visual (commit)
ALSA
*
HDA: Add support for Fujitsu PI1556 Realtek ALC880 (commit), add sigmatel 9205 eapd support (commit), add asus-laptop model for ALC861 (ALC660) (commit), add support for Evesham Voyager C530RD laptops (commit), add asus model to ALC861 codec (commit), add support for Sigmatel STAC9202/9250/9251 codecs (commit), add toshiba model to ALC861 codec (commit), add support for Toshiba M105 to Realtek patch (commit), add support for Clevo M540JE, M550JE laptops (Nvidia MCP51 chipset, ALC883 codec) (commit), add support for Medion laptops (commit), add support for VIA VT1708(A) HD audio codec (commit), add new modesl for Realtek codecs (commit), add HP BPC-D7000 support (commit), add support for Sony UX-90s (commit), add model for ASUS W3j laptop (commit), add ALC861VD/ALC660VD support (commit), add support for Samsung Q1 Ultra (commit)
*
emu10k1: Add Audio capture support for Audigy 2 ZS Notebook (commit), add support for 14dB Attenuation PADS on DACs and ADCs. (commit), added support for emu1010, including E-Mu 1212m and E-Mu 1820m (commit), add emu1010 internal clock rate control for 44100 or 48000. (commit)
*
hdsp: support for mixer matrix of RME9632 rev 152 (commit)
*
hdspm: Add support for AES32 (commit)
*
Add snd-portman2x4 driver for Midiman Portman 2x4 MIDI device (commit)
*
ice1724: Add support of M-Audio Audiophile 192 (commit) and add support for Prodigy 7.1 XT (commit)
*
Enable capture from line-in and CD on Revolution 5.1 (commit)
*
Add Conexant audio support to the HD Audio driver (commit)
*
usbaudio: Add support for Edirol UA-101 (commit), allow pausing (commit), add PCR-A PCM support (commit)
*
ac97: Suppress power-saving mode on non-supporting drivers (commit)
*
Add support of the ESI Waveterminal 192M to the ice1724 ALSA driver (commit)
*
Enable the analog loopback of the Revolution 5.1 (commit)
Input
*
Add force feedback driver for PantherLord USB/PS2 2in1 Adapter (commit)
*
Add support for Logitech Momo racing wheel (commit)
*
Add Atlas button driver (commit)
*
wistron: Add support for Fujitsu-Siemens Amilo D88x0 (commit)
*
gpio-keys: Add keyboard driver for GPIO buttons (commit)
*
HID: Add support for Logitech Formula Force EX (commit), allow force feedback for multi-input devices (commit), quirk for multi-input devices with unneeded output reports (commit), handle multi-interface devices for Apple macbook pro properly (commit), add support for using the HID subsystem in bluetooth (commit)
*
Remove scan_keyb driver (commit)
USB
*
usbmon: add a new, "binary" API in addition to the old, text API usbmon had before. The new API allows for less CPU use, and it allows to capture all data from a packet where old API only captured 32 bytes at most (commit)
*
Add dynamic id support to usb-serial core (commit)
*
Add autosuspend support for usb printer driver (commit)
*
Add Sony PS3 ohci/ehci bus support (commit), (commit)
*
Add power management support (commit) and better ethtool support for kaweth (commit)
*
Add EPIC support to the io_edgeport driver (commit)
*
PL2303: Willcom WS002IN Support. (commit)
*
Implement support for "split" endian OHCI (commit) and EHCI with big endian MMIO (commit)
*
EHCI: force high-speed devices to run at full speed (commit)
*
Add "activesync" support for rndis_host (commit)
*
ASIX: Add IO-DATA ETG-US2 Support. (commit)
*
Remove CONFIG_USB_BANDWITH - "Enforce USB bandwidth allocation", since it's no longer neccesary (commit)
V4L
*
Bttv cropping support (commit)
*
Adds video output routing (commit)
*
Pvrusb2: Enable radio mode for 24xxx devices (commit), implement multiple minor device number handling (commit), implement /dev/radioX (commit), allow streaming from /dev/radioX (commit)
*
Add support for more Encore TV cards (commit), add a new qt1010 tuner module (commit), (commit), add VIDIOC_G_ENC_INDEX ioctl (commit), SN9C102 driver updates (commit), add support for svideo/composite input of the Terratec Cinergy 1400 DVB-T (commit), add support for the ASUS P7131 remote control (commit), add cablestar2 support (commit), add support for Terratec Cinergy HT PCI (commit), add support for the Technotrend 1500 bundled remote (commit), add support for Ultraview DVB-T Lite (commit), initial support for Sigmatek DVB-110 DVB-T (commit), initial support for MSI Mega Sky 580 based on Uli m9206 (commit), initial support for MSI Mega Sky 580 DVB-T based on GL861 (commit)
Cpufreq
*
Introduce Nehemiah C (commit)
*
Enhanced PowerSaver driver present in VIA C7 processors (commit)
*
Add VT8235 support (commit)
*
Remove "ignore_latency" option (commit)
ACPI
*
Add support for ACPI controlled removable drive bays such as the IBM ultrabay or the Dell Module Bay (commit)
*
Implement simplified Table Manager. It reduces the size of the kernel-resident ACPICA by 5% (commit), (commit), (commit)
*
ACPICA: Removed all 16-bit support (commit)
*
Remove motherboard driver (redundant with PNP system driver) (commit)
*
Remove the generic hotkey driver, as scheduled - the hotkeys are not part of the ACPI specification so they must be handled instead in the platform-specific drivers (commit)
*
Convert ACPI to sysfs framework - removes /sys/firmware/acpi (commit)
*
Add backlight sysfs support for acpi video driver. (commit)
*
sony_acpi: Add backlight support (commit), add backlight support (commit), add SNC device support for Sony Vaios (commit), rename this driver to sony-laptop (commit)
*
sony-laptop: Remove /proc/acpi/sony interface and implement platform_device. (commit)
*
Add asus-laptop driver (commit 1, 2, 3, 4, 5, 6, 7, 8)
I2C
*
Add suspend/resume/shutdown support (commit)
*
i2c-piix4: Add support for the ATI SB600 SMBus controller (commit)
*
i2c-parport: Add support for One For All remote JP1 interface (commit)
*
i2c-viapro: Add support for the VIA CX700 south bridge (commit)
Various
* hwmon:
o
it87: Add PWM base frequency control (commit)
o
Add support for the W83627DHG chip in w83627ehf (commit)
*
APM: Add shared version of APM emulation (commit), (commit), (commit), (commit)
* SPI
o
Freescale iMX SPI controller driver (BIS+) (commit)
o
eeprom driver (commit)
o
controller driver for OMAP Microwire (commit)
o
atmel_spi driver (commit)
* MTD
o
EXcite nand flash driver (commit)
o
S3C2410: Hardware ECC correction code (commit)
o
OneNAND: Add support for auto-placement of out-of-band data (commit)
*
RDMA: Add multicast communication support (commit)
*
IPoIB: Connected mode experimental support (commit)
*
RTC framework driver for CMOS RTCs (commit)
*
RTC gets sysfs wakealarm attribute (commit)
*
mmc: Add support for SDHC cards (commit)
*
tifm_core: add suspend/resume infrastructure for tifm devices (commit)
*
tifm_sd: add suspend and resume functionality (commit)
*
leds: Add IPAQ h1940 LEDs support (commit)
*
backlight: Add Frontpath ProGear HX1050+ driver (commit)
*
drivers: add LCD support (commit)
2.6.21 improves the virtualization features merged in 2.6.20 with VMI (http://lwn.net/Articles/175706), a paravirtualization interface that will be used by Vmware (and maybe -probably not- Xen) software. KVM does get initial paravirtualization along with live migration and host suspend/resume support (http://lwn.net/Articles/223839). 2.6.21 also gets a tickless idle loop mechanism called "Dynticks" (http://lwn.net/Articles/223185), a feature built in top of "clockevents" which unifies the timer handling and brings true high-resolution timers. Other features are: bigger kernel command-line, optional ZONE_DMA; support for the PA SEMI PWRficient CPU, for a Cell-based "celleb" architecture from Toshiba, better PS3 support: support for NFS IPv6, IPv4 <-> IPv6 IPSEC tunneling support, UFS2 write support, kprobes for PPC32, kexec and oprofile for ARM, public key encription for ecryptfs, Fcrypt and Camilla cipher algorithms, NAT port randomization, audit lockdown mode, many new drivers and many other small improvements.
Important things (AKA: ''the cool stuff'')
VMI (Virtual Machine Interface)
VMI is a virtualization feature built in top of the paravirt_ops paravirtualization implementation introduced in 2.6.20.
Paravirtualizated kernels need to be modified to run under a hypervisor. The goal of VMI is to become the common paravirtualization interface for hypervisors like Xen and Vmware. Vmware will certainly use VMI; Xen was going to use VMI but they may develop their own VMI-like interface. Any hypervisor can use VMI by providing a (GPLed) ROM; the ROM describes how the low-level VMI kernel must use the hypervisor. A VMI-enabled kernel can also boot on bare hardware and no hypervisor with no performance impact (commit 1 2, 3, 4, 5, 6, 7, 8)
More details about VMI can be found in this LWN article: "The VMI virtualization interface"
KVM updates
KVM does evolve at a very fast pace, due to its clean design. This release (KVM-15) brings many new features:
*
Initial paravirtualization support, which has much faster performance
* Live migration (the guest continues running even while being migrated) support. It's possible to migrate a guest from a Intel CPU to an AMD CPU
* Host Suspend/resume support
* CPU hotplug support - a useful feature for data centers, where you can add/remove CPUs according to the load
* A stable userspace interface
Recommended LWN article: "KVM-15"
(commit 1, 2, 3, 4, 5)
Dynticks and Clockevents
Recommended LWN article: "Clockevents and dyntick"
(This feature touches a lot of low-level x86 code, so regressions are possible. If you have problems with 2.6.21, please report it)
Clockevents is a building block of dynticks. A example of a clock devices is the device which makes timer interrupts. The handling of those devices was made in the architecture-specific code, so there wasn't an unified way of using those devices. The clockevents patch unifies the clockdevice handling so the kernel can use the timer capabilities of those devices in a unified manner. This also allows to implement true high-resolution timers.
Dynticks (aka: dynamic ticks) it's a configurable feature for x86 32bits (x86-64 and ARM support is already done but not ready for this release; PPC and MIPS support are in the works) that changes the heart of the mechanism that allow a system to implement multitasking. To know what dyntick does, first you should know some basics: Traditionally, multitasking is implemented thanks to a timer interrupt that is configured to fire N times in a second. Firing this interrupt causes a call to the operative system's process scheduler routines. Then, the scheduler decides what process should run next, the process that was running before the timer interrupt was fired, or another process. This is how true multitasking is implemented in all the general-purpose operative systems, it's also what stops processes from being able to monopolize the CPU time: The timer interrupt will be fired regardless of what the process is doing and the operative system will be able to stop it.
N (the number of times the timer interrupt is fired in each second, aka 'HZ') is a hardcoded compile-time architecture-dependent constant. For Linux 2.4 (and Windows), HZ=100 (the timer interrupt fires 100 times per second). 2.6 increased HZ to 1000, for several reasons: 100 was the HZ value that x86 had been using since forever, and it didn't really had a lot of sense in modern CPUs that runs much faster: Higher HZ means smaller process time slices, which improves the minimum latency and interactivity. The downside is higher timer overhead (negligible in modern hardware, although some server-oriented distros package kernels with HZ=100 because of minor performance gains) and high pitch noises in some systems due to low-quality, cheap capacitators
Anyway, the issue is that the timer is fired HZ times in every second - even if the system is doing nothing. Dynticks is a feature that stops the system from waking up HZ times per second. When the system is entering the idle loop it disables the periodic timer interrupt, and programs the timer to fire the next time a timer event is needed. This means your system will be 'disabled' while there's nothing to do (unless a interrupt happens - ej: a incoming packet through your network). For now, dynticks does just that. However, this infrastructure will allow to create a innovative power-saving feature: When dynticks is in "tickless" mode and the system is waiting for the timer interrupt, the power-saving feature of modern CPUs will be used. This can save a few W when the laptop is idle.
Dynticks adds some nice configurable debugging features: /proc/timer_list prints all the pending timers, allowing developers to check if their program is doing something wrong when it should be doing nothing, /proc/timer_stat, in the other hand, collects some timer statistics, allowing to detect the source of commonly-programmed timers.
(commit 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28)
ASoC
The ASoC (ALSA System on Chip) layer has been added to the ALSA sound system. Its aim is to provide improved support for sound processors on embedded systems. The ASoC core is designed to allow reuse of codec drivers on other platforms, reuse of platform specific audio DMA and DAI drivers on different machines, easy I2S/PCM digital audio interface configuration between codec and SoC, and allow machines to add controls and operations to the audio subsystem. e.g. volume control for speaker amp.
To achieve all this, ASoC splits an embedded audio system into 3 components: 1. Codec driver: The codec driver is platform independent and contains audio controls, audio interface capabilities, codec dapm and codec IO functions 2. Platform driver: The platform driver contains the audio dma engine and audio interface drivers (e.g. I2S, AC97, PCM) for that platform. 3. Machine driver: The machine driver handles any machine specific controls and audio events. i.e. turning on an amp at start of playback.
It includes a dynamic power management subsystem, designed to allow portable and handheld Linux devices to use the minimum amount of power within the audio subsystem at all times. It is independent of other kernel PM and as such, can easily co-exist with the other PM systems. DAPM is also completely transparent to all user space applications as all power switching is done within the ASoC core. No code changes or recompiling are required for user space applications. DAPM makes power switching decisions based upon any audio stream (capture/playback) activity and audio mixer settings within the device.
A number of platform and codec drivers for ASoC have been merged as well.
(commit 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39)
Dynamic kernel command-line
The current implementation stores a command-line buffer allocated to COMMAND_LINE_SIZE (a compile-time constant) size - 256 bytes on x86. This is not enougth space today, some systems hit a limit when they use too many module parameters, video settings, initramfs parameters etc. It's possible to increase COMMAND_LINE_SIZE to a greater value, but there's a problem: a static buffer of that size (say, 2KB) will be allocated even if you aren't using all of it.
So in 2.6.21 the size of the boot command line it's allocated dynamically. A static buffer is still allocated (2K in i386), but the contents are copied into a dinamically-allocated buffer with the exact size, then the static buffer is freed with the rest of the initdata data
(commit 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31)
Optional ZONE_DMA
ZONE_DMA was created for handling x86-specific ISA DMA uglities. Some arches do not need ZONE_DMA at all, the newer x86 systems are not needing ISA DMA and are starting to include IOMMUs. 2.6.21 makes possible to completely disable ZONE_DMA. This also makes possible some compiler optimizations
(commit 1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
devres
"devres" is an optional subsystem for drivers that greatly simplifies the task of driver housekeeping, if you have to acquire+map then later unmap+free a bunch of device-related resources (MMIO, PIO , IRQs, iomap, PCI, DMA resources). The aim is to make easier for programmers to allocate & free resources & handle errors for a driver writer. A device driver can allocate arbirary size of devres data which is associated with a release function. On driver detach, release function is invoked on the devres data, then, devres data is freed (commit)
Recommended LWN article: "The managed resource API"
GPIO API
The GPIO API implements a simple and minimalist programming interface for GPIO APIs. A "General Purpose Input/Output" (GPIO) is a flexible software-controlled digital signal. They are provided from many kinds of chip, and are familiar to Linux developers working with embedded and custom hardware.
(commit 1, 2, 3, 4, 5, 6)
New drivers
Here are some important new drivers that have been added to the Linux tree:
* Graphics:
o
Add fbdev driver for the old S3 Trio/Virge (commit)
o
Driver for the Silicon Motion SM501 multifunction device framebuffer subsystem (commit), (commit)
* Storage devices:
o
Add two drivers for the it8213 IDE device, one using the old IDE stack (commit), (commit) and other using libata (commit)
o
Add IDE Driver for Delkin/Lexar/etc.. cardbus CF adapter (commit)
o
Add IDE driver for Toshiba TC86C001 (old IDE stack) (commit)
o
Add SCSI driver for SNI RM 53c710 (commit)
o
Add driver for Initio 162x SATA devices (commit)
* Networking devices
o
Add driver for the latest 1G/10G Chelsio adapter, T3 (commit), (commit)
o
Add driver for the Attansic L1 ethernet device (commit)
o
Add driver for the Gigaset M101 wireless ISDN device (commit)
o
Add PC300too alternative WAN driver (commit)
o
Add driver for Silan SC92031 device (commit)
o
Add driver for the Davicom DM9601 USB 1.1 ethernet device (commit)
* Various
o
Add driver to charge USB blackberry devices (commit)
o
Add driver for iowarrior USB devices. (commit)
o
Add support for the GTCO CalComp/InterWrite USB tablet (commit)
o
New driver for the Analog Devices ADM1029 hardware monitoring driver (commit)
Crashing soon a kernel near you
This is a list of some of the ongoing patches being developed at the kernel community that will be part of future Linux releases. Those features may take many months to get into the Linus' git tree, or may be dropped. The features are tested in the -mm tree, but be warned, it can crash your machine, eat your data (unlikely but not impossible) or rape your sister (just because it has never happened it doesn't means you're safe):
*
Con Colivas' RSDL process scheduler, which seems to work much better than the stock scheduler according to some reports (LWN article)
* For too long the linux wireless support hasn't been as bright as it should, specially from a desktop-ready POV. A new wireless stack based on the GPLed Devicescape wifi stack has been being developed for many time and soon will be merged. It brings better hardware support, better wireless capabilities, and better tool enablement.
*
The Blackfin architecture
*
Utrace (LWN article)
*
Revoke()/frevoke() system calls (LWN article)
* Mel Gorman's fragmentation avoidance patches and Lumpy reclaim
* Unionfs
*
EXT 4 patches (wiki)
* Lguest
*
Adaptive Readhead
* Reiser 4
Various core changes
*
Remove the SMT-nice feature which idles sibling cpus on SMT cpus to facilitiate nice working properly where cpu power is shared. The idling of cpus in the presence of runnable tasks is considered too fragile, easy to break with outside code, and the complexity of managing this system if an architecture comes along with many logical cores sharing cpu power will be unworkable (commit)
*
EDAC: Add support for Fully-Buffered DIMM APIs to core (commit)
*
Add shadow directory support for sysfs (commit)
*
Add whole_disk partition attribute for disks (commit)
*
Use zone-based counters for: free_pages (commit) and for inactive and active counts (commit)
*
Make mincore work for anon mappings, nonlinear, and migration entries (commit)
*
lockdep: add graph depth information to /proc/lockdep (commit)
*
Support for reshape of a raid6 (commit)
*
Relay: add CPU hotplug support (commit)
*
List all active probes in the system in /sys/kernel/debug/kprobes/list (commit)
*
PCI: Make PCI device numa-node attribute visible in sysfs (commit) Export the numa-node attribute of PCI devices in sysfs so that user applications may choose where to be placed accordingly.
*
PCIEHP: Add Electro Mechanical Interlock (EMI) support to the PCIE hotplug driver. (commit) * EDAC: Add memory scrubbing controls API to core (commit)
*
Make MSI useable more architectures (commit)
*
New toplevel target: headers_check_all (commit)
*
Add the module name for built in kernel drivers (commit)
*
Add retain_initrd boot option to control freeing of initrd memory after extraction (commit)
*
Allow taint flags to be set from userspace by writing to /proc/sys/kernel/tainted, and add a new taint flag, TAINT_USER, to be used when userspace has potentially done something dangerous that might compromise the kernel. This will allow support personnel to ask further questions about what may have caused the user taint flag to have been set. Recommended LWN article: "Tainting from userspace" (commit)
Architecture-specific changes
* x86-32
o
Compile with -freg-struct-return, which returns struct and union values in registers when possible (like pte_t) (commit)
o
Convert i386 PDA code to use %fs (commit)
o
Add option to show more code in oops reports (commit)
o
Support Classic MediaGXm (commit)
* x86-64
o
Add copy_from_user_nocache. This does user copies in fs write() into the page cache with write combining. This pushes the destination out of the CPU's cache, but allows higher bandwidth in some case (commit)
* PPC
o
Add support for the Toshiba's Cell Reference Set 'Celleb' Architecture (commit 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
o
Pa Semi PWRficient CPU support (commit 1), 2, 3, 4, 5, 6, 7, 8, 9, 10)
o
Add kprobes support to ppc32 (commit)
o
Add stackEnable stack overflow checking (DEBUG_STACKOVERFLOW) and stack usage (DEBUG_STACK_USAGE) on ppc32 (commit)
o
Freescale 8xx support (commit), (commit 1, 2, 3, 4, 5)
o
83xx: Add support for MPC8349E-mITX-GP (commit), add base support for the MPC8313E RDB (commit)
o
85xx: Add support for the 8568 MDS board (commit), (commit)
o
PS3: System manager support (commit), vuart add async read (commit), AV Settings Driver (commit), repository storage support (commit), virtual Frame Buffer Driver (commit)
o
Remove the broken Gemini support (commit)
o
Add mpc52xx/lite5200 PCI support (commit) and support for the MPC52xx ATA controller (commit)
o
Add PMI driver for cell blade (commit)
o
Open Firmware serial port driver (commit)
o
Add support for AMCC Taishan 440GX evaluation board (commit)
* ARM
o
Add kexec support (commit)
o
Add support for SMDK2443 (commit)
o
Add ARM11 oprofile support (commit), (commit), (commit)
o
Add support for AT91SAM9263 (commit 1, 2, 3, 4)
o
Add Samsung S3C2443 support (commit), (commit), (commit)
o
Add support for AT91SAM9XE processors. (commit)
o
AACI record support on Versatile platform (commit)
o
Add support for the RealView/EB MPCore revC platform (commit)
o
Add initial board support for Contec Hypercontrol Micro9 boards. (commit)
o
Add Armzone QT2410 support(commit)
* S390
o
Mark kernel text section read-only. (commit)
o
noexec protection on s390 hardware. This hardware does not have any bits left in the pte for a hw noexec bit, so this is a different approach using shadow page tables and a special addressing mode that allows separate address spaces for code and data (commit)
o
Support for s390 Pseudo Random Number Generator (commit)
o
Boot from NSS support (commit)
o
Add AF_IUCV socket support (commit)
o
Rewrite of the IUCV base code (commit), (commit), (commit)
o
Adapt the following drivers to the new IUCV API: netiucv (commit), vmlogrdr (commit), monreader (commit),
o
Hypervisor filesystem (s390_hypfs) for z/VM (commit)
o
Calibrate delay and bogomips (commit)
o
Add support for clock synchronization to an external time reference (ETR) (commit)
o
Add crypto support for 3592 tape devices (commit)
* PARISC
o
Generic BUG (commit)
o
Add TIF_RESTORE_SIGMASK support (commit)
o
Generic time infrastructure support (commit)
* MIPS
o
Add basic support for the SMARTMIPS extension. This extension is currently implemented by 4KS[CD] CPUs support (commit)
o
Iomap implementation (commit)
o
Add UART support for Philips PNX8330/8550/8950 (commit)
o
Add Cobalt Server front LED (commit) and MTD device support (commit)
o
TURBOchannel bus support for the DECstation (commit),(commit)
* SPARC64
o
Add PCI MSI support on Niagara. (commit)
o
Remove the broken SUN_AURORA driver. (commit)
*
IA64: Altix: Add ACPI SSDT PCI (commit) and ACPI SSDT PCI device support (commit)
Filesystems
* eCryptfs
o
Public key encryption support (commit), (commit)
o
Encrypted passthrough: it provides an option to provide a view of the encrypted files such that the metadata is always in the header of the files, regardless of whether the metadata is actually in the header or in the extended attribute. This mode of operation is useful for applications like incremental backup utilities that do not preserve the extended attributes when directly accessing the lower files (commit)
o
Introduce the ability to store cryptographic metadata into an lower file extended attribute rather than the lower file header region. The two new nmount options are: 1) ecryptfs_xattr_metadata: when set, newly created files will have their cryptographic metadata stored in the extended attribute region of the file rather than the header 2) ecryptfs_encrypted_view: when set this option causes eCryptfs to present applications a view of encrypted files as if the cryptographic metadata were stored in the file header, whether the metadata is actually stored in the header or in the extended attributes (commit)
* GFS2
o
Add writepages for "data=writeback" mounts (commit)
o
Speed up readdir (commit)
o
Increase default lock limit (commit)
o
Shrink gfs2_inode memory by half (commit)
* CIFS:
o
Additional POSIX CIFS Extensions infolevels (commit), (commit)
o
Allow update of EOF on remote extend of file (commit)
* XFS
o
Reduction global superblock lock contention near ENOSPC (commit)
o
Make growfs work for amounts greater than 2TB (commit)
*
NFS: IPv6 support (commit 1, 2, 3, 4, 5, 6, 7, 8, 9)
*
Minix: V3 format support (commit)
*
UFS2: read/write support (commit), (commit), (commit)
*
JFFS: Remove JFFS (version 1), as scheduled. Unmaintained for years, few if any users (commit)
*
JFS: Add lockdep annotations (commit)
*
Debugfs: implement symbolic links (commit)
Networking
*
Add Camellia cipher support to IPSEC (commit), (commit)
*
IPv4 over IPv6 IPsec tunnel (commit)
*
IPv6 over IPv4 IPsec tunnel (commit)
*
Make net use the jiffies rounding code (commit)
*
Add CONFIG_NET_KEY_MIGRATE option which makes it possible for user application to send or receive MIGRATE message to/from PF_KEY socket. This feature is required, for instance, in a Mobile IPv6 environment with IPsec configuration where mobile nodes change their attachment point to the Internet. Detail information can be found in the internet-draft "draft-sugimoto-mip6-pfkey-migrate" (commit), (commit)
* NETFILTER
o
NAT: optional source port randomization support (commit)
o
Add IPv6-capable TCPMSS target support (commit)
o
Add SANE connection tracking helper (commit)
o
Introduces match for Mobility Header (MH) described by Mobile IPv6 specification (RFC3775) (commit)
* XFRM
o
Add CONFIG_XFRM_MIGRATE option which makes it possible for for user application to send or receive MIGRATE message to/from netlink socket (commit)
o
User interface for handling XFRM_MSG_MIGRATE (commit)
o
Extension for dynamic update of endpoint address(es) (commit)
*
X.25: Add /proc/net/x25/forward to view active forwarded calls. (commit) and /proc/sys/net/x25/x25_forward to control forwarding (commit). Also add call forwarding (commit)
Various subsystems
Software suspend
crypto/audit
*
Audit: "lockdown" mode where further configuration changes cannot be made. Any attempt to change the configuration while in this mode is audited. To change the audit rules, you'd need to reboot the machine (commit)
*
Add the Camellia cipher algorithm. Camellia is a symmetric key block cipher developed jointly at NTT and Mitsubishi Electric Corporation (commit 1, 2, 3)
*
tcrypt: Added test vectors for SHA384 HMAC and SHA512 HMAC (commit)
*
Allow multiple frontends per backend (commit)
*
fcrypt: Add FCrypt from RxRPC (commit)
*
pcbc: Add Propagated CBC template (commit)
Drivers
Network drivers
*
sky2: add Wake On Lan support (commit), Yukon Extreme support (commit)
*
s2io: Making LRO and UFO as module loadable parameter. (commit) and add a loadable parameter to enable or disable vlan stripping in frame (commit)
*
ucc_geth: Add support to local-mac-address property (commit)
*
zd1211rw: 4 new ZD1211B device ID's (commit), (commit), (commit)
*
prism54: add ethtool -i interface (commit)
*
ipw2200: add iwconfig rts/frag auto support (commit)
*
sungem_phy: support bcm5461 phy, autoneg (commit)
*
spidernet: add support for Celleb (commit), (commit)
*
skge: WOL support (commit)
*
forcedeth: statistics supported (commit)
*
natsemi: Support Aculab E1/T1 PMXc cPCI carrier cards (commit)
*
phylib: Add support for Marvell 88e1111S and 88e1145 (commit)
*
Remove the broken SKMC driver (commit)
*
Remove the broken OAKNET driver (commit)
SATA/IDE/SCSI
*
IDE: ACPI support for IDE devices (commit)
* SATA
o
Update libata core layer to use devres (commit), (commit)
o
Add PIIX3 support to ata_piix (commit)
o
Support PCI MSI in sata_vsc (commit)
o
sata_promise: ATAPI support (commit), add TX2plus PATA support (commit)
o
sata_sis: support SiS966/966L (commit), add support for PATA (commit)
o
sata_via: PATA support (commit)
o
sata_nv: add suspend/resume support (commit)
o
pata_cs5520: add suspend/resume support (commit)
o
libata: implement HDIO_GET_IDENTITY (aka hdparm -i) (commit)
o
ACPI _SDD (commit) and _GTF support (commit)
* SCSI
o
qla3xxx: Add support for Qlogic 4032 chip. (commit)
o
fusion: greater than 255 target and lun support (commit), inactive raid support (commit)
o
lpfc: add PCI error recovery support (commit)
o
wd33c93: Support fast SCSI with WD33C93B (commit)
o
qla2xxx: Add MSI-X support. (commit)
o
libsas: Add a sysfs knob to enable/disable a phy (commit)
o
aic94xx: Add support for scanning SAS devices asynchronously (commit)
Graphics
*
Add display output class (commit), (commit)
*
Remove broken video drivers that had already been marked as BROKEN in 2.6.0 three years ago and are still marked as BROKEN: FB_CYBER, FB_VIRGE, FB_RETINAZ3 and FB_SUN3 (commit)
*
remove the broken FB_S3TRIO driver (commit)
*
tgafb: support the DirectColor visual (commit)
ALSA
*
HDA: Add support for Fujitsu PI1556 Realtek ALC880 (commit), add sigmatel 9205 eapd support (commit), add asus-laptop model for ALC861 (ALC660) (commit), add support for Evesham Voyager C530RD laptops (commit), add asus model to ALC861 codec (commit), add support for Sigmatel STAC9202/9250/9251 codecs (commit), add toshiba model to ALC861 codec (commit), add support for Toshiba M105 to Realtek patch (commit), add support for Clevo M540JE, M550JE laptops (Nvidia MCP51 chipset, ALC883 codec) (commit), add support for Medion laptops (commit), add support for VIA VT1708(A) HD audio codec (commit), add new modesl for Realtek codecs (commit), add HP BPC-D7000 support (commit), add support for Sony UX-90s (commit), add model for ASUS W3j laptop (commit), add ALC861VD/ALC660VD support (commit), add support for Samsung Q1 Ultra (commit)
*
emu10k1: Add Audio capture support for Audigy 2 ZS Notebook (commit), add support for 14dB Attenuation PADS on DACs and ADCs. (commit), added support for emu1010, including E-Mu 1212m and E-Mu 1820m (commit), add emu1010 internal clock rate control for 44100 or 48000. (commit)
*
hdsp: support for mixer matrix of RME9632 rev 152 (commit)
*
hdspm: Add support for AES32 (commit)
*
Add snd-portman2x4 driver for Midiman Portman 2x4 MIDI device (commit)
*
ice1724: Add support of M-Audio Audiophile 192 (commit) and add support for Prodigy 7.1 XT (commit)
*
Enable capture from line-in and CD on Revolution 5.1 (commit)
*
Add Conexant audio support to the HD Audio driver (commit)
*
usbaudio: Add support for Edirol UA-101 (commit), allow pausing (commit), add PCR-A PCM support (commit)
*
ac97: Suppress power-saving mode on non-supporting drivers (commit)
*
Add support of the ESI Waveterminal 192M to the ice1724 ALSA driver (commit)
*
Enable the analog loopback of the Revolution 5.1 (commit)
Input
*
Add force feedback driver for PantherLord USB/PS2 2in1 Adapter (commit)
*
Add support for Logitech Momo racing wheel (commit)
*
Add Atlas button driver (commit)
*
wistron: Add support for Fujitsu-Siemens Amilo D88x0 (commit)
*
gpio-keys: Add keyboard driver for GPIO buttons (commit)
*
HID: Add support for Logitech Formula Force EX (commit), allow force feedback for multi-input devices (commit), quirk for multi-input devices with unneeded output reports (commit), handle multi-interface devices for Apple macbook pro properly (commit), add support for using the HID subsystem in bluetooth (commit)
*
Remove scan_keyb driver (commit)
USB
*
usbmon: add a new, "binary" API in addition to the old, text API usbmon had before. The new API allows for less CPU use, and it allows to capture all data from a packet where old API only captured 32 bytes at most (commit)
*
Add dynamic id support to usb-serial core (commit)
*
Add autosuspend support for usb printer driver (commit)
*
Add Sony PS3 ohci/ehci bus support (commit), (commit)
*
Add power management support (commit) and better ethtool support for kaweth (commit)
*
Add EPIC support to the io_edgeport driver (commit)
*
PL2303: Willcom WS002IN Support. (commit)
*
Implement support for "split" endian OHCI (commit) and EHCI with big endian MMIO (commit)
*
EHCI: force high-speed devices to run at full speed (commit)
*
Add "activesync" support for rndis_host (commit)
*
ASIX: Add IO-DATA ETG-US2 Support. (commit)
*
Remove CONFIG_USB_BANDWITH - "Enforce USB bandwidth allocation", since it's no longer neccesary (commit)
V4L
*
Bttv cropping support (commit)
*
Adds video output routing (commit)
*
Pvrusb2: Enable radio mode for 24xxx devices (commit), implement multiple minor device number handling (commit), implement /dev/radioX (commit), allow streaming from /dev/radioX (commit)
*
Add support for more Encore TV cards (commit), add a new qt1010 tuner module (commit), (commit), add VIDIOC_G_ENC_INDEX ioctl (commit), SN9C102 driver updates (commit), add support for svideo/composite input of the Terratec Cinergy 1400 DVB-T (commit), add support for the ASUS P7131 remote control (commit), add cablestar2 support (commit), add support for Terratec Cinergy HT PCI (commit), add support for the Technotrend 1500 bundled remote (commit), add support for Ultraview DVB-T Lite (commit), initial support for Sigmatek DVB-110 DVB-T (commit), initial support for MSI Mega Sky 580 based on Uli m9206 (commit), initial support for MSI Mega Sky 580 DVB-T based on GL861 (commit)
Cpufreq
*
Introduce Nehemiah C (commit)
*
Enhanced PowerSaver driver present in VIA C7 processors (commit)
*
Add VT8235 support (commit)
*
Remove "ignore_latency" option (commit)
ACPI
*
Add support for ACPI controlled removable drive bays such as the IBM ultrabay or the Dell Module Bay (commit)
*
Implement simplified Table Manager. It reduces the size of the kernel-resident ACPICA by 5% (commit), (commit), (commit)
*
ACPICA: Removed all 16-bit support (commit)
*
Remove motherboard driver (redundant with PNP system driver) (commit)
*
Remove the generic hotkey driver, as scheduled - the hotkeys are not part of the ACPI specification so they must be handled instead in the platform-specific drivers (commit)
*
Convert ACPI to sysfs framework - removes /sys/firmware/acpi (commit)
*
Add backlight sysfs support for acpi video driver. (commit)
*
sony_acpi: Add backlight support (commit), add backlight support (commit), add SNC device support for Sony Vaios (commit), rename this driver to sony-laptop (commit)
*
sony-laptop: Remove /proc/acpi/sony interface and implement platform_device. (commit)
*
Add asus-laptop driver (commit 1, 2, 3, 4, 5, 6, 7, 8)
I2C
*
Add suspend/resume/shutdown support (commit)
*
i2c-piix4: Add support for the ATI SB600 SMBus controller (commit)
*
i2c-parport: Add support for One For All remote JP1 interface (commit)
*
i2c-viapro: Add support for the VIA CX700 south bridge (commit)
Various
* hwmon:
o
it87: Add PWM base frequency control (commit)
o
Add support for the W83627DHG chip in w83627ehf (commit)
*
APM: Add shared version of APM emulation (commit), (commit), (commit), (commit)
* SPI
o
Freescale iMX SPI controller driver (BIS+) (commit)
o
eeprom driver (commit)
o
controller driver for OMAP Microwire (commit)
o
atmel_spi driver (commit)
* MTD
o
EXcite nand flash driver (commit)
o
S3C2410: Hardware ECC correction code (commit)
o
OneNAND: Add support for auto-placement of out-of-band data (commit)
*
RDMA: Add multicast communication support (commit)
*
IPoIB: Connected mode experimental support (commit)
*
RTC framework driver for CMOS RTCs (commit)
*
RTC gets sysfs wakealarm attribute (commit)
*
mmc: Add support for SDHC cards (commit)
*
tifm_core: add suspend/resume infrastructure for tifm devices (commit)
*
tifm_sd: add suspend and resume functionality (commit)
*
leds: Add IPAQ h1940 LEDs support (commit)
*
backlight: Add Frontpath ProGear HX1050+ driver (commit)
*
drivers: add LCD support (commit)
Monday, March 26, 2007
Sabayon Linux x86/x86-64 miniEdition 3.3
SabayonLinux x86/x86-64 miniEdition, commonly called the "mini", is the CD release of the latest SabayonLinux x86/x86-64 DVD. The creation of this special version, has been made with an automatic script that shrinks down the whole chroot jail by removing every duplicated, useless or server-oriented package. The multimedia features of these special editions are kept intact. So, enjoy that beautiful piece of software on a single CD!
New features (F) and bug fixes (B) since SabayonLinux 3.20 (DVD)
* F: K3B updated to 1.0
* B: Sabayon Linux Installer fixes (including the ones reported in 3.3)
* F: Added VIA OpenChrome GFX drivers
* F: Updated gpu-detector to the work accordingly to the new feature listed above
* F: Updated to Beryl 0.2.0
* F: Updated IVTV driver to 0.10.0
* F: Updated rt2500 driver to 20070323 CVS snapshot
* B: Fixed pppoe-setup scripts
* F: Updated ndiswrapper to 1.39
* F: Binary packages support through a simple binhost (Alpha release - read below)
Sabayon Linux Project Entropy RoadMap - Binary packages on steroids!
Project Entropy continues to attract users' curiosity: what is that? Easy answer, Entropy is a complete software stack that works on top of the Gentoo Portage repository. Its architecture is designed to provide the maximum flexibility and scalability and is composed by 3 developer/server-side applications: Enzyme, Reagent and Activator; 2 user-side ones: Equilibrium and its API.
Question: What is what?
* Enzyme: the Portage tree manager and build tool.
* Reagent: the Entropy specifications writer. For each binary package, this tool write a specification file that describes its information.
* Activator: the Entropy binary packages uploader. It manages a set of mirrors keeping them updated automatically. It also does QA tests.
* Equilibrium: the Entropy stack user client that will be interfaced to a GUI through its API.
Question: What all this will give to Sabayon Linux?
* Complete interaction between source-based packages and binary-based ones, keeping Gentoo Linux compatibility intact. Sabayon Linux will be the first Linux distribution to actively support both worlds (source,binary)
* Gentoo Portage independence when using Entropy binary packages repository
* No more compilation issues and their waste of time
* Full dependency and reverse dependency management
* GUI connectivity trough the future Equilibrium API
* Extreme developer-side packages building flexibility and speed
* Much, much more...
Question: What does work at the moment?
At the moment, Enzyme and Reagent are well structured and work quite well. Activator is starting to do some funny things and Equilibrium does not exist yet.
Currently, we are filling our preliminary binary packages repository that is still based on what Portage and emerge say.
To test the installation of the currently available binary packages, try to run, as root:
Code:
binmerge
Where
Firstly, we need to test the amount of bandwidth needed to maintain such repository, secondly, we have to complete Activator and Equilibrium before moving away from this "binmerge" emerge hook.
Question: What is the RoadMap?
More or less, the roadmap consists of these milestones:
* Complete Reagent module with basic features [DONE]
* Complete Enzyme module with basic features [DONE]
* Complete Activator module with basic features [WORK IN PROGRESS]
* Consolidate the server stack [NOT DONE]
* Complete Equilibrium [NOT DONE]
* Interface a GUI to Equilibrium [NOT DONE]
Question: When will it be considered completed?
Hard question... It's done when it's done
We really want to thank all the members of our crazy Beta Testing Team. Thanks!
IMPORTANT NOTES:
* We encourage you to use 3.3 iso as a base and patch as this is the most efficient mode of transfer for such bug fixes and then set up to seed the torrent for those that cannot. Make sure you check your md5sums!
* As of linux kernel 2.6.19, all hard drives are seen as sd* through SCSI emulation. As such, our installer compensates for this and does its best to query your hardware set up and properly set grub and fstab during installation time. You must upgrade your installer for the latest fixes. If you run into problems with this, please file a bug report at bugs.sabayonlinux.org
* This distribution contains libdvdcss look here if you live in the U.S. !.
* This distribution contains proprietary and non-GPL softwares too (like from NVIDIA, ATI, Google, etc). Before running them, be sure to read their license and agree with that, otherwise, just remove those applications. To run SabayonLinux without Proprietary drivers, just use "noproprietary" boot flag.
* Trademarks are property of their respective owners, everywhere.
UPGRADE INFO:
Using this feature, you can upgrade any Gentoo-based installation (Gentoo, VLOS, RR4, RR64) to the latest SabayonLinux without losing your personal data and settings. Our Team, however, will only actively support the upgrades using SabayonLinux as base.
Also, you can:
* 6th senseing your running system: installed packages will be updated to the ones on the DVD and the conflicting ones automatically removed.
* You can fix your current installation by choosing to reinstall every package, This will take a lot of time but will resurrect your SabayonLinux installation in cases of hard damaging.
* You could (even if it's not so much tested) even upgrade your 32bit installation to a powerful 64bit one (but not the contrary) by using the function described above.
* You can re-configure/reinstall your GRUB (Boot) settings/ without touching any configuration file and/or command line.
c/p from sabayon forum.
very good distribution
Tuesday, March 13, 2007
Linux commands
Some useful linux commands
alias Create an alias
apropos Search Help manual pages (man -k)
awk Find and Replace text, database sort/validate/index
break Exit from a loop
builtin Run a shell builtin
bzip2 Compress or decompress named file(s)
cal Display a calendar
case Conditionally perform a command
cat Display the contents of a file
cd Change Directory
cfdisk Partition table manipulator for Linux
chgrp Change group ownership
chmod Change access permissions
chown Change file owner and group
chroot Run a command with a different root directory
cksum Print CRC checksum and byte counts
clear Clear terminal screen
cmp Compare two files
comm Compare two sorted files line by line
command Run a command - ignoring shell functions
continue Resume the next iteration of a loop
cp Copy one or more files to another location
cron Daemon to execute scheduled commands
crontab Schedule a command to run at a later time
csplit Split a file into context-determined pieces
cut Divide a file into several parts
date Display or change the date & time
dc Desk Calculator
dd Data Dump - Convert and copy a file
declare Declare variables and give them attributes
df Display free disk space
diff Display the differences between two files
diff3 Show differences among three files
dir Briefly list directory contents
dircolors Colour setup for `ls'
dirname Convert a full pathname to just a path
dirs Display list of remembered directories
du Estimate file space usage
echo Display message on screen
egrep Search file(s) for lines that match an extended expression
eject Eject removable media
enable Enable and disable builtin shell commands
env Environment variables
ethtool Ethernet card settings
eval Evaluate several commands/arguments
exec Execute a command
exit Exit the shell
expand Convert tabs to spaces
export Set an environment variable
expr Evaluate expressions
false Do nothing, unsuccessfully
fdformat Low-level format a floppy disk
fdisk Partition table manipulator for Linux
fgrep Search file(s) for lines that match a fixed string
file Determine file type
find Search for files that meet a desired criteria
fmt Reformat paragraph text
fold Wrap text to fit a specified width.
for Expand words, and execute commands
format Format disks or tapes
free Display memory usage
fsck File system consistency check and repair
ftp File Transfer Protocol
function Define Function Macros
gawk Find and Replace text within file(s)
getopts Parse positional parameters
grep Search file(s) for lines that match a given pattern
groups Print group names a user is in
gzip Compress or decompress named file(s)
hash Remember the full pathname of a name argument
head Output the first part of file(s)
history Command History
hostname Print or set system name
id Print user and group id's
if Conditionally perform a command
import Capture an X server screen and save the image to file
install Copy files and set attributes
join Join lines on a common field
kill Stop a process from running
less Display output one screen at a time
let Perform arithmetic on shell variables
ln Make links between files
local Create variables
locate Find files
logname Print current login name
logout Exit a login shell
look Display lines beginning with a given string
lpc Line printer control program
lpr Off line print
lprint Print a file
lprintd Abort a print job
lprintq List the print queue
lprm Remove jobs from the print queue
ls List information about file(s)
lsof List open files
make Recompile a group of programs
man Help manual
mkdir Create new folder(s)
mkfifo Make FIFOs (named pipes)
mkisofs Create an hybrid ISO9660/JOLIET/HFS filesystem
mknod Make block or character special files
more Display output one screen at a time
mount Mount a file system
mtools Manipulate MS-DOS files
mv Move or rename files or directories
netstat Networking information
nice Set the priority of a command or job
nl Number lines and write files
nohup Run a command immune to hangups
passwd Modify a user password
paste Merge lines of files
pathchk Check file name portability
ping Test a network connection
popd Restore the previous value of the current directory
pr Prepare files for printing
printcap Printer capability database
printenv Print environment variables
printf Format and print data
ps Process status
pushd Save and then change the current directory
pwd Print Working Directory
quota Display disk usage and limits
quotacheck Scan a file system for disk usage
quotactl Set disk quotas
ram ram disk device
rcp Copy files between two machines.
read read a line from standard input
readonly Mark variables/functions as readonly
remsync Synchronize remote files via email
return Exit a shell function
rm Remove files
rmdir Remove folder(s)
rsync Remote file copy (Synchronize file trees)
screen Terminal window manager
scp Secure copy (remote file copy)
sdiff Merge two files interactively
sed Stream Editor
select Accept keyboard input
seq Print numeric sequences
set Manipulate shell variables and functions
sftp Secure File Transfer Program
shift Shift positional parameters
shopt Shell Options
shutdown Shutdown or restart linux
sleep Delay for a specified time
sort Sort text files
source Run commands from a file `.'
split Split a file into fixed-size pieces
ssh Secure Shell client (remote login program)
strace Trace system calls and signals
su Substitute user identity
sum Print a checksum for a file
symlink Make a new name for a file
sync Synchronize data on disk with memory
tail Output the last part of files
tar Tape ARchiver
tee Redirect output to multiple files
test Evaluate a conditional expression
time Measure Program running time
times User and system times
touch Change file timestamps
top List processes running on the system
traceroute Trace Route to Host
trap Run a command when a signal is set(bourne)
tr Translate, squeeze, and/or delete characters
true Do nothing, successfully
tsort Topological sort
tty Print filename of terminal on stdin
type Describe a command
ulimit Limit user resources
umask Users file creation mask
umount Unmount a device
unalias Remove an alias
uname Print system information
unexpand Convert spaces to tabs
uniq Uniquify files
units Convert units from one scale to another
unset Remove variable or function names
unshar Unpack shell archive scripts
until Execute commands (until error)
useradd Create new user account
usermod Modify user account
users List users currently logged in
uuencode Encode a binary file
uudecode Decode a file created by uuencode
v Verbosely list directory contents (`ls -l -b')
vdir Verbosely list directory contents (`ls -l -b')
vi Text Editor
watch Execute/display a program periodically
wc Print byte, word, and line counts
whereis Report all known instances of a command
which Locate a program file in the user's path.
while Execute commands
who Print all usernames currently logged in
whoami Print the current user id and name (`id -un')
Wget Retrieve web pages or files via HTTP, HTTPS or FTP
xargs Execute utility, passing constructed argument list(s)
yes Print a string until interrupted
.period Run commands from a file
### Comment / Remark
alias Create an alias
apropos Search Help manual pages (man -k)
awk Find and Replace text, database sort/validate/index
break Exit from a loop
builtin Run a shell builtin
bzip2 Compress or decompress named file(s)
cal Display a calendar
case Conditionally perform a command
cat Display the contents of a file
cd Change Directory
cfdisk Partition table manipulator for Linux
chgrp Change group ownership
chmod Change access permissions
chown Change file owner and group
chroot Run a command with a different root directory
cksum Print CRC checksum and byte counts
clear Clear terminal screen
cmp Compare two files
comm Compare two sorted files line by line
command Run a command - ignoring shell functions
continue Resume the next iteration of a loop
cp Copy one or more files to another location
cron Daemon to execute scheduled commands
crontab Schedule a command to run at a later time
csplit Split a file into context-determined pieces
cut Divide a file into several parts
date Display or change the date & time
dc Desk Calculator
dd Data Dump - Convert and copy a file
declare Declare variables and give them attributes
df Display free disk space
diff Display the differences between two files
diff3 Show differences among three files
dir Briefly list directory contents
dircolors Colour setup for `ls'
dirname Convert a full pathname to just a path
dirs Display list of remembered directories
du Estimate file space usage
echo Display message on screen
egrep Search file(s) for lines that match an extended expression
eject Eject removable media
enable Enable and disable builtin shell commands
env Environment variables
ethtool Ethernet card settings
eval Evaluate several commands/arguments
exec Execute a command
exit Exit the shell
expand Convert tabs to spaces
export Set an environment variable
expr Evaluate expressions
false Do nothing, unsuccessfully
fdformat Low-level format a floppy disk
fdisk Partition table manipulator for Linux
fgrep Search file(s) for lines that match a fixed string
file Determine file type
find Search for files that meet a desired criteria
fmt Reformat paragraph text
fold Wrap text to fit a specified width.
for Expand words, and execute commands
format Format disks or tapes
free Display memory usage
fsck File system consistency check and repair
ftp File Transfer Protocol
function Define Function Macros
gawk Find and Replace text within file(s)
getopts Parse positional parameters
grep Search file(s) for lines that match a given pattern
groups Print group names a user is in
gzip Compress or decompress named file(s)
hash Remember the full pathname of a name argument
head Output the first part of file(s)
history Command History
hostname Print or set system name
id Print user and group id's
if Conditionally perform a command
import Capture an X server screen and save the image to file
install Copy files and set attributes
join Join lines on a common field
kill Stop a process from running
less Display output one screen at a time
let Perform arithmetic on shell variables
ln Make links between files
local Create variables
locate Find files
logname Print current login name
logout Exit a login shell
look Display lines beginning with a given string
lpc Line printer control program
lpr Off line print
lprint Print a file
lprintd Abort a print job
lprintq List the print queue
lprm Remove jobs from the print queue
ls List information about file(s)
lsof List open files
make Recompile a group of programs
man Help manual
mkdir Create new folder(s)
mkfifo Make FIFOs (named pipes)
mkisofs Create an hybrid ISO9660/JOLIET/HFS filesystem
mknod Make block or character special files
more Display output one screen at a time
mount Mount a file system
mtools Manipulate MS-DOS files
mv Move or rename files or directories
netstat Networking information
nice Set the priority of a command or job
nl Number lines and write files
nohup Run a command immune to hangups
passwd Modify a user password
paste Merge lines of files
pathchk Check file name portability
ping Test a network connection
popd Restore the previous value of the current directory
pr Prepare files for printing
printcap Printer capability database
printenv Print environment variables
printf Format and print data
ps Process status
pushd Save and then change the current directory
pwd Print Working Directory
quota Display disk usage and limits
quotacheck Scan a file system for disk usage
quotactl Set disk quotas
ram ram disk device
rcp Copy files between two machines.
read read a line from standard input
readonly Mark variables/functions as readonly
remsync Synchronize remote files via email
return Exit a shell function
rm Remove files
rmdir Remove folder(s)
rsync Remote file copy (Synchronize file trees)
screen Terminal window manager
scp Secure copy (remote file copy)
sdiff Merge two files interactively
sed Stream Editor
select Accept keyboard input
seq Print numeric sequences
set Manipulate shell variables and functions
sftp Secure File Transfer Program
shift Shift positional parameters
shopt Shell Options
shutdown Shutdown or restart linux
sleep Delay for a specified time
sort Sort text files
source Run commands from a file `.'
split Split a file into fixed-size pieces
ssh Secure Shell client (remote login program)
strace Trace system calls and signals
su Substitute user identity
sum Print a checksum for a file
symlink Make a new name for a file
sync Synchronize data on disk with memory
tail Output the last part of files
tar Tape ARchiver
tee Redirect output to multiple files
test Evaluate a conditional expression
time Measure Program running time
times User and system times
touch Change file timestamps
top List processes running on the system
traceroute Trace Route to Host
trap Run a command when a signal is set(bourne)
tr Translate, squeeze, and/or delete characters
true Do nothing, successfully
tsort Topological sort
tty Print filename of terminal on stdin
type Describe a command
ulimit Limit user resources
umask Users file creation mask
umount Unmount a device
unalias Remove an alias
uname Print system information
unexpand Convert spaces to tabs
uniq Uniquify files
units Convert units from one scale to another
unset Remove variable or function names
unshar Unpack shell archive scripts
until Execute commands (until error)
useradd Create new user account
usermod Modify user account
users List users currently logged in
uuencode Encode a binary file
uudecode Decode a file created by uuencode
v Verbosely list directory contents (`ls -l -b')
vdir Verbosely list directory contents (`ls -l -b')
vi Text Editor
watch Execute/display a program periodically
wc Print byte, word, and line counts
whereis Report all known instances of a command
which Locate a program file in the user's path.
while Execute commands
who Print all usernames currently logged in
whoami Print the current user id and name (`id -un')
Wget Retrieve web pages or files via HTTP, HTTPS or FTP
xargs Execute utility, passing constructed argument list(s)
yes Print a string until interrupted
.period Run commands from a file
### Comment / Remark
Thursday, March 8, 2007
Ipod Linux
iPodLinux is a µCLinux-based software distribution targeted specifically to run on Apple Inc.'s iPods. Besides the kernel, iPodLinux features as a primary component podzilla and podzilla2, applications which provide:
* An iPod-like interface
* Video playback with sound
* Support for AAC, MP3 and basic OGG playback (4G & 5G Music Player Daemon is malfunctional, but can be fixed).
* Many games, including TuxChess, Bluecube (Tetris clone), Chopper, StepMania (a Dance Dance Revolution clone) and more.
* Recording through audio jack at much higher quality than Apple's firmware
* Ability to play the games Doom and Doom II, as well as games for the Nintendo Game Boy (with appropriate add-on software, for instance iBoy).
* Color scheme support
* Many emulators, such as iBoy (Gameboy Emulator) and iNES (Nintendo Entertainment System Emulator)
List of program for linux
General user
* dd – Convert and copy a file (Disk Dump)
* echo – Print to standard output
* env – Show environment variables; run a program with altered environment variables
* file – Determine the type of a file
* nohup – Run a command with immunity to hangups outputting to non-tty
* sh – The Bourne shell, the standard Unix shell
* uptime – Print how long the system has been running
System Management
* fuser – Identify processes by files or sockets
* logger – Make entries in the system log
* newgrp (or sg) – Log in to a new group
* pathchk – Check the validity/portability of filenames
Kernel specific
* date – Print or set the system date and/or time
* dmesg – Print the kernel message ring buffer
* ipcrm – Remove a message queue, semaphore set or shared memory id
* ipcs – Provide information on IPC facilities
* uname – Print assorted system statistics
Processes and tasks management
* anacron – Periodic command scheduler
* at – Single-time command scheduler
* chroot – Change the system root directory for all child processes
* cron – Periodic command scheduler
* crontab – Crontab file editor
* daemonic – Interface to daemon init scripts
* exit – Terminate the current shell process
* htop – Interactive ncurses-based process viewer that allows scrolling to see all processes and their full command lines
* kill – Send a signal to process, or terminate a process (by PID)
* killall – Terminate all processes (in GNU/Linux, it's kill by name)
* nice – Alter priorities for processes
* pgrep – Find PIDs of processes by name
* pidof – GNU/Linux equivalent of pgrep
* pkill – Send a signal to process, or terminate a process (by name). Equivalent to Linux killall
* ps – Report process status
* renice – Alter the priorities of an already running process
* sleep – Delay for specified time
* time – Time a command
* timex – Time process shell execution, measure process data and system activity
* top – Produce a dynamic list of all resident processes
* wait – Wait for the specified process
* watch – Runs the specified command repeatedly
Job Control
* bg – Resume a job in background
* jobs – Lists active jobs
* fg – Resume a job in foreground
User management and support
* chsh – Change user shell
* finger – Get details about user
* id – Print real/effective UIDs/GIDs
* last – show listing of last logged in users
* lastlog – show last log in information for users
* locale – Get locale specific information
* localedef – Compile locale definitions
* logname – Print user's login name
* man – Manual browser
* mesg – Control write access to your terminal
* passwd – Change user password
* su – Start a new process (defaults to shell) as a different user (defaults to root)
* sudo – execute a command as a different user.
* users – Show who is logged on (only users names)
* w – Show logged-in users and their current tasks
* whatis – command description from whatis database
* whereis – locates the command's binary and manual pages associated with it
* which (Unix) – locates where a command is executed from
* who – Show who is logged on (with some details)
* write – Send a message to another user
Terminal configuration
* stty – Change and print terminal line settings
* tput – Initialize a terminal/query terminfo database
* tty – Print filename of terminal connected to standard input
Files and texts
* info – The GNU alternative to man
* man – The standard unix documentation system
Filesystem Utilities
* chattr – Change file attributes on a Linux second extended file system
* chgrp – Change the group of a file or directory
* chmod – Change the permissions of a file or directory
* chown – Change the owner of a file or directory
* cd – Change to another directory location
* cp – Copy a file or directory to another location
* df – Report disk space
* dircmp – Compare contents of files between two directories
* du – Calculate used disk space
* fdupes – Find or remove duplicate files within a directory
* find – Search for files through a directory hierarchy
* fsck – Filesystem check
* ln – Link one file/directory to another
* ls – List directory contents
* lsattr – List file attributes on a Linux second extended file system
* lsof – list open files
* mkdir – Make a directory
* mkfifo – Make a named pipe
* mount – Mount a filesystem
* mv – Move or rename a file or directory
* pwd – Print the current working directory
* rm – Delete a file or directory tree
* readlink – Display value of a symbolic link, or display canonical path for a file
* rmdir – Delete an empty directory
* touch – Create a new file or update its modification time
* tree – Print a depth-indented tree of a given directory
* unlink – System call to remove a file or directory
Archivers and compression
* afio – Compatible superset of cpio with added functionality
* ar – Maintain, modify, and extract from archives. Now largely obsoleted by tar
* bzip2 – Block-sorting file compressor
* compress – Traditional compressor using the LZW algorithm
* cpio – A traditional archiving tool/format
* gzip – The gzip file compressor
* p7zip – 7zip for unix/linux
* pack, pcat, unpack – included in old versions of ATT Unix. Uses Huffman coding, obsoleted by compress.
* pax – POSIX archive tool that handles multiple formats.
* tar – Tape ARchiver, concatenates files
* uncompress – Uncompresses files compressed with compress.
* zcat – Prints files to stdout from gzip archives without unpacking them to separate file(s)
Text Processing
* awk – A pattern scanning and processing language
* banner – Creates ascii art version of an input string for printing large banners
* cat – Concatenate files to standard output
* cksum – Print the CRC checksum and bytecount of a file (see also MD5)
* cmp – Compare two files byte for byte
* comm – Sort two files and compare them line for line
* csplit – Split a file into sections determined by context lines
* cut – Remove sections from each line of a file or standard input
* diff3 – Compare one text file against two other files
* diff – Compare two text files line by line
* egrep – Extended pattern matching (synonym for "grep -E")
* expand – Convert tabs to spaces
* fc – Processes the command history list
* fgrep – Simplified pattern matching (synonym for "grep -F")
* fold – Wrap each input line to fit within the given width
* grep – Print lines matching a pattern
* head – Output the first parts of a file
* iconv – Convert the encoding of the specified files
* join – Join lines of two files on a common field
* less – Improved more-like text pager
* merge – Three way merge of files (see also paste)
* more – Pager
* nkf – Convert Japanese characters
* nl – Number the lines of a file
* nroff – Fixed-width (non-typesetter) version of the standard Unix typesetting system
* od – Dump files in various formats, e.g. octal
* paste – Merge lines of files
* patch – Change files based on a patch file
* rev – reverse lines of a file
* sed – Stream EDitor
* sort – Sort lines of text files
* split – Split a file into pieces
* tac – cat in reverse — displays files to standard output in reverse order starting at the end of the file
* tail – Output the tail end of files
* tee – Read from standard input, write to standard output and files
* tr – Translate characters
* tsort – Perform a topological sort
* unexpand – Convert spaces to tabs
* uniq – Remove duplicate lines from a sorted file
* uudecode – Decodes a binary file that was used for transmission using electronic mail
* uuencode – Encodes a binary file for transmission using electronic mail
* wc – Word/line/byte count
Text editors
* acme – Bitmapped text editor and integrated development environment ported from the Plan 9 operating system with client-server design, by Rob Pike. This is the successor of sam.
* ed – Original line-oriented, regular-expression based Unix text editor
* ex – Line-oriented text editor from BSD Unix, originally derived from Unix ed, later augmented by a screen-oriented "visual" mode, creating vi; typically a symbolic link to vi (or vim) causing it to start up in line-editing mode
* GNU Emacs – Freely programmable full-screen text editor and general computing environment (using builtin Elisp, a simple dialect of the Lisp programming language)
* Joe – a screen-oriented text editor using a Wordstar-style command set
* Jove – a screen-oriented text editor using an Emacs-style command set
* MicroEMACS – a screen-oriented text editor using an Emacs-style command set
* nano – Clone of pico (see below)
* NEdit – A Motif based text editor for the X11 windowing system, remniscient of text editors on Mac or Windows systems
* nvi – "New" vi, unencumbered (no remaining original Unix code) reimplementation of ex/vi for the 4.4BSD operating system release
* pico – PIne's message COmposition editor (simple, easy to use screen editor)
* sam – Bitmapped text editor ported from the Plan 9 operating system with client-server design, by Rob Pike
* vi – "Visual" (screen-oriented) text editor (originally ex in screen-oriented "visual" mode)
* VILE – "Vi like Emacs", a vi-like text editor that has been derived from the MicroEMACS text editor
* vim – Vi IMproved, portable vi-compatible editor with multiple buffers, screen splitting, syntax highlighting and a lot of other features not found in standard ex/vi
* XEmacs – Popular version of emacs that is derived from GNU Emacs
Communication, networking and remote access
* Apache webserver
* efax – integrated fax program
* ftp, sftp – File transfer protocol, secure FTP
* HylaFAX – Fax server
* netcat – "TCP/IP Swiss Army knife"
* NFS – Network filesystem
* OpenVPN – virtual private (encrypting) networking software
* Postfix — mail transfer agent
* rsh, SSH, telnet – Remote login
* Samba – SMB and CIFS client and server for UNIX
* Sendmail – popular E-Mail transport software
* talk – Talk to another logged-in user
* uustat – a Basic Networking Utilities (BNU) command that displays status information about several types of BNU operations
* uux – Remote command execution over UUCP
Email programs (user agents)
* elm – (Once very popular) screen-oriented mail program
* mail – Original Unix email program
* mailx/Mail – Improved version of Unix mail from BSD Unix
* Mulberry – powerful graphical IMAP-centric e-mail client (Proprietary Software)
* Mutt – screen-oriented mail program
* Opera – Web browser and e-mail client (Proprietary Software)
* Pine – screen-oriented mail and news program, originally derived from elm
* Mozilla Thunderbird – Extensible e-mail client
Network system services
* fingerd – a daemon for finger – a program used return a human-readable status report on either the system at the moment or a particular person in depth
* inetd – a daemon on many Unix systems that manages Internet services
* xinetd – replacement for inetd
Network Utilities
* dhclient – the DHCP client
* dhcpd – the DHCP daemon
* ifconfig – a tool used to configure a network interface for TCP/IP
* iwconfig – similar to ifconfig, but is dedicated to wireless networking interfaces
* ping – a network tool that tests of whether a particular host is up and reachable on the network
* pppd – Point-to-Point Protocol daemon
* tcpd – Secures programs launched from inetd
Network monitoring and security
* Ethereal and tethereal – a feature rich protocol analyzer (now called Wireshark, see below)
* ettercap – a tool for network protocol analysis
* John the Ripper – password cracking software
* Nessus – a comprehensive open-source network vulnerability scanning program
* Netstat – displays a list of the active network connections the computer
* Nmap – free port scanning software
* SAINT – System Administrator’s Integrated Network Tool – Network Vulnerability Scanner.
* SATAN – the Security Administrator Tool for Analyzing Networks – a testing and reporting tool that collects information about networked hosts
* Snoop – Solaris packet sniffer
* Snort – an open source network intrusion detection system
* tcpdump – a computer network debugging tool that intercepts and displays TCP/IP packets being transmitted or received
* Wireshark – a protocol analyzer, or "packet sniffer", similar to tcpdump, that adds a GUI frontend, and more sorting and filtering options (formerly named Ethereal)
Programming tools
Script Interpreters
Shells
* bash – Bourne Again SHell, (mostly) sh-compatible and csh-compatible, standard shell on Linux systems and Mac OS X.
* csh – C shell. Written by Bill Joy for BSD systems.
* ksh – Korn shell, standard shell on many proprietary Unix systems, powerful successor to the Unix Bourne shell (sh), written by David Korn,
* rc – originally written for Plan 9.
* sh – Bourne shell, only shell present on all UNIX and Unix-like systems, written by Stephen Bourne for Version 7 Unix.
* tcsh – TENEX C shell, standard shell on BSD systems.
* zsh – Z shell.
Non-shells
* awk – Standard Unix pattern scanning and text processing tool.
* perl – Perl scripting language.
* PHP – PHP scripting language.
* Python – Python scripting language.
Compilers and Programming tools
The classic UNIX environment includes a basic set of broadly available programming tools, but in the 21st century this classic environment is increasingly rare, as Unix-like operating system distributions diversify. Some include vastly more, and more modern and sophisticated, programming tools and environments, whereas others, focussing on serving a less technical audience, may exclude even the most rudimentary programming utilities. Commands most familiar to a prior generation of UNIX users include:
* admin – Administer SCCS files.
* as – GNU assembler tool.
* c99 – C programming language.
* cc – C compiler.
* cfront – C++ front-end compiler
* ctags – Generate tags file summarising location of objects in source files.
* dbx – (System V and BSD) Symbolic debugger.
* distcc – Tool for distributing compiles across multiple machines.
* f77 – Fortran 77 compiler.
* gcc – GNU Compiler Collection C frontend (also known as GNU C Compiler)
* gdb – GNU symbolic debugger.
* ktrace – (BSD) Analogous to strace.
* ld – Program linker.
* lex – Lexical scanner generator.
* ltrace – (Linux) Trace dynamic library calls in the address space of the watched process.
* m4 – Macro language.
* make – Automate builds.
* nm – List symbols from object files.
* rmdel – remove a delta from an SCCS file.
* size – return the size of the sections of an ELF file.
* strace – (Linux) or truss (Solaris) Trace system calls with their arguments and signals. Useful debugging tool, but does not trace calls outside the kernel, in the address space of the process(es) being watched.
* strip – Remove debugging symbols from object files.
* yacc – LALR parser generator.
Scripting utilities
* basename – Returns the final component of a path
* batch – Runs jobs when the system load level permits
* false – Return a value that evaluates as False
* hash – Command that remembers or reports command path names
* printf – Format and print data
* strings – Print strings of printable characters found in a file
* test – Test an expression
* times
* true – Return a value that evaluates as True
* unset – Unsets a shell variable
* xargs – Build and execute command lines from standard input
* expr – Evaluate expressions
User interfaces
* X11 – Graphical user interface (GUI)
o startx and xinit
o xterm
Desktops/Graphical User Interfaces
* Blackbox and its variants (including Fluxbox and Waimea)
* CDE – Common Desktop Environment, most commonly found on proprietary UNIX systems
* Enlightenment – an open source window manager for the X Window System
* FVWM and its variant FVWM95, which has been modified to behave like Windows 95 Also FVWM-Crystal that aims to be eye candy
* GNOME – GNU Network Object Model Environment
* IceWM – ICE Window Manager
* Ion (window manager) – tiling and tabbing window manager for the X Window System. Designed for use without a mouse.
* JWM – Joe's Window Manager
* KDE – K Desktop Environment
* Quartz Compositor – Apple's GUI interface for the Darwin BSD based operating system Mac OS X
* Window Maker
* WMI – Window Manager Improved
* XFce – a desktop environment for Unix and other Unix-like platforms
* EDE
Shells
See Script Interpreters.
Computer security
Antivirus software
* ClamAV – E-mail virus scanner.
Cryptography
* Enigmail – Graphical interface to gpg for Mozilla Application Suite and Mozilla Thunderbird.
* gpg – GNU Privacy Guard, a complete and free replacement for PGP (to do file and email encryption and signature).
* mcrypt -- Replacement for the legacy crypt program; can also make OpenPGP-compatible files.
* openssl – Secure Sockets Layer and general crypto library.
* pinepgp – Filters that enable pine to use signed/encrypted email.
Package management software
* apt – Front-end for dpkg or rpm
* debconf – Debian package configuration management system
* dpkg – The Debian package manager
* drakconf – Front-end configuration utility for Mandriva Linux
* emerge – A frontend to portage
* pacman – A package manager used primarily by Arch Linux
* portage – The Gentoo Linux package manager
* rpm – Originally the package manager for Red Hat Linux, now used by several distributions including Mandriva Linux
* Synaptic – GTK+ frontend for the apt package manager. Primarily used by Ubuntu Linux, Debian Sarge, and other Debian-based systems; but usable on any system using apt.
* urpmi – Front-end to rpm, used by Mandriva Linux
* YaST - System management utility mainly used by SuSE
* yum - Front-end for rpm, used by Fedora
OS X/Darwin specific programs
* defaults (software) – Access the Mac OS X user defaults system
* fink – The Fink package manager
* open – opens it's argument(s) in the GUI as if the user had double clicked
* osacompile – Compile AppleScripts and other OSA language scripts
* osalang – Information about installed OSA languages
* osascript – Execute AppleScripts and other OSA language scripts
* say – Convert text to audible speech
Application software
Office
* AbiWord
* Gnumeric
* KOffice
* OpenOffice.org
Multimedia
* Amarok – Audio jukebox
* Ardour – Digital audio workstation for multitrack HD recording and editing
* Audacity – Sound recording and editing program
* Baudline – Audio recorder, analyzer, and player
* GIMP – Powerful image manipulation package
* GStreamer – Plugin-based multimedia framework
* ImageMagick – Image conversion library
* Inkscape – Vector graphics editor
* mpg123 – MP3 player
* MPlayer – General-purpose media player
* Netpbm – package of graphics programs and programming library
* Rhythmbox – Audio jukebox similar to Apple's iTunes
* Rosegarden – Powerful digital audio workstation
* SoX – Sound conversion tool
* Totem – Media player
* transcode – Flexible command-line media encoding tool
* VLC media player – Video player
* xine – Video Player
* XMMS – Winamp-like multimedia player
Web browsers
* Dillo – Extremely light-weight web browser
* ELinks – Enhanced links
* Epiphany – Light-weight GNOME web browser
* Galeon – Light-weight old GNOME web browser
* Konqueror – KDE web browser
* Links – Console based web browser
* lynx – Console based web browser
* Mozilla Application Suite – Graphical cross platform web browser & email client
* Mozilla Firefox – Extensible Web browser
* Opera – Web browser and e-mail client (Proprietary Software)
* w3m – Console based web browser
Desktop Publishing
* groff – Traditional typesetting system
* LaTeX – Popular TeX macro package for higher-level typesetting
* lp – Print a file (on a line printer)
* Passepartout – Desktop publishing program
* pr – Convert text files for printing
* Scribus – Desktop publishing program
* TeX – Macro-based typesetting system
* troff – The original and standard Unix typesetting system
Databases
* DB2
* Firebird
* MySQL
* Oracle
* PostgreSQL
* Progress Software
* SQLite
* Sybase
Mathematical and scientific software
* maxima – Symbol manipulation program.
* octave – Numerical computing language (mostly compatible with Matlab) and environment.
* R – Statistical programming language.
* units – Unit conversion program.
Desktop utilities
* bc – An arbitrary precision calculator language with syntax similar to the C programming language.
* cal – Displays a calendar
* dc – Reverse-Polish desk calculator which supports unlimited precision arithmetic
* fortune – Fortune cookie program that prints a random quote
* dd – Convert and copy a file (Disk Dump)
* echo – Print to standard output
* env – Show environment variables; run a program with altered environment variables
* file – Determine the type of a file
* nohup – Run a command with immunity to hangups outputting to non-tty
* sh – The Bourne shell, the standard Unix shell
* uptime – Print how long the system has been running
System Management
* fuser – Identify processes by files or sockets
* logger – Make entries in the system log
* newgrp (or sg) – Log in to a new group
* pathchk – Check the validity/portability of filenames
Kernel specific
* date – Print or set the system date and/or time
* dmesg – Print the kernel message ring buffer
* ipcrm – Remove a message queue, semaphore set or shared memory id
* ipcs – Provide information on IPC facilities
* uname – Print assorted system statistics
Processes and tasks management
* anacron – Periodic command scheduler
* at – Single-time command scheduler
* chroot – Change the system root directory for all child processes
* cron – Periodic command scheduler
* crontab – Crontab file editor
* daemonic – Interface to daemon init scripts
* exit – Terminate the current shell process
* htop – Interactive ncurses-based process viewer that allows scrolling to see all processes and their full command lines
* kill – Send a signal to process, or terminate a process (by PID)
* killall – Terminate all processes (in GNU/Linux, it's kill by name)
* nice – Alter priorities for processes
* pgrep – Find PIDs of processes by name
* pidof – GNU/Linux equivalent of pgrep
* pkill – Send a signal to process, or terminate a process (by name). Equivalent to Linux killall
* ps – Report process status
* renice – Alter the priorities of an already running process
* sleep – Delay for specified time
* time – Time a command
* timex – Time process shell execution, measure process data and system activity
* top – Produce a dynamic list of all resident processes
* wait – Wait for the specified process
* watch – Runs the specified command repeatedly
Job Control
* bg – Resume a job in background
* jobs – Lists active jobs
* fg – Resume a job in foreground
User management and support
* chsh – Change user shell
* finger – Get details about user
* id – Print real/effective UIDs/GIDs
* last – show listing of last logged in users
* lastlog – show last log in information for users
* locale – Get locale specific information
* localedef – Compile locale definitions
* logname – Print user's login name
* man – Manual browser
* mesg – Control write access to your terminal
* passwd – Change user password
* su – Start a new process (defaults to shell) as a different user (defaults to root)
* sudo – execute a command as a different user.
* users – Show who is logged on (only users names)
* w – Show logged-in users and their current tasks
* whatis – command description from whatis database
* whereis – locates the command's binary and manual pages associated with it
* which (Unix) – locates where a command is executed from
* who – Show who is logged on (with some details)
* write – Send a message to another user
Terminal configuration
* stty – Change and print terminal line settings
* tput – Initialize a terminal/query terminfo database
* tty – Print filename of terminal connected to standard input
Files and texts
* info – The GNU alternative to man
* man – The standard unix documentation system
Filesystem Utilities
* chattr – Change file attributes on a Linux second extended file system
* chgrp – Change the group of a file or directory
* chmod – Change the permissions of a file or directory
* chown – Change the owner of a file or directory
* cd – Change to another directory location
* cp – Copy a file or directory to another location
* df – Report disk space
* dircmp – Compare contents of files between two directories
* du – Calculate used disk space
* fdupes – Find or remove duplicate files within a directory
* find – Search for files through a directory hierarchy
* fsck – Filesystem check
* ln – Link one file/directory to another
* ls – List directory contents
* lsattr – List file attributes on a Linux second extended file system
* lsof – list open files
* mkdir – Make a directory
* mkfifo – Make a named pipe
* mount – Mount a filesystem
* mv – Move or rename a file or directory
* pwd – Print the current working directory
* rm – Delete a file or directory tree
* readlink – Display value of a symbolic link, or display canonical path for a file
* rmdir – Delete an empty directory
* touch – Create a new file or update its modification time
* tree – Print a depth-indented tree of a given directory
* unlink – System call to remove a file or directory
Archivers and compression
* afio – Compatible superset of cpio with added functionality
* ar – Maintain, modify, and extract from archives. Now largely obsoleted by tar
* bzip2 – Block-sorting file compressor
* compress – Traditional compressor using the LZW algorithm
* cpio – A traditional archiving tool/format
* gzip – The gzip file compressor
* p7zip – 7zip for unix/linux
* pack, pcat, unpack – included in old versions of ATT Unix. Uses Huffman coding, obsoleted by compress.
* pax – POSIX archive tool that handles multiple formats.
* tar – Tape ARchiver, concatenates files
* uncompress – Uncompresses files compressed with compress.
* zcat – Prints files to stdout from gzip archives without unpacking them to separate file(s)
Text Processing
* awk – A pattern scanning and processing language
* banner – Creates ascii art version of an input string for printing large banners
* cat – Concatenate files to standard output
* cksum – Print the CRC checksum and bytecount of a file (see also MD5)
* cmp – Compare two files byte for byte
* comm – Sort two files and compare them line for line
* csplit – Split a file into sections determined by context lines
* cut – Remove sections from each line of a file or standard input
* diff3 – Compare one text file against two other files
* diff – Compare two text files line by line
* egrep – Extended pattern matching (synonym for "grep -E")
* expand – Convert tabs to spaces
* fc – Processes the command history list
* fgrep – Simplified pattern matching (synonym for "grep -F")
* fold – Wrap each input line to fit within the given width
* grep – Print lines matching a pattern
* head – Output the first parts of a file
* iconv – Convert the encoding of the specified files
* join – Join lines of two files on a common field
* less – Improved more-like text pager
* merge – Three way merge of files (see also paste)
* more – Pager
* nkf – Convert Japanese characters
* nl – Number the lines of a file
* nroff – Fixed-width (non-typesetter) version of the standard Unix typesetting system
* od – Dump files in various formats, e.g. octal
* paste – Merge lines of files
* patch – Change files based on a patch file
* rev – reverse lines of a file
* sed – Stream EDitor
* sort – Sort lines of text files
* split – Split a file into pieces
* tac – cat in reverse — displays files to standard output in reverse order starting at the end of the file
* tail – Output the tail end of files
* tee – Read from standard input, write to standard output and files
* tr – Translate characters
* tsort – Perform a topological sort
* unexpand – Convert spaces to tabs
* uniq – Remove duplicate lines from a sorted file
* uudecode – Decodes a binary file that was used for transmission using electronic mail
* uuencode – Encodes a binary file for transmission using electronic mail
* wc – Word/line/byte count
Text editors
* acme – Bitmapped text editor and integrated development environment ported from the Plan 9 operating system with client-server design, by Rob Pike. This is the successor of sam.
* ed – Original line-oriented, regular-expression based Unix text editor
* ex – Line-oriented text editor from BSD Unix, originally derived from Unix ed, later augmented by a screen-oriented "visual" mode, creating vi; typically a symbolic link to vi (or vim) causing it to start up in line-editing mode
* GNU Emacs – Freely programmable full-screen text editor and general computing environment (using builtin Elisp, a simple dialect of the Lisp programming language)
* Joe – a screen-oriented text editor using a Wordstar-style command set
* Jove – a screen-oriented text editor using an Emacs-style command set
* MicroEMACS – a screen-oriented text editor using an Emacs-style command set
* nano – Clone of pico (see below)
* NEdit – A Motif based text editor for the X11 windowing system, remniscient of text editors on Mac or Windows systems
* nvi – "New" vi, unencumbered (no remaining original Unix code) reimplementation of ex/vi for the 4.4BSD operating system release
* pico – PIne's message COmposition editor (simple, easy to use screen editor)
* sam – Bitmapped text editor ported from the Plan 9 operating system with client-server design, by Rob Pike
* vi – "Visual" (screen-oriented) text editor (originally ex in screen-oriented "visual" mode)
* VILE – "Vi like Emacs", a vi-like text editor that has been derived from the MicroEMACS text editor
* vim – Vi IMproved, portable vi-compatible editor with multiple buffers, screen splitting, syntax highlighting and a lot of other features not found in standard ex/vi
* XEmacs – Popular version of emacs that is derived from GNU Emacs
Communication, networking and remote access
* Apache webserver
* efax – integrated fax program
* ftp, sftp – File transfer protocol, secure FTP
* HylaFAX – Fax server
* netcat – "TCP/IP Swiss Army knife"
* NFS – Network filesystem
* OpenVPN – virtual private (encrypting) networking software
* Postfix — mail transfer agent
* rsh, SSH, telnet – Remote login
* Samba – SMB and CIFS client and server for UNIX
* Sendmail – popular E-Mail transport software
* talk – Talk to another logged-in user
* uustat – a Basic Networking Utilities (BNU) command that displays status information about several types of BNU operations
* uux – Remote command execution over UUCP
Email programs (user agents)
* elm – (Once very popular) screen-oriented mail program
* mail – Original Unix email program
* mailx/Mail – Improved version of Unix mail from BSD Unix
* Mulberry – powerful graphical IMAP-centric e-mail client (Proprietary Software)
* Mutt – screen-oriented mail program
* Opera – Web browser and e-mail client (Proprietary Software)
* Pine – screen-oriented mail and news program, originally derived from elm
* Mozilla Thunderbird – Extensible e-mail client
Network system services
* fingerd – a daemon for finger – a program used return a human-readable status report on either the system at the moment or a particular person in depth
* inetd – a daemon on many Unix systems that manages Internet services
* xinetd – replacement for inetd
Network Utilities
* dhclient – the DHCP client
* dhcpd – the DHCP daemon
* ifconfig – a tool used to configure a network interface for TCP/IP
* iwconfig – similar to ifconfig, but is dedicated to wireless networking interfaces
* ping – a network tool that tests of whether a particular host is up and reachable on the network
* pppd – Point-to-Point Protocol daemon
* tcpd – Secures programs launched from inetd
Network monitoring and security
* Ethereal and tethereal – a feature rich protocol analyzer (now called Wireshark, see below)
* ettercap – a tool for network protocol analysis
* John the Ripper – password cracking software
* Nessus – a comprehensive open-source network vulnerability scanning program
* Netstat – displays a list of the active network connections the computer
* Nmap – free port scanning software
* SAINT – System Administrator’s Integrated Network Tool – Network Vulnerability Scanner.
* SATAN – the Security Administrator Tool for Analyzing Networks – a testing and reporting tool that collects information about networked hosts
* Snoop – Solaris packet sniffer
* Snort – an open source network intrusion detection system
* tcpdump – a computer network debugging tool that intercepts and displays TCP/IP packets being transmitted or received
* Wireshark – a protocol analyzer, or "packet sniffer", similar to tcpdump, that adds a GUI frontend, and more sorting and filtering options (formerly named Ethereal)
Programming tools
Script Interpreters
Shells
* bash – Bourne Again SHell, (mostly) sh-compatible and csh-compatible, standard shell on Linux systems and Mac OS X.
* csh – C shell. Written by Bill Joy for BSD systems.
* ksh – Korn shell, standard shell on many proprietary Unix systems, powerful successor to the Unix Bourne shell (sh), written by David Korn,
* rc – originally written for Plan 9.
* sh – Bourne shell, only shell present on all UNIX and Unix-like systems, written by Stephen Bourne for Version 7 Unix.
* tcsh – TENEX C shell, standard shell on BSD systems.
* zsh – Z shell.
Non-shells
* awk – Standard Unix pattern scanning and text processing tool.
* perl – Perl scripting language.
* PHP – PHP scripting language.
* Python – Python scripting language.
Compilers and Programming tools
The classic UNIX environment includes a basic set of broadly available programming tools, but in the 21st century this classic environment is increasingly rare, as Unix-like operating system distributions diversify. Some include vastly more, and more modern and sophisticated, programming tools and environments, whereas others, focussing on serving a less technical audience, may exclude even the most rudimentary programming utilities. Commands most familiar to a prior generation of UNIX users include:
* admin – Administer SCCS files.
* as – GNU assembler tool.
* c99 – C programming language.
* cc – C compiler.
* cfront – C++ front-end compiler
* ctags – Generate tags file summarising location of objects in source files.
* dbx – (System V and BSD) Symbolic debugger.
* distcc – Tool for distributing compiles across multiple machines.
* f77 – Fortran 77 compiler.
* gcc – GNU Compiler Collection C frontend (also known as GNU C Compiler)
* gdb – GNU symbolic debugger.
* ktrace – (BSD) Analogous to strace.
* ld – Program linker.
* lex – Lexical scanner generator.
* ltrace – (Linux) Trace dynamic library calls in the address space of the watched process.
* m4 – Macro language.
* make – Automate builds.
* nm – List symbols from object files.
* rmdel – remove a delta from an SCCS file.
* size – return the size of the sections of an ELF file.
* strace – (Linux) or truss (Solaris) Trace system calls with their arguments and signals. Useful debugging tool, but does not trace calls outside the kernel, in the address space of the process(es) being watched.
* strip – Remove debugging symbols from object files.
* yacc – LALR parser generator.
Scripting utilities
* basename – Returns the final component of a path
* batch – Runs jobs when the system load level permits
* false – Return a value that evaluates as False
* hash – Command that remembers or reports command path names
* printf – Format and print data
* strings – Print strings of printable characters found in a file
* test – Test an expression
* times
* true – Return a value that evaluates as True
* unset – Unsets a shell variable
* xargs – Build and execute command lines from standard input
* expr – Evaluate expressions
User interfaces
* X11 – Graphical user interface (GUI)
o startx and xinit
o xterm
Desktops/Graphical User Interfaces
* Blackbox and its variants (including Fluxbox and Waimea)
* CDE – Common Desktop Environment, most commonly found on proprietary UNIX systems
* Enlightenment – an open source window manager for the X Window System
* FVWM and its variant FVWM95, which has been modified to behave like Windows 95 Also FVWM-Crystal that aims to be eye candy
* GNOME – GNU Network Object Model Environment
* IceWM – ICE Window Manager
* Ion (window manager) – tiling and tabbing window manager for the X Window System. Designed for use without a mouse.
* JWM – Joe's Window Manager
* KDE – K Desktop Environment
* Quartz Compositor – Apple's GUI interface for the Darwin BSD based operating system Mac OS X
* Window Maker
* WMI – Window Manager Improved
* XFce – a desktop environment for Unix and other Unix-like platforms
* EDE
Shells
See Script Interpreters.
Computer security
Antivirus software
* ClamAV – E-mail virus scanner.
Cryptography
* Enigmail – Graphical interface to gpg for Mozilla Application Suite and Mozilla Thunderbird.
* gpg – GNU Privacy Guard, a complete and free replacement for PGP (to do file and email encryption and signature).
* mcrypt -- Replacement for the legacy crypt program; can also make OpenPGP-compatible files.
* openssl – Secure Sockets Layer and general crypto library.
* pinepgp – Filters that enable pine to use signed/encrypted email.
Package management software
* apt – Front-end for dpkg or rpm
* debconf – Debian package configuration management system
* dpkg – The Debian package manager
* drakconf – Front-end configuration utility for Mandriva Linux
* emerge – A frontend to portage
* pacman – A package manager used primarily by Arch Linux
* portage – The Gentoo Linux package manager
* rpm – Originally the package manager for Red Hat Linux, now used by several distributions including Mandriva Linux
* Synaptic – GTK+ frontend for the apt package manager. Primarily used by Ubuntu Linux, Debian Sarge, and other Debian-based systems; but usable on any system using apt.
* urpmi – Front-end to rpm, used by Mandriva Linux
* YaST - System management utility mainly used by SuSE
* yum - Front-end for rpm, used by Fedora
OS X/Darwin specific programs
* defaults (software) – Access the Mac OS X user defaults system
* fink – The Fink package manager
* open – opens it's argument(s) in the GUI as if the user had double clicked
* osacompile – Compile AppleScripts and other OSA language scripts
* osalang – Information about installed OSA languages
* osascript – Execute AppleScripts and other OSA language scripts
* say – Convert text to audible speech
Application software
Office
* AbiWord
* Gnumeric
* KOffice
* OpenOffice.org
Multimedia
* Amarok – Audio jukebox
* Ardour – Digital audio workstation for multitrack HD recording and editing
* Audacity – Sound recording and editing program
* Baudline – Audio recorder, analyzer, and player
* GIMP – Powerful image manipulation package
* GStreamer – Plugin-based multimedia framework
* ImageMagick – Image conversion library
* Inkscape – Vector graphics editor
* mpg123 – MP3 player
* MPlayer – General-purpose media player
* Netpbm – package of graphics programs and programming library
* Rhythmbox – Audio jukebox similar to Apple's iTunes
* Rosegarden – Powerful digital audio workstation
* SoX – Sound conversion tool
* Totem – Media player
* transcode – Flexible command-line media encoding tool
* VLC media player – Video player
* xine – Video Player
* XMMS – Winamp-like multimedia player
Web browsers
* Dillo – Extremely light-weight web browser
* ELinks – Enhanced links
* Epiphany – Light-weight GNOME web browser
* Galeon – Light-weight old GNOME web browser
* Konqueror – KDE web browser
* Links – Console based web browser
* lynx – Console based web browser
* Mozilla Application Suite – Graphical cross platform web browser & email client
* Mozilla Firefox – Extensible Web browser
* Opera – Web browser and e-mail client (Proprietary Software)
* w3m – Console based web browser
Desktop Publishing
* groff – Traditional typesetting system
* LaTeX – Popular TeX macro package for higher-level typesetting
* lp – Print a file (on a line printer)
* Passepartout – Desktop publishing program
* pr – Convert text files for printing
* Scribus – Desktop publishing program
* TeX – Macro-based typesetting system
* troff – The original and standard Unix typesetting system
Databases
* DB2
* Firebird
* MySQL
* Oracle
* PostgreSQL
* Progress Software
* SQLite
* Sybase
Mathematical and scientific software
* maxima – Symbol manipulation program.
* octave – Numerical computing language (mostly compatible with Matlab) and environment.
* R – Statistical programming language.
* units – Unit conversion program.
Desktop utilities
* bc – An arbitrary precision calculator language with syntax similar to the C programming language.
* cal – Displays a calendar
* dc – Reverse-Polish desk calculator which supports unlimited precision arithmetic
* fortune – Fortune cookie program that prints a random quote
Wednesday, March 7, 2007
Subscribe to:
Posts (Atom)