Slashdot Mirror


Linux 3.13 Released

diegocg writes "Linux kernel 3.13 has been released. This release includes nftables (the successor of iptables); a revamp of the block layer designed for high-performance SSDs; a framework to cap power consumption in Intel RAPL devices; improved squashfs performance; AMD Radeon power management enabled by default and automatic AMD Radeon GPU switching; improved NUMA and hugepage performance; TCP Fast Open enabled by default; support for NFC payments; support for the High-Availability Seamless Redundancy protocol; new drivers; and many other small improvements. Here's the full list of changes."

14 of 141 comments (clear)

  1. configuration languages by StripedCow · · Score: 3, Interesting

    This release includes nftables (the successor of iptables)

    Why does every network management tool include their own ugly, broken little programming language for configuring it?

    Why not just use an existing language?

    Like, when I get a packet from the network, I can just use Python:

    if packet.origin == "127.0.0.1":
        packet.drop()
    elif packet.port == 80:
        packet.forward(port = 1024)

    etcetera.

    --
    If Pandora's box is destined to be opened, *I* want to be the one to open it.
    1. Re:configuration languages by jones_supa · · Score: 5, Insightful

      Probably because of the extremely high performance requirements. There's a lot of packets going through a 10Gbit interface and if you run some Python code for each of them you're gonna choke the machine.

    2. Re:configuration languages by upuv · · Score: 5, Insightful

      The problem is overheads and security.

      Embedding a language at such a low level is very tricky. It has to be blinding fast and user very very little resources. python, perl, ruby are all great languages. but ill suited for the task of network management tasks. The RAM overheads are huge. This is why we are seeing a relatively constant evolution, change of embedded languages at these low levels. This is a game of resource management on the host system.

      Just imagine if this host was a web server. With thousands of socket requests per second. How would Python manage to keep up with that. Without crushing the system under load even before the traffic was passed off to a process like Ngynx to handle. Python would be a performance nightmare at this level.

      Another way to look at this is. What if you hammered the system with a DOS style attack. If each request had to go through a python execution stack you are basically making the system far more vulnerable to DOS than it ever was before.

      Now lets look at topics around these highly extensible languages. Here you have a system that in part is supposed to improve security. But by adding in a language like python you are adding in a very extensible lnaguage at a very low level. A kernel level to be precise. So higher than root. The security implications are enormous. You are basically exposing the kernel to a far higher risk. This would be a hackers dream come true.

      So there are reason for these language syntax choices. They must be managed very carefully.

    3. Re:configuration languages by cupantae · · Score: 3, Insightful

      I think the real question (and possibly what StripedCow was asking) is why not use the syntax of existing languages, to make it easier to learn and read?

      --
      --
    4. Re:configuration languages by Nerdfest · · Score: 4, Insightful

      Which means that you could proibably come up with something to do this yourself. I'm sure quite a few people would be interested in it.

    5. Re:configuration languages by arielCo · · Score: 4, Insightful

      It's faster than the scanned rule lists in iptables, and the remaining alternative is compiling to native code into a module every time you change a rule.

      I know that seeing "bloat" everywhere and griping is an honored /. tradition, but someone has to add a dash of reality.

      --
      This post contains no rudeness or derision of any kind. All arguments are friendly. Terms and exclusions may apply.
    6. Re:configuration languages by RabidReindeer · · Score: 3, Interesting

      Probably because of the extremely high performance requirements. There's a lot of packets going through a 10Gbit interface and if you run some Python code for each of them you're gonna choke the machine.

      That would be true if it were impossible to compile Python code to something efficient.

      And the style of code used above (and typical network configuration scripts) would compile to something very efficient. In fact, a compiler can compile that code to the current configuration language whenever possible.

      Systems like IPTABLES are based on declarative syntax. When you "program" by declaration, you are working with a limited syntax to perform limited functions. That also limits your flexibility, but the tradeoff is that the functions that you can do are so well-defined that you can be assured that anything you compile will operate in a way that minimizes surprises. It also means that you can optimize things more precisely because you don't have to support many possibilities, only a few. The #1 feature of declarative programming is that you don't have lots of loops and decisions to debug. Or optimize.

      The "tables" part of IPTABLES also contributes to that functionality. There are a limited set of table types pre-defined with specific uses. By compiling the rules into tables, very efficient processing can be done. After all, optimized table handling is one of the oldest and most intensively-studied disciplines of Computer Science.

      Even IPTABLES wasn't totally restricted to table-driven functions, though. As an extendable architecture, if you really wanted to, you could define your own abilities to the system, including modules incorporating user-written code. It's just that they had pre-defined and fine-tuned the most commonly-used features.

    7. Re:configuration languages by Bengie · · Score: 4, Insightful

      Common syntax that results in different behaviour? That sounds more confusing to me.

      Exactly. It seems like the only people who want firewall syntax in the form of a popular scripting language are people who should not be touching firewall rules in the first place.

  2. Re:nftables by Anonymous Coward · · Score: 5, Informative

    Yes, there is.

    The nftables project provides a backward compatibility layer that allows you run iptables/ip6tables (using the same syntax) over the nftables infrastructure:

    • ...
    • iptables-nftables: the user-space utility that provides the xtables command line utility to add rule using {ip,ip6}tables syntax.
  3. Support for NFC payments ? In the kernel ?? by vikingpower · · Score: 5, Interesting

    I am a bit astounded. Why would you want to compile that into an OS kernel ?? Please enlighten me.

    --
    Religous speak to God. Insane are spoken to by God. When all shut up, one can finally hear Shostakovich in peace
    1. Re:Support for NFC payments ? In the kernel ?? by Anonymous Coward · · Score: 5, Informative

      Well, if you care to stop throwing peanuts from the gallery long enough to read about it, the patch adds driver support for interacting with a "secure element" embedded environment on the NFC hardware, from userspace, via a Netlink API. It's bascially passthrough from user space to the hardware.

    2. Re:Support for NFC payments ? In the kernel ?? by FalcDot · · Score: 5, Informative

      From TFA:

      "This release implements support for the Secure Element. A netlink API is available to enable, disable and discover NFC attached (embedded or UICC ones) secure elements. With some userspace help, this allows to support NFC payments, used to implement financial transactions. Only the pn544 driver currently supports this API."

      In other words, the kernel now contains the necessary API so the PC can correctly talk to a NFC Secure Element which is needed to be able to make payments over NFC, in tandem with userspace tools.

      So yeah, the label is a bit misleading...

  4. nftables on LWN by smittyoneeach · · Score: 5, Informative

    http://lwn.net/Articles/564095/
    Absolute best technical read on the Internet. Subscribe early, subscribe often.

    --
    Get thee glass eyes, and, like a scurvy politician, seem to see things thou dost not.--King Lear
  5. misnomer perhaps? by rewindustry · · Score: 3, Informative

    nfc is a comms protocol, like bluetooth or ethernet, very timing sensitive, therefore best implemented on the kernel level. nfc is often used for payment systems, hen ce the conflation. am assuming - have no specific details.