A BSD-based OS project that aims to provide an experience like and some compatibility with macOS

Related tags

Logging helium
Overview

What is Helium?

Helium is a new open source OS project that aims to provide a similar experience and some compatibiilty with macOS on x86-64 sytems. It will build on the solid foundations of FreeBSD, existing open source packages in the same space, and new code to fill the gaps.

The main design goals are:

  • source compatibility with macOS applications (i.e. you could compile a Mac application on Helium and run it)
  • similar GUI metaphors and familiar UX (file manager, application launcher, top menu bar that reflects the open application, etc)
  • compatible with macOS filesystems (HFS+ and APFS) and folder layouts (/Library, /System, /Users, /Volumes, etc)
  • self-contained applications in folders or a single file and a (mostly) installer-less experience for /Applications
  • maintain compatibility with the FreeBSD base system and X11 - a standard Unix environment under the hood
  • compatible with Linux binaries via FreeBSD's Linux support
  • eventual compatibility with x86-64 macOS binaries (Mach-O) and libraries
  • pleasant to use, secure, stable, and performant

Why BSD instead of Linux?

In theory, it will be easier to build Mac code on FreeBSD because it is closer to macOS than Linux is. BSD kernels also support a foreign system call interface which should help make emulating Mach system calls easier, and eliminates the need to emulate BSD system calls like Darling (on Linux) does. Also, why not? Devils need love too!

Is this... legally sketchy?

No. Consider projects like ReactOS, a from-scratch effort to create an OS compatible with Microsoft Windows, GNUstep, which provides an open implementation of Cocoa APIs and other things, or Darling, a Darwin (macOS) emulation on Linux. Helium is similar and stands on the shoulders of many such projects.

All code used is freely available under open source licenses. No proprietary elements like fonts, icons, trademarks, etc can be used. Original code must be written using "clean room" techniques - that is, from public documentation like developer guides by people who have never seen the proprietary code - and released under the FreeBSD license or the MIT license.

What programming languages does Helium use?

The goal is to use a small core set of languages as much as possible: the "C" family (C, C++, Objective-C), Swift, Python, Java, and shell scripts. This should cover most needs.

I can code in those! How can I help?

Great! We are just getting organized right now. Follow the project and watch for updates!

I don't code. Can I still help?

Absolutely! There will be art, documentation, testing, UX and UI work, release management, project management, legal advice, and many other ways to contribute. Follow the project and watch for updates!

This is a huge effort. Y'all must be crazy!

Probably. But...

"Here's to the crazy ones. The misfits. The rebels. The troublemakers. The round pegs in the square holes. The ones who see things differently. They're not fond of rules. And they have no respect for the status quo. You can quote them, disagree with them, glorify or vilify them. About the only thing you can't do is ignore them. Because they change things. The push the human race forward. And while some may see them as the crazy ones, we see genius. Because the people who are crazy enough to think they can change the world, are the ones who do."

