Announcement

Collapse
No announcement yet.

A Stable Linux Kernel API/ABI? "The Most Insane Proposal" For Linux Development

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • A Stable Linux Kernel API/ABI? "The Most Insane Proposal" For Linux Development

    Phoronix: A Stable Linux Kernel API/ABI? "The Most Insane Proposal" For Linux Development

    For some lighthearted weekend reading and sure to make for some interesting discussions in the forums is what was volleyed today onto the kernel mailing list: "The most insane proposal in regard to the Linux kernel development." It's about shaking up the way the Linux kernel development happens, but almost surely the proposal won't end up resulting in changes...

    http://www.phoronix.com/scan.php?pag...Stable-API-ABI

  • c117152
    replied
    Originally posted by debianxfce View Post

    NT is a horrible kernel. I was a windows device driver developer when NT came to our projects. In windows 95 the os was usable after kernel driver crash, but NT did show only the famous blue screen.
    Showing blue screen means the kernel is running. Being able to dump the stack means the FS server is running. What screws up NT is having no resurrection server so they need a system reboot every time a driver crushes. In some ways, it was a decision to develop the kernel that way. It was made with servers in mind and rebooting when a driver faults is preferable to data corruption.

    Regardless, in recent years, as Windows shed all it's server wannabe aspirations and became a consumer toy, they've implemented a hybrid resurrection mechanism for sound and video drivers which helps a lot. I'd often see the video driver crush and resolutions change without killing my off running gui programs. In linux, where correct data retention is still valued over ui uptime, x server dies with the driver taking all my running applications with it. Wayland would supposedly address these issues one day... But for running poorly written toy programs that don't separate the front end and back end, Windows is still superior.
    Last edited by c117152; 04-11-2016, 08:33 PM. Reason: done

    Leave a comment:


  • SystemCrasher
    replied
    Originally posted by debianxfce View Post
    NT is a horrible kernel. I was a windows device driver developer when NT came to our projects. In windows 95 the os was usable after kernel driver crash, but NT did show only the famous blue screen.
    It depends what one wants, actually. In embedded designs I prefer to escalate all kernel-level issues to panic and autoreboot. Just to avoid running with potentially damaged kernel, eventually causing damage to the rest of system. So there could be some point in this behavior. Sometimes. Somewhere. And it is really nice Linux kernel is very configurable, so I can get desirable default behavior evrywhere I need. Somehow, NT stands no chance to afford it. Being proprietary, with no sensible kernel community around, anything related to kernel or drivers issues is a nightmare. Nobody would be able to help, and it could easily halt even most sound plan.

    Leave a comment:


  • SystemCrasher
    replied
    Originally posted by debianxfce View Post
    Java is a big mistake in android. Current smart phones have enough power to run wine and tomb raiders. Current android games are very poor compared to pc games.
    I'm somewhat agree. It causes poor performance and awful battery life here and there, and recharging android smartphone at least once a day is a norm, not something unusual. Speaking for myself, I do embedded designs on pure Linux, because Android is IMHO not really suitable for anything but enterntainment.

    Yet, I have some technical fixups.
    - Ok, Java is pain to write games and other latency-critical apps, due to GC and somesuch. Though now google got AOT compilation at least. Well, I still dislike Android.
    - Gamedevs were first to demand native code, NDK has appeared mostly due to pressure from gamedevs. So, SDL-based games and somesuch could be a native code, actually.
    - Mobile GPUs are crap. They are low power and often like 3-4 generations behind of desktop. Don't you mind e.g. ARM mali is such a crap it haven't even got unified shaders? Needless to say, you'll have to forget about GPGPU, Vulkan and anything but early crippled versions of GL ES, due to awfully crappy shader engines. Sorry, but if GPU suxx at shaders you have to forget about decent effects computed at reasonable speeds. Unified shaders allow one to get more from same silicon estate, re-purposing shader engines to actual load. Many adnroid devices got really sucking GPUs.
    - Android devices are TDP and battery charge limited. CPU could run at impressive speeds for short time. But could overheat if you'll continue like this for a while. Not to mention users dislike when their devices are getting hot. And of course everyone would enjoy by battery drained in a mere 2 hours.

    But still, java contributes to poor battery charge use, lagging and horrible use of device's RAM.

    Android root model is more complex than using a linux distro in pc. I have one smart phone with broken touch screen, lcd and everything else works fine. Android usb debugging is not enabled by default, so I have no way to control it and use it as a wall clock. There is no any alternative firmware for this phone too.
    Internally, Android still a Linux, when it comes to kernel side. Usermode is quite exotic/crappy, and kernel could use some unusual subsystems like Binder IPC (interestingly one can enable it even on non-android systems, nothing wrong with it). Kernel is actually heavily customizable entity. You could disable modules, proc, sysfs, sysv ipc, most filesystems and executable formats. You can even build kernel which knows 0 executable formats. Erm, I'm not really sure what you'll do with it, but its possible. Then, even in classic Linux system may or may not contain tools you expect to find and you may or may not have access to these tools. It happens at system integrator's or administrator's discretion. One who has got root is to decide what users could do. If you do not have root, you do not have control over system as well.

    So it IMHO takes some discretion about permissions and hardware. If you've bought locked down hardware... ok, Linux could be used for any purpose. Including goal of keeping you out, if desired by real system administrators/integrators.

    Btw, even if you can't hit touch screen, you may (or may not) be able to modify underlying system.
    - System could have boot ROM. It may or may not allow e.g. boot of custom code from USB or UART. It may or may not come with signatures check and enforcement.
    - Next stages of boot loader from flash may or may not have ability to communicate over USB, do emergency system recovery or upgrades or changing kernel command line and so on. There may or may not be sigs checks and somesuch.
    - Most android kernels do not check digital signatures on kernel modules, kexec() and somesuch. Guess what it means, if you understand how to use it in your particular case. People even pwned locked down Mototola Milestone things using this way. System security is a tricky bitch.
    - Some devices may or may not have JTAG enabled.
    - Some devices may or may not have debug UART, used by boot loader, kernel or rest of system. Sometimes boot loader may take your word for e.g. kernel command line, non-android things quite often offer full-root, often auto-login shell on uart.
    - If one is really desperate, they may try to reverse touch scren protocol (maybe they can just read kernel driver source) and then use microcontroller to do desired "presses". Ok, it going to be hard and unusual way to take your system back XD.

    From realistic point of view, if determined attacker has got local physical access, I would expect him to eventually succeed in takeover, one way or another.

    Leave a comment:


  • nanonyme
    replied
    Originally posted by debianxfce View Post

    NT is a horrible kernel. I was a windows device driver developer when NT came to our projects. In windows 95 the os was usable after kernel driver crash, but NT did show only the famous blue screen.
    I'm assuming you eventually figured out how to enable full memory dumps so when it bluescreens, it produces you post-mortem debugging information over entire OS

    Leave a comment:


  • SystemCrasher
    replied
    Originally posted by birdie View Post
    No, they used to update the kernel at least every 5 years.
    This also makes winshit really useless to me. Do they have some sensible API to blink leds? Some fun with GPIO? Maybe 1 wire bus? I2C? Linux got 80211 wireless stack a while ago. Same for BT. Microsoft lagged a while with bluetooth/wi-fi things, utterly lacking APIs to deal with it and resulting in plenty of homegrown solutions instead. 5 years is way too much in modern world.

    So, windows suxx. Servers? Things are changing rapidly, with all these VMs, containers and clouds. Windows is way too slow to deal with it. Mobile devices? Haha, wincrap only supports Qualcomm and unable to use anything else. Embedded? Erm, win does not supports anything, neither typical protocols/devices, nor SoCs used, extremely hostile to customization and its licensing suxx. Can they do some CAN? Some hardware watchdog API? MS are obsolete relics of MSDOS ages.

    MS & proprietary software fans have to admit one thing: they are no longer creating landscape in digital world, they no longer lead. All superb, futuristic techs and services are based on opensource.

    What's wrong with selling your software?
    Speaking for myself, I like opensource, it works for me, it does not cripples my options like proprietary software does and it allows to take part in development. Proprietary programs/OSes vendors proven to be uncooperative, ignorant or even malicious. I wish them luck, etc. They would need it .

    Stable kernel or not, binary blobs for the Linux kernel still exist. Look at Android. No amount of API breakage will change that.
    It would be smart idea to grab git and do grepping before trying to come out with bold statements. Just take a look how much of android stuff got merged into mainline. Ranging from Binder IPC bus to DRM kernel drivers for Rockchip, Exynos, ... overall there is quite good SoC support. No other OS on the planet close to this. Feel free to compare vs windows, etc like you always do .

    There're few kernel-side blobs these days, since it is pain. There're some proprietary user-mode components, like shader compilers for GPUs, or RILD, but it is not about kernel at all.

    Who needs a stable OS, dammit? Yeah, right, there's already one. Let Linux remain where it already is - nowhere.
    You should be kidding or trolling. Linux is everywhere, from servers to HPC, from embedded to clouds. Windows is nowhere but desktops. Let 'em be something like Oracle. Who cares of Oracle? Few arrogant DBAs? Very nice.

    Don't remind me of supercomputers - they run specially tuned Linux distros for their entire lifespan. Tune one, run forever.
    Okay, I can remind you about mobile devices, MS got totally pwned. Android is Linux (which is a kernel). So Linux got plenty of commits around SoCs and MS has lost significant part of digital future. Nice.

    Along with NVIDIA blobs (most supercomputers employ NVIDIA GPUs).
    I think it is a bit unwise if your business relies on project where project manager shows you middle finger. And why someone supposed to care about nvidia? They refuse to cooperate, so I do not get why kernel devs shouldn't do the very same to them. If using nvidias is painful, it also discourages users from buying it. Some extra pressure on nvidia happens. Not to mention it brings some advantages to competitors and it seems AMD has got idea, chopping kernel blob as most painful part. That's how one gets it right.

    Don't remind me of Android - most Android run only one Linux component - the kernel,
    Linux is a kernel. Ability to use different user modes is a feature, not bug. It allows people to implement wildly different devices of all scales. Something Windows can't afford.

    Furthermore, kernel does its job very well. Google did really wise by using kernel but ditching troublesome bones and dust like xorg which is not suitable for modern designs. Linux kernel devs were quick to get idea. There was strong traction to improve poor state of things, KMS and DRM were born. These are really relevant to my taste. If you're blind or something, take a look on kernel commits around "android" SoCs. They started to use DRM interfaces as well, because new APIs are relevant for them as well. So kernel side is really good. It is user mode to fix, not Linux the Kernel.

    and usually just one version of it.
    Still, being proprietary should be inconvenient and and discouraging. Linux kernel devs are good at this. Once more and more stuff would be merged to mainline, there will be less reasons to stick to these old kernels. Looking on commits related to ARM SoCs it seems it working. Maybe you're blind, but ARM drivers could easily score like 20-30% of all kernel commits these days.

    Don't remind me of servers - they don't have GUI. They don't run any "normal" software.
    Go blame xorg, it does not qualifies as something sensible when youtube is full of 4K movies. On other hand, Google is fine with it, their phones and tablets could afford first-class UI/UX. It is user mode to blame.

    They usually have very few hardware components (CPU + RAM + Chipset + NIC).
    They have plenty of sensors, bunch of exotic chips like RAID controllers, some remote management features, NICs could be very advanced, e.g. with own CPU, doing offload of TCP, timestamping, checksumming and a lot more. There could be very advanced requirements for networking on its own. Say, I can set up virtual environment with 2 containers, and connect them using Virtual Ethernet Wire, where kernel creates me both ends and I can connect 2 virtual environments using this kernel-level fake. Good luck to show me this trick in Windows, etc. Linux kicks the ass when it comes to VMs and containers. In fact there're no real competitors with comparable set of features. Furtheremore, proprietary nature of system brings many ideas to halt. You can't start up another Google or Facebook using Windows. Because it going to be expensive and inflexible.

    So, are you proud of the state of Linux in the modern world?
    WORKSFORME. Linux kernel is my favorite part of opensource world. It kicks the ass. I wish it has equally good usermode, especially when it comes to graphics.
    Last edited by SystemCrasher; 04-10-2016, 08:00 PM.

    Leave a comment:


  • F1esDgSdUTYpm0iy
    replied
    Originally posted by gamerk2 View Post
    As Henry Ford put it, if you asked people what they wanted, they would have said "faster horses".
    https://en.wikipedia.org/wiki/Bugatti_Veyron

    Well, in a way that's what they got. A lot of really fast horses. Up to 1200 of them in the Veyron.

    Leave a comment:


  • gamerk2
    replied
    Originally posted by F1esDgSdUTYpm0iy View Post
    Most consumers do not know what they need, only what they want and as a result, it does not say all that much about the quality of the product(s). ME was shit. The fact people wanted it doesn't make it any less shit.

    As Henry Ford put it, if you asked people what they wanted, they would have said "faster horses".

    Leave a comment:


  • F1esDgSdUTYpm0iy
    replied
    Originally posted by gamerk2 View Post
    I point out ME was asked for by consumers before the switch to an NT based OS (XP). It was always hackish, and why for legacy programs I tend to recommend Win98 SE over ME.
    Most consumers do not know what they need, only what they want and as a result, it does not say all that much about the quality of the product(s). ME was shit. The fact people wanted it doesn't make it any less shit.

    Leave a comment:


  • gamerk2
    replied
    In fact, I would say Gates has been the worst CEO so far. Because it was under his leadership that Microsoft became an almost complete monopolist in the 90s and then stopped innovating. Almost killing Windows in the process. Had Win ME been succeeded by yet another 9x, ME-generation OS, I'm not sure it would've done quite as well as Windows XP did.
    I point out ME was asked for by consumers before the switch to an NT based OS (XP). It was always hackish, and why for legacy programs I tend to recommend Win98 SE over ME.

    Stable API would halt kernel development (sorry, but Windows suxx, selling the very same kernel for 10 years) and vendors would try to feed us with fuckin' binary blobs. Hopefully mr Torvalds is smartass enough to get idea and swing his middle finger to blobbed companies. Who needs windows #2, dammit? There is already one.
    The failure in thinking here is that change should be done via the kernel, rather then external to it. Which is really what this debate is all about.

    In my mind, all the kernel should be doing is running the host OS and exposing the necessary interfaces to hook into it. The Linux kernel, frankly, tries to do to much, and is a complicated mess as a result.

    Leave a comment:

Working...
X