As theories swirl about Air India crash, key details remains unknown
© Lukas Coch/AAP, via Reuters
In the previous article I looked at how RunningBoard monitored an ordinary notarized macOS app, but didn’t manage its life cycle by limiting its access to resources such as memory, CPU or GPU. Here I extend that to the two types of app that are most likely to be managed by RunningBoard, Catalyst and iPadOS apps.
Apple introduced this as a streamlined way for developers of iPadOS apps to be able to create a version that runs in macOS from Catalina onwards. When running on macOS, Catalyst apps are dependent on RunningBoard’s life cycle management, UIKitSystem (which first appeared in macOS Mojave) to bridge between UIKit’s class framework in iPadOS and those in macOS, and additional -board services including FrontBoard, FuseBoard and BaseBoard. Catalyst apps also have access to some features in AppKit, the central class framework for apps developed for macOS, at least until SwiftUI has started to replace it.
Although Apple might have had high hopes of Catalyst bringing many new apps from iPadOS, it hasn’t proved popular with third-party developers, and the ability of Apple silicon Macs to run iPadOS and iOS apps has reduced its relevance to users.
RunningBoard’s lengthy job descriptions recorded in the log early during the app launch process allow regular macOS, Catalyst and iPadOS apps to be distinguished easily. At the start of each job description, the Platform is recorded, 1 for macOS, 2 for iPadOS, and 6 for Catalyst.
Other differences in job descriptions include:
Catalyst apps are launched using the same basic sequence of events as regular macOS apps, with some additional overhead resulting from their UIKitSystem and -board service support. However, when they reach RunningBoard they become managed, in the test case denying it access to the GPU:00.984295 com.apple.runningboard [app…] Memory Limits: active 0 inactive 0
00.984303 com.apple.runningboard [app…] This process will be managed.
00.984307 com.apple.runningboard <private> is not freezer eligible, disabling freezing.
00.985634 com.apple.runningboard [app…] Set jetsam priority to 0 [0] flag[1]
00.985649 com.apple.runningboard 3638 Set Darwin GPU to "deny"
00.985708 com.apple.runningboard 3638 setGPURole role to 2 (no effect for this process)
00.985715 com.apple.runningboard [app…] Disabled CPU monitoring
00.985716 com.apple.runningboard [app…] Reset CPU monitoring limits to defaults
00.985717 com.apple.runningboard [app…] Resumed CPU monitoring
where [app…] is the app identifier.
Later management includes regular state updates, such as01.209325 com.apple.runningboard Update delivered for [app…] with taskState 4
01.209327 com.apple.runningboard Received state update for 3638 (app…, running-active-Visible
iPadOS and iOS apps are launched completely differently on macOS. Initially MIS, presumably MobileInstallationService, validates the app and its Wrapper, which are translocated to a hidden location in /private/var/folders, from where the wrapped app will be launched. Translocation isn’t intended as a security measure, as it is with macOS apps run there when in quarantine, but is required to work around two limitations:
Those are reflected in the following log entries, which have changed little since Big Sur:00.946662 com.apple.mis Bundle: <private>
00.946662 com.apple.mis Is main executable: 0
00.953668 com.apple.syspolicy MIS validation result: 0
00.953673 com.apple.syspolicy Valid app wrapper: <private>
00.953719 com.apple.syspolicy appWrapperPolicyResult: <private>, AWPolicyResult: 1,1,0
00.956399 com.apple.securityd SecTranslocateCreateGeneric: created /private/var/folders/x4/[…]/d/Wrapper
00.965043 com.apple.launchservices LAUNCH: translocate to <private> from <private>
01.047816 com.apple.launchservices Marking <private> as .requiresSecureLaunch because it is PLATFORM_IOS or PLATFORM_MACCATALYST.
01.049878 com.apple.launchservices LAUNCH: _LSLaunchThruRunningboard: com.parrot.freeflight6 / <private>
FairPlay DRM is then accessed through the Secure Enclave Processor.
When it reaches the attention of RunningBoard, the app’s memory limits are set, it’s denied the GPU, and it’s then managed through its life cycle.02.365127 com.apple.runningboard [app…:3466] Memory Limits: active 16384 inactive 16384
02.365137 com.apple.runningboard [app…:3466] This process will be managed.
02.365142 com.apple.runningboard <private> is not freezer eligible, disabling freezing.
02.365150 com.apple.runningboard Now tracking process: [app…:3466]
02.367347 com.apple.runningboard 3466 Set Darwin GPU to "deny"
02.367450 com.apple.runningboard 3466 setGPURole role to 2 (no effect for this process)
02.367460 com.apple.runningboard [app…:3466] Disabled CPU monitoring
02.367462 com.apple.runningboard [app…:3466] Reset CPU monitoring limits to defaults
02.367464 com.apple.runningboard [app…:3466] Resumed CPU monitoring
02.367496 com.apple.runningboard [app…:3466] set Memory Limits to Hard Inactive (16384)
where [app…:3466] is the app identifier.
That’s followed by frequent assertions and state updates.
Some users have reported RunningBoard using high CPU %, sometimes associated with high levels from PerfPowerServices. By chance, during these tests I encountered a similar situation. For several seconds, the log was filled with entries recording com.apple.PerfPowerServices
requesting management information from RunningBoard about most if not all services running at that time.
Many entry sequences followed the pattern:00.004740 com.apple.runningboard PERF: Received request from [osservice<com.apple.PerfPowerServices>:976] (euid 0, auid 0) (persona (null)): lookupHandleForPredicate:error:
00.004743 com.apple.runningboard PERF: Received lookupHandleForPredicate request from [osservice<com.apple.PerfPowerServices>:976] (euid 0, auid 0) (persona (null))
00.004971 com.apple.runningboard _multiInstance = 0
00.004973 com.apple.runningboard _executablePath = /usr/sbin/cfprefsd
00.004974 com.apple.runningboard no additional launch properties found for <private>
00.005020 com.apple.runningboard _resolveProcessWithIdentifier pid 2712 euid 277 auid 277
00.005040 com.apple.runningboard Resolved pid 2712 to [osservice<com.apple.cfprefsd.xpc.agent(277)>:2712]
00.005089 com.apple.runningboard memorystatus_control error: MEMORYSTATUS_CMD_CONVERT_MEMLIMIT_MB(-1) returned -1 22 (Invalid argument)
00.005091 com.apple.runningboard memorystatus_control error: MEMORYSTATUS_CMD_CONVERT_MEMLIMIT_MB(0) returned -1 22 (Invalid argument)
00.007828 com.apple.runningboard Full encoding handle <private>, with data 44b0344500000a98, and pid 2712
00.008019 com.apple.runningboard [osservice<com.apple.cfprefsd.xpc.agent(277)>:2712] is not RunningBoard jetsam managed.
00.008040 com.apple.runningboard [osservice<com.apple.cfprefsd.xpc.agent(277)>:2712] This process will not be managed.
for multiple copies of cfprefsd
, and many other processes.
Presumably PerfPowerServices is concerned with performance power services, but the purpose of these many requests is unknown. After a few seconds of frenetic activity, and more than 10,000 log entries, this subsided and normal running was resumed. If anyone can provide an explanation, I’d be most grateful.
Donald Trump has said that he is disappointed but not done with Vladimir Putin, in an exclusive phone call with the BBC.
The US president was pressed on whether he trusts the Russian leader, and replied: "I trust almost no-one."
Trump was speaking hours after he announced plans to send weapons to Ukraine and warned of severe tariffs on Russia if there was no ceasefire deal in 50 days.
In a wide-ranging interview from the Oval Office, the president also endorsed Nato, having once described it as obsolete, and affirmed his support for the organisation's common defence principle.
The president made the phone call, which lasted 20 minutes, to the BBC after conversations about a potential interview to mark one year on since the attempt on his life at a campaign rally in Butler, Pennsylvania.
Asked about whether surviving the assassination attempt had changed him, Trump said he liked to think about it as little as possible.
"I don't like to think about if it did change me," Trump said. Dwelling on it, he added, "could be life-changing".
Having just met with Nato chief Mark Rutte at the White House, however, the president spent a significant portion of the interview expanding on his disappointment with the Russian leader.
Trump said that he had thought a deal was on the cards with Russia four different times.
When asked by the BBC if he was done with Putin, the president replied: "I'm disappointed in him, but I'm not done with him. But I'm disappointed in him."
Pressed on how Trump would get Putin to "stop the bloodshed" the US president said: "We're working it, Gary."
"We'll have a great conversation. I'll say: 'That's good, I'll think we're close to getting it done,' and then he'll knock down a building in Kyiv."
The conversation moved onto Nato, which Trump has previously criticised as "obsolete".
Asked if he still thought this was the case, he said: "No. I think Nato is now becoming the opposite of that" because the alliance was "paying their own bills".
He said he still believed in collective defence, because it meant smaller countries could defend themselves against larger ones.
President Trump was also asked about the UK's future in the world and said he thought it was a "great place - you know I own property there".
He spoke about how he was looking forward to an unprecedented second state visit to the UK in September this year.
On what he wanted to achieve during the visit, Trump said: "Have a good time and respect King Charles, because he's a great gentleman."
China's economy has slowed as trade turmoil triggered by US President Donald Trump's tariffs and a prolonged crisis in the property market weigh on growth.
Official figures show the world's second largest economy grew by 5.2% in the three months to the end of June, compared to the same time last year. That's down from 5.4% in the previous quarter.
But the country has so far avoided a sharp downturn, partly due to measures announced by Beijing to help support the economy and a fragile tariffs truce with Washington.
Trump has given China until 12 August to reach a long-term trade deal with the US to end a tit-for-tat trade war that saw their tariffs on each other soar to more than 100%.
Some economists expect China to miss its "around 5%" annual growth target this year.
"The real question is by how much. We believe it will defend a floor of 4%, which remains the minimum politically acceptable level," Dan Wang, director for China at consultancy Eurasia Group told the BBC.
A tariffs war between China's President Xi Jinping and Trump led to the US imposing a 145% levy on Chinese imports. In return, Beijing introduced a 125% duty on some US goods.
Washington has also hit countries with close economic ties to China with heavy levies.
Meta's founder Mark Zuckerberg has said the social media giant will spend hundreds of billions of dollars on building huge AI data centres in the US.
The first multi-gigawatt data centre, called Prometheus, is expected to come online in 2026, Zuckerberg said.
He said one of the sites would cover an area nearly the size of Manhattan (59.1 sq km/22.8 sq miles).
Meta has invested heavily in efforts to develop what it called "superintelligence" - technology that it said could out-think the smartest humans.
The company, which has made most of its money from online advertising, generated more than $160bn in revenue in 2024.
In a post on his social media platform, Threads, Zuckerberg said Meta was building several multi-gigawatt clusters, and that one cluster, called Hyperion, could scale up to five gigawatts over several years.
"We're building multiple more titan clusters as well. Just one of these covers a significant part of the footprint of Manhattan," he added.
Prometheus will be built in New Albany, Ohio, while Hyperion will be built in Louisiana and is expected to be fully online by 2030, Zuckerberg said.
He said Meta would "invest hundreds of billions of dollars... to build superintelligence" and that the centres had been given "names befitting their scale and impact".
Karl Freund, principal analyst at Cambrian AI Research, told the BBC, "clearly, Zuckerberg intends to spend his way to the top of the AI heap".
"The talent he is hiring will have access to some of the best AI Hardware in the world," Freund added.
Meta shares were trading 1% higher following the announcement, Reuters news agency reported. The stock has risen more than 20% so far this year.
There are at least 10,000 data centres around the world hosting the cloud - remote servers that store digital information - with most of them located in the US, followed by the UK and Germany.
AI-driven data centres are extremely energy and water intensive. One study estimates that these centres could consume 1.7 trillion gallons of water globally by 2027. A single AI query - for example, a request to ChatGPT - can use about as much water as a small bottle you'd buy from the corner shop.
凌晨快一点的时候在小区内差点被楼上扔下来的奶茶杯砸到,大概掉在我前进路线的前面 2 米,从杯子里飞出来的东西看,剩下的东西虽然不多,但是整个杯子的底部都碎了(杯子是那种硬塑料的)。 这种冲击力大人被砸到肯定爆头,小孩被砸到也有丧命的可能。 我报了警,奶茶杯上有点单的标签,警察说肯定能找到的。 因为当时太晚了,警察叫我找时间到派出所做笔录,我决定中午不睡觉也要回去派出所做笔录。 另外,我网上查了下高空抛物罪还是挺重的,想了解下这些人的心理,家里没有垃圾桶可以扔吗?为什么非要从楼下扔东西下来。
看了很多书,都说这样对,减少烦恼,减少痛苦,痛苦的来源在于预期,要降低预期。
可是我真的有点不能这样。
我真的会有预期。
而且没有反馈,没有达到预期真的痛苦。
是我经历不够吗?
本人手机 x200Ultra vivo 自带的邮箱软件真的是太垃圾了,五分钟检测一次,无法做到实时推送 网易邮箱大师推送还行,就是广告不是一般的多,特别臃肿 各位大佬有没有推荐的安卓邮箱软件。
偶然间翻到了自己在小米云服务里存的照片,差不多有 9 年了(这里也要感谢小米,好多年没用小米手机了云服务里的照片都还在),就想着能在本地把照片备份下来,了解了下 NAS 感觉太重了又没有必要,没有那么多照片需要保存且只备份相册使用场景太单一,除此以外还有几个需求也希望能满足:
自己家里有台闲置的笔记本电脑,如果能利用起来就更好了
家里还有好几部用坏了的旧安卓手机,小米和 oppo 的居多,里面也有很多照片视频,能否想办法把这些资料导出来呢,送去维修感觉不值当
凌晨快一点的时候在小区内差点被楼上扔下来的奶茶杯砸到,大概掉在我前进路线的前面 2 米,从杯子里飞出来的东西看,剩下的东西虽然不多,但是整个杯子的底部都碎了(杯子是那种硬塑料的)。 这种冲击力大人被砸到肯定爆头,小孩被砸到也有丧命的可能。 我报了警,奶茶杯上有点单的标签,警察说肯定能找到的。 因为当时太晚了,警察叫我找时间到派出所做笔录,我决定中午不睡觉也要回去派出所做笔录。 另外,我网上查了下高空抛物罪还是挺重的,想了解下这些人的心理,家里没有垃圾桶可以扔吗?为什么非要从楼下扔东西下来。
最近参加了一场面试非常顺利直接走到了提交流水,以为已经稳了,但是已经提交完两天了也没联系谈薪。感觉是提前半场开香槟了。