Comments
  • Reconsider Linux as base

    Reconsider Linux as base

    With the introduction of Syscall User Dispatch in Linux 5.11, it is now possible to implement foreign system calls in a less hackish and performant manner. One example for this https://github.com/meme/limbo ( a mach-o loader and XNU syscalls translator for Linux). Of course, the benefits vs drawbacks of implementing syscalls in userspace still has to be considered.

    The benefit Linux brings in terms of hardware support cannot be understated. Imagine Linux with coherent desktop experience with the ability to ride on macOS app ecosystem success. That's a winner in my book.

    opened by izzimat 21
  • Installation doesn't create a bootable disk

    Installation doesn't create a bootable disk

    Live user works great. But after installing, I don't have a bootable system. This system works fine with GhostBSD and helloSystem; in fact I just installed helloSystem over the unbootable airyx, and it is working just fine. I have a Dell Inspiron 3521. It's a 2nd generation i3, and FreeBSD doesn't work from UEFI, it only works when I set bios to legacy node

    opened by darkoverlordofdata 20
  • Logo/Branding

    Logo/Branding

    I've tried designing a logo for this project, as you can see below. What are your thoughts on it? I'll upload the SVGs and original files if you want to use this.

    All images in this issue uploaded by me are licensed under CC0.

    | Images | |- | | Main Logo | | Main Logo loading... | | Lockup (Logo + Text) Variation 1 | | Lockup Variation 1 loading... | | Lockup (Logo + Text) Variation 2 | | Lockup Variation 2 loading... | | Stacked Lockup | | Stacked Lockup loading... | | Branding concept | Branding concept loading...

    Best wishes, llui85

    opened by llui85 20
  • 0.3.0pre: No menu showing when desktop (Filer) is selected

    0.3.0pre: No menu showing when desktop (Filer) is selected

    When a Filer window is selected, its menu shows in the top bar as expected. However, when the desktop (i.e. no app) is selected, there is no menu. We should still see the Filer menu in this case.

    bug GUI 
    opened by mszoek 19
  • When booting 0.4.0pre2: com.apple.auditd.json: failed: No such file or directory

    When booting 0.4.0pre2: com.apple.auditd.json: failed: No such file or directory

    I just grabbed 0.4.0pre2 and copied it onto a USB stick. When booting I get the following error

    Loading job: com.apple.auditd.json: failed: No such file or directory

    opened by Schamschula 17
  • v0.4.0pre4 - /bin/install.sh issues

    v0.4.0pre4 - /bin/install.sh issues

    Kernel Panic after boot from SSD

    The startup after boot is a hit or miss situation. It might make it to the login screen, and I can logon to the desktop. Or not.

    This kernel panic happened after the startup had frozen. Could not ctrl+alt+F2 (or F3). So I held down the power button until it responded with this kernel panic.

    IMG_20220717_100407275 - Copy

    opened by markshank 16
  • Need Help

    Need Help

    hello @airyx team so I just need some help in building airyx operating system from source

    can you tell me the build tools require + steps to build it

    I have a UbuntuMate system + a macOS big sur hope you will help me to go over this issue

    regards

    • NukeWilliams
    opened by NukeWilliams 14
  • 0.3pre: Mouse does not work

    0.3pre: Mouse does not work

    Mouse does not work. Tested on 2 different machine, one with a USB mouse and one with an ELAN Touchpad.

    Re-plugging the USB mouse does not make it work. dmesg correctly shows the USB mouse, so it is detected on the USB bus.

    bug GUI 
    opened by probonopd 12
  • A way to invoke the Black Screen of Contention

    A way to invoke the Black Screen of Contention

    I was poking around yesterday and stumbled upon a way to invoke the Black Screen of Contention

    1. Boot Live CD to normal Summer Field desktop
    2. Right-click on desktop and create a new folder.
    3. Click on the new folder to open a Filer window.
    4. Navigate Filer to /System/Library/CoreServices
    5. Click on Filer icon
    6. Right-click on the Filer icon and select "Get Info" from the pop-up menu.
    7. BSoC

    Originally posted by @markshank in https://github.com/mszoek/airyx/discussions/94#discussioncomment-1232586

    bug GUI 
    opened by mszoek 10
  • Bar.app: Shared object

    Bar.app: Shared object "libjpeg.so.62" not found

    Thank you very mich for uploading https://github.com/mszoek/helium/releases/download/M1/Bar.app.tgz, an example application to see whether it can run on helloSystem. So exciting!

    This is what currently happens when you run it:

    ld-elf.so.1: Shared object "libjpeg.so.62" not found, required by "libOnyx2D.so"

    Please add libjpeg.so.62 to the bundle, since it doesn't seem to be a standard library on FreeBSD?

    I tried this workaround:

    sudo pkg install libjpeg-turbo
    sudo cp /usr/local/lib/libturbojpeg.so.0.2.0 /usr/local/lib/libjpeg.so.62
    

    But it is not sufficient:

    image

    Thanks to the launch command, we now get the message on screen:

    This application requires at least version LIBJPEGTURBO_6.2 of libjpeg.so.62 to run.

    (For double-clicking to work in helloSystem Filer, I symlinked the main executable to the top-level directory of the .app bundle.)

    opened by probonopd 8
  • Kernel panic

    Kernel panic

    Installed iso to Proxmox VM using "# /bin/install.sh da0 mds". Rebooted from virtual disk. Kernel panic during boot process.

    Screenshot

    KernelPanic

    VM configuration:

    [email protected]:# qm config 128 balloon: 0 bios: ovmf boot: order=scsi0;ide2 cores: 4 efidisk0: CephPool:vm-128-disk-1,efitype=4m,size=528K ide2: cephfs:iso/ravynOS_0.4.0pre4_f14_5197929269952512_amd64.iso,media=cdrom,size=1446174K machine: q35 memory: 4096 meta: creation-qemu=6.1.0,ctime=1637444242 name: ravynOS net0: virtio=56:68:24:EF:A5:0A,bridge=vmbr0 numa: 0 ostype: other scsi0: CephPool:vm-128-disk-0,size=32G scsihw: virtio-scsi-pci smbios1: uuid=8125120d-6858-497c-951d-9b1e3b586935 sockets: 1 vga: vmware vmgenid: 68083c2d-54ca-41a1-aa5b-900c4f1eff18 [email protected]:#

    bug Kernel Mach 
    opened by markshank 7
  • Use CoreFoundation from Swift

    Use CoreFoundation from Swift

    Addresses #82 .

    This PR replaces the contents of Frameworks/CoreFoundation with the contents of the CoreFoundation subdirectory for the Swift 5.7.1 release (https://github.com/apple/swift-corelibs-foundation/tree/swift-5.7.1-RELEASE/CoreFoundation).

    In my fork, I tagged the version corresponding to the unmodified import to serve as a branch point for future updates (https://github.com/deleanor/ravynos/tree/import-swift-cf-swift-5.7-RELEASE).

    To see the specific changes to the Swift CF implementation that were required to work with the current RavynOS frameworks, it's probably easiest to view the diff in the CoreFoundation directory against the import tag: https://github.com/deleanor/ravynos/compare/import-swift-cf-swift-5.7-RELEASE...deleanor:ravynos:swift-cf-RunLoopWithKevent

    Considerations:

    • As noted in the issue, I applied the upstream patch to use Kevent within CFRunLoop mentioned in #209 (https://github.com/apple/swift-corelibs-foundation/pull/3004).
    • I attempted to make the minimal set of changes to the CF implementation to aid in future updates.
    • There are many preprocessor guards of the form #if TARGET_OS_MAC && !__RAVYNOS__. This is because ravynos/include/TargetConditionals.h ends up defining TARGET_OS_MAC. It may be beneficial to either augment that header to have a TARGET_OS_RAVYNOS or in the longer term make RavynOS fully compatible with TARGET_OS_MAC. For now, we defer to the alternative TARGET_OS_BSD branches where necessary by adding a || __RAVYNOS__ where they align.
    • As noted in the issue, a small shim was necessary in Foundation to handle cases where Foundation objects were passed into CF and CF is expecting type information via CFRuntimeBase.
    • The Swift-provided CoreFoundation.h header includes CFXMLNode.h and CFXMLParser.h when the deployment runtime is not Swift, but those files don't exist in the repository as far as I can tell. I conditionally excluded those for now, and I had to exclude CFXMLInterface for the same reason. There are versions of those files in Apple's open source CF if we want to try and adapt those later.
    • I've been able to test very little. I can currently only test the beginning of WindowServer initialization, but it makes it to the same place on my VM that the main branch makes it to. I'm not sure what other executables to test, but I'm open to suggestions. I also wrote a simple test for CFRunLoop that appears to work (https://github.com/deleanor/ravynos-cf-test). I'd love to hear additional suggestions for testing, but short of writing a large test suite to go with this I'm not sure what else I can do in that area at the moment. Future options include using the Foundation test suite that ships with swift-corelibs-foundation, but that would be down the road because it requires Swift language support.
    opened by deleanor 0
  • Consider Arcan for the display server

    Consider Arcan for the display server

    Arcan is a flexible windowing system that provides both Wayland and X11 compatibility layers. Importantly for this project, it is designed to support sandboxing and disconnection. It looks like a much better building block for this project than Xorg or any of the Wayland compositors.

    I believe that it should be relatively easy to add Capsicum support to Arcan.

    opened by davidchisnall 4
  • OS crashed during boot

    OS crashed during boot

    Environment: CPU: AMD 5800H OS: Windows 11 22H2 Virtualization: VirtualBox 6.1 , WHPX enabled. ISO: ravynOS_0.4.0pre4_f14_amd64.iso ,but nightly also failed.

    The kernel crashed while VirtualBox was booting the operating system. And I didn't use VMSVGA as my default virtual graphics card.

    crash

    hacktoberfest 
    opened by njlyf2011 4
  • Panic : Amd CPU core graphics can cause kernel panic

    Panic : Amd CPU core graphics can cause kernel panic

    OS Version:

    Ravynos 0.4.0 pre5

    Computer model

    Lenovo r9000p 3070latop

    My pc panic log Images:

    6C48DB23852A2FBE4DADF51D44B92E60

    My friend's Huawei r5 3500u laptop panic log Images:

    6B532DC50D83FAF006CB9E6F54F554DA

    My R9000p Devices IDs list:

    ❯ lspci -v 00:00.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Renoir/Cezanne Root Complex Subsystem: Lenovo Device 3814 Flags: fast devsel

    00:00.2 IOMMU: Advanced Micro Devices, Inc. [AMD] Renoir/Cezanne IOMMU Subsystem: Lenovo Device 3815 Flags: bus master, fast devsel, latency 0, IRQ -2147483648 Capabilities:

    00:01.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Renoir PCIe Dummy Host Bridge Flags: fast devsel, IOMMU group 0

    00:01.1 PCI bridge: Advanced Micro Devices, Inc. [AMD] Renoir PCIe GPP Bridge (prog-if 00 [Normal decode]) Subsystem: Lenovo Device 3886 Flags: bus master, fast devsel, latency 0, IRQ 26, IOMMU group 1 Bus: primary=00, secondary=01, subordinate=01, sec-latency=0 I/O behind bridge: 3000-3fff [size=4K] [16-bit] Memory behind bridge: d0000000-d10fffff [size=17M] [32-bit] Prefetchable memory behind bridge: fa00000000-fc01ffffff [size=8224M] [32-bit] Capabilities: Kernel driver in use: pcieport

    00:01.2 PCI bridge: Advanced Micro Devices, Inc. [AMD] Renoir/Cezanne PCIe GPP Bridge (prog-if 00 [Normal decode]) Subsystem: Lenovo Device 3886 Flags: bus master, fast devsel, latency 0, IRQ 27, IOMMU group 2 Bus: primary=00, secondary=02, subordinate=02, sec-latency=0 I/O behind bridge: [disabled] [32-bit] Memory behind bridge: d1800000-d18fffff [size=1M] [32-bit] Prefetchable memory behind bridge: [disabled] [64-bit] Capabilities: Kernel driver in use: pcieport

    00:02.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Renoir PCIe Dummy Host Bridge Flags: fast devsel, IOMMU group 3

    00:02.1 PCI bridge: Advanced Micro Devices, Inc. [AMD] Renoir/Cezanne PCIe GPP Bridge (prog-if 00 [Normal decode]) Subsystem: Lenovo Device 3886 Flags: bus master, fast devsel, latency 0, IRQ 28, IOMMU group 4 Bus: primary=00, secondary=03, subordinate=03, sec-latency=0 I/O behind bridge: 2000-2fff [size=4K] [16-bit] Memory behind bridge: d1700000-d17fffff [size=1M] [32-bit] Prefetchable memory behind bridge: [disabled] [64-bit] Capabilities: Kernel driver in use: pcieport

    00:02.2 PCI bridge: Advanced Micro Devices, Inc. [AMD] Renoir/Cezanne PCIe GPP Bridge (prog-if 00 [Normal decode]) Subsystem: Lenovo Device 3886 Flags: bus master, fast devsel, latency 0, IRQ 29, IOMMU group 5 Bus: primary=00, secondary=04, subordinate=04, sec-latency=0 I/O behind bridge: [disabled] [32-bit] Memory behind bridge: [disabled] [32-bit] Prefetchable memory behind bridge: fc02000000-fc021fffff [size=2M] [32-bit] Capabilities: Kernel driver in use: pcieport

    00:02.4 PCI bridge: Advanced Micro Devices, Inc. [AMD] Renoir/Cezanne PCIe GPP Bridge (prog-if 00 [Normal decode]) Subsystem: Lenovo Device 3886 Flags: bus master, fast devsel, latency 0, IRQ 30, IOMMU group 6 Bus: primary=00, secondary=05, subordinate=05, sec-latency=0 I/O behind bridge: [disabled] [32-bit] Memory behind bridge: d1600000-d16fffff [size=1M] [32-bit] Prefetchable memory behind bridge: [disabled] [64-bit] Capabilities: Kernel driver in use: pcieport

    00:08.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Renoir PCIe Dummy Host Bridge Flags: fast devsel, IOMMU group 7

    00:08.1 PCI bridge: Advanced Micro Devices, Inc. [AMD] Renoir Internal PCIe GPP Bridge to Bus (prog-if 00 [Normal decode]) Subsystem: Advanced Micro Devices, Inc. [AMD] Renoir Internal PCIe GPP Bridge to Bus Flags: bus master, fast devsel, latency 0, IRQ 31, IOMMU group 7 Bus: primary=00, secondary=06, subordinate=06, sec-latency=0 I/O behind bridge: 1000-1fff [size=4K] [16-bit] Memory behind bridge: d1200000-d15fffff [size=4M] [32-bit] Prefetchable memory behind bridge: fc10000000-fc201fffff [size=258M] [32-bit] Capabilities: Kernel driver in use: pcieport

    00:08.2 PCI bridge: Advanced Micro Devices, Inc. [AMD] Renoir Internal PCIe GPP Bridge to Bus (prog-if 00 [Normal decode]) Subsystem: Advanced Micro Devices, Inc. [AMD] Renoir Internal PCIe GPP Bridge to Bus Flags: bus master, fast devsel, latency 0, IRQ 32, IOMMU group 7 Bus: primary=00, secondary=07, subordinate=07, sec-latency=0 I/O behind bridge: [disabled] [32-bit] Memory behind bridge: d1100000-d11fffff [size=1M] [32-bit] Prefetchable memory behind bridge: [disabled] [64-bit] Capabilities: Kernel driver in use: pcieport

    00:14.0 SMBus: Advanced Micro Devices, Inc. [AMD] FCH SMBus Controller (rev 51) Subsystem: Lenovo Device 3842 Flags: 66MHz, medium devsel, IOMMU group 8 Kernel driver in use: piix4_smbus Kernel modules: i2c_piix4, sp5100_tco

    00:14.3 ISA bridge: Advanced Micro Devices, Inc. [AMD] FCH LPC Bridge (rev 51) Subsystem: Lenovo Device 3840 Flags: bus master, 66MHz, medium devsel, latency 0, IOMMU group 8

    00:18.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Cezanne Data Fabric; Function 0 Flags: fast devsel, IOMMU group 9

    00:18.1 Host bridge: Advanced Micro Devices, Inc. [AMD] Cezanne Data Fabric; Function 1 Flags: fast devsel, IOMMU group 9

    00:18.2 Host bridge: Advanced Micro Devices, Inc. [AMD] Cezanne Data Fabric; Function 2 Flags: fast devsel, IOMMU group 9

    00:18.3 Host bridge: Advanced Micro Devices, Inc. [AMD] Cezanne Data Fabric; Function 3 Flags: fast devsel, IOMMU group 9 Kernel driver in use: k10temp Kernel modules: k10temp

    00:18.4 Host bridge: Advanced Micro Devices, Inc. [AMD] Cezanne Data Fabric; Function 4 Flags: fast devsel, IOMMU group 9

    00:18.5 Host bridge: Advanced Micro Devices, Inc. [AMD] Cezanne Data Fabric; Function 5 Flags: fast devsel, IOMMU group 9

    00:18.6 Host bridge: Advanced Micro Devices, Inc. [AMD] Cezanne Data Fabric; Function 6 Flags: fast devsel, IOMMU group 9

    00:18.7 Host bridge: Advanced Micro Devices, Inc. [AMD] Cezanne Data Fabric; Function 7 Flags: fast devsel, IOMMU group 9

    01:00.0 VGA compatible controller: NVIDIA Corporation GA104M [GeForce RTX 3070 Mobile / Max-Q] (rev a1) (prog-if 00 [VGA controller]) Subsystem: Lenovo Device 3a4f Flags: bus master, fast devsel, latency 0, IRQ 101, IOMMU group 10 Memory at d0000000 (32-bit, non-prefetchable) [size=16M] Memory at fa00000000 (64-bit, prefetchable) [size=8G] Memory at fc00000000 (64-bit, prefetchable) [size=32M] I/O ports at 3000 [size=128] Expansion ROM at d1080000 [disabled] [size=512K] Capabilities: Kernel driver in use: vfio-pci Kernel modules: nouveau, nvidia_drm, nvidia

    01:00.1 Audio device: NVIDIA Corporation GA104 High Definition Audio Controller (rev a1) Flags: bus master, fast devsel, latency 0, IRQ 100, IOMMU group 10 Memory at d1000000 (32-bit, non-prefetchable) [size=16K] Capabilities: Kernel driver in use: vfio-pci Kernel modules: snd_hda_intel

    02:00.0 Non-Volatile memory controller: SK hynix Gold P31 SSD (prog-if 02 [NVM Express]) Subsystem: SK hynix Gold P31 SSD Flags: bus master, fast devsel, latency 0, IRQ 55, NUMA node 0, IOMMU group 11 Memory at d1800000 (64-bit, non-prefetchable) [size=16K] Memory at d1805000 (32-bit, non-prefetchable) [size=4K] Memory at d1804000 (32-bit, non-prefetchable) [size=4K] Capabilities: Kernel driver in use: nvme Kernel modules: nvme

    03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 15) DeviceName: Realtek RTL8111E Ethernet LOM Subsystem: Lenovo Device 390b Flags: bus master, fast devsel, latency 0, IRQ 91, IOMMU group 12 I/O ports at 2000 [size=256] Memory at d1704000 (64-bit, non-prefetchable) [size=4K] Memory at d1700000 (64-bit, non-prefetchable) [size=16K] Capabilities: Kernel driver in use: r8169 Kernel modules: r8169

    04:00.0 Network controller: MEDIATEK Corp. MT7921 802.11ax PCI Express Wireless Network Adapter Subsystem: Lenovo Device e0bc Flags: bus master, fast devsel, latency 0, IRQ 98, IOMMU group 13 Memory at fc02000000 (64-bit, prefetchable) [size=1M] Memory at fc02100000 (64-bit, prefetchable) [size=16K] Memory at fc02104000 (64-bit, prefetchable) [size=4K] Capabilities: Kernel driver in use: mt7921e Kernel modules: mt7921e

    05:00.0 Non-Volatile memory controller: ADATA Technology Co., Ltd. XPG SX8200 Pro PCIe Gen3x4 M.2 2280 Solid State Drive (rev 03) (prog-if 02 [NVM Express]) Subsystem: ADATA Technology Co., Ltd. XPG SX8200 Pro PCIe Gen3x4 M.2 2280 Solid State Drive Flags: bus master, fast devsel, latency 0, IRQ 57, NUMA node 0, IOMMU group 14 Memory at d1600000 (64-bit, non-prefetchable) [size=16K] Capabilities: Kernel driver in use: nvme Kernel modules: nvme

    06:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Cezanne (rev c5) (prog-if 00 [VGA controller]) Subsystem: Lenovo Device 3a4f Flags: bus master, fast devsel, latency 0, IRQ 46, IOMMU group 7 Memory at fc10000000 (64-bit, prefetchable) [size=256M] Memory at fc20000000 (64-bit, prefetchable) [size=2M] I/O ports at 1000 [size=256] Memory at d1500000 (32-bit, non-prefetchable) [size=512K] Capabilities: Kernel driver in use: amdgpu Kernel modules: amdgpu

    06:00.2 Encryption controller: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 10h-1fh) Platform Security Processor Subsystem: Lenovo Device 382a Flags: bus master, fast devsel, latency 0, IRQ 91, IOMMU group 7 Memory at d1400000 (32-bit, non-prefetchable) [size=1M] Memory at d15c8000 (32-bit, non-prefetchable) [size=8K] Capabilities: Kernel driver in use: ccp Kernel modules: ccp

    06:00.3 USB controller: Advanced Micro Devices, Inc. [AMD] Renoir/Cezanne USB 3.1 (prog-if 30 [XHCI]) Subsystem: Lenovo Device 3828 Flags: bus master, fast devsel, latency 0, IRQ 37, IOMMU group 7 Memory at d1200000 (64-bit, non-prefetchable) [size=1M] Capabilities: Kernel driver in use: xhci_hcd Kernel modules: xhci_pci

    06:00.4 USB controller: Advanced Micro Devices, Inc. [AMD] Renoir/Cezanne USB 3.1 (prog-if 30 [XHCI]) Subsystem: Lenovo Device 3829 Flags: bus master, fast devsel, latency 0, IRQ 46, IOMMU group 7 Memory at d1300000 (64-bit, non-prefetchable) [size=1M] Capabilities: Kernel driver in use: xhci_hcd Kernel modules: xhci_pci

    06:00.5 Multimedia controller: Advanced Micro Devices, Inc. [AMD] ACP/ACP3X/ACP6x Audio Coprocessor (rev 01) Subsystem: Lenovo Device 382c Flags: fast devsel, IRQ 94, IOMMU group 7 Memory at d1580000 (32-bit, non-prefetchable) [size=256K] Capabilities: Kernel modules: snd_pci_acp3x, snd_rn_pci_acp3x, snd_pci_acp5x, snd_pci_acp6x, snd_acp_pci, snd_sof_amd_renoir

    06:00.6 Audio device: Advanced Micro Devices, Inc. [AMD] Family 17h/19h HD Audio Controller Subsystem: Lenovo Device 382b Flags: bus master, fast devsel, latency 0, IRQ 95, IOMMU group 7 Memory at d15c0000 (32-bit, non-prefetchable) [size=32K] Capabilities: Kernel driver in use: snd_hda_intel Kernel modules: snd_hda_intel

    07:00.0 SATA controller: Advanced Micro Devices, Inc. [AMD] FCH SATA Controller [AHCI mode] (rev 81) (prog-if 01 [AHCI 1.0]) Subsystem: Lenovo Device 383f Flags: bus master, fast devsel, latency 0, IRQ 34, IOMMU group 7 Memory at d1101000 (32-bit, non-prefetchable) [size=2K] Capabilities: Kernel driver in use: ahci

    07:00.1 SATA controller: Advanced Micro Devices, Inc. [AMD] FCH SATA Controller [AHCI mode] (rev 81) (prog-if 01 [AHCI 1.0]) Subsystem: Lenovo Device 383f Flags: bus master, fast devsel, latency 0, IRQ 36, IOMMU group 7 Memory at d1100000 (32-bit, non-prefetchable) [size=2K] Capabilities: Kernel driver in use: ahci

    My friend Devices IDs: 03:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Picasso/Raven 2 [Radeon Vega Series / Radeon Vega Mobile Series] (rev c2) (prog-if 00 [VGA controller]) Subsystem: Huawei Technologies Co., Ltd. Device 3e10 Flags: bus master, fast devsel, latency 0, IRQ 55, IOMMU group 9 Memory at b0000000 (64-bit, prefetchable) [size=256M] Memory at c0000000 (64-bit, prefetchable) [size=2M] I/O ports at 1000 [size=256] Memory at c0500000 (32-bit, non-prefetchable) [size=512K] Capabilities: [48] Vendor Specific Information: Len=08 <?> Capabilities: [50] Power Management version 3 Capabilities: [64] Express Legacy Endpoint, MSI 00 Capabilities: [a0] MSI: Enable- Count=1/4 Maskable- 64bit+ Capabilities: [c0] MSI-X: Enable+ Count=3 Masked- Capabilities: [100] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?> Capabilities: [200] Physical Resizable BAR Capabilities: [270] Secondary PCI Express Capabilities: [2a0] Access Control Services Capabilities: [2b0] Address Translation Service (ATS) Capabilities: [2c0] Page Request Interface (PRI) Capabilities: [2d0] Process Address Space ID (PASID) Capabilities: [320] Latency Tolerance Reporting Kernel driver in use: amdgpu Kernel modules: amdgpu

    hacktoberfest 
    opened by yinglanxing 2
  • i915kms.ko iGVT-g error with CRTC pipe mismatch

    i915kms.ko iGVT-g error with CRTC pipe mismatch

    When iGVT-g is enabled, there are errors on the serial console about a CRTC pipe state mismatch. This may be related to the artifacts on the ravynOS login screen.

    When I started digging into the origin of the errors, I discovered that vmwgfx may be silently suffering from the same malady. So I will be using this issue to document my research into the source of this mismatch. As it may assist with vmwgfx troubleshooting.

    Here is an excerpt from the serial console with the errors:

    drmn0: [drm] ERROR [CRTC:51:pipe A] mismatch in infoframes.enable 0xfffffe00639720f8V
    drmn0: [drm] ERROR mismatch in avi infoframe
    drmn0: [drm] ERROR expected:
    drmn0: HDMI infoframe: Auxiliary Video Information (AVI), version 2, length 13
    drmn0: colorspace: RGB
    drmn0: scan mode: No Data
    drmn0: colorimetry: No Data
    drmn0: picture aspect: No Data
    drmn0: active aspect: 14:9 Top
    drmn0: itc: No Data
    drmn0: extended colorimetry: xvYCC 601
    drmn0: quantization range: Default
    drmn0: nups: Unknown Non-uniform Scaling
    drmn0: video code: 0
    drmn0: ycc quantization range: Limited
    drmn0: hdmi content type: Graphics
    drmn0: pixel repeat: 0
    drmn0: bar top 0, bottom 0, left 0, right 0
    drmn0: [drm] ERROR found:
    pipe state doesn't match!
    

    All these messages come from one or two places in the i915 code. I need to go back find the exact place in the code where they are generated and document that here.

    opened by markshank 5
