-
公开(公告)号:US10884831B2
公开(公告)日:2021-01-05
申请号:US16071722
申请日:2018-06-26
Applicant: Apple Inc.
Inventor: Peter H. van der Veen , Shawn R. Woodtke , Stephen J. McPolin
Abstract: In an embodiment, an operating system for a computer system is built on a set of capabilities. Each capability includes at least one pointer to a function that implements the capability. One or more actors are defined which use one or more of the capabilities, and which may be connected to other actors for communication through channels. The channels may be created and maintained by a channel actor. In an embodiment, one or more actors may be assembled to create a composed actor. The actors within the composed actor still communicate over the channels defined between the internal actors, but may pass channel identifiers for actors outside the composed actor, so that the actors within the composed actor communicate with the outside actors as if they were one single actor. Arbitrarily complex actors may be formed in this fashion, while still maintaining the stability and safety of the initial actors.
-
公开(公告)号:US20200319921A1
公开(公告)日:2020-10-08
申请号:US16071841
申请日:2018-06-26
Applicant: Apple Inc.
Inventor: Shawn R. Woodtke , Peter H. van der Veen , Stephen J. McPolin
Abstract: In an embodiment, an operating system for a computer system includes a kernel that assigns code sequences to execute on various processors. The kernel itself may execute on a processor as well. Specifically, in one embodiment, the kernel may execute on a processor with a relatively low instructions per clock (IPC) design. At least a portion of other processors in the system may have higher IPC designs, and processors with higher IPC designs may be used to execute some of the code sequences. A given code sequence executing on a processor may queue multiple messages to other code sequences, which the kernel may asynchronously read and schedule the targeted code sequences for execution in response to the messages. Rather than synchronously preparing a message and making a call to send the message, the executing code sequences may continue executing and queuing messages until the code has completed or is in need of a result from one of the messages.
-
公开(公告)号:US10990457B2
公开(公告)日:2021-04-27
申请号:US16076513
申请日:2018-06-26
Applicant: Apple Inc.
Inventor: Gianluca Guida , Aleksandar Ristovski , Stephen J. McPolin , Peter H. van der Veen , Shawn R. Woodtke
Abstract: In an embodiment, an operating system is defined in terms of a set of actors, each of which implements one or more capabilities built into the system. The actors may establish channels between them for communication of messages between the actors. Some actors may interpose between other actors. These other actors may, in some cases, interpose on channels used by the base actor. In some embodiments, some channels may be interposed while others may be monitored by the interposing actor but may still communicate directly with the underlying actor. Some channels may not be affected by the interposition (e.g. the channels may not be interposed or monitored), in an embodiment. Other examples of interposition may include debugging, simulation, and sandboxing.
-
公开(公告)号:US10970383B2
公开(公告)日:2021-04-06
申请号:US16117679
申请日:2018-08-30
Applicant: Apple Inc.
Inventor: Andrew C. Boyd , Denis J. Palmans , Peter H. van der Veen , Stephen J. McPolin , Gilberto Gemin , Stephane Couture , Joseph A. Sarlo
Abstract: In an embodiment, an operating system includes a device manager that is a central repository of device information. Device drivers may communicate with the device manager over respective channels, and may request channel identifiers (Cids) to communicate with resources related to the respective devices. The device manager may provide values for resource access (or handles that the resources may use to access values). In an embodiment, the device drivers do not have the ability to allocate resources for a peripheral device. Accordingly, the security of the system may be increased. Furthermore, the resource allocation may be centrally located, simplifying the process of updating resource allocation when needed. Additionally, the device manager may delay response to requests from a given device driver until its dependencies are clear (e.g. other device drivers and hardware initializations). Thus, startup scripts may be avoided in some embodiments.
-
公开(公告)号:US11899775B2
公开(公告)日:2024-02-13
申请号:US17190699
申请日:2021-03-03
Applicant: Apple Inc.
Inventor: Andrew C. Boyd , Denis J. Palmans , Peter H. van der Veen , Stephen J. McPolin , Gilberto Gemin , Stephane Couture , Joseph A. Sarlo
Abstract: In an embodiment, an operating system includes a device manager that is a central repository of device information. Device drivers may communicate with the device manager over respective channels, and may request channel identifiers (Cids) to communicate with resources related to the respective devices. The device manager may provide values for resource access (or handles that the resources may use to access values). In an embodiment, the device drivers do not have the ability to allocate resources for a peripheral device. Accordingly, the security of the system may be increased. Furthermore, the resource allocation may be centrally located, simplifying the process of updating resource allocation when needed. Additionally, the device manager may delay response to requests from a given device driver until its dependencies are clear (e.g., other device drivers and hardware initializations). Thus, startup scripts may be avoided in some embodiments.
-
公开(公告)号:US10929178B1
公开(公告)日:2021-02-23
申请号:US16071634
申请日:2018-06-26
Applicant: Apple Inc.
Inventor: Peter H. van der Veen , Shawn R. Woodtke , Stephen J. McPolin
Abstract: In an embodiment, an operating system for a computer system assigns each independently-schedulable code sequence to an activity. An activity may thus be associated with a group of related code sequences, such as threads that communicate with each other (whether or not they are part of the same program). When a code sequence is ready to be scheduled and it is not part of the current activity, it may preempt the current activity if the activity for the code sequence is not enabled and is not masked by the enabled activities. Each activity may define which other activities it masks. A flexible scheduling scheme may be devised based on the mask assignments for each activity.
-
公开(公告)号:US20200310894A1
公开(公告)日:2020-10-01
申请号:US16076513
申请日:2018-06-26
Applicant: Apple Inc.
Inventor: Gianluca Guida , Aleksandar Ristovski , Stephen J. McPolin , Peter H. van der Veen , Shawn R. Woodtke
Abstract: In an embodiment, an operating system is defined in terms of a set of actors, each of which implements one or more capabilities built into the system. The actors may establish channels between them for communication of messages between the actors. Some actors may interpose between other actors. These other actors may, in some cases, interpose on channels used by the base actor. In some embodiments, some channels may be interposed while others may be monitored by the interposing actor but may still communicate directly with the underlying actor. Some channels may not be affected by the interposition (e.g. the channels may not be interposed or monitored), in an embodiment. Other examples of interposition may include debugging, simulation, and sandboxing.
-
公开(公告)号:US20210182375A1
公开(公告)日:2021-06-17
申请号:US17190699
申请日:2021-03-03
Applicant: Apple Inc.
Inventor: Andrew C. Boyd , Denis J. Palmans , Peter H. van der Veen , Stephen J. McPolin , Gilberto Gemin , Stephane Couture , Joseph A. Sarlo
Abstract: In an embodiment, an operating system includes a device manager that is a central repository of device information. Device drivers may communicate with the device manager over respective channels, and may request channel identifiers (Cids) to communicate with resources related to the respective devices. The device manager may provide values for resource access (or handles that the resources may use to access values). In an embodiment, the device drivers do not have the ability to allocate resources for a peripheral device. Accordingly, the security of the system may be increased. Furthermore, the resource allocation may be centrally located, simplifying the process of updating resource allocation when needed. Additionally, the device manager may delay response to requests from a given device driver until its dependencies are clear (e.g., other device drivers and hardware initializations). Thus, startup scripts may be avoided in some embodiments.
-
公开(公告)号:US20200310893A1
公开(公告)日:2020-10-01
申请号:US16071722
申请日:2018-06-26
Applicant: Apple Inc.
Inventor: Peter H. van der Veen , Shawn R. Woodtke , Stephen J. McPolin
Abstract: In an embodiment, an operating system for a computer system is built on a set of capabilities. Each capability includes at least one pointer to a function that implements the capability. One or more actors are defined which use one or more of the capabilities, and which may be connected to other actors for communication through channels. The channels may be created and maintained by a channel actor. In an embodiment, one or more actors may be assembled to create a composed actor. The actors within the composed actor still communicate over the channels defined between the internal actors, but may pass channel identifiers for actors outside the composed actor, so that the actors within the composed actor communicate with the outside actors as if they were one single actor. Arbitrarily complex actors may be formed in this fashion, while still maintaining the stability and safety of the initial actors.
-
公开(公告)号:US20190102535A1
公开(公告)日:2019-04-04
申请号:US16117679
申请日:2018-08-30
Applicant: Apple Inc.
Inventor: Andrew C. Boyd , Denis J. Palmans , Peter H. van der Veen , Stephen J. McPolin , Gilberto Gemin , Stephane Couture , Joseph A. Sarlo
IPC: G06F21/44
Abstract: In an embodiment, an operating system includes a device manager that is a central repository of device information. Device drivers may communicate with the device manager over respective channels, and may request channel identifiers (Cids) to communicate with resources related to the respective devices. The device manager may provide values for resource access (or handles that the resources may use to access values). In an embodiment, the device drivers do not have the ability to allocate resources for a peripheral device. Accordingly, the security of the system may be increased. Furthermore, the resource allocation may be centrally located, simplifying the process of updating resource allocation when needed. Additionally, the device manager may delay response to requests from a given device driver until its dependencies are clear (e.g. other device drivers and hardware initializations). Thus, startup scripts may be avoided in some embodiments.
-
-
-
-
-
-
-
-
-