2022-05-14, 23:04
  #1
Medlem
Neolitikums avatar
Är ny på macOS, men inte på andra OS. Hur fungerar appar motsvarande flatpak eller liknande namn på andra plattformar? Ubuntu Snap är sämre så jag klagar inte, vill bara lära mig.

Mycket av det som man laddar ner utanför Appstore är just denna formen av appar, som inte är helt för mig logiska.

Hur fungerar de så jag lär mig få dem installerade korrekt och kunna finnas lätt igen. qbittorrent-4.4.2.dmg såg ut som en vanlig installationsapp tills jag skulle använda den igen och var inte ens installerad. Ja ni fattar problemet antagligen som nybörjare. Ibland funkar det, så jag vet inte vad som ska göras eller ej.
Citera
2022-05-15, 09:03
  #2
Medlem
Citat:
Ursprungligen postat av Neolitikum
Är ny på macOS, men inte på andra OS. Hur fungerar appar motsvarande flatpak eller liknande namn på andra plattformar? Ubuntu Snap är sämre så jag klagar inte, vill bara lära mig.

Mycket av det som man laddar ner utanför Appstore är just denna formen av appar, som inte är helt för mig logiska.

Hur fungerar de så jag lär mig få dem installerade korrekt och kunna finnas lätt igen. qbittorrent-4.4.2.dmg såg ut som en vanlig installationsapp tills jag skulle använda den igen och var inte ens installerad. Ja ni fattar problemet antagligen som nybörjare. Ibland funkar det, så jag vet inte vad som ska göras eller ej.

Jag är ingen expert men appar via AppStore är sandboxade tror jag.

https://developer.apple.com/document...ty/app_sandbox

https://www.maketecheasier.com/how-m...rotects-users/

Snap har egentligen mer likheter med Docker i det att den förser appen med en egen specialkonfad Linux-image, använder sig bl.a. app armour och Linux Namespaces för att sandboxa appar. Så gör inte macOS tror jag.
Citera
2022-05-15, 11:07
  #3
Moderator
Neksnors avatar
Innan Apple startade sin App Store var det vanligt att appar laddades ner som skivavbilder (.dmg). När du klickar på en sådan monteras skivavbilden och funkar sedan som en vanlig hårddisk, som innehåller appen. Du kan köra appen direkt från skivavbilden eller flytta den till valfri annan mapp. Skivavbilens mapp var ofta lite smyckad med någon pil som pekade på en länk till mappen /Applications. Om man drog appen längs pilen till genvägen så kopierades appen till /Applications. Det sistnämnda kan jämföras med att "installera" appen.
Citera
2022-05-15, 15:36
  #4
Medlem
Citat:
Ursprungligen postat av Sviskonboll
Jag är ingen expert men appar via AppStore är sandboxade tror jag.

https://developer.apple.com/document...ty/app_sandbox

https://www.maketecheasier.com/how-m...rotects-users/

Snap har egentligen mer likheter med Docker i det att den förser appen med en egen specialkonfad Linux-image, använder sig bl.a. app armour och Linux Namespaces för att sandboxa appar. Så gör inte macOS tror jag.
Tyvärr har ju Flatpak och Snap närmast noll sandboxing som standard. Om inte Wayland används finns det inget som "tvingar" apparna att hålla sig sandboxade.

Finns även dessvärre ställen som många appars sandboxar ger åtkomst till som i praktiken innebär att de inte är sandboxade alls.
https://flatkill.org/
^ Inte riktigt så illa är det om du kör en säkerhetsfokuserad dist såsom Silverblue, men Flatpak och Snap är inte drömmen som den förhoppningsvis en dag blir. Så idag är MacOS överlägsen när det gäller sandboxing, tyvärr.
Citera
2022-05-16, 06:30
  #5
Medlem
Citat:
Ursprungligen postat av Batmanbegins
Tyvärr har ju Flatpak och Snap närmast noll sandboxing som standard. Om inte Wayland används finns det inget som "tvingar" apparna att hålla sig sandboxade.

Finns även dessvärre ställen som många appars sandboxar ger åtkomst till som i praktiken innebär att de inte är sandboxade alls.
https://flatkill.org/
^ Inte riktigt så illa är det om du kör en säkerhetsfokuserad dist såsom Silverblue, men Flatpak och Snap är inte drömmen som den förhoppningsvis en dag blir. Så idag är MacOS överlägsen när det gäller sandboxing, tyvärr.

Intressant. Kollade länken lite snabbt (som iofs gällde flatpak som jag inte har så stor koll på). Du menar alltså att sandbox finns, men en stor del av apparna som distribueras inte använder den?