Releases(v0.4.0pre4)
  • v0.4.0pre4(Jul 4, 2022)

    ravynOS Pygmy Marmoset

    Developer Preview Release v0.4.0pre4

    Welcome to the 0.4.0pre4 Developer Preview of ravynOS as we continue working towards release 0.4! As usual, this is an unstable pre-release of upcoming stuff intended for people helping build the system. It is not complete. It contains bugs - sometimes serious ones - including application and desktop crashes and kernel panics. You have been warned.

    This snapshot release includes the start of a GUI based on Cocoa and Mach. It aims to be Mac compatible. The GUI is very rudimentary so far - please be patient! More is on the way.

    Detailed release notes below! TLDR: This release does stuff. More stuff than the previous one, but not by much, and a lot less than we want it to do eventually.

    Kernel stabilization

    A major bug in mach_msg memory allocation was fixed, massively improving the kernel's stability. There may still be occasional freezes or panics, mainly in the drm-kmod (DRM/KMS video) drivers or in the latest Intel wifi (iwlwifi) driver.

    More LaunchDaemons

    Launchd now starts the Apple syslog (asld) and auditd services which had been previously disabled for stability issues. The command-line aslutil can be used to examine ASL logs.

    WindowServer & SystemUIServer

    The Tanuki series releases used a pretty traditional X11/KDE desktop environment that was shoehorned into looking and behaving like the Mac desktop. However, this can only go so far due to the very different architecture and design of the two systems. 0.4.0pre3 had the very first bits of a new UI built ground-up to be what we need. This release adds some vital plumbing and the first version of SystemUIServer.

    WindowServer should start automatically if it detects a supported GPU (Intel HD and Iris, AMD or Radeon - we are still working towards virtual machine support with qxl and vmwgfx drivers). If successful, a black and white "ravynOS" wallpaper should appear on all screens and a login window should appear on one of them. Enter "liveuser" as the user name, leave password blank, and click the Login button. If you get it wrong, there is no feedback: just try again. A better login window is in development but we needed something quickly to make the Live ISO work :)

    After login, the display should change to a black screen with a menu bar at the top of one screen. The menu bar has a clock and the Ravyn menu, with typical options like About this computer, Recent items, Sleep and Restart. Most of these work - try Sleep, Restart, and Shut Down in particular and please report if they work for your hardware.

    When a Cocoa app (e.g. /Applications/Utilities/Install ravynOS.app) is launched, its menus appear in the global bar and can be used as you would expect. Switching applications will switch the active menus as well. Exiting an application removes its menus from the bar. Remaining work items are tracked here. Also beware of known issues #288 and #280 in particular.

    Temporary Secret Terminal

    Since the desktop has no way yet to launch apps, you can press <Logo>-<Enter> (Logo being your Windows or Command key or its equivalent) to launch a terminal window. Press <Alt>-<Space> while focused for a window menu, then enable Decorations to allow moving or resizing the window. The shell will be running as nobody, so use su - liveuser to get to your regular account. This is not a Cocoa app and has no menus; it will go away once we have something better.

    Other Changes

    • Many commits from FreeBSD upstream
    • Many bugs fixed
    • Many new bugs

    Limitations and Known Issues

    • The GUI is extremely minimal
    • Lots of inconsistencies and incompatibilities
    • Very few apps available
    • Launchd jobs created from LaunchServices are not removed after exiting
    • Many open options (e.g. redirecting I/O, setting env vars, wait for exit) are not yet implemented on the launchd version of LaunchServices
    • See open issues

    Please see the wiki for system requirements, install instructions and where to find things.

    Ask questions or give feedback in the Discussions area. Please report any bugs to the Issues tracker. Your help in fixing said bugs would be appreciated too! Thanks!

    Get It!

    Download 0.4.0pre4 from NomadLogic - US West or your closest mirror: US Central | US East | US East 2 | Norway | Denmark

    Torrents are also available courtesy of FOSSTorrents

    Unstable "nightly" builds are also available for developer testing: Download from US West | US Central | US East | US East 2 | Norway | Denmark

    Torrents of the snapshot builds are available too! Thanks to @RangerRick for setting these up.

    Acknowledgements

    As usual, thank you to our community of sponsors, designers, developers, testers, and users, and mirror hosts for supporting the project.

    Source code(tar.gz)
    Source code(zip)
  • v0.4.0pre3(May 8, 2022)

    ravynOS Pygmy Marmoset

    Developer Preview Release v0.4.0pre3

    Welcome to the 0.4.0pre3 Developer Preview of ravynOS (formerly airyxOS)! As usual, this is an unstable pre-release of upcoming stuff intended for people helping build the system. It is not complete. It contains bugs - sometimes serious ones. It might spontaneously panic & reboot, melt your computer, eat your cat, or accelerate the heat death of the universe. You have been warned.

    Also please note that the ISO currently does not boot into a GUI. You will see the boot messages and then it will appear to freeze. Switch to tty1 (Alt+F2 usually) for a login prompt. The login is liveuser with no password.

    Detailed release notes below! TLDR: This release does stuff. More stuff than the previous one, but not by much, and a lot less than we want it to do eventually.

    Rebranding

    The project's name, brand, associated images and assets have been changed.

    FreeBSD 14-CURRENT

    The kernel and base system has been rebased onto the CURRENT (14.0) branch of FreeBSD. The extra packages built from ports remain on the 2022Q1 branch for now. We expect the move to CURRENT to improve hardware support, especially in the DRM/KMS video drivers. Please expect some instability as we work out the bugs from this major update.

    Mach Subsystem

    There is now kernel support for Mach ports, port rights, messages, IPC including OOL descriptors, and system calls. This is provided by a kernel module, mach.ko, which is (and must be) loaded at boot time by loader.conf. Never remove this; it will break your system. (Why is it a module then? Due to technical limitations that we need to solve.)

    The userspace parts are provided by headers in /usr/include/mach and /usr/include/sys/mach, libmach, and extensions to libc.

    The mig compiler is provided to compile .def files into Mach IPC/RPC code.

    launchd and LaunchAgents

    Apple's launchd is now the system init process (pid 1). It starts a few essential services (asld - syslog, notifyd, devd and auditd) as LaunchDaemons then passes control to the standard rc scripts to start the rest of the system. More services can be translated into LaunchDaemons over time. (asld and auditd are temporarily disabled for stability concerns.)

    -+= 00001 root /sbin/launchd
     |--= 00025 root /sbin/devd -d
     |--= 00026 root /usr/sbin/asld -d
     |--= 00027 root /usr/sbin/auditd -l
     |--= 00030 root /usr/sbin/notifyd -d
    

    LaunchDaemons are started from their descriptions in /System/Library/LaunchDaemons or /Library/LaunchDaemons as on macOS, but ours are currently defined in JSON instead of XML. (Because that's how iX Systems did their launchctl.) Adding XML plist support here is on the task list.

    A per-user launchd instance is started to manage user LaunchAgents (defined in ~/Library/LaunchAgents) and LaunchDaemons (defined in ~/Library/LaunchDaemons).

    Grand Central Dispatch

    You can now write (or build) software that needs Grand Central Dispatch, also known as libdispatch or Dispatch. Dispatch provides thread pools and concurrency. It can be used directly, but more importantly, opens the door to adding Dispatch support in Foundation. Note that neither Cocoa or CoreFoundation have been extended yet to support Dispatch.

    XPC

    A libxpc has also been added, courtesy of work done by iX Systems. XPC is "a lightweight mechanism for basic interprocess communication" built on top of Mach. XPC is used by launchd among other things and enables the addition of more compatibility stuff in Foundation. Note that Cocoa and CoreFoundation have not been extended yet to support XPC.

    Clang and LLVM

    LLVM and Clang have been upgraded to 13.0.0.

    ravynOS clang version 13.0.0 ([email protected]:llvm/llvm-project.git llvmorg-13.0.0-0-gd7b669b3a303)
    Target: x86_64-ravynos-freebsd14.0
    Thread model: posix
    InstalledDir: /usr/bin
    

    Clang now links libobjc automatically for any input files detected as Objective-C (*.m) or Objective-C++ (*.mm). This only works if compilation and linking are one step. If linking is a separate step, you still need to specify -lobjc.

    Clang now defines the preprocessor symbol __MACH__. The symbol __AIRYX__ is no longer defined by the compiler; instead it defines __RAVYNOS__. You may notice that software tries to build in its Mac configuration due to the presence of __MACH__.

    Several essential header files from Darwin and Apple opensource have been added to /usr/include.

    LaunchServices

    LaunchServices now uses the "canonical" path of /var/db/launchd/com.apple.launchd.per-user.$UID for its database. If you had an existing database under $HOME/Library/db, you can move it to the new location to preserve your app associations. It has also been integrated with launchd and will launch applications via the per-user instance if it is available.

    "MachO ELF" Hybrid Linker, or "How I spent my winter vacation"

    A proof-of-concept hybrid runtime linker has been added as /usr/lib/dyld. This is not Apple's dyld - it's an attempt to resolve symbols from a MachO binary with exports from ELF shared objects. The goal here was to run Mac MachO executables against our ELF-based Frameworks and other libraries so we don't need two sets of them or to convert everything to MachO. Curious people can read these notes captured during its very early development.

    So far, a small "hello world" in C using printf() and one in Objective-C using Foundation's NSLog() have been compiled on macOS and run under ravynOS's dyld. GUI apps will not run yet.

    You need to create symlinks as well that translate the library & framework names in the executable to those on ravynOS; e.g. ln -s /lib/libc.so.7 /usr/lib/libSystem.B.dylib.

    (Due to the complexity of this translation, we will very likely be moving toward building a Mach-O based system.)

    MachO Executable Support

    Alongside our dyld is a very simple MachO image activator (BSD kernel module) that can recognize a MachO executable and transparently start it under dyld. This lets you run MachO binaries the same way as native ELF ones. Load the macho.ko module with kldload to try it.

    [email protected] ~ᐳ file ~/hello2
    /Users/zoe/hello2: Mach-O 64-bit x86_64 executable, flags:<NOUNDEFS|DYLDLINK|TWOLEVEL|PIE>
    ★ [email protected] ~ᐳ ~/hello2     
    2022-01-17 23:24:34.531 hello2[50578:80187d000] Hello from MachO Foundation!
    

    A Whole New World .. er GUI

    Our previous images used a pretty traditional X11/KDE desktop environment that was shoehorned into looking and behaving like the Mac desktop. However, this can only go so far due to the very different architecture and design of the two systems. 0.4.0pre3 has the very first bits of a new UI built ground-up to be what we need. It's based on the wayland protocol, wlroots, OpenGL ES2, EGL, and kernel mode setting (KMS) drivers using the direct rendering manager (DRM).

    WindowServer can be started if you have an Intel, AMD embedded, or Radeon GPU. It will not work in virtual machines until we get KMS drivers for the virtual hardware - work is underway to support Vmware (vmwgfx) and virtio (qemu, bhyve, others). Briefly:

    kldload i915kms  # for Intel GPUs
    /System/Library/CoreServices/WindowServer.app/WindowServer
    

    If this works, you'll see a wallpaper and a placeholder menu bar with clock.

    Other Changes

    • The Live CD was reworked to use tmpfs for writable areas and dropped unionfs
    • Several new tree-themed wallpapers were added.
    • posix_spawn() now supports the POSIX_SPAWN_SETEXEC flag from Darwin.
    • /private now exists with symlinks to some critical areas
    • The installer now supports installing to MMC and VirtIO (VBD) media.
    • pthread work queues were added to support libdispatch and friends
    • Some icons have been updated (and more are coming)

    Limitations and Known Issues

    There are still many major limitations and problems making this release unsuitable for daily use.

    • There is no GUI
    • Lots of inconsistencies and incompatibilities
    • Very few apps available
    • Mach is not completely stable
    • If the system does not shut down cleanly, you may see a kernel panic & reboot on the next start. It should start correctly after this reboot.
    • Launchd jobs created from LaunchServices are not removed after exiting
    • Many open options (e.g. redirecting I/O, setting env vars, wait for exit) are not yet implemented on the launchd version of LaunchServices

    Please see the wiki for system requirements, install instructions and where to find things.

    Ask questions or give feedback in the Discussions area. Please report any bugs to the Issues tracker. Your help in fixing said bugs would be appreciated too! Thanks!

    Get It!

    Download 0.4.0pre3 from NomadLogic - US West or your closest mirror: US Central | US East | US East 2 | Norway | Denmark

    Unstable "nightly" builds are also available for developer testing: Download from US West | US Central | US East | US East 2 | Norway | Denmark

    Acknowledgements

    A huge thanks to the NetBSD and NextBSD projects for pioneering Mach support in BSD. Additional huge thanks to Jordan Hubbard, Kip Macy, the entire NextBSD team, and iX Systems for all their work on XPC, launchd, and Dispatch! As usual, thank you to our community of sponsors, designers, developers, testers, and users, and mirror hosts for supporting the project.

    Source code(tar.gz)
    Source code(zip)
  • jdk-17.0.1(Nov 18, 2021)

Owner
Zoë Knox
VP Engineering at The OpenNMS Group and hugely awkward emo anime girl.
Zoë Knox
Log.c2 is based on rxi/log.c with MIT LICENSE which is inactive now. Log.c has a very flexible and scalable architecture

log.c2 A simple logging library. Log.c2 is based on rxi/log.c with MIT LICENSE which is inactive now. Log.c has a very flexible and scalable architect

Alliswell 2 Feb 13, 2022
Example program using eBPF to log data being based in using shell pipes

Example program using eBPF to log data being based in using shell pipes (|)

pat_h/to/file 35 Oct 21, 2022
An Ultra Low Power temperature logger based on the ESP8266 MCU.

Temperature logging IoT node Overview: The real node wired on a breadboard This is an ultra low power (ULP) temperature logging IoT node based on the

Radhi SGHAIER 12 Nov 16, 2022
log4cplus is a simple to use C++ logging API providing thread-safe, flexible, and arbitrarily granular control over log management and configuration. It is modelled after the Java log4j API.

% log4cplus README Short Description log4cplus is a simple to use C++17 logging API providing thread--safe, flexible, and arbitrarily granular control

null 1.4k Nov 27, 2022
Colorful Logging is a simple and efficient library allowing for logging and benchmarking.

Colorful-Logging "Colorful Logging" is a library allowing for simple and efficient logging as well for benchmarking. What can you use it for? -Obvious

Mateusz Antkiewicz 1 Feb 17, 2022
View and log aoe-api requests and responses

aoe4_socketspy View and log aoe-api requests and responses Part 1: https://www.codereversing.com/blog/archives/420 Part 2: https://www.codereversing.c

Alex Abramov 10 Nov 1, 2022
Portable, simple and extensible C++ logging library

Plog - portable, simple and extensible C++ logging library Pretty powerful logging library in about 1000 lines of code Introduction Hello log! Feature

Sergey Podobry 1.6k Nov 26, 2022
A DC power monitor and data logger

Hoverboard Power Monitor I wanted to gain a better understanding of the power consumption of my hoverboard during different riding situations. For tha

Niklas Roy 22 May 1, 2021
An ATTiny85 implementation of the well known sleep aid. Includes circuit, software and 3d printed case design

dodowDIY An ATTiny85 implementation of the well known sleep aid. Includes circuit, software and 3d printed case design The STL shells are desiged arou

null 15 Sep 4, 2022
Netdata's distributed, real-time monitoring Agent collects thousands of metrics from systems, hardware, containers, and applications with zero configuration.

Netdata is high-fidelity infrastructure monitoring and troubleshooting. It runs permanently on all your physical/virtual servers, containers, cloud deployments, and edge/IoT devices, and is perfectly safe to install on your systems mid-incident without any preparation.

netdata 61.2k Nov 23, 2022
A revised version of NanoLog which writes human readable log file, and is easier to use.

NanoLogLite NanoLogLite is a revised version of NanoLog, and is easier to use without performance compromise. The major changes are: NanoLogLite write

Meng Rao 25 Oct 13, 2022
Receive and process logs from the Linux kernel.

Netconsd: The Netconsole Daemon This is a daemon for receiving and processing logs from the Linux Kernel, as emitted over a network by the kernel's ne

Facebook 33 Oct 5, 2022
Minimalistic logging library with threads and manual callstacks

Minimalistic logging library with threads and manual callstacks

Sergey Kosarevsky 21 Jun 24, 2022
Compressed Log Processor (CLP) is a free tool capable of compressing text logs and searching the compressed logs without decompression.

CLP Compressed Log Processor (CLP) is a tool capable of losslessly compressing text logs and searching the compressed logs without decompression. To l

null 405 Nov 30, 2022
A Fast and Convenient C++ Logging Library for Low-latency or Real-time Environments

xtr What is it? XTR is a C++ logging library aimed at applications with low-latency or real-time requirements. The cost of log statements is minimised

null 10 Jul 17, 2022
Grafana - The open-source platform for monitoring and observability

The open and composable observability and data visualization platform. Visualize metrics, logs, and traces from multiple sources like Prometheus, Loki, Elasticsearch, InfluxDB, Postgres and many more.

Grafana Labs 52.5k Nov 24, 2022
LibDEEP BSD-3-ClauseLibDEEP - Deep learning library. BSD-3-Clause

LibDEEP LibDEEP is a deep learning library developed in C language for the development of artificial intelligence-based techniques. Please visit our W

Joao Paulo Papa 20 Oct 23, 2022
Bionic BSD-3-ClauseBionic - Google's standard library, developed for Android. BSD-3-Clause

bionic bionic is Android's C library, math library, and dynamic linker. Using bionic as an app developer See the user documentation. Working on bionic

Android Open Source Project 561 Nov 24, 2022