Hi Iggi,

Alright, I'll take a look at the Issues and such under the GitHub repos.

I have OI running on an amd64 uefi+csm machine, and an amd64 bios-only
machine.

On Sat, Jul 27, 2024, 1:23 PM Ignacio Soriano Hernandez via illumos-discuss
<discuss@lists.illumos.org> wrote:

>
> Hi Bryce,
>
> that would be awesome, if you just look into:
>
> https://www.illumos.org/projects
>
> There is so much for your taste that you be overwhelmed by the things that
> are pending in all areas and due to capacity and knowledge are more in "bug
> fixing" mode than anything else :-)
>
> graphicsdrm, illumos-gate, OpenIndiana you can select depending on your
> taste ..  and yes, the arm64 approaches had more an experimental approach
> with lots and lots of "custom" workarounds (don't want to call them "hacks"
> :-))
>
> Have you installed one of the illumos based dirtros on baremetal (or
> running in a VM)? .. then you will instantly find out what is missing ..
> because you will be joining from an operating system that has basically
> support for everything ..
>
> Btw. Toasterson (nick) is one of the maintainers of OI, nice guy, very
> helpful and he arranged some co-working sessions to tackle the most
> "urgent" topics.
>
> Cheers
>
> Iggi
>
> Bryce <678...@gmail.com> schrieb am 27. Juli 2024 um 18:58:
>
>
> Hi, Iggi:
>
> I certainly would not mind contributing wherever I could. I've been
> reading through the source for the bootloader, if there are any issues that
> need to be addressed id love to see if I could help.
>
> I'd like to port Illumos because, while there do exist several ports to
> arm64, they are all incomplete or don't work for some people. id like to
> try fixing this.
>
> If there's anything that I could contribute I'd love to know.
>
>
> On Sat, Jul 27, 2024, 12:09 PM Ignacio Soriano Hernandez via
> illumos-discuss <discuss@lists.illumos.org> wrote:
>
>> Hi Bryce,
>>
>> let me first complain as I cannot help you with your request.
>>
>> Reading this posting I just ask myself, why is this the next try to make
>> something where illumos and several distros based on it still lack core
>> capabilities (see the driver support, power management, graphics subsystem,
>> etc, etc.) there even have been several proof of concepts with regards to
>> having an illumos based distro on arm64 (yes, several projects made it up
>> to prompt and some core capabilities) while someone with that deep
>> knowledge would be a huge asset to get some things done to close some gaps?
>> And don't get me wrong please, I like that there are projects one wants
>> and has to do because it THAT what gathers your interest :-)
>> So if you like to get into the core core there are lots of areas where
>> someone knowledgeable like you could deliver so much value to the whole
>> community .
>>
>> Thanks for your passion and motiviation and welcome in the rabbithole :-)
>>
>> Cheers from Germany
>>
>> Iggi
>>
>> Bryce <678...@gmail.com> schrieb am 26. Juli 2024 um 20:59:
>>
>>
>> Wow, thanks Joshua
>>
>> that makes a lot of sense. I'm trying to build a monolithic illumos
>> kernel that includes its own root file system. I want to do this because I
>> see that illumos is really only established on x86 with a weak standing in
>> SPARC, and I'd like to try and port Illumos to other arch's. I'd like to
>> get a minimal image working on x86 first though, and troubleshoot my way
>> from there on arm64 hopefully then aarch and maybe risc v. (yes, I know
>> it's a lot of work, but I enjoy tinkering in assembly and id like to help
>> the community).
>>
>> so, the bootloader passes a command line string and perhaps an
>> environment listing (which I assume is also a string?) to the kerbel, does
>> it pass these as pointers? If so, are they pushed onto the stack? and if
>> that is so, then does the bootloader load the kernel and set up SS and BP
>> in the process?
>>
>> speaking of which, does the loader switch into protected mode before
>> loading the kerbel (I assume so, as to load a ufs/cpio archive with drivers
>> I'd assume you'd need more than a meg of memory.
>>
>> Also, can the loader be configured to load the kernel from a known
>> address on disk, instead of from a file system? if not that's fine, I could
>> patch the source to support that. I ask because I used legacy grub a long
>> time ago, and I'm pretty sure it doesn't have that feature, but idk how
>> illumos has patched their grub 0.98.
>>
>> I'll definitely refer to omnios to see how the big guys do it, but it's
>> not quite what I'm looking for.
>>
>> thank you for offering the templates, but I was looking for a slightly
>> lower level modification.
>>
>> On Fri, Jul 26, 2024, 2:26 PM Joshua M. Clulow via illumos-discuss <
>> discuss@lists.illumos.org> wrote:
>>
>>> On Fri, 26 Jul 2024 at 10:49, Bryce <678...@gmail.com> wrote:
>>> > I see. So the third stage bootloader loads the kernel into memory, as
>>> well as the boot_archive, informs the kernel where the archive is (in
>>> memory), then the kernel uses the drivers and such in the programs to load
>>> the root and execute /sbin/init?
>>> >
>>> > I checked the filelist document in
>>> https://github.com/illumos/illumos-gate/blob/master/usr/src/cmd/boot/filelist/i386/filelist.ramdisk
>>> and didn't see an /init, do does that mean that whatever the kernel does at
>>> that time is completely controlled by the drivers (as I would expect)?
>>>
>>> There are two distinct styles of boot archive:
>>>
>>>   (a) Archive style; e.g., CPIO.  Essentially a cache of files from
>>>       the real root file system, kept in sync by bootadm(8).  This
>>>       cache only needs to contain:
>>>
>>>         - kernel modules required to locate and mount the root
>>>           file system from whichever devices house it
>>>
>>>         - any data files (e.g., path_to_inst(5) and system(5) and
>>>           so on) that are needed before the root file system is
>>>           mounted
>>>
>>>   (b) Ramdisk style; i.e., a ufs(4FS) image.  This is an entire
>>>       root file system, made available to the kernel by the boot
>>>       loader.  There are a minimal set of routines in the base
>>>       kernel that can pick files out of a UFS image like they can
>>>       for a CPIO archive, before the file system is actually
>>>       mounted.
>>>
>>> In addition to the kernel ("unix") and the boot archive (described
>>> above) the boot loader provides either or both of a command line
>>> string, and/or an environment (a list of string key-value pairs).
>>> In this environment, we provide some additional properties that tell
>>> the kernel which file system driver to use and how to locate the
>>> file system (e.g., a /devices path to the disk, or some information
>>> about the network for NFS root, etc).
>>>
>>> In the archive case, the loader must provide enough detail that when
>>> the kernel calls vfs_mountroot(), we can locate and mount the root
>>> file system.  Modules and data needed before that point come from
>>> the archive, and after that point, come from the newly mounted file
>>> system.  The init process is started _after_ that, so we don't need
>>> to include it in the archive.
>>>
>>> In the ramdisk case, the kernel first treats the UFS image as an
>>> archive up until vfs_mountroot(), when it "mounts" the UFS image
>>> in-place in RAM and things proceed normally as if it were accessing
>>> a physical disk -- with the obvious caveat that changes will be
>>> destroyed on reboot.  This is how install images work today; they
>>> boot from an ISO or a USB image into this kind of ramdisk and then
>>> load other software by finding and mounting the boot device later
>>> from usermode.  It's also how SmartOS works.
>>>
>>> At Oxide, we've got a prototype for a new kind of booting, using a
>>> combination of a CPIO boot archive that contains drivers for disks
>>> and the ZFS modules, and then having the kernel load a ramdisk image
>>> from a slice on an NVMe device into RAM.  To do this, I had to add
>>> new hooks into the main() routine of the kernel just prior to
>>> vfs_mountroot() so that we could inject some custom behaviour from a
>>> separate kernel module we build.  It's designed to be customisable
>>> without changing the base kernel source, but also not quite ready to
>>> upstream to mainline illumos -- though I'm keen to get it up there
>>> eventually!
>>>
>>> If you want to get started with a minimal boot-to-ramdisk system, I
>>> would probably look at SmartOS, as that's what it is!  It uses the
>>> UFS ramdisk approach today, and that ramdisk is able to locate other
>>> resources on physical disks as needed, etc.  We also have some tools
>>> the allow building images automatically from templates:
>>>
>>>     https://github.com/illumos/image-builder
>>>
>>> There is no documentation there right now, but I have some examples
>>> of how to use it up here:
>>>
>>>     https://github.com/jclulow/omnios-image-builder
>>>
>>> I have, in my home directory, other templates I'm yet to add there
>>> which can construct a custom OmniOS-based ramdisk image that you can
>>> add software and custom boot-time behaviour to.  If you want me to
>>> throw that up in there, let me know.
>>>
>>> Happy to answer any questions, as I know this is a lot to take in!
>>> It would help to have more concrete specifics about how you're
>>> looking to operate the system you're building, what software you're
>>> hoping to include, how autonomous it should be, how you're hoping to
>>> update it, etc.
>>>
>>>
>>> Cheers.
>>>
>>> --
>>> Joshua M. Clulow
>>> http://blog.sysmgr.org
>>>
>>> ------------------------------------------
>>> illumos: illumos-discuss
>>> Permalink:
>>> https://illumos.topicbox.com/groups/discuss/Tc9bfa679c7294ee7-Ma01a51d0c7fe2e4bc5c02ceb
>>> Delivery options:
>>> https://illumos.topicbox.com/groups/discuss/subscription
>>>
>>
>>
>>
>
>
> *illumos <https://illumos.topicbox.com/latest>* / illumos-discuss / see
> discussions <https://illumos.topicbox.com/groups/discuss> + participants
> <https://illumos.topicbox.com/groups/discuss/members> + delivery options
> <https://illumos.topicbox.com/groups/discuss/subscription> Permalink
> <https://illumos.topicbox.com/groups/discuss/T0d8bd09ba88fa337-M9c78097aa3e6a825ef077f94>
>

------------------------------------------
illumos: illumos-discuss
Permalink: 
https://illumos.topicbox.com/groups/discuss/Tc9bfa679c7294ee7-M96c461db8e7b504c2593dd76
Delivery options: https://illumos.topicbox.com/groups/discuss/subscription

Reply via email to