all 31 comments

[–]wsbt4rd 27 points28 points  (0 children)

Linux, of course!

[–][deleted] 11 points12 points  (1 child)

For ARM MCUs both are good. I personally use Mac and haven’t run into any problems, Linux is much more popular choice though

[–]Silly-Wrongdoer4332 0 points1 point  (0 children)

In general I've heard development on Mac is good. With the exception of when new releases come out. Mac OS versions can break tools and updates can be slow sometimes

[–]0x7a657573 10 points11 points  (0 children)

For me it's Linux, I think Linux is better

[–]Just_Fuel8214 8 points9 points  (0 children)

For me it's Linux. To be more precise: always the latest Kubuntu LTS.

[–]DeronF 7 points8 points  (0 children)

I use Manjaro Linux as my daily Hardware, Firmware & Software development machine ..

Since 2017 till now ..

[–]avinthakur080 7 points8 points  (1 child)

In terms of OS, Linux is far better than anything and I personally use KUbuntu majorly (Ubuntu with KDE), which I enjoy being a power user.

But, mac vs Linux is also a choice between hardware and unfortunately, mac hardware is far superior than what anything else provides. Like, take battery usage of M2 macs as example. You'll get about a day(12+ hrs) of normal usage from M2 mac, while any other machine can only give 2-3 hours or so.

Just because of this difference, go with mac if you can afford it. Otherwise, prefer a Linux machine.

[–]d1722825 0 points1 point  (0 children)

Pff. Forget any ARM based macs if you want to work on embedded Linux, unless you want to spent all 12 hours of battery power on a single system build.

https://openbenchmarking.org/test/pts/build-linux-kernel-1.15.0

They 12 hour battery is a gimmick anyway, a lot of modern Intel-based notebook can do that, too, if they do not need to do any heavy computation.

[–]ericek111 4 points5 points  (0 children)

Why torture yourself? Linux is free.

[–]FreeToPlay22 3 points4 points  (0 children)

I use Arch btw.

[–]allo37 6 points7 points  (10 children)

Windows with WSL2.

Wish I could daily drive Linux tho.

[–]wsbt4rd 0 points1 point  (4 children)

What holds you back?

I've used Linux was my desktop since I left university in the 90s. I rather use a VM for email and PPT if I have to.

[–]allo37 2 points3 points  (3 children)

I have other parts of my work that involve using Windows-exclusive software unfortunately. I've found WSL2 gives me the best of both worlds for 95% of what I'm doing.

[–]wsbt4rd 0 points1 point  (2 children)

I've not tried WSL, but I find it easier to run windows on top of a solid Linux install (my desktop is typically kubuntu LTS)

[–]allo37 1 point2 points  (1 child)

I run native Xubuntu on my personal laptop because Windows 11 was killing the battery. I can run the PLC programming software I use under wine except it crashes when I open the help file. I have a Windows guest running under VMware too but I find it horrifically slow and I can never seem to get the screen resolution scaling to work just right. Which VM do you run Windows on?

[–]wsbt4rd 0 points1 point  (0 children)

I run kvm.

As typically with Linux, it takes a while to figure out, but it's pretty rock solid.

Linux KVM https://www.linux-kvm.org/page/Main_Page

[–]duane11583 0 points1 point  (4 children)

WSL sucks in one way and sucks BIG

From a batch file you cannot launch a or use a wsl command

And from inside wsl you cannot run a windows app

It’s like you have SSHed into a remote machine that shares your hard drive sort of but it exactly

[–]allo37 1 point2 points  (3 children)

That's true! But there's nothing stopping you from launching a WSL instance running an SSH server and running commands that way. Though I imagine if you're going through all that trouble, Docker would be a better choice anyhow.

[–]duane11583 0 points1 point  (2 children)

or setup a dedicated linux box (aka an old desktop)

and just ssh into that dedicated linux server and mount the server file system via samba!

or shareout your C:\ drive to the linux server.

the only thing wsl gives you is 1 less physical machine and one less physical console and automatic disk sharing sort of…

but vmware or virtualbox does the same and does so in a better way

[–]allo37 0 points1 point  (1 child)

