Linux on the Mac – state of the union
lwn.net
lwn.net
Ouch
Except that never happened. The perceived dev-friendliness of the Macbook Pro was a historical accident: it turns out that when you build something for use cases like audio/video engineering (which overlap a bit in their hardware needs with use cases like compiling software), and happen due to quirks of your company's history to be shipping a Unix-y operating system, developers will like it. But aside from providing tools to build applications for Apple's own platforms, the MBP and other Mac hardware wasn't deliberately catered to developers.
Meanwhile, the audio/video-engineer types still seem to like the MBP; the reviews I've read from them are positive about the touch bar and accepting of the fact that USB C is the future. It's just the developers -- and largely developers who hated Apple's products anyway and likely will never interact with the new MBP -- who say that this is proof that Apple has completely abandoned "pro" users.
I can't speak to the professional video world, but that's absolutely false in the professional audio world.
My experience is in the world of composition and sound design; the attitude towards using Mac for that shifted a while back, due to the lackluster and non-existent upgrades to the Mac Pro.
No one in the professional audio world that I know, or anything that I have read, has suggested they are liking the new laptop (which wouldn't get much use from them anyway).
That covers several DJs, Producers, VO Artists, Audio Editors, and quite a few Sound Designers...
Except me. My employer doesn't let me use my own computer and refuses to buy me one.
? Then what are you using?
So, parent is using the computer the employer doesn't refuse to buy them, a PC.
At my company they belong to a pool for iOS projects.
If you want good hardware and a reliable operating system, you go with a Mac. A few annoyances with adapters it might require won't change that at all.
Depends on what you mean "professional audio world". If you mean heavy old style studios, the kind Led Zeppelin might have recorded on back in the day, yes, but these are on the go (profits and usage wise) anyway, as the industry shifts.
Musicians, producers, DJs, etc most carry laptops and have home studios based around them, and most use MacBook Pro's for their stuff (as evident in all kinds of interviews and live scenarios).
[1] http://www.macworld.co.uk/feature/mac-software/best-mac-maki...
That's a world that was dominated by Mac Pros around 2010. Around 2013 I started seeing a shift, myself included, to custom built PC workstations and that trend is just increasing now. The initial switch, I believe, started with the lackluster cylinder Mac Pro, but continued due to the obvious failings in the Mac desktop market.
You speak of home based studios using MacBook pros, but anyone doing that is obviously not a professional. I will give you the fact that many DJs are using MacBooks for the mobile rigs, but at home, anyone actually doing professional audio work is likely using a massive powerful workstation or a number of PCs (master/slaves).
This notion that MacBooks (or even laptops in general) are super popular in the professional audio world is fiction made for advertising.
Tons of musicians/producers/etc have those, while making more money than professional studios from their productions -- and not just in EDM.
Lots of the work that studios did for even superstar musicians (pop, etc), nowadays happens in the box, and not just demos and early sketches.
>This notion that MacBooks (or even laptops in general) are super popular in the professional audio world is fiction made for advertising.
Rather the professional audio world is not what it used to be.
I'd consider million-making Bjork or whatever working on their laptop, as equally (or more) professional than some struggling studio or post-processing facility.
For what it's worth, a Mac today is still as useful (at least for web development) as it has always been. Much more so actually because homebrew has evolved to be completely stable.
And while CPU speeds have been stagnating (mostly because they've reached "good enough" and then some), people are ignoring two major shifts in hardware that have significantly improved the dev experience: Retina screens and SSDs.
I don't really have any stock in whether the perception is a reality or not, so I'm willing to be persuaded. Hopefully in the next iteration the MBP will have at least 32GB RAM, and they will make a move that will please the software developer market.
The people lamenting the missing option for 32GB RAM as devastating for pros, never had it in the first place, as the previous generation didn't support 32GB either (and yet, they still worked just fine).
Second, the limitation to 16GB is from Intel, not Apple. Intel didn't have 32GB compatible modules with low energy consumption ready -- and without those, Apple using the energy sucking 32GB option would reduce battery life 20% or more.
Not to mention that the overwhelming majority of PC laptops developers buy don't have 32GB at this point in time either, including the most famous models (XPS etc).
Apple could have kept the previous form factor and not made the battery 20% smaller which would have allowed them to have an energy sucking 32GB option. Plus the new form factor is useless anyway, since we end up having to carry adapters which take as much space and weight as what was saved.
Anyway, I've developed a wait and see approach and reserve judgement next year when the next iteration of machines come out. Maybe I'm lucky and Apple even decides to bring back the 17 inch macbook pro
More people like thinness though, than 32GB RAM (which would have been a built-to-order option that few would have clicked). Remember, Apple has those numbers too.
To quote a programmer on thinness:
"I’m have to admit being a bit baffled by how nobody else seems to have done what Apple did with the Macbook Air – even several years after the first release, the other notebook vendors continue to push those ugly and clunky things. Yes, there are vendors that have tried to emulate it, but usually pretty badly. I don’t think I’m unusual in preferring my laptop to be thin and light. (...) I’m personally just hoping that I’m ahead of the curve in my strict requirement for “small and silent”. It’s not just laptops, btw – Intel sometimes gives me pre-release hardware, and the people inside Intel I work with have learnt that being whisper-quiet is one of my primary requirements for desktops too. I am sometimes surprised at what leaf-blowers some people seem to put up with under their desks. (...) I want my office to be quiet. The loudest thing in the room – by far – should be the occasional purring of the cat. And when I travel, I want to travel light. A notebook that weighs more than a kilo is simply not a good thing (yeah, I’m using the smaller 11″ macbook air, and I think weight could still be improved on, but at least it’s very close to the magical 1kg limit)"
Linus Torvalds, APRIL 24, 2012
This has been a repeating pattern with Apple since the iPod success fattened their wallet. They would routinely single out parts they wanted, and then basically order the factory capacity for that year in one go.
Palm/HP execs lamented this fact when they unveiled the Pre 3 and Touchpad, as they often wanted to use the same parts but found Apple had gotten there before them.
Isn't that how economies of scale and bulk ordering is supposed to work?
The original MBA was expensive and underpowered, a niche product at the time. PC vendors responded with equally niche designs (remember the Dell Adamo?)
The Late 2010 MacBook Air introduced the current case design at a reasonable price, used 2+ year old internals (Core 2 Duo + 330m graphics), and set the world on fire.
Yeah i can smell the bonfires from here...
Apple said it was their best laptop launch by sales volume ever. (Although that is partially due to such a long wait from their previous model.) Honestly I'm not that surprised - despite all the hate online I know 2-3 developers who bought them on or near launch day and several others who started salivating when mine arrived. The public internet opinion seems shockingly disconnected from that of everyone I've spoken to in person about it. Although, doing mostly web development more than 16 gigs just isn't important for me or my coworkers. My last laptop had 8 and it was more than fine.
Most people are much more curious about the touchbar (its a bit gimmicky), the screen (gorgeous but no touch-based scroll in browsers sucks) and the price (yowch!). I get a few comments both ways about the new charger (oh cool no more proprietary connecters!) (whaaat no magsafe? Boo!).
Oh, and being a Gen1 apple product there's all sorts of dumb stability problems - which is a much bigger problem than the ram! My touchbar has been glitching out sometimes and the whole system has hard-crashed a half a dozen times since getting it from connecting and disconnecting my 4k monitor. I'll be very disappointed if the software doesn't improve over the next few months.
Contrast that with the steady stream of issues I experienced with a similarly specced high-end Dell XPS 15"--power cord whine, wobbly and noisy fan on the graphics card, severe overheating to the point that the BIOS trigged shutdowns, repeated keys (an ongoing issue affecting multiple Dell models based on support forums), suspend/resume failures, laggy touchpad, and numerous issues with Wifi & sound across several distributions of linux--the new MacBook Pro has been a delight. To Dell's credit, they've released BIOS updates on a regular basis, but the laptop is still plagued with annoying issues, even on Windows.
https://www.youtube.com/watch?v=O4AgFhIm1qs
Quote: "It's not just for artists. It's not just for pointy-headed intellectuals from California. It's for us, it's for programmers, it's for developers."
(Not to mention that, if I understood it correctly, Linux currently doesn't even support the keyboard, and is otherwise probably in its usual desktop mode of "WLAN, Sound, or functioning sleep – choose any two".
I don't understand why would anyone not open-source their drivers?
What's NVIDIA's secret sauce? Being able to build great silicon.
What's Intel's secret sauce? Being able to build great silicon.
What's Samsung's secret sauce? Being able to put together great silicon.
So let's say tomorrow Nvidia open-sources all their drivers?
So now you know that which registers do you use to shade what. So now what's AMD going to do? Copy the interface?
It's already copied. Most users use standard OpenGL/DirectX to communicate with their board.
I mean look at Intel. You practically know what's what there. You can make an OS on (at least older) Intel chips without drivers.
Did it help anyone compete?
OK, so the question is upstream. Why would Qualcomm, ARM, or any upstream care about people finding out the interface to their hardware?
What secrets are there in the drivers?
As I understand things (which I'm clearly not an expert at all), CPU opcode is like an ABI,
put this value into register A, this value into register B, and a magic opcode into register C,
and poof, the register D contains the value of A+B.
A driver will say that you put int X into memory point A, Y into memory point A+1, and call function C with argument of A and D will contain the multiplied number.
So how does #2 protect IP over #1?
Let's also say your hardware implements g, h and i, but doesn't wire them together yet. So, your driver's code calls the three functions.
Unknown to you, the trick to use that decomposition is patented. if you release your driver's source code, you make it easier for the patent holder to figure out that you are violating their patent (your programmers might even have made it patently obvious by mentioning the paper describing the trick in a comment)
Unlikely? Maybe, but the way patents are written, who knows? For an almost random example, I searched for "driver code and hardware patents". The first link I clicked was https://www.google.ch/patents/US20090006831. Reading that, I wouldn't know what driver would _not_ infringe on it.
Also, there are many patents on ways to move data around efficiently. Avoiding all of them while still writing a performant driver at not be possible.
On the other hand it also seems reasonable that a compiler for e.g. NVIDIA's hardware might be hard to re-target to another vendor's hardware while retaining the same advantage.
NVidia's defining characteristic has been designing good drivers.
Even when they've been behind ATI/AMD in hardware, they've been ahead in driver stability and performance. Especially on Linux where they largely own the CG/post/design market (which mostly uses Linux workstations) and they are the only GPU vendor that has somehow squeezed Windows-competitive performance out of Xorg.
This. When shopping for discrete video cards, I no longer look at AMD's offerings because I'm not willing to fight with their driver, fret over whether or not I should apply updates, etc.
First, read this: http://www.gamedev.net/topic/666419-what-are-your-opinions-o...
So basically, most 3D applications and games are broken to a certain degree. Both NVIDIA and AMD invested quite a lot resources into making those applications run at acceptable level and not looking broken.
Now, when you figure out how to unbroke something and put it into fast path, your competitor can lift that easily into their driver. Neither of these players want that.
The good news is, that DX12/Vulkan/Metal have quite a different approach, they don't have complicated state machine and validation in the driver, making the driver simpler and these workarounds unnecessary. If everything goes well, we may see drivers for these stacks.
Microsoft has a lot of resources to incentivize hardware manufacturers to go to great lengths to make sure their drivers work well with Windows. No organization connected with "Desktop Linux" has that.
the reason Linux drivers are a "mess" is that the hardware they are trying to support are a mess, and said mess is papered over in Windows by the OEM drivers.
[edit] and this is with any distro, perhaps with more or less setup work
The other problem for Linux I have encountered recently that burned through my free time was updateing the bios, there are no bios updates with Linux installers, which is annoying because the bios is update is OS agnostic. I had to create a bootable USB drive from a windows program (luckily I have a Windows PC for work) and boot from that. But the how-to guide from HP was lacking in details, and on one PC the program doesn't allow me to create the drive on one PC for use on another, so no bios update there.
The problems I have with Linux never seem to be to do with Linux, it is almost always hardware manufacturers being obstinate and refusing to share their toys with other adults.
I also don't plan to purchase any brand new Apple hardware. I will only adopt Apple hardware late (and used) and will only run OS X if absolutely necessary for some reason.
AMD have demonstrated that trying to do the right thing will get you shit from the maintainers and abuse from bystanders, who will then go and buy Nvidia because it gets a better frame rate.
Having a driver is good, but putting it in-kernel is bad if the kernel devs can't read it and fix it.
That has been the case for a decade or so now. 95% is not enough (for non-tinkerers)
For me, major distributions work out of the box. For example, with my T430s, everything works, including the fingerprint reader and WWAN.
https://news.ycombinator.com/item?id=12820490
That said, the kernel developers working on Mac hardware support aren't Apple haters. We're fans. I also don't share the "not for professionals" criticism that was widely directed at the new MacBook Pro fully: E.g. as stated in the article, the four Thunderbolt ports are interesting for HPC applications as you can build a portable compute cluster with up to five fully-meshed high-speed networked nodes. If that's not professional I don't know what is.
Can you elaborate on what you mean by that? Are you implying a MacBook cluster is an effective HPC platform?
Or let's say you want to quickly set up a Hadoop cluster to crunch some data.
Five machines is certainly small as HPC clusters go, and in reality you'll probably have to cap this to four machines because you need one port to attach to a power socket if you need the cluster for more than 2-3 hours. Nevertheless the 4x 40 GBit/s Thunderbolt ports offer some really interesting possibilities, and I'm not aware of any other portable machine that has this right now.
Also, the Alpine Ridge controllers are attached with PCIe 3.0 4x lanes, that's 31.504 GBit/s, so you can't exhaust the available bandwidth fully.
It is perhaps too early to wave goodbye once and for all to that coalition, but it does seem like some of the design directions that Apple has taken have drifted away from that user base.
That said, this war on the professional and creative class of users began sometime ago - I think the introduction of Final Cut X was the first salvo, while the platform has significantly evolved from the first couple of problematic releases, I personally know some who considered the product a literal betrayal and abandoned ship to Premiere Pro or AVID.
I sense Microsoft is attempting to reassemble that coalition with their offerings, namely the Surface line (especially that gorgeous looking Surface Studio) and the introduction of Bash on Windows, which while still quite limited in its functionality, can be a seen as a step.
I really like my MBP 2013 (NVIDIA GPU) and I guess I am going to keep it a while longer.
Quickly jotted down my own progress as a user http://williamedwardscoder.tumblr.com/post/154376389528/linu...
Really appreciate people making this stuff work, and hope I can use my retina MBP in the long run.
https://github.com/libyal/libfvde/wiki
It's experimental though. Better back up your data.
I'd recommend to create a partition for ZFS and move data there that you want to use on both OSes, or outright install Linux on a zpool and mount that on macOS. This has worked remarkably well for me, even with lz4 compression and all the other great features. Layer ZFS on TrueCrypt if you need encryption, I wrote a howto a while ago but never had the time to update it:
https://github.com/zfsonlinux/pkg-zfs/wiki/Dual-booting-OS-X...
A) You keep your old laptop and continue to run macOS for as long as possible
B) You're shopping for a new laptop and don't buy Apple, then run Linux
If you keep your old hardware why run Linux on it? I've been looking at who else is out there are making decent laptops that run Linux well (open to suggestions, especially if they have more than 16GB RAM), as I have a feeling my 2015 Retina will be my last MBP.
The hard part for me is that I've gotten used to a certain look and feel with the MBP. That nice solid, rigid body, and the display hinge that just stays. When I pick up a ThinkPad and it creaks and flexes when I open the display or casually pick it up by the corner it makes my skin crawl.
1. https://wiki.archlinux.org/index.php/razer#2016_version_.28R...
That one hit home.. Based on my lack of options (Windows sucks, macOS is OK but the hardware sucks, Linux lacks a desktop ecosystem) I feel just like a crazy one, a misfit, the ones Apple addressed in that legendary ad.
Granted, I'm more of a terminal power user, but what's missing (honest question)?
GNOME and KDE are both very refined and mature, and there are plenty more stable, if a bit less full-featured DEs.
There's the LibreOffice suite, which is stable, well-maintained, and feature-rich.
VLC is arguably an extremely stable and full-featured media player with Linux support.
Firefox and Chromium are both widely available on Linux.
Thunderbird and Slack ship for Linux, too.
I can scarcely think of other software you might need to run on Linux.
Let's say you want to make a game for Linux. How do you package it? Do you have to make RPMs, debs and/or something else? Do you rely on dependencies available on the system, or do you build a binary with all dependencies statically linked? Do you care about inclusion in the package managers for the various distros? What do you use for Audio? You might want to use Pulse, but what if the user does not have Pulse installed? What if your game includes a launcher with a login form etc, do you choose QT or GTK? Do you have to test your game on the top 3 popupar distros? Top 5? And so on.
Our office basically treats development boxes the same as BYOD except the company buys the hardware. IT will do best effort diagnostics and recovery on those machines but otherwise you're on your own.
Once I'd been here a few months, they trusted me not to brick the laptop, they're fine with me installing Linux on a Mac if I say it works better for me and I can leave OS X on there as a dual boot.
Big companies are usually less willing, either due to some OS specific software or policies that enforce some specific encryption/security/monitoring.
Second, there's no proprietary battery magic in macOS, as stated in the article I already achieve 10.5W idle power consumption on my Ivy Bridge MacBook Pro with discrete GPU, Thunderbolt and AirPort suspended, wheras macOS achieves 7W. I've noticed a GPE in the ACPI tables for the Firewire controller which presumably signals hotplug when the controller is asleep. We're not using that on Linux yet, we keep the Firewire controller active all the time. Adding that would probably save another 1W.
So we're inching ever closer to macOS levels of battery life, and I think eventually we may be able to surpass it because of the sophisticated CPU pstate management that Intel developers continue to tweak with every new release.
I'm not knowledgeable enough, but this seems a pretty reasonable assumption for 90% of use cases. And if this assumption holds, is it fair to say. I think what you're trying to say is "First of all, macOS power manages devices too aggressively for me"
> It looks like macOS suspends the BCM 57765 Ethernet controller and doesn't resume it upon reception of packets from the LAN.
What are the trade-offs of this decision? Could apple not do this and not change the battery life for anyone? Or would it benefit this case and adversely affect other cases?
The case I was referring to was with the Ethernet cable still plugged in. They seem to suspend the Ethernet controller but don't wake it when packets come in, presumably because the controller doesn't support that. The machine appears dead from the outside after a few seconds of inactivity.
It seems like that would affect more than ssh connections, e.g. you wouldn't be able to receive email notifications.
Would these options help?
I'd gladly contribute to the work being done if I had the background, (which I'm currently working on)!
https://lists.freedesktop.org/archives/dri-devel/2015-Octobe...
Back then the probed panel resolution (EDID retrieved by radeon) was 3840x2160, which doesn't make any sense because the panel actually has 5120x2880. It's unclear if this was because of missing/broken MST support in radeon (Multistream Transport) or if Apple used some proprietary mechanism to squeeze the panel resolution in a single stream transport. You may want to contact the person who started that thread (Andreas Tunek) and ask if the situation has improved with contemporary kernels.
It's the same reason why, for example, Windows sees it as a 3840x2160 panel as well.
I guess I'll wait for Apple to actually announce new desktops before I seriously look into the driver situation...
[1] http://forums.macrumors.com/threads/bootcamp-update-5k-windo...
If you're interested I wrote all about it[0] when trying to change my development environment recently:
[0]: https://nickjanetakis.com/blog/i-almost-rage-bought-a-macboo...
But, well, Windows with WSL is still Windows. Much like Linux with a hypothetical flawless version of WINE would still be Linux. The desktop experience is still… poor.
I even backported the then-current version to MacOS X 10.4 (Tiger) last year. :-)
Bluetooth is very broken too. Not sure if that's an issue with the drivers or the Linux bluetooth stack in general. Fortunately I only use it for my wireless headphones, which I can live without.
WiFi used to be a big problem when I tried Linux on a Mac at a previous job, thanks to terrible Broadcom drivers, but that all seems fine now.
Been running Linux on a Mac for 2 and a half months now, for me personally the improvements are significant and the issues minor.
When the software doesn't handle it well. I don't particularly like any implementation of high DPI scaling. OS X's scaling caused performance issues for me, and programs would get confused moving between monitors. Linux doesn't have any way that I know of to cope with monitors with significantly different resolutions - eg, I can make the window manager scale everything 2x so it looks good on the 'retina' display, but I still have a 1080p monitor attached too, so then everything is huge on that.
Even without multi monitor issues, scaling tends to be picky with some programs on most OSs. OS X seems to be the most consistent, Linux is a roulette wheel depending on your GPU/window manager/program/day of the week. Windows works sometimes but looks blurry.
I have Linux installed on my work Mac and just run the 'retina' screen at 1920x1200.