Everything Penguin

Focusing on Linux-based Operating Systems
htDig Search:

Operating Systems
  • /pub/OS/Linux

  • Storage
  • File Systems
  • HPC
  • /pub/Storage

  • Networking
  • /pub/Networking

  • Network Services
  • /pub/NetworkServices

  • Security
  • /pub/Security
  • Keytool/OpenSSL

  • Clustering
  • HA
  • DRM

  • Development
  • Design
  • C/C++
  • Java
  • Perl
  • Python
  • Shell
  • Web / J2EE

  • Not Linux ?
  • BSD
  • HP-UX
  • Mac
  • Solaris
  • VM
  • Windows
  • /pub/OS

  • Other
  • /pub
  • /pub/3rdParty
  • The Operating System

    An Operating System (OS) is typically delivered by a vendor and then customized further by the customer. A Linux-based OS contains a Linux kernel, a bunch of "stuff" from Open Source Software (OSS) developers such as GNU, and maybe even some propriatary packages as well.

    The Linux Kernel

    Linux is the kernel source code that is delivered by Linus via kernel.org. Being the kernel, it controls the operating of the system, but it is *not* the Operating System (OS). In fact, the kernel does not even know about the OS; it has a limited set of kernel functions that it (and only it) can run, and it has an API that we mortals think of as the "System Calls." A few of the details are provided in these notes; the rest can be obtained by reading the source code. ;)

  • The x86 CPU and System Calls
  • Linux Kernel Objects
  • CPU Scheduling, Part 1
  • CPU Scheduling, Part 2
  • CPU Affinity
  • IO Scheduling
  • IRQ Assignment
  • Linux Kernel Hacking
  • Kernel Panic

  • System Tuning

    It is said that System Tuning is not a science but an art; I think of it as a bit of both.

  • Tuning Overview - System
  • Tuning Cheat Sheet
  • Establishing the Baseline
  • SAR, Part 1
  • SAR, Part 2
  • IOstat
  • MPstat
  • VMstat
  • Process Priorities

  • Application Tuning

    A good coder not only knows the language, but also knows the OS they are writing for. Once the application is functional and maintainable, now is the time to make it faster. These notes contain the lessons learned from the experts:

  • Tuning Overview - Applications
  • Low Latency Optimizations
  • Application Profiling

  • I/O & File Systems

    Real memory is still not unlimited. Until the time comes when that is not true, applications still need to rely upon other forms of *slower* media for storage. As storage is such a well known bottleneck, you're probably thinking that there must be billions (trillions?) spent trying to minimize the I/O latency; and you'd be right:

  • Linux Storage & File Systems
  • Filesystem - Inodes
  • Filesystem - Permissions
  • Tuning Selected File Systems
  • High Performance (Parallel) File Systems

  • Networking

    Much as Linux is made of chained, efficient programs, Networking consists of chained, efficient protocols that allow data to be sent and received. Among the many protocols, Internet Protocol version 4 (IPv4) is certainly the most prevalent as a carrier for the higher level Unix Network Services.

  • Network Congestion
  • TCP Dump
  • Ethereal
  • ARP Cache
  • Packet Routing
  • Spanning Tree
  • Ethernet/IPv4/TCP/UDP - OSI Model

    Although Linux is best known for being a server, it's ability to be both a Desktop client and also a Router are well respected. With regard to the latter, its trivial to enable routing on Linux ( "echo 1 > /proc/sys/ipv4/ip_forward" ), but not so when determining which packets to route and which to filter. The current method is to use "iptables." The Netfilter project contains most everything you should need to know on the topic. Netfilter builds upon the earlier "ipmasq" and "ipchains" work in using "iptables."

    Need *real* router functionality, like running BGP, OSPF or RIP? Linux has it, and has had it for years in Quagga (formerly Zebra). Yep, Linux makes a pretty good "basic" router.

  • Sample NAT firewall using iptables

    There are a number of high speed protocols that run over Fiber, with Fibre Channel being the most prevalent in the Linux community. Fiber Channel is able to carry other protocols, most notably the SCSI suite of protocols. Of course, with GigE, Ten GigE and potentially 40 and 100 GigE, you will certinly hear more about Fibre over Ethernet. But while some look at how to improve Fibre Channel, Ethernet and even TCP (iWARP), others have changed the playing field with Infiniband. Whether it's RDMA, iSER, or just plain old IPoIB, it seems pretty clear that there's another gorilla in the house.

  • HPC Interconnects
  • Infiniband
  • Fibre Channel
  • SAS
  • SCSI

  • Network Services

    It's great to have a Network, but it's reason for existing is to provide access to something. That's where setting up Network Services comes in. Services (like DNS, HTTP, SMTP) may be accessable by the whole Internet, or they may be available to a select set of subnets.

  • DHCP
  • DNS
  • HTTP
  • NFS
  • SMTP
            EZ qmail (Local  || SourceForge)

  • Other Sites

  • FAQ's
  • IETF
  • RFC Sourcebook

  • Linux
  • Linux - Intro
  • Linux Kernel
  • Linux Kernel (LKML)
  • Bash - Intro
  • Bash - Advanced
  • Command Line
  • System Administration
  • Network Administration
  • Man Pages (& more)
  • More Guides
  • Red Hat Manuals
  • HOWTO's

  • Reference/Tutorials
  • C++ @ cppreference
  • C++ @ cplusplus
  • CSS @ echoecho
  • DNS @ Zytrax
  • HTML @ W3 Schools
  • Java @ Sun
  • LDAP @ Zytrax
  • Linux @ YoLinux
  • MySQL
  • NetFilter
  • Network Protocols
  • OpenLDAP
  • Quagga
  • Samba
  • Unix Programming

  • This site contains many of my notes from research into different aspects of the Linux kernel as well as some of the software provided by GNU and others. Thouugh these notes are not fully comprehensive or even completetly accurate, they are part of my on-going attempt to better understand this complex field. And, they are your to use.

    Should you wish to report any errors or suggestions, please let me know.

    Should you wish to make a donation for anything you may have learned here, please direct that donation to the ASPCA, with my sincere thanks.

    Brett Lee
    Everything Penguin

    The code for this site, which is just a few CGI scripts, may be found on GitHub (https://github.com/userbrett/cgindex).

    For both data encryption and password protection, try Personal Data Security (https://www.trustpds.com).

    "We left all that stuff out. If there's an error, we have this routine called 'panic', and when its called, the machine crashes, and you holler down the hall, 'Hey, reboot it.'"

        - Dennis Ritchie on Unix (vs Multics)

    [ Powered by Red Hat Linux ] [ Powered by Apache Server] [ Powered by MySQL ]

    [ Statistics by AWStats ]