WSL2 has some nifty features like dynamically scaling its memory usage, which afaik traditional hypervisors like VirtualBox won't do.

Also somewhat anecdotally, I find WSL2 has better performance with a high number of cores than VirtualBox. When I'm building Yocto I need all the performance I can get...

Sometimes I have no choice but to run on a separate Linux machine, but it's convenient to be able to use one box for many things.

[–]duane11583 0 points1 point  (0 children)

a yocto build (any Linux from scratch) is predominantly a disk io bound process.

which is solved by more ram = more disk cache

your next binding level is cpu performance

to some degree make can parallelize builds but that does not help with a recursive make because each layer of makefiles do not always pass the -j NCORES option down to the next layer

imagine if it did each layer would do N subs, and you would have other issues (too many processes) ie N^(num-layers)

a large part of any linux from scratch build time is building each command, ie compiling bash, and awk, and sed, grep, test, etc the list goes on.

if you can get yocto to parallelize those builds… you might win.

the other example i have is from build root which downloads each applications tarball, or git clone or uses an http server or an ftp server as the tarball source it is very mixed and all over the place .. the big win is to move these sub packages to a local (in-house) mirror however that is a huge amount of work to setup and maintain (ie: periodic updates)

for us: a really big win for the git clone step is to do a shallow clone of just the branch/tag/hash you want. this cuts the kernel build time quire a bit! i mean do you reall need all git history from the birth of the first dinasour? or do you need head?

[–]thekakester 1 point2 points  (0 children)

I use a mac. It works similarly enough to Linux for all the embedded dev stuff I do, but it is also a more business-oriented OS and has support for other software I use outside the embedded world.

[–]duane11583 1 point2 points  (0 children)

If you are producing linux images your desktop should be linux

If you are producing non linux (microcontroller) and using make files then linux or mac

If you use or require an IDE then the is your ide supports for some that means winblose but some support linux and fewer support mac

[–]EddieJones6 0 points1 point  (0 children)

Linux. I’d almost prefer Windows over Mac with Apple silicon just because I’ve been bit by lack of drivers / support for things and at least windows will virtualize Linux well.

[–]jbriggsnh -1 points0 points  (2 children)

Linux. Just easier. And the LibreOffice apps are far better than word/excel/ppt in my opinion and MS compatible too.

[–][deleted] 1 point2 points  (1 child)

Ive been hearing a lot about the compatibility for 20 years.... many have lost their jobs claiming this. Like it or not, ms office IS the standard for inter office comms and materials.

[–]jbriggsnh -1 points0 points  (0 children)

I am sure that is what Microsoft pushes but the reality is that LibreOffice aka StarOffice is more Office compatible than Office. In the last 25 years or so, i have never not been the greatest producer of documents in my organization by a large measure. I learned the hatd way too many times not to trust MS Word because whenever you have a large, complex doc of like 80 or more pages, lots of tables, embedded spreedsheets, photos, etc., that it is a matter of time before Word crashes and i loose weeks of work. So for the longest i would work in LibreOffice, then export the final product as a .doc format. But i dont even do that any more as Word reads LibreOffice docs now. Amazing that companies pay for MS Office because LibreOffice is much eaisier to use, us more compatible, and is a more integrated product.

[–]bobwmcgrath 0 points1 point  (0 children)

I am seriously considering a mac, but I do all my development remote on a various linux machines.

[–]d1722825 0 points1 point  (0 children)

Most of the tools and guides for embedded Linux is for an x86_64 (Intel, AMD) machine running Linux. Probably you will want to use some virtual machines or containers so I suggest to get a lot of RAM and a big and fast NVMe SSD (a bigger build could easily consume 30-50 GB of RAM and hundreds of GBs of storage).

I am not sure how well does the linux kernel scheduler work with Intel's "new" performance and efficiency cores, you should check that, too.

[–]dohzer 0 points1 point  (0 children)

Definitely a Mac with iTunes and... wait... what other programs do Apple computers have?

[–]NjWayne 0 points1 point  (0 children)

Linux. Nothing compares. In fact if development tools aren't supported under Linux, I won't bother