Jag kollade rätt ordentligt på Snap för många år sedan när det var ganska nytt. Med ”kollade på” menar jag att jag grävde i koden för att förstå hur den var uppbyggd, byggde lite egna snaps för att testa etc. Vad jag kunde se då var att själva sandlådan utgjordes av appens egna filer, en mini-dist av Ubuntu, area för appens filer å inställningar. Sen kunde man begära access till t.ex. användarens katalog eller resten av filsystemet, nätverk, mm. Men enligt din länk gällande flatpak så levereras många appar med allt påslaget. En stor besvikelse får jag säga. Speciellt när många Linux-användare gillar säkerhet och kontroll.

Nu handlar tråden om macOS iofs. Apple har under årens gång skärpt säkerheten genom att begränsa funktionen för appar. Som standard måste alla appar (appstore och egna nedladdade) vara signerade för att de ska kunna öppnas. Användaren kan naturligtvis åsidosätta detta.

Resurser som disk, kamera, mikrofon mm måste begäras av appen. Viss funktionalitet är inte tillgänglig via AppStore. T.ex. så är viss hårdvarustatistik inte tillgänglig iStat Menus om den installeras via AppStore.
Citera
2022-05-16, 14:25
  #6
Medlem
Citat:
Ursprungligen postat av Neolitikum
Mycket av det som man laddar ner utanför Appstore är just denna formen av appar, som inte är helt för mig logiska.
Det är väl egentligen hur logiskt som helst? Appar i macOS består i huvudsakligen av kataloger som är namngiva efter "<Applikationsnamn>.app". I den katalogen finns sedan nära nog allt det aktuella programmet behöver för att köras.

Strukturen ser vanligtvis ut så här:

<root>
Contents
- CodeResources
- MacOS
- Resources
- Info.plist
- PkgInfo
- _CodeSignature

Om katalogen (dvs appen) kopieras in i /Applications så dyker den även upp i Launchpad automagiskt. Däremot finns det inget hinder för ett macOS-program att starta från valfri plats (finns ett fåtal undantag).

Högerklickar (eller control+vänsterklickar) du på en "Icon" för ett macOS-program, så kan du välja att se innehållet i katalogen. Det är ofta en barnlek att rensa ut onödiga resurser som språkfiler och typsnitt från ett program i macOS på detta sättet.

Skulle inte vilja jämföra detta alls med Snaps eller Flatpak som är mer likt Windows UWP. Dvs långsamma, begränsande, resurskrävande och allmänt dåliga.

Kan inte komma på någon nackdel alls med Apples .app-format.

Ang. dmg, så är det en "disk image" likt img eller iso som mountas automatiskt i datorn. Inte så konstigt att dessa försvinner efter en eventuell omstart
__________________
Senast redigerad av Walkir 2022-05-16 kl. 14:29.
Citera
2022-05-23, 09:45
  #7
Medlem
Du får skilja på self-contained och sandboxade applikationer.

I stort sett alla macOS appar är self-contained dvs precis som det sagts ovan så är en app egentligen en katalog som innehåller de resurser applikationen behöver (exkluderat systembibliotek), detta är för att att appen inte ska behöva något installationsprogram utan det går dra och släppa där man vill ha den.
Appar har fungerat så på macOS sedan tidernas begynnelse i stort sett, tidigare använde man ett multidimensionellt filsystem som hade olika "spår" i filerna där den ena var data (som på 68k appar var oanvänt överlag, på powerpc sparades programkoden där) den andra resurs spåret som innehöll olika delar av programmet. Detta var ett ganska elegant sätt att förhindra att applikationer hade mängder med filer och blev lätt för användaren att dra och släppa vart som från/till vilken disk som helst, men det hade också ett stort problem det var direkt inkompatibelt med filsystem som inte hade stöd för flera dimensioner vilket krånglade till det rejält när internet kom in i bilden. (Kan läsa mer om det här om du är intresserad av tankegångarna osv... https://en.wikipedia.org/wiki/Resource_fork)

när MacOS X lanserades så fortsatte det stödja detta ett par år men man adopterade OpenSteps motsvarighet som var att binärer osv sparades i "bundles" som är just bara en mapp med en viss ändelse beroende på typ, .app för applikationer som exempel men det används till en mängd olika "filformat".

Detta är vad self-contained innebär i vilket fall.

Det andra är sandboxed, för det är något betydligt nyare på macOS och går kortfattat ut på att en applikation kan innehålla en entitlements fil som ger den rättighet till olika APIer och delar av filsystemet, appar som säljs på AppStore måste ha detta, appar som du får tag på andra vägar har än så länge inget krav på det på macOS (vad jag känner till) men vissa APIer är onåbara om din binär inte är signerad och har en entitlements fil. Sandboxningen i sig är forcerad på kärnnivå om den är aktiv för den appen.
Detta är helt enkelt ett säkerhetslager som är i komplement med self-contained.
Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in