|
Name |
|
Date |
Size |
#Lines |
LOC |
| .. | | - | - |
| bin/ | H | 26-Jul-2015 | - | 89,357 | 66,445 |
| cddl/ | H | 26-Jul-2015 | - | 359,189 | 226,906 |
| contrib/ | H | 26-Jul-2015 | - | 11,275,854 | 8,249,575 |
| crypto/ | H | 26-Jul-2015 | - | 1,512,575 | 1,115,959 |
| etc/ | H | 26-Jul-2015 | - | 41,223 | 30,675 |
| games/ | H | 26-Jul-2015 | - | 82,754 | 79,186 |
| gnu/ | H | 26-Jul-2015 | - | 95,283 | 68,121 |
| include/ | H | 26-Jul-2015 | - | 57,710 | 34,392 |
| kerberos5/ | H | 26-Jul-2015 | - | 7,261 | 5,064 |
| lib/ | H | 26-Jul-2015 | - | 799,098 | 585,967 |
| libexec/ | H | 26-Jul-2015 | - | 55,754 | 38,825 |
| release/ | H | 26-Jul-2015 | - | 23,529 | 17,373 |
| rescue/ | H | 26-Jul-2015 | - | 328 | 203 |
| sbin/ | H | 26-Jul-2015 | - | 249,983 | 199,733 |
| secure/ | H | 26-Jul-2015 | - | 143,421 | 128,902 |
| share/ | H | 26-Jul-2015 | - | 1,636,682 | 1,608,569 |
| sys/ | H | 26-Jul-2015 | - | 6,907,747 | 4,970,588 |
| tests/ | H | 26-Jul-2015 | - | 11,891 | 7,965 |
| tools/ | H | 26-Jul-2015 | - | 1,787,539 | 1,723,534 |
| usr.bin/ | H | 26-Jul-2015 | - | 411,149 | 309,643 |
| usr.sbin/ | H | 26-Jul-2015 | - | 585,534 | 447,538 |
| .mach-compat.diff.swp | D | 28-Jul-2015 | 24 KiB | | |
| COPYRIGHT | HD | 26-Jul-2015 | 6 KiB | | |
| LOCKS | HD | 26-Jul-2015 | 687 | | |
| MAINTAINERS | HD | 26-Jul-2015 | 6.1 KiB | | |
| Makefile | HD | 26-Jul-2015 | 19.1 KiB | | |
| Makefile.inc1 | HD | 26-Jul-2015 | 65.1 KiB | | |
| ObsoleteFiles.inc | HD | 26-Jul-2015 | 281.1 KiB | | |
| README | HD | 26-Jul-2015 | 6.3 KiB | | |
| UPDATING | HD | 26-Jul-2015 | 88 KiB | | |
| connect-mach-march31.diff | D | 26-Jul-2015 | 2.2 KiB | 60 | 56 |
| initial stab at compiling mach.diff | D | 28-Jul-2015 | 239.1 KiB | 7,098 | 6,547 |
| mach-compat.diff | D | 26-Jul-2015 | 451.6 KiB | 14,804 | 14,800 |
| poolstozones.patch | D | 28-Jul-2015 | 8.1 KiB | 265 | 234 |
README
1This is the mach_support branch. It adds support for a subset of the mach
2API as a precursor to supporting launchd. The mach interface generator should
3be able to work with modern .defs (MIG) files.
4
5Basic Mach IPC is supported through the mach kernel module or COMPAT_MACH_STATIC.
6It is now a module by default to workaround the limited typeid space (15 bits) of
7dtrace.
8
9
10The Mach services kernel module (mach.ko) can only be loaded at boot time. Add the following line
11to /boot/loader.conf:
12mach_load="YES"
13
14As it stands, launchd will dispatch jobs but as it is is currently set to only link
15dynamically - preventing from running as pid1. It is considered early alpha.
16
17launchd can be run as pid1 by adding the following to loader.conf:
18init_path="/sbin/launchd"
19or at the loader prompt:
20set init_path="/sbin/launchd"
21
22
23Note that launchctl has just been added to the build. It uses json plists. XML
24plists can be converted with the help of OSX's plutil. Basic plists will be added
25to the tree shortly.
26
27
28Unsupported OSX / Mach functionality:
29 - updating the audit token when setuid/setgid/ etc are called
30 - (OOL) out of line descriptors of any kind
31 - memory object creation (used in parts of libdispatch)
32 - kevent64 support for receipt of messages in kevent (new in Yosemite, but not currently used by anything that I know of)
33 - voucher ports (used only by most recent parts of libdispatch)
34
35
36Work to be done for v0:
37
38- launch gettys so that console input works
39
40- make launchd useful
41 - write plists for basic services
42
43 - track down the shims for xinetd / crond
44
45- verify that in-tree libdispatch works
46 - get the tests associated with libdispatch compiling to figure out if anything
47 is broken - the latest versions can be found at:
48 http://libdispatch.macosforge.org/trac/browser/trunk/testing
49
50 - figure out why that function for block private data isn't being generated
51
52
53Missing mach features ordered by version of launchd by which they'll be supported:
54
55v0: mach support is now feature complete for v0
56v1:
57Support:
58- MACH_SEND_NOTIFY
59
60kevent flags needed by (at least) libdispatch:
61- EVFILT_VM
62 - NOTE_VM_PRESSURE
63 - NOTE_VM_ERROR
64
65per-user & per-session launchds (xpc domain system in domain.defs)
66 - The audit session system calls: audit_session_self, audit_session_join,
67 and audit_session_port
68
69libUCL (YAML & JSON) configuration
70
71extended posix_spawnattr calls in support/posix_spawn.c are not expected
72to actually work yet, among others:
73- posix_spawnattr_setbinpref_np
74- posix_spawnattr_getbinpref_np
75
76proc_setpcontrol
77proc_get_dirty
78proc_set_dirty
79proc_track_dirty
80
81
82v2 or later:
83
84- AF_SYSTEM domain sockets and the event protocols
85
86- XPC_JETSAM_BANDs (handle memory pressure)
87
88I/O priority setting functionality - system call:
89__iopolicysys supports:
90 - getiopolicy_np
91 - setiopolicy_np
92
93
94- except NOTE_EXIT_MEMORY of questionable relevance
95#define NOTE_EXITSTATUS 0x04000000 /* exit status to be returned, valid for child process only */
96#define NOTE_EXIT_DETAIL 0x02000000 /* provide details on reasons for exit */
97/*
98 * If NOTE_EXIT_DETAIL is present, these bits indicate specific reasons for exiting.
99 */
100#define NOTE_EXIT_DETAIL_MASK 0x00070000
101#define NOTE_EXIT_DECRYPTFAIL 0x00010000
102#define NOTE_EXIT_MEMORY 0x00020000
103#define NOTE_EXIT_CSERROR 0x00040000
104
105
106
107
108
109This is the top level of the FreeBSD source directory. This file
110was last revised on:
111$FreeBSD$
112
113For copyright information, please see the file COPYRIGHT in this
114directory (additional copyright information also exists for some
115sources in this tree - please see the specific source directories for
116more information).
117
118The Makefile in this directory supports a number of targets for
119building components (or all) of the FreeBSD source tree, the most
120commonly used one being ``world'', which rebuilds and installs
121everything in the FreeBSD system from the source tree except the
122kernel, the kernel-modules and the contents of /etc. The ``world''
123target should only be used in cases where the source tree has not
124changed from the currently running version. See:
125http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/makeworld.html
126for more information, including setting make(1) variables.
127
128The ``buildkernel'' and ``installkernel'' targets build and install
129the kernel and the modules (see below). Please see the top of
130the Makefile in this directory for more information on the
131standard build targets and compile-time flags.
132
133Building a kernel is a somewhat more involved process, documentation
134for which can be found at:
135 http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig.html
136And in the config(8) man page.
137Note: If you want to build and install the kernel with the
138``buildkernel'' and ``installkernel'' targets, you might need to build
139world before. More information is available in the handbook.
140
141The sample kernel configuration files reside in the sys/<arch>/conf
142sub-directory (assuming that you've installed the kernel sources), the
143file named GENERIC being the one used to build your initial installation
144kernel. The file NOTES contains entries and documentation for all possible
145devices, not just those commonly used. It is the successor of the ancient
146LINT file, but in contrast to LINT, it is not buildable as a kernel but a
147pure reference and documentation file.
148
149
150Source Roadmap:
151---------------
152bin System/user commands.
153
154cddl Various commands and libraries under the Common Development
155 and Distribution License.
156
157contrib Packages contributed by 3rd parties.
158
159crypto Cryptography stuff (see crypto/README).
160
161etc Template files for /etc.
162
163games Amusements.
164
165gnu Various commands and libraries under the GNU Public License.
166 Please see gnu/COPYING* for more information.
167
168include System include files.
169
170kerberos5 Kerberos5 (Heimdal) package.
171
172lib System libraries.
173
174libexec System daemons.
175
176release Release building Makefile & associated tools.
177
178rescue Build system for statically linked /rescue utilities.
179
180sbin System commands.
181
182secure Cryptographic libraries and commands.
183
184share Shared resources.
185
186sys Kernel sources.
187
188tools Utilities for regression testing and miscellaneous tasks.
189
190usr.bin User commands.
191
192usr.sbin System administration commands.
193
194
195For information on synchronizing your source tree with one or more of
196the FreeBSD Project's development branches, please see:
197
198 http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/synching.html
199