• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Socket protocol which does not use Unsupported.kext
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Socket protocol which does not use Unsupported.kext


  • Subject: Re: Socket protocol which does not use Unsupported.kext
  • From: Andreas Fink <email@hidden>
  • Date: Fri, 19 Oct 2007 21:00:50 +0000

Gi,

I have to back up Michael here. Its painful but THERE IS NO OTHER CHOICE than to be kernel dependent and SOURCE dependent.
So don't even think of Leopard. Even you will get your hands on Leopard within a week, you wont see the source of it for like 3-4 months (my guess based on experience with 10.4.x....).


Even it probably has an unchanged API in this way, you can't make it work without the source and we probably wont get it for a while. No engineer could explain me so far why kernel is open source but the one shipped on DVD is not built out of this open source but has some modifications which produce delays on the production of the open source version. (in other words MacOS X kernel is closed source, what we see as Darwin kernel is just a clone). So one day a KEXT might not even work that way because the binary could be different from the actual source.

The problem is that until Apple makes this a supported API (I'm asking this since WWDC 2005 from Apple and it has been promised mabye for 10.4.6, probably for 10.4.8 but pretty sure for 10.5) there is currently still no other way than the unuspported one to be kernel dependent. I'm suffering from this on a daily basis as I have commercial software which requires Michael's SCTP and I have no other choice as SCTP is the "must-do"-standard.

Next week I will get Leopard but I wont be able to use it until the sources are released so the KEXT can be recompiled for it. I feel very sad that everyone will pray the new features of Leopard and I can't use it.

Maybe Apple should drop trying to rip of customer by selling them ringtones of songs they already bought and get back to its roots of good engineering and do their work right.

I would strongly recommend filing a bugreport/ feature request for this API and talk to your DTS guys. Its a looooong outstanding small API which would make our life sooooooo much easier.

Until this happens, use Linux, FreeBSD, Solaris or maybe even Windows. They all can do this.. just Apple can't *big-sight*


On 19.10.2007, at 20:26, Gi youl Kim wrote:

Hi Micheal:

The drawbacks you posted are the reason why I want to code without
unsupported APIs.

If you implemented SCTP with socket support, let me know the functions
to register sockets which are supported by Apple.

By the way, what is kernel sources and headers and the headers
provided by Apple?
I have xnu-792.18.15 sources and MacOSX10.*.sdk. Do you mean that I
should use MacOSX10.*.sdk?

FYI

My protocol is 'LPX' which has protocol type 0x88ad. LPX is used for
our product which is kind of storage over the ethernet.

Here is plist which I use

	<dict>
		<key>com.apple.kpi.bsd</key>
		<string>8.0.0</string>
		<key>com.apple.kpi.iokit</key>
		<string>8.0.0</string>
		<key>com.apple.kpi.libkern</key>
		<string>8.0.0</string>
		<key>com.apple.kpi.mach</key>
		<string>8.0.0</string>
		<key>com.apple.kpi.unsupported</key>
		<string>8.0.0</string>
	</dict>


On 10/19/07, Michael Tuexen <email@hidden> wrote:
Hi Aingoppa,

what protocol do you want to implement? We have implemented SCTP, a
transport protocol. Basically, it is the same code as in the FreeBSD 7.0
kernel, but with some changes for Mac OS X (locking, timers).


You need to use

        <dict>
                <key>com.apple.kernel</key>
                <string>8.10.1</string>
        </dict>

in your Info.plist file and also use some headers from the
kernel sources instead of the headers provided by Apple.

This all and the usage of net_add_proto() and net_del_proto()
is an unsupported API and has several drawbacks:
1. Apple can change it any time or make it impossible to
implement transport protocols via NKEs. Fortunately,
we could use the API from 10.3.9 to 10.4.10. Not sure
about 10.5.
2. You can build a NKE only for one specific Mac OS X version.
Although, you can build a universal binary for the NKE, it
does only load on Intel or PPC, because the kernel has different
versions.
3. You really depend on Apple, providing the source for the kernel
to get the header files you need (you do not need the source files).
This means you can not delevop/test a Leopard version until Apple
releases the sources for a Leopard kernel. Not sure when this
will happen. Currently not even the 10.4.10 sources are available.


Best regards
Michael

On Oct 19, 2007, at 5:24 PM, Gi youl Kim wrote:

I want to create a protocol which support socket interface. I could
create one using net_add_proto() and net_del_proto().
But those functions are included by Unsupported.kext. And worse,
some functions like sbfree() was not even exported.
So I had to use codes in open xnu source to the protocol work.

Can you create a socket protocol which does not use Unsupported.kext?
If you can't, how can you create a protocol?


Aingoppa.
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Darwin-kernel mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:
40lurchi.franken.de

This email sent to email@hidden



_______________________________________________
Do not post admin requests to the list. They will be ignored.
Darwin-kernel mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
40list.fink.org


This email sent to email@hidden

_______________________________________________ Do not post admin requests to the list. They will be ignored. Darwin-kernel mailing list (email@hidden) Help/Unsubscribe/Update your Subscription: This email sent to email@hidden
References: 
 >Socket protocol which does not use Unsupported.kext (From: Gi youl Kim <email@hidden>)
 >Re: Socket protocol which does not use Unsupported.kext (From: Michael Tuexen <email@hidden>)
 >Re: Socket protocol which does not use Unsupported.kext (From: "Gi youl Kim" <email@hidden>)

  • Prev by Date: Re: Socket protocol which does not use Unsupported.kext
  • Next by Date: Changing the screencapture format
  • Previous by thread: Re: Socket protocol which does not use Unsupported.kext
  • Next by thread: Changing the screencapture format
  • Index(es):
    • Date
    • Thread