PAPPP

@PAPPP@lemmy.sdf.org

This profile is from a federated server and may be incomplete. Browse more on the original instance.

PAPPP,

NeXTStep became MacOS (OS X and later) and related systems. It does contain quite a number of BSD pieces that are now periodically pulled from FreeBSD.

The story is fun and I like telling it, strap in:

NeXTStep was basically the MACH microkernel hybridized with BSD (actual Berkley BSD before the court cases and diaspora that lead to Net/Free/Open BSD and Solaris and such) parts to make a reasonably performant modern design Unix-like, with a fancy PostScript based display layer on top, lead by Steve Jobs after he was ejected from Apple, a bunch of folks he effectively took with him, and Avie Tevanian who was the major force behind Mach when it was a research project at CMU.

Between 1988 and 1996 Apple failed like 3 times at building their own next-gen OS. Apple and IBM cooperatively fucked up the Pink/Taligent development process so hard it’s still told like a ghost story to software developers, Copland got out of control with feature creep and empire building, and A/UX, cool as it was, was never going to be a mainstream OS because it contained Unix-brand-Unix and the associated thousand dollar license fee (Also IBM got involved combining some future development of A/UX and AIX for PowerPC and some of the Taligent stuff entered the picture and it turned into a clusterfuck).

So it’s the mid 90s and Apple is shipping an OS from the mid 80s that they had to do hacky shit to make do even cooperative multitasking, and the executives are looking to acquire one that is already done.

Two former heads of the Mac division had left and built companies that tried to build whole computer platforms then pivoted to just selling software, Steve Jobs with NeXT and Jean-Louis Gassée with Be. The exact details of the negotiations about how they chose NeXT over Be are kind of ambiguous and vary from account to account, I’m personally of the opinion that the biggest reason is that OpenStep looked a lot like “Taligent, but not completely bungled.”

So Apple Bought NeXT in 1997 in a scenario better described as “NeXT Bought Apple with Apple’s Money” because all the executives in charge after the shakeup were NeXT folks.

There was an initial plan to more or less slap a OS 8 like Copland-looking GUI on the hybridized Mach/BSD kernel and most of the userland from OpenStep (an environment that at the time was called “Yellow Box”), ship it with a virtualization environment called Blue Box to run legacy MacOS programs, and call it a day. You can even play with the missing link Rhapsody from that era, and the Classic environment that early OS X versions had is the direct descendant of that BlueBox compatibility environment.

Then some of the important software vendors (read: Adobe, whose shitty development practices are why Macs are case insensitive by default to this day) revolted at the idea of having to do ground-up rewrites so Apple designed the Carbon APIs that are kind of a stepping stone between classic MacOS and the native Cocoa APIs that evolved from the Yellow Box deign which are the usual target on modern macOS/iOS.

(The story of how Windows NT - which is the underlayer of all modern windows systems - is basically “The DEC VMS team got pissed off about obviously-dumb management decisions and were looking to leave DEC while Microsoft became aware that OS/2 was failing largely due to bad IBM decisions, so Microsoft hired the core of that team to write the operating system they were designing, moved the few remaining competent folks over from OS/2 to help, and sold it as Windows” is similarly absurd. As the joke goes, it may not be a coincidence that WNT is VMS incremented).

PAPPP,

Neat.

I set up some basic compute stuff with the ROCm stack on a 6900HX-based mini computer the other week (mostly to see if it was possible as there are some image processing workloads a colleague was hoping to accelerate on a similar host) and noticed that the docs occasionally pretend you could use GTT dynamicly allocated memory for compute tasks, but there was no evidence of it ever having worked for anyone.

That machine had flexible firmware and 64GB of RAM stuffed in it so I just shuffled the boot time allocation in the EFI to give 8GB to the GPU to make it work, but it’s not elegant.

It’s also pretty clumsy to actually make things run, lot of “set the magic environment variable because the tool chain will mis-detect the architecture of your unsupported card” and “Inject this wall of text into your CMake list to override libraries with our cooked versions” to make things work. Then it performs like an old GTX1060, which is on one hand impressive for an integrated part in a fairly low wattage machine, and on the other hand is competing with a low-mid range card from 2016.

Pretty on brand really, they’ve been fucking up their compute stack since before any other vendor was doing the GPGPU thing (abandoning CTM for Stream in like a year).

I think the OpenMP situation was the least jank of the ways I tried getting something to offload on an APU, but it was also one of the later attempts so maybe I was just getting used to it’s shit.

PAPPP,

That’s credible.

I find the hardware architecture and licensing situation with AMD much more appealing than Nivida and really want to like their cards for compute, but they sure make it challenging to recommend.

I had to do a little dead reckoning with the list of supported targets to find one that did the right thing with the 12CU RDNA2 680M.

I’ve been meaning to put my findings on the internet since it might be useful to someone else, this is a good a place as any.

On a fresh Xubuntu 22.04.4 LTS install doing the official ROCm 6.1 setup instructions, using a Minisforum UM690S Ryzen 9 6900HX/64GB/1TB box as the target, and after setting the GPU Memory to 8GB in the EFI before boot so it doesn’t OOM.

For OpenMP projects, you’ll probably need to install libstdc+±12-dev in addition to the documented stuff because HIP won’t see the cmath libs otherwise (bug), then the <CMakeConfig.txt> mods for adapting a project with accelerator directives to that target are


<span style="color:#323232;">find_package(hip REQUIRED)
</span><span style="color:#323232;">list(APPEND CMAKE_PREFIX_PATH /opt/rocm-6.1.0)
</span><span style="color:#323232;">set(CMAKE_CXX_COMPILER ${HIP_HIPCC_EXECUTABLE})
</span><span style="color:#323232;">set(CMAKE_CXX_LINKER   ${HIP_HIPCC_EXECUTABLE})
</span><span style="color:#323232;">target_compile_options(yourtargetname PUBLIC "-lm;-fopenmp;-fopenmp-targets=amdgcn-amd-amdhsa;-Xopenmp-target=amdgcn-amd-amdhsa;-march=gfx1035"
</span>

And torch, because I was curious how that would go (after I watched the Docker based suggested method download 30GB of trash then fall over, and did the bare metal install instead) seems to work with PYTORCH_TEST_WITH_ROCM=1 HSA_OVERRIDE_GFX_VERSION=10.3.0 python3 testtorch.pywhich is the most confidence inspiring.

Also amdgpu_top is your friend for figuring out if you actually have something on the GPU compute pipes or if it’s just lying and running on the CPU.

PAPPP,

Don’t trust that they’re 100% compatible with mainline Linux, ChromeOS carries some weird patches and proprietary stuff up-stack.

I have a little Dell Chromebook 11 3189 that I did the Mr.Chromebox Coreboot + Linux thing on, a couple years ago I couldn’t get the (weird i2c) input devices to work right, that has since been fixed in upstream coreboot tables and/or Linux but (as of a couple months ago) still don’t play nice with smaller alternative OSes like NetBSD or a Haiku nightly.

The Audio situation is technically functional but still a little rough, the way the codec in bay/cherry trail devices is half chipset half external occasionally leads to the audio configuration crapping itself in ways that take some patience and/or expertise to deal with (Why do I suddenly have 20 inoperable sound cards in my pulse audio settings?).

This particular machine also does some goofy bullshit with 2 IMUs in the halves instead of a fold-back sensor, so the rotation/folding stuff via iio sensors is a little quirky.

But, they absolutely are fun, cheap hacker toys that are generally easy targets.

PAPPP,

You can still readily get crank hand drills, I have a (vaguely) modern one that I use for situations where I want the control/tactile feedback and/or have restricted access or the like. It covers a different set of problems than the standard cordless.

Mine is Fiskars branded and a little plasticky (and not the version they sell currently). I like it enough that I’ll get a nicer one if I kill it.

PAPPP, (edited )

I will preface that Xorg is obviously an unmaintainable mess of legacy decisions and legacy code, and I have both a machine that runs Hyprland and a machine that usually starts Plasma in Wayland mode so the Wayland situation getting to be more-or-less adequate with persistent irritations here and there… but Wayland is trauma-driven-development. It’s former xorg developers minimizing their level of responsibility for actual platform code, but controlling the protocol spec, and in the position to give up on X in time with their preferred successor.

Essentially all of the platform is being outsourced to other libraries and toolkits, who are all doing their own incompatible things (Which is why we have like 8 xdg-desktop-portal back-ends with different sets of deficiencies, because portals were probably designed at the wrong level of abstraction), and all have to figure out how to work around the limitations in the protocols. Or they can spend years bikeshedding about extensions over theoretical security concerns in features that every other remotely modern platform supports.

Some of that outsourcing has been extremely successful, like Pipewire.

Some attempts have been less successful, like the ongoing lack of a reasonable way to handle input plumbing in a Wayland environment (think auto-type and network kvm functionality) because they seem to have imagined their libinput prototype spun out of Weston would serve as complete generic input plumbing, and it’s barely adequate for common hardware devices - hopefully it’s not too late to get something adequate widely standardized upon, but I’m increasingly afraid we missed the window of opportunity.

Some things that had to be standardized to actually work - like session management - have been intentionally abdicated, and now KDE and Gnome have each become married to their own mutually-incompatible half solution, so we’re probably boned on that ever working properly until the next “start over to escape our old bad decisions” cycle… which, if history holds, isn’t that far away.

We’re 15 years in to Wayland, and only in the last few years has it made it from “barely a tech demo” through “Linux in the early 2000s” broken, and in the last year to “problems with specific features” broken … and it is only 4 years younger than the xf86->xorg fork.

PAPPP,

They don’t have to be specified in a monolithic fashion, but some things - like the input plumbing and session management examples I made - do have to be specified for for software to work when running under different compositors. FD.o basically exists because we already learned this lesson with other compat problems, and solved it without putting it in the X monolith - it’s why things like ICCM and EWMH happened; there were more details than were in the existing APIs that everyone needed to agree on to make software interoperate.

Competing implementations are great, but once you have significant inertia behind competing implementations which are not compatible or at least interoperable, you’ve fragmented the already-small Linux market share into a maze of partially-incompatible micro-platforms. We’re not going to have compositing and non-compositing, we’re going to have 3ish (KDE/Qt [kde], Gnome/Gtk who aren’t even doing documented protocols, and Everyone else - mostly [wlr] extensions) incompatible sets of protocols for basic functionality.

Looking at the slow bitter process to extend or replace components once implementations that rely on them exist, that’s not something to count on. Remember how it took 15 years of contention to eventually transition to D-Bus after CORBA/Bonobo and DCOP? That’s whats about to happen with things like the incompatible gtk and qt session management schemes. And that resolution was forced by the old HAL system using it, not the other parties involved getting their shit together of their own accord.

One place we’re about to see innovation is wayland-stack-bypassing workarounds. Key remapping is currently in that category, the wayland protocols suite punted… so instead, keyd sniffing all the HID traffic at the evdev and/or uinput layer and outputting the rule-edited streams to virtual HID devices. That one does have a certain global elegance (works on ttys!), but it’s also layering violations with privileged processes.

Debian Resumes Merged /usr Transition By Repealing Moratorium (www.phoronix.com)

Debian 12 had aimed to have a merged “/usr” file-system layout similar to other Linux distributions, but The Debian Technical Committee earlier this year decided to impose a merged-/usr file movement moratorium. But now with Debian 12 having been out for a few months, that moratorium has been repealed....

PAPPP,

The argument was that if you put all your static resources in /usr, you can mount it RO (for integrity, or to use a ROM on something embeddedish) or from a shared volume (it’s not uncommon to NFS mount a common /usr for a pool of managed similar machines).

…that said, many of the same people who made that argument are also the ones that went with making it so systemd won’t boot without /usr populated anymore, so that feature is now less useful because it has to be something your initramfs/initcpio/whatever preboot environment mounts rather than mounted by the normal fstab/mount behavior, and the initcpio/initramfs/dracut schemes for doing that all (1) require a redundant set of tools and network configs in the preboot (2) are different and (3) are brittle in annoying ways.

It still works OK if you’re using a management tool like Warewulf to manage configs and generate all the relevant filesystems and such, but it’s a lot more fucking around than a line in fstab to mount usr once the real system is up like the old days.

PAPPP,

Systemd-boot didn’t start as part of systemd, it used to be gummiboot (joke in German, it’s what those little rubber inflatible boats are called).

Systemd absorbed and integrated it in 2015.

It did start at RedHat with Kay Sievers and Harald Hoyer, which makes it unsurprising it was absorbed.

I’ve been transitioning to it as my default choice, I’ve never liked grub2, so I defaulted to syslinux for a long time, but lately systemd-boot is even less of a hassle.

PAPPP,

The near instant heat up is a big part of how I ended up with my Bambino with its “Thermojet”(Thermoblock coil thing) heater.

3s from wake to ready, it takes longer to grind and prep than to heat. I usually pull a blank shot through the clean portafilter into the cup I’m going to pull the shot in so the downstream parts aren’t crashing the temperature, but that’s still seconds.

Ascaso and Decent have more up-market offerings with thermoblock heaters that are similarly fast but offer more control. I wasn’t 5-10x price compelled for my needs, and I’m certainly not over 100x price in to that thing… But it is a great feature that the commercial derived machines don’t do.

PAPPP,

I share my SK40 for espresso (usually morning) and aeropress (usually afternoon), and have definitely left it set for the wrong thing occasionally.

The aeropress is a little stiff to press if you put espresso grind in it, the product is usually fine. The underextraced 10ish second espresso shot is a lot more disappointing.

PAPPP,

I’m pretty fond of the Tru-Spec 24/7 design, especially in ripstop.

I have/had some 5.11s (the ones I had were a cotton that really retained moisture, the pocket layout is more obtusive than it is useful, and their waist elastic is the kind that makes mark-leaving bunches), a pair of those Vertx ones that try to hide the cargo profile (always found them a bit uncomfortable, also bunch-type elastic), some of the Duluth “Fire Hose” (great for manual work, too heavy and hot for casual wear), one pair of the tru-spec in cotton (pretty good)… And multiple pairs of both pants and shorts of the ripstop tru-spec 27/7 because they have a really nice waist elastic design, a pocket design that is actually useful for retaining stuff and tries to minimize profile when empty, the fabric breathes and dries well without feeling plasticy…

They slightly changed the interior of the pocket design a while back and it makes the retaining flap not quite accept my particular phone and adds an extra layer of fabric and hence added bulk/lost breathability to make an additional slot, which was unfortunate, but still, highly recommend.

PAPPP,

I’ve definitely had (good) blends were the components were taken to significantly different roast levels.

AFIK generally the components in blends are roasted separately for added control. Different beans behave differently in roasting so coffee that is blended then roasted will generally not be consistent anyway.

The separation lets a roaster take components to different levels to compliment each, eg. Roast a component with really good body but harsh flavor relatively dark to reduce the perceived bitterness, or keep a component you’re adding for fruity flavors or acidity light so you don’t suppress it’s desirable properties.

The former (harsh but big-bodied) thing is a common trick for Espresso in particular, a lot of really big-bodied beans tend to taste harsh, and that can be reduced with darker roasts without killing thr body. Robusta/Canephora (rather than Arabica) beans especially tend to be big bodied and highly caffeinated and hardy to grow…and have a major burning rubber note to their flavor. Good espresso blends often add some to improve mouth feel…but also cheap coffee products tend to use it, most instant or coffee flavoring starts as Robusta.

Single origin doesn’t automatically mean good coffee, but roasters who bother to source and label a single origin (which can sometimes be as specific as a farm, or broad as a country) will tend to be more mindful of that particular beans’ flavor. Also, smaller fancier roasters will generally sell fresher coffee. Beans that have been sitting roasted in a grocery chain’s “nonperishable” supply chain for months will essentially always be stale, and as soon as you get a taste for coffees that aren’t, you are cursed with that knowledge.

Single origins (and “weird” drying processes other than fully washed) will also tend to have way more character than “just coffee” which is fun and interesting but not always desirable. You can build really delicious (and consistent) coffee with blends in ways that might not be achieveable with a single bean.

PAPPP,

Another Tears of the Kingdom here.

I’m like … 5/3 subscribed between professional and personal obligations for the next several months, so don’t have time for that in my life.

When I got around to Breath of the Wild in late 2020, I arranged it so I could basically take a vacation from reality to Hyrule for over a week with it, and the experience was delightful, so I want to hold off until I can properly enjoy it.

I did similar things at the ends of periods of over-obligation with Fallout: New Vegas and Skyrim (earlier, but both years after their release), I’m a sucker for disappearing into an open-world RPG as a vacation.

PAPPP,

The 2.5 development only tree had a ton of behind the scenes big long projects that weren’t visible to users until the stable 2.6 dropped and everything suddenly changed.

Like a complete redesign of the scheduling code especially but not exclusively for multiprocessor systems, swapping much of the networking stack, and the change from devfs to udev.

If you hold udev up next to devd and devpubd that solve similar problems on the BSDs, it’s a clear leap into “Linux will do bespoke binary interfaces, and DSLs for configuration and policy, and similar traditionally un-UNIX-y things that trade accepting complex state and additional abstractions to make things faster and less brittle to misconfiguration” which is the path that the typical Linux pluming has continued down with eg. Systemd.

A lot of modern Kernel development flow is about never having that kind of divergence and sudden epoch change again.

PAPPP,

I just tried keyd a day or two ago and I’m super taken with it.

I just wanted to make Meta+Arrows generate PgUp/PgDn/Home/End because I’ve really grown to like laptops that do that with Fn (And I was playing with a hacked Chromebook whose keyboard does those soft with Ctrl+Shift+Arrow in software on ChromeOS so you’ve got to do something).

I’m quite impressed. The configuration format is sane, the daemon’s runtime footprint is tiny, and it works across VTs, X, and Wayland because it’s a virtual keyboard emitting events. The historical options have like…0-1 of those properties. Also the virtual keyboard takes bus ID 0fac:0ade, and who doesn’t like a god hex pun.

PAPPP,

How is NixOS on a Chromebook? The Chromebook I’ve been hacking on exists as a beater for trying environments without disrupting the (principally Arch+KDE on X) boxes I do my real work on, and I was thinking about trying Nix on it, but it seemed like the combination of 16GB eMMC and Nix’s propensity for large disc usage would make that difficult.

PAPPP,

As expected from the docs, that’s why I was surprised to see you mention Nix on a Chromebook, it seemed like order of magnitude wrong. 128GB is an unusual amount of local storage for a Chromebook.

I have a little Arch/Hyprland install that fits a comfortable environment in like 8 of the 16GB in my Dell 3189 right now - It was kind of a fun project fitting it and chasing down all the little annoyances, I think it all works now other than the lack of pluming to make use of the fold sensors, and an occasional ASoC bug for which patches have landed upstream in Linux or Pipewire since the last releases.

PAPPP,

The CB3-431 is device name EDGAR. You’d most likely pull the write protect screws and flash a UEFI payload into the firmware, probably using Mr. Chromebox’s tooling and payloads. Most modern Chromebooks boot Coreboot with a depthcharge payload, and it can either be coerced to boot something different with a lot of effort, or easily swapped with a Tianocore UEFI payload to make it behave like a normal PC. Once flashed, it’s an ordinary Braswell generation PC with 4GB of RAM and 32GB of storage.

The S330 is an ARM machine built on a Mediatech MT8173C. Installing normal Linux on ARM Chromebooks is substantially less well-established, but often possible. It looks like those are doable but you won’t get graphics acceleration, and the bootloader situation is a little klutzy.

Of the two, the CB3-431will be easier and better documented to bend to your will.

The major limitation with Chromebooks is really just that there isn’t much onboard storage, so you’ll want to pick reasonably light software (A distro where you pick packages on a small base install or at least a lighter spin will be preferable) and avoid storage-intensive distros (eg. Nix or the immutable-core-plus-containers schemes whose packaging models have substantial storage overhead are probably unsuitable). You may have a little hassle with sound because many Chromebooks have a goofy half-soc-half-external-codec sound layout for which the Linux tooling is still improving - a pair of annoying PipeWire and Kernel bugs that sometimes cause them to come up wrong and spew log messages got fixed last week but aren’t in a release yet.

They aren’t fancy machines, but hacked used Chromebooks make great beaters.

PAPPP,

Suggestion: the Search key under your left pinkie emits SuperL (aka. Meta, same as a Windows key), and it is an great way to make up for some other keyboard weirdness Chromebooks have, and map to WM controls.

I recently discovered keyd, an excellent system-wide key remapper that works as a tiny daemon that intercepts input events and re-emits them as a virtual keyboard, and have it mapping Search+Arrows to PgUp/PgDn/Home/End (like a lot of laptops do with Fn+Arrows, or ChromeOS does with Ctrl+Shift+Arrows). I’ve already run into a couple other folks doing the same because it’s such a clean solution to the Chromebook keyboard.

AFIK GalliumOS has been unmaintained for over a year, and most of the patches they used to add are now in mainline, so long term you may want to consider a different distro - it’s probably OK for a while still though.

PAPPP, (edited )

Relevant place to ask: I’ve been trying to find a reference for the earliest Emacs that could host a terminal emulator or subshell in a window.

Multics emacs appears to have had both split windows and a character-at-a-time input and output mode as far back as 1978 for use as a SUPDUP and/or TELNET client, which is currently the earliest I’m aware of. Ancient ITS TECO EMACS had splits pretty early on, and may have sprung the necessary character plumbing earlier - but I’ve never found any reference material to confirm/deny.

It’s a fringe to a larger interest, which is that I’ve been trying to document the history of terminal multiplexers, especially in the Window (1986)-Screen(1987)-Tmux(2007) tradition (as opposed to the historical meaning which we’d call terminal servers). I’m slowly becoming convinced they came about after the advent of floating window GUIs hosting multiple terminal emulators. If you were super connected and could get access to one, sometime fairly early in the window between the 1973 introduction of the Alto and the surviving 1979 manuals the Alto program “Chat” could run multiple telnet sessions in floating windows (I’m also looking for a more precise date for when Bob Sproull made Chat able to do that trick). Several other early graphical systems like Blit terminals (1982 inside Bell, commercial as the 5620 in 1984) and early Sun Windowing System of early SunOS (1983) could also do multiple floating terminal emulators, so they were common by the early 80s.

Because the 36-bit DEC lineage had pretty robust psuedoterminals all the way back into the mid 1960s ref, a lot of hackers did a lot of fun shit on PDP-10s with ITS and TENEX and WAITS, and Stanford and MIT had PDP-10s connected to fancy video terminals by the mid 70s, it’s IMO the most likely place for the first terminal multiplexers to emerge… if I could just find some documentation or dated code or accounts.

PAPPP,

Forking Linux would involve taking on a huge maintenance burden, so everyone just uses it, though often basing on an older version and/or with some custom patches. That is typically how healthy open source stuff works.

Companies DO put brand names on systems built on top of Linux (or a BSD) all the time though, often ones that don’t make it obvious that’s what it is. ChromeOS and Android are both Linux based, but Android doesn’t ship most of the UNIX-y parts that are typically layered on top, and instead uses their own (also largely open source) components. ChromeOS is actually a fairly close relative of Gentoo with a few custom pieces.

Google has their own internal project for a kernel called Fuchsia, and it’s really interesting modern OS development that they’ve assembled a bunch of experts to work on… But it’s increasingly unclear if they plan to deploy it on customer facing products.

A ton of appliance type devices are basically very tiny custom Linux systems, often assembled with tools like Yocto. A lot if the vendors who sell components to go into said devices contribute code and/or money to Linux and Yocto, in order to make their products more attractive to device builders and avoid having to make and maintain their own tooling.

Most consumer routers are basically Linux (usually with a minimal userland like BusyBox), often essentially shitty old customized versions of OpenWRT. Sony alpha cameras? Customized Linux. Off on the BSD side, CellOS and OrbisOS that the PS3 and PS4 run, respectively are modified FreeBSD. Open Source OSes and tooling are everywhere because making, maintaining, and building tooling and developer support for an OS that runs on especially relatively large modern computers is a big, hard project, so very few entities try to do it themselves.

PAPPP,

I’ll give them a little credit: OS X is not quite built on a verbatim copy, it’s cobbled from a few open source and licensed parts, and a not-insignificant amount of in-house development some of which is contributed back upstream.

NextStep started out as more or less the 4.3BSD userland hosted on the Mach 2.5 kernel instead of the monolithic traditional Unix style kernel the BSDs are built on, with a DisplayPostScript based UI (large parts licensed from Adobe) layered on top.

After Apple bought Next (or Next bought Apple with Apple’s money, because Apple’s management at the time was staggeringly dysfunctional and almost all the management after the dust settled ended up being Next people), they made major changes. NextStep/OpenStep tended to perform not-that-well because of additional overhead passing things in and out of the microkernel, a problem many microkernel based Unix-likes had, so they updated to the OSFMK 7.3 Mach variant, the BSD code to versions from FreeBSD, then hybridized it by pushing some pieces that traditional Microkernels ran in user space into kernel space for performance reasons, resulting in the XNU kernel that essentially every modern Apple product runs.

They also completely replaced the GUI layer with something custom and proprietary - the original plan for what became OS X was to use the Display Post Script system + a hosted classic environment, but 1. Many third party developers revolted against needing to make a ground-up new port of their software in a totally different environment and 2. the Adobe licensing costs were higher than the price of a normal PC, which was kind of OK for Next competing in the workstation market, but not OK for Apple selling consumer machines.

Apple publishes the open-source parts including most of the kernel (lately an increasing portion of drivers and platform support stuff are distributed as object files not under the open license) on a regular basis, formerly under the name “Darwin” which could be built as a pretty typical BSD-like OS, but in a way that’s sufficiently community hostile to prevent anyone from really building successful derivative projects or contributing back to it. I think the most recent attempt was called “PureDarwin” and last I checked they’ve been stalled for about 2 years.

The engineer in charge of kernel stuff for the NeXTStep/OpenStep/Rhapsody/OS X family from inception in the late 80s to 2006 was Avie Tevanian, one of the original developers of Mach.

One who does use a lot of FreeBSD parts where it’s not entirely clear how much they contribute back is Sony. The CellOS and OrbisOS that the PS3 and PS4 used are close relatives of FreeBSD, and it’s possible they hid their contributions via contractors or consultants to not expose internal plans…or they just leeched, it’s not really clear.

PAPPP,

Sure, drop me a note with the details and I’ll see if I can give you a hand. I’m not super expert in all the specifics of the Chromebook ecosystem, but I have good general computer/Unix skills and have hacked a couple so I know where to look for resources.

  • All
  • Subscribed
  • Moderated
  • Favorites
  • JUstTest
  • ngwrru68w68
  • InstantRegret
  • thenastyranch
  • magazineikmin
  • tacticalgear
  • rosin
  • osvaldo12
  • cubers
  • Youngstown
  • slotface
  • khanakhh
  • kavyap
  • DreamBathrooms
  • megavids
  • ethstaker
  • everett
  • Leos
  • GTA5RPClips
  • tester
  • normalnudes
  • Durango
  • mdbf
  • cisconetworking
  • provamag3
  • anitta
  • modclub
  • lostlight
  • All magazines