Diskussion kring operativ system och dess teknologier

Permalänk
Avstängd

Diskussion kring operativ system och dess teknologier

Vilket är det grymmaste filsystemet idag? Är det ZFS?
Kommer btrfs att bli en ZFS dödare?

Vad för intressanta funktioner, och teknologier finns i olika operativ system?

Var Workplace Shell (WPS) och System Object Model (SOM) från OS/2 det häftigaste någonsin. Är det så att det finns fortfarande inget som klår det?

Är HAMMER det mest lovande filsystemet?

Har Tanenbaum's MINIX en bättre kernel arkitektur än Linux?

DragonFly BSD har en del intressanta idéer kring kluster, distributed computing, etc.

Är Microsoft Singularity rätt väg att gå?

Om man bygger en kernel i ett språk där man kör managed code och har garbage collection och andra trevligheter som gör det lätt för programmerare. Får man då en snabb utveckling och en väldigt stabil bug-fri kernel? Eller får man långsamt och kasst skräp. Är det framtiden, eller är det för noobs som inte kan progga?

Är HP-UX, IBM AIX, och SGI IRIX bara tråkiga legacy UNIX system som inte erbjuder någonting förutom kommersiell support, eller har de några intressanta teknologier?

Hur är det med VMS / OpenVMS?

Plan 9 from Bell Labs bjuder väl på några trevligheter. 9P är väl ganska trevligt?
Windowsystemet Rio då? Det är ganska lite kod i det, men ska väl ändå ha en del trevligheter...
Några andra trevligheter?

Vilket är rätt väg att gå i kernel design? Exokernel, microkernel, monolitisk kernel, nanokernel, eller någon typ av hybridkernel (eller är det bara ett buzzword?).

Hade AmigaOS något som imponerar?

BeOS var väl väldigt effektivt? Det var väl ganska otroligt vad man kunde göra med den hårdvaran.
Är BeOS fortfarande mycket modernare än andra system?

Bör ett operativ system alltid köras över en hypervisor?

Vilken trådmodell är bäst? 1:1, N:M eller N:1? Finns det andra?

Suger Windows, Linux och Mac?
Är de gamla repliker som desperat har blivit patchade och maintainade för att hänga med idag?

Är NT kärnan väldesignad?
Bjuder NT kärnan eller Windows 7 på något intressant?

Är Solaris stabilare och bättre designat än Linux?

Har BSD fördelar om man jämför med Linux?

Bjuder GNU Hurd på något intressant?
Framtidsutsikten för Hurd ser ju inte så ljus ut, men var idéerna och koncepten ändå solida?

Är det inte dags att lämna C och anamma något trevligare? (väldigt trevlig syntax dock, imho)
Är Stackless Python framtiden för Python?

Är protothreads trevliga?

LLVM är väl intressant. Eller?

Är AFS / OpenAFS det bästa nätverksfilsystemet?

Vilka operativ system och teknologier är intressantast just nu?
Vad är framtiden?

Permalänk
Medlem

~35 frågor i en och samma tråd. Är det inte just detta som vi har "Linux och övriga operativsystem" till? Att ta precis allt i en och samma tråd är väl lite overkill?

Visa signatur

Scenery och flygplansutvecklare till X-plane 11 och FS2020
Besök gärna Flightsim Sweden på: https://discord.gg/QcWHZ2Q

Permalänk
Avstängd

AmigaOS var ett 32-bit multi-threaded, multi-tasking, multi-media operating system. Flera år senare på PC användes DOS som var 16-bit och sög. AmigaOS var ju grymt bättre än DOS, även om DOS var nyare.
Fast det är klart, DOS var ju mycket sämre än Unix. DOS, Windows 3.11, 95, 98, Me har varit skit system.

Citat:

Ursprungligen inskrivet av Wooe
~35 frågor i en och samma tråd. Är det inte just detta som vi har "Linux och övriga operativsystem" till? Att ta precis allt i en och samma tråd är väl lite overkill?

Folk hade nog blivit arga på mig om jag skapade 35 trådar.
Folk snackar ju om en massa andra saker på det här forumet, som "hur man gör blah?".

Den här tråden är för diskussion kring tekniska meriter av operativ system och teknologier.

Permalänk
Medlem
Permalänk
Medlem

Re: Diskussion kring operativ system och dess teknologier

Citat:

Ursprungligen inskrivet av leksak

Vad för intressanta funktioner, och teknologier finns i olika operativ system?

SUN utvecklar det enormt coola stödet för migrering av hela OSet i run-time (inkl. program som körs). Dvs att man byter _all_ hårdvara utan att man tar ner systemet. Detta kan ske över nätet och flyttas till andra sidan jordklotet utan att ta ner ett system. Logical Domains är även det ett fränt koncept som SUN tagit fram, detta ta virtualisering till en helt ny nivå där olika OS exekverar på samma hårdvara fast helt oberoende av varandra samt inget host OS som alla andra OS beror av. FreeBSD, Linux och Solaris har stöd för detta på t.ex. T5520/T2000 burkar. Solaris Zoner är också riktigt fränt, ungefär som Jail i BSD men Zoner är enormt mycket enklare att skapa och få igång (skapa och köra igång en zon tar 1min!)

Citat:

Om man bygger en kernel i ett språk där man kör managed code och har garbage collection och andra trevligheter som gör det lätt för programmerare. Får man då en snabb utveckling och en väldigt stabil bug-fri kernel? Eller får man långsamt och kasst skräp. Är det framtiden, eller är det för noobs som inte kan progga?

Min erfarenhet är att ju mer programspråket hjälper till med och ju mer OSet hjälper till med, desto slöare blir det. Jag utvecklar extrema system med enorma prestandakrav och stabilitetskrav och att använda Java i ett sådant system skulle aldrig gå för sig. Folk kontrar ofta med "Ja, men dagens datorer är ju snabba". Precis, dagens datorer är snabba, så varför inte utnyttja dem till max? Men framtiden är svår att förutse....

Citat:

BeOS var väl väldigt effektivt? Det var väl ganska otroligt vad man kunde göra med den hårdvaran.
Är BeOS fortfarande mycket modernare än andra system?

BeOS är väldigt snabbt och väldigt trevligt, men det känns lite för begränsat än så länge. Jag vet inte hur utvecklingen sker i Zeta eller vad de kallade BeOS för när det gick i graven?

Citat:

Suger Windows, Linux och Mac?
Är de gamla repliker som desperat har blivit patchade och maintainade för att hänga med idag?

Alla klagar på Windows Vista, men jag kör det på min spelburk och har man bra hårdvara så fungerar Vista mycket bättre än vad alla föregångare har gjort. T.ex. XP 64Bit är ett rent skämt. Nu tänker jag dock inte gå in på Microsoft affärsidé, men som OS är Windows bra om man gillar att spela.

Citat:

Är Solaris stabilare och bättre designat än Linux?

Min erfarenhet säger att Solaris är mycket stabilare på SUN med SPARC arktitektur iaf. Sedan kan ju Linux vara minst lika stabilt med bra hårdvara. Det beror ju också vad man använder systemet till.

Citat:

Har BSD fördelar om man jämför med Linux?

Ja, t.ex. FreeBSD/OpenBSD är kompletta system medan Linux är egentligen bara kärnan. Rättningar för kritiska fel rättas oftast fortare i *BSD då de styr över beståndsdelarna själva medan en Linux dist får plocka från olika delar. Sedan finns det en både för och nackdelar åt båda hållen såklart. Får nog bli en ny tråd såfall

Citat:

Är det inte dags att lämna C och anamma något trevligare? (väldigt trevlig syntax dock, imho)
Är Stackless Python framtiden för Python?

C är ett språk som är enormt användbart när det kommer till kritiska system eller prestandakrävande program/system. Ett stort problem som jag ser det är att snart kan tant Agda 90år koda .NET och inte ha en aning om hur minnet är uppbyggt etc. I C måste man förstå sig på sådant, vilket (förhoppningsvis) leder till effektivare program. När alla gamla C-hackers dött ut så kommer ingen kunna skapa dessa "trevliga" verktyg som .NET och programspråk som Java

Visa signatur
Permalänk
Medlem

Vanligtvis brukar man hålla sig till ett diskussionsämne per tråd. Det är en av styrkorna med trådade forum.

Permalänk
Inaktiv

Re: Diskussion kring operativ system och dess teknologier

Citat:

Ursprungligen inskrivet av leksak
Är Microsoft Singularity rätt väg att gå?

Om man bygger en kernel i ett språk där man kör managed code och har garbage collection och andra trevligheter som gör det lätt för programmerare. Får man då en snabb utveckling och en väldigt stabil bug-fri kernel? Eller får man långsamt och kasst skräp. Är det framtiden, eller är det för noobs som inte kan progga?

En del operationer är ruggigt snabba i singularity, så långsamt skräp är det inte.

Permalänk
Medlem

Re: Re: Diskussion kring operativ system och dess teknologier

Citat:

Ursprungligen inskrivet av lallassu

Ja, t.ex. FreeBSD/OpenBSD är kompletta system medan Linux är egentligen bara kärnan. Rättningar för kritiska fel rättas oftast fortare i *BSD då de styr över beståndsdelarna själva medan en Linux dist får plocka från olika delar.

Fast ibland tar det istället 25 år. http://www.vnode.ch/fixing_seekdir

Visa signatur

Plan9 fan. In glenda we trust.

Permalänk
Medlem

Re: Re: Re: Diskussion kring operativ system och dess teknologier

Citat:

Ursprungligen inskrivet av dagle
Fast ibland tar det istället 25 år. http://www.vnode.ch/fixing_seekdir

Det det finns fortfarande grova buggar i såväl Linux och BSD, bara att de inte uppdagats än. Om det nu tog 25 år, så har troligen ingen brytt sig om det, för det har inte varit någon större problem att komma runt det, eller så har ingen funnit felet förrän nu.

Visa signatur
Permalänk
Avstängd
Citat:

Ursprungligen inskrivet av Soulfly
Glöm inte Tux3!
http://tux3.org/

Nej Tux3 får man inte glömma. Det ser också lovande ut.
Inom den snaraste framtiden verkar det dock blir ext4, som nog inte är lika imponerande som ZFS, Tux3 eller btrfs, men den blir nog iaf bättre än ext3.

Citat:

Ursprungligen inskrivet av lallassu
SUN utvecklar det enormt coola stödet för migrering av hela OSet i run-time (inkl. program som körs). Dvs att man byter _all_ hårdvara utan att man tar ner systemet. Detta kan ske över nätet och flyttas till andra sidan jordklotet utan att ta ner ett system. Logical Domains är även det ett fränt koncept som SUN tagit fram, detta ta virtualisering till en helt ny nivå där olika OS exekverar på samma hårdvara fast helt oberoende av varandra samt inget host OS som alla andra OS beror av. FreeBSD, Linux och Solaris har stöd för detta på t.ex. T5520/T2000 burkar. Solaris Zoner är också riktigt fränt, ungefär som Jail i BSD men Zoner är enormt mycket enklare att skapa och få igång (skapa och köra igång en zon tar 1min!)

Jag hörde att AMD och något virtualiseringsföretag nyligen gått ut och sagt att de ska kunna live-migrera från Intel till AMD maskiner, utan omstart eller något. Något som Intel påstått vara omöjligt.
Solaris Zoner kanske vore trevligt om Linux hade.

Citat:

Ursprungligen inskrivet av lallassu
Min erfarenhet är att ju mer programspråket hjälper till med och ju mer OSet hjälper till med, desto slöare blir det. Jag utvecklar extrema system med enorma prestandakrav och stabilitetskrav och att använda Java i ett sådant system skulle aldrig gå för sig. Folk kontrar ofta med "Ja, men dagens datorer är ju snabba". Precis, dagens datorer är snabba, så varför inte utnyttja dem till max? Men framtiden är svår att förutse....

Kanske, men ju snabbare datorerna blir, desto mindre kommer det att spela roll. 1000 MIPS hit eller dit spelar ingen roll om man har 10000000 MIPS.

Citat:

Ursprungligen inskrivet av lallassu
BeOS är väldigt snabbt och väldigt trevligt, men det känns lite för begränsat än så länge. Jag vet inte hur utvecklingen sker i Zeta eller vad de kallade BeOS för när det gick i graven?

Jag håller inte heller riktigt koll på det där. Men de hade ju ZETA av YellowTAB och magnusSoft. Men nu är det också dött. Men nu verkar det leva vidare genom open-source projektet Haiku. Jag såg ett par videos av BeOS på YouTube och det verkade ju väldigt imponerande om man jämförde med dåtida system som Windows 95, 98, NT, etc. Nu har ju andra operativ system förbättrats, men jag undrar om BeOS fortfarande har vissa övertag?
Om jag förstod det rätt, så skulle systemet vara väldigt grymt på att multi-tasking, multimedia och ha låga latenser. Man kunde stänga av/på CPUer, och rendering i programmen skulle anpassas on-demand utan omstartning.

Citat:

Ursprungligen inskrivet av lallassu
Alla klagar på Windows Vista, men jag kör det på min spelburk och har man bra hårdvara så fungerar Vista mycket bättre än vad alla föregångare har gjort. T.ex. XP 64Bit är ett rent skämt. Nu tänker jag dock inte gå in på Microsoft affärsidé, men som OS är Windows bra om man gillar att spela.

Kanske har Vista blivit lite bättre sen SP1 kom. Kanske är det en vanesak, men jag tycker att Vista är mycket mindre användarvänligt än XP.
När pappa köpte laptop med Vista så var den segare än min 10 år gamla dator med XP.
De folk som jag har pratat med, alla säger att Vista suger.
Tex, en kille som inte är så bra på datorer, säger att han inte gillar det, och att han ska byta ut den mot XP.
Jag tycker att Vista har en del trevliga förbättringar (Chess, wallpapers, screensaves, Task Manager, Aero, UAA, WDDM, etc). Men jag tycker att det finns visa dåliga implementeringar av bra idéer (UAC). Jag tycker att i överlag, så imponerar inte systemet.

Citat:

Ursprungligen inskrivet av lallassu
C är ett språk som är enormt användbart när det kommer till kritiska system eller prestandakrävande program/system. Ett stort problem som jag ser det är att snart kan tant Agda 90år koda .NET och inte ha en aning om hur minnet är uppbyggt etc. I C måste man förstå sig på sådant, vilket (förhoppningsvis) leder till effektivare program. När alla gamla C-hackers dött ut så kommer ingen kunna skapa dessa "trevliga" verktyg som .NET och programspråk som Java

Jag tycker att som programmerare ska man inte behöva veta hur minnet är uppbyggt. Det är jobbigt att koda i C, det går långsamt att koda, saker går fel, och man spenderar alldeles för mycket tid att svära och försöka lista ut vad som är fel.
Jag som programmerare ska inte behöva bry mig om en variable är signed/unsigned, int/float/char, etc. Om jag vill använda ljud, så ska inte jag behöva initialisera audiomixern, eller något.

Permalänk
Medlem
Citat:

Jag hörde att AMD och något virtualiseringsföretag nyligen gått ut och sagt att de ska kunna live-migrera från Intel till AMD maskiner, utan omstart eller något. Något som Intel påstått vara omöjligt.
Solaris Zoner kanske vore trevligt om Linux hade.

Det låter inte alls fel om det skulle kunna komma till billigare servrar. Ja, hade zoner funnits för Linux/BSD så hade jag lätt använt det för hemma-projekt.

Citat:

Kanske, men ju snabbare datorerna blir, desto mindre kommer det att spela roll. 1000 MIPS hit eller dit spelar ingen roll om man har 10000000 MIPS.

Tro mig, i vissa system spelar det stor roll om de kan få ut det lilla extra. Man vill alltid ha ut maximalt om man pröjsat flera miljoner för sina servrar.

Citat:

Jag håller inte heller riktigt koll på det där. Men de hade ju ZETA av YellowTAB och magnusSoft. Men nu är det också dött. Men nu verkar det leva vidare genom open-source projektet Haiku. Jag såg ett par videos av BeOS på YouTube och det verkade ju väldigt imponerande om man jämförde med dåtida system som Windows 95, 98, NT, etc. Nu har ju andra operativ system förbättrats, men jag undrar om BeOS fortfarande har vissa övertag?
Om jag förstod det rätt, så skulle systemet vara väldigt grymt på att multi-tasking, multimedia och ha låga latenser. Man kunde stänga av/på CPUer, och rendering i programmen skulle anpassas on-demand utan omstartning.

QNX finns ju också, det är ett realtids OS som är riktigt nice. Körde det på min 200MHz notebook ett tag, tyvärr lite dåligt stöd för hårdvara (t.ex. nätverkskortet jag hade). Tror att det är baserat på Unix dock.

Citat:

Kanske har Vista blivit lite bättre sen SP1 kom. Kanske är det en vanesak, men jag tycker att Vista är mycket mindre användarvänligt än XP.
När pappa köpte laptop med Vista så var den segare än min 10 år gamla dator med XP.
De folk som jag har pratat med, alla säger att Vista suger.
Tex, en kille som inte är så bra på datorer, säger att han inte gillar det, och att han ska byta ut den mot XP.
Jag tycker att Vista har en del trevliga förbättringar (Chess, wallpapers, screensaves, Task Manager, Aero, UAA, WDDM, etc). Men jag tycker att det finns visa dåliga implementeringar av bra idéer (UAC). Jag tycker att i överlag, så imponerar inte systemet.

Vista kräver en del konfigurering för att man ska få det som man vill. UAC kanske inte är den bästa, men att behöva godkänna med ett klick då man installerar ett program är inte hela världen. Hellre det än att okända program som trojaner härjar vilt med super-user rättigheter. Som jag skrev så kräver det en bra burk. Jag kör det på min 3.2GHz burk (se min tag) och absolut inga problem. Jag körde XP32 och XP64 på samma burk tidigare och allt flyter minst lika bra i Vista64 (XP64 funkar dock extremt dåligt).

Citat:

Jag tycker att som programmerare ska man inte behöva veta hur minnet är uppbyggt. Det är jobbigt att koda i C, det går långsamt att koda, saker går fel, och man spenderar alldeles för mycket tid att svära och försöka lista ut vad som är fel.
Jag som programmerare ska inte behöva bry mig om en variable är signed/unsigned, int/float/char, etc. Om jag vill använda ljud, så ska inte jag behöva initialisera audiomixern, eller något.

Har man bra erfarenhet av C samt bra verktyg som purify/purecov/truss/dtrace/pstack/gdb/dbx etc. så tar det sällan tid att lista ut fel. Långsamt att koda, tja, är man inte van så visst, men så är det med allt.

Jag jobbar med att utveckla en protokoll stack för signalering och där är skillnaden mellan signed och unsigned stor! 1 bit extra att använda kan betyda enormt mycket. Det är även då man inser att t.ex. Java är oanvändbart när det kommer till prestanda.
Det jag kan hålla med dig om är att när man skall göra lite extra saker som hantera ljud etc, då krävs det lite mer jobb. Men då kan man alltid använda sig av bibliotek. DirectX för Windows, OpenGL samt ljud-libet-som-jag-glömt-namnet-på för Windows/Linux/Unix. Men samma gäller väl t.ex. Java, det finns väl inget stöd för ljud om man inte har något speciellt paket, eller? (Har inte kodat med ljud i java).

Visa signatur
Permalänk
Medlem
Citat:

Ursprungligen inskrivet av leksak
Jag tycker att som programmerare ska man inte behöva veta hur minnet är uppbyggt. Det är jobbigt att koda i C, det går långsamt att koda, saker går fel, och man spenderar alldeles för mycket tid att svära och försöka lista ut vad som är fel.
Jag som programmerare ska inte behöva bry mig om en variable är signed/unsigned, int/float/char, etc. Om jag vill använda ljud, så ska inte jag behöva initialisera audiomixern, eller något.

Generellt sett har du fel. Gör du en applikation i tex Java som är ämnad att köras hos många användare är det inte bara din prestanda du dribblar med. Kräver du tex 5% mer minne eller CPU är det 5% hos _varje_användare_ vilket blir resurs-slöseri som i värsta fall går att räkna om till några vind-kraftverk. Dessutom gäller många bäckar små principen. Har du 30 processer igång och alla kör .NET istället för optimerad C är det inte svårt att räkna ut vad som är bäst. Som rullande applikation ger .NET / Java inga som helst fördelar jäntemot C, enbart nackdelar. I förlängningen förlorar man alltid på att dra billiga genvägar vid programmeringen.

Skillnad är om man gör något program som körs enstaka gånger, ej skall köras statiskt eller inte skall gå till många användare. Där passar scriptspråken bättre in än Java/.NET.

----

Gammal hederlig prestanda har blivit bortglömd. Idag verkar en del blivit tagna i stjärten av gamla marknadsföringsknep och gladeligen kastar bort prestandan till svinen genom tex .NET . Phoronix har precis gjort benchmarks och jämfört Opensolaris, Ubuntu och FreeBSD med samma tester på samma burk:

http://www.phoronix.com/scan.php?page=article&item=os_threewa...

Ubuntu vann det mesta men Opensolaris vann filsystem-prestanda-testen en bra bit före de övriga med Ubuntu lite snabbare än FreeBSD.

"the strongest performance was exhibited with Ubuntu 8.10. The Intrepid Ibex wasn't the winner in all tests, but in a majority it was and in some of the tests it even garnered a sizeable lead."

"The performance differences between EXT3, UFS, and ZFS are clear."'

Så vad kan man dra för slutsats ang detta, Linux med ZFS kanske?

Permalänk
Medlem
Citat:

Det är även då man inser att t.ex. Java är oanvändbart när det kommer till prestanda.

Måste bara flika in lite off-topic. lallassu verkar leva i en lite äldre värld ( ), numera är Java ruggigt snabbt - beroende på algoritm kan Java till och med vara snabbare än vad C++ och C är. Utvecklarna på Sun har lagt ner ett monsterjobb på att förbättra prestandan för Java. Därmed inte sagt att C är ett utgånget språk - tvärtom, eftersom att prestanda kan mätas på så många olika sätt och varierar mellan algoritmer också. Java har däremot tagit ytterligare ett steg i rätt riktning.

Ett par källor:
http://paulbuchheit.blogspot.com/2007/06/java-is-faster-than-...
http://kano.net/javabench/data

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av bjornie
Måste bara flika in lite off-topic. lallassu verkar leva i en lite äldre värld ( ), numera är Java ruggigt snabbt - beroende på algoritm kan Java till och med vara snabbare än vad C++ och C är. Utvecklarna på Sun har lagt ner ett monsterjobb på att förbättra prestandan för Java. Därmed inte sagt att C är ett utgånget språk - tvärtom, eftersom att prestanda kan mätas på så många olika sätt och varierar mellan algoritmer också. Java har däremot tagit ytterligare ett steg i rätt riktning.

Ett par källor:
http://paulbuchheit.blogspot.com/2007/06/java-is-faster-than-...
http://kano.net/javabench/data

Självklart beror det på vad man testar. Men i system som består av flera miljoner rader kod och har extrema prestandakrav och stabilitetskrav så ser jag inte java som ett alternativ. Krav på att processer ska flytta mellan maskiner på nån ynka sekund etc. Sedan har jag svårt att se java som ett alternativ till det motsatta, inbäddade system där resurserna är få och dyrbara.

Men till vanliga program man kör hemma kanske det finns en mening med det, men jag måste ärligt talat säga att jag undviker fortfarande program skrivna i Java. Det är sällan de är snabba att starta och arbeta i (har fått för mig att t.ex. netbeans/eclipse är java baserat, stämmer det?). Jag står fast vid mitt ord tills någon visat mig ett program som är relativt stort och startar upp lika snabbt som ett liknande C program (syftar på ett workstation program av något slag). Blir jag imponerad kanske jag ändrar åsikt vad gäller workstation program men står fortfarande fast vid att C är det bästa vid monster-system och inbäddade system

Visa signatur
Permalänk
Medlem

Java för desktop-mjukvara rekommenderar väl inte jag heller egentligen, och som du säger tar det längre tid att starta upp ett program i Java än ett program som är native utvecklat för en plattform - så kommer det alltid att vara. .NET använder å andra sidan managed code från operativsystemet - därav hastighetsskillnaden i startup-tid.

Java används ju allt som oftast på stora system, med flera miljoner rader kod - och inte i en desktopmiljö, så jag tycker du har lite fel. Det som Java inte klarar till fullo i dagsläget är realtidsberäkningar - även om det görs en del framsteg även där inom Java-communityn (Lunds TH ligger långt framme inom den grenen t.ex.). Stora affärskritiska banksystem är skrivna i Java, där stabilitetskraven framförallt är i framkant - men även prestanda. Klusterlösningar är inget hinder för att köra Java, det heller.

Inbäddade system har ju Java använts på sen den första kodraden i Java skrevs. Något som man måste komma ihåg är ju att Java faktiskt körs i en virtuell maskin - och inte direkt mot hårdvaran - den interpreteras av en VM (i vissa inbäddade system finns det en "inbyggd" VM i hårdvaran).

Det finns en marknad för Java på båda de alternativen du gav, likaså finns det en marknad för C på dom. Låt oss stanna där, och inte starta något flame war allt för off topic.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av bjornie
Java för desktop-mjukvara rekommenderar väl inte jag heller egentligen, och som du säger tar det längre tid att starta upp ett program i Java än ett program som är native utvecklat för en plattform - så kommer det alltid att vara. .NET använder å andra sidan managed code från operativsystemet - därav hastighetsskillnaden i startup-tid.

Java används ju allt som oftast på stora system, med flera miljoner rader kod - och inte i en desktopmiljö, så jag tycker du har lite fel. Det som Java inte klarar till fullo i dagsläget är realtidsberäkningar - även om det görs en del framsteg även där inom Java-communityn (Lunds TH ligger långt framme inom den grenen t.ex.). Stora affärskritiska banksystem är skrivna i Java, där stabilitetskraven framförallt är i framkant - men även prestanda. Klusterlösningar är inget hinder för att köra Java, det heller.

Inbäddade system har ju Java använts på sen den första kodraden i Java skrevs. Något som man måste komma ihåg är ju att Java faktiskt körs i en virtuell maskin - och inte direkt mot hårdvaran - den interpreteras av en VM (i vissa inbäddade system finns det en "inbyggd" VM i hårdvaran).

Det finns en marknad för Java på båda de alternativen du gav, likaså finns det en marknad för C på dom. Låt oss stanna där, och inte starta något flame war allt för off topic.

Jag startar inget flame war, jag försöker disskutera. Men i ett system som t.ex. har krav på max 5 sekunder nertid / år så är Java svårt att applicera som jag ser det. Eftersom det tar sådan tid att starta upp (antar att det är JVM som tar tid att få igång). Jag har inte kodat något stort system med Java så jag kan tyvärr inte mer än dra paralleller med det system jag jobbar med och kan då inte se något som helst sätt att få ett lika snabbt system i java. Jag menar dock inte att java är instabilt (det är ju trots allt upp till programmeraren, om man antar att JVM är stabil). Hindret med java i klusterlösningar har väl egentligen även det med uppstartstiden att göra imo, annars ser inte jag heller något problem.

När jag menade inbäddade system så tänkte jag främst på små system som routrar, playstation, mobiltelefoner etc. Förutom mobiltelefoner har jag inte sett Java appliceras på sådant system.

En erfarenhet jag har med Java är dock att JVM drar enormt mycket minne. Än mer drar det i t.ex. 1.5 mot vad 1.4 gör med exakt samma applikation. Det är ju heller inte så bra, men detta kanske är konfigurerbart?

Jag tycker att kommentarerna på sidan som du länkade till var bra i många fall.

Dock har jag inget emot Java som programspråk. Det jag försöker säga är nog mer att allt du kan göra i Java kan du göra lika bra C, men allt du kan göra i C kan du inte göra lika bra i Java...än så länge.

Visa signatur
Permalänk
Medlem

C passar för drivrutiner m.m. för att den har så pass låg nivå.
Men vanliga program är oftast inte prestandamonster. Sedan vekrar diskussionen baseras på att det skulle vara lika enkelt att skriva motsvarande program oavsett språk, vilket såklart inte är sant.

Med JIT finns potential att kod optimeras mer än vad en statisk binär från GCC kanske gör, men det är mycket spekulation.
Väldigt få program jag kör är optimerade mer än -O2, och då kan det vara suboptimala algoritmer som körs (onödig hög komplexitet, vilket gör vilket språk som helst slöare än själva fan)
Profiling och sånt körs väldigt sällan, även för kod som utför beräkningar, det är inte värt besväret.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Micket
C passar för drivrutiner m.m. för att den har så pass låg nivå.
Men vanliga program är oftast inte prestandamonster. Sedan vekrar diskussionen baseras på att det skulle vara lika enkelt att skriva motsvarande program oavsett språk, vilket såklart inte är sant.

Med JIT finns potential att kod optimeras mer än vad en statisk binär från GCC kanske gör, men det är mycket spekulation.
Väldigt få program jag kör är optimerade mer än -O2, och då kan det vara suboptimala algoritmer som körs (onödig hög komplexitet, vilket gör vilket språk som helst slöare än själva fan)
Profiling och sånt körs väldigt sällan, även för kod som utför beräkningar, det är inte värt besväret.

Nej diskussionen baseras inte på hur man skriver i de olika språken, det var iaf inte meningen från min sida.
Som du säger optimeras sällan program skrivna i C mer än med O2, men har man väldigt mycket flyttalsberäkningar kan man vinna ganska mycket på att kompilera med olika flaggor, vilket det finns en uppsjö av till exempelvis SS11/SS12. Men som sagt, det är ofta flyttalsberäkningarna som ger skillnad medan man sällan märker skillnad på heltalsberäkningar. Så som jag ser det bör det kunna vara värt besväret i sådant fall där man har ett program som kan få ut det lilla extra pga optimering. Fast man låser såfall ofta på en specifik arktitektur (dvs. låsa mot en specifik SPARC och går då inte köra samma kompilat på en annan SPARC, vilket är något man kanske vill undvika).

Visa signatur
Permalänk
Avstängd

Phoronix körde ett intressant praktiskt test angående flera av frågeställningarna.

http://www.phoronix.com/scan.php?page=article&item=os_threewa...

8 sidor att kolla igenom.

Sen är det väl "mycket snack och lite verkstad" för närvarande... vissa delar av öppenkällkods rörelsen verkar helt förlamade av att diskutera i all oändlighet isf att testa olika mjukvara...

Visa signatur

ASUS K56CB i7, W10 > Asus VivoBook S15 S530UN
HTC 10
ASUS Transformer Prime 32GB, Nougat :)
Ubiquiti Edge Lite, UniFi AP-AC-Lite (AP) samt ASUS AC68U och N66U (AP), fiber 500/100Mbit/s.
Mitt nätverk: https://imgur.com/aco9XQz Bild https://imgur.com/oQ2WG9Y

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av lallassu
Jag startar inget flame war, jag försöker disskutera. Men i ett system som t.ex. har krav på max 5 sekunder nertid / år så är Java svårt att applicera som jag ser det. Eftersom det tar sådan tid att starta upp (antar att det är JVM som tar tid att få igång). Jag har inte kodat något stort system med Java så jag kan tyvärr inte mer än dra paralleller med det system jag jobbar med och kan då inte se något som helst sätt att få ett lika snabbt system i java. Jag menar dock inte att java är instabilt (det är ju trots allt upp till programmeraren, om man antar att JVM är stabil). Hindret med java i klusterlösningar har väl egentligen även det med uppstartstiden att göra imo, annars ser inte jag heller något problem.

När jag menade inbäddade system så tänkte jag främst på små system som routrar, playstation, mobiltelefoner etc. Förutom mobiltelefoner har jag inte sett Java appliceras på sådant system.

En erfarenhet jag har med Java är dock att JVM drar enormt mycket minne. Än mer drar det i t.ex. 1.5 mot vad 1.4 gör med exakt samma applikation. Det är ju heller inte så bra, men detta kanske är konfigurerbart?

Jag tycker att kommentarerna på sidan som du länkade till var bra i många fall.

Dock har jag inget emot Java som programspråk. Det jag försöker säga är nog mer att allt du kan göra i Java kan du göra lika bra C, men allt du kan göra i C kan du inte göra lika bra i Java...än så länge.

Jag menade inte att just du startade ett flame war, utan bara att det känns som att vi är på väg helt off topic från två olika håll.

Jag vet inte om jag kan kalla den del Java som återfinns i mobiltelefoner för inbäddade egentligen, då de faktiskt körs genom en interpretator (tolk) ovanpå ett operativsystem. Och visst, Java är inte stort på inbäddade system - och kommer nog aldrig att bli det heller. Det finns bättre vägar att gå i så fall, åtminstone på de mer kritiska systemen som behövs i samhället (telefonväxlar, medicinska instrument, osv). Där tror jag snarare att språk som Erlang är ett bättre val, med s.k. soft-real-time-stöd, simultanförmåga (concurrency), m.m. Utöver C självklart, som alltid(?) kommer att finnas vid lågnivå-programmering. Det finns en orsak till att Ericsson "valde" (utvecklade) Erlang istället för C till sina telefonväxlar, t.ex. behöver man inte bry sig om lås - då hela systemet är uppbyggt genom att processer skickar meddelanden mellan sig istället för att dela minne/variabler.

Och du har helt rätt i att Java drar mycket minne - det är tydligen något som de arbetar en hel del på att lösa. Orsaken är antagligen att de har arbetat mycket med profileringen och få Java att vara mer responsivt och snabbare. Det är antagligen konfigurerbart på något sätt, men i så fall förlorar man antagligen någonting annat.

Edit,
Jag glömde att jag tänkte visa ett par inbäddade system där Java används:
Sun SPOT - Dom här är häftiga, med inbyggd P2P-funktionalitet! Dom kan prata med varandra trådlöst:
http://www.sunspotworld.com/

TrackBOT - Använder sig av Sun SPOT och Java ME, där man kan läsa av omgivningen med IR-sensorer och parera hinder osv. Absolut inga "breaking news", men _allt_ är skrivet i Java som jag har förstått det:
http://www.trackbot.systronix.com/

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av bjornie
Jag menade inte att just du startade ett flame war, utan bara att det känns som att vi är på väg helt off topic från två olika håll.

Jag vet inte om jag kan kalla den del Java som återfinns i mobiltelefoner för inbäddade egentligen, då de faktiskt körs genom en interpretator (tolk) ovanpå ett operativsystem. Och visst, Java är inte stort på inbäddade system - och kommer nog aldrig att bli det heller. Det finns bättre vägar att gå i så fall, åtminstone på de mer kritiska systemen som behövs i samhället (telefonväxlar, medicinska instrument, osv). Där tror jag snarare att språk som Erlang är ett bättre val, med s.k. soft-real-time-stöd, simultanförmåga (concurrency), m.m. Utöver C självklart, som alltid(?) kommer att finnas vid lågnivå-programmering. Det finns en orsak till att Ericsson "valde" (utvecklade) Erlang istället för C till sina telefonväxlar, t.ex. behöver man inte bry sig om lås - då hela systemet är uppbyggt genom att processer skickar meddelanden mellan sig istället för att dela minne/variabler.

Och du har helt rätt i att Java drar mycket minne - det är tydligen något som de arbetar en hel del på att lösa. Orsaken är antagligen att de har arbetat mycket med profileringen och få Java att vara mer responsivt och snabbare. Det är antagligen konfigurerbart på något sätt, men i så fall förlorar man antagligen någonting annat.

Edit,
Jag glömde att jag tänkte visa ett par inbäddade system där Java används:
Sun SPOT - Dom här är häftiga, med inbyggd P2P-funktionalitet! Dom kan prata med varandra trådlöst:
http://www.sunspotworld.com/

TrackBOT - Använder sig av Sun SPOT och Java ME, där man kan läsa av omgivningen med IR-sensorer och parera hinder osv. Absolut inga "breaking news", men _allt_ är skrivet i Java som jag har förstått det:
http://www.trackbot.systronix.com/

Uj, måste säga att du är ruskigt elak som länkar till sådana tuffa prylar (Med tanke på min förkärlek till inbäddade system a'la Alix, PSP, routrar etc. Min plåbok har dock en annan inställning). En SUNSpot vore ju grymt kul pryl att leka med!
Synd att priset var lite högt.
Där körde de tydligen JVM som "OS" alltså inget OS under JVM...verkar fränt...

Visa signatur
Permalänk
Medlem

Japp, det är det som är så häftigt!

Jag såg/läste om någon snubbe som testat några SUN Spot:ar på sin vinodling, som fick läsa av luftfuktighet, temperatur, osv - skicka det trådlöst till en server som reglerade vattningen därefter. Jag är grymt sugen på att prova på några också (har dock ingen vinodling!) - men har ännu inte riktigt fått tummen ur... Jag tyckte priset var ganska ok, 3 stycken för $500 har jag för mig?

Nu kom vi tillbaka mot topic, med inbäddade system - eller hur?

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av lallassu
Nej diskussionen baseras inte på hur man skriver i de olika språken, det var iaf inte meningen från min sida.
Som du säger optimeras sällan program skrivna i C mer än med O2, men har man väldigt mycket flyttalsberäkningar kan man vinna ganska mycket på att kompilera med olika flaggor, vilket det finns en uppsjö av till exempelvis SS11/SS12. Men som sagt, det är ofta flyttalsberäkningarna som ger skillnad medan man sällan märker skillnad på heltalsberäkningar. Så som jag ser det bör det kunna vara värt besväret i sådant fall där man har ett program som kan få ut det lilla extra pga optimering. Fast man låser såfall ofta på en specifik arktitektur (dvs. låsa mot en specifik SPARC och går då inte köra samma kompilat på en annan SPARC, vilket är något man kanske vill undvika).

Vitsen med att skriva program i högnivåspråk är inte att de skall bli slöare än i C, utan att de skall bli lättare att få felfria, lättare att implementera nya funktioner och göra programmen bättre lättare än med C.

Vidare diskussion fokuserar jag på att programmet faktiskt är prestandakrävande (vilket är rätt sällsynt i de flesta program du använder till vardags).

En rak for-loop, ja där kan ingen tävla med optimerad assembler, men du fokuserar dina argument på suboptimering. Du kanske inte ens behöver göra den loopen om du använt en bättre datastruktur/algoritm, vilket du ofta gör lättare i högnivåspråk.
Vissa högnivåspråk kan även automatisk parallellisera for-loopar, eller profilering+JIT.
Om det är möjligt att göra sådana optimeringar, ja då är SS11 en droppe i havet.
Inget är snabbare än den snabbaste assemblerimplementationen, men det är sällan den som används.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av bjornie
beroende på algoritm kan Java till och med vara snabbare än vad C++ och C är.

Beroende på motor kan en lastbil till och med accelerera snabbare än en motorcykel. Detta är ett icke-argument men ack så vanligt, dem tar vid där sakargumentationen tar stopp eller där man vill vinkla till en produkts fördel.

En JIT har inte lika mycket CPU-tid/resurser på sig att optimera kod som en kompilator vilket gör optimerings-racet ganska ojämnt. Jag anser det vara en stor fördel med C att det tvingar programmeraren att sätta sig in i det problem som skall lösas på ett helt annat sätt och programmera runt det gentemot att anpassa problemet till några lätt-tillgängliga högnivå-konstruktioner.

Permalänk
Medlem

Ur ekonomisk synvinkel är time to market bra mycket viktigare än prestanda. Det kostar mer att utveckla än att köpa datorer, alltid. Arbetstid är otroligt dyrt.

Dock finns det ju ganska många applikationer där hårdvaran sätter gränsen, då är det ju upp till programmet att vara effektivt.

Visa signatur

Björn

Permalänk
Medlem

Tanken med Java och andra "högnivå"-språk jämtemot C och liknande är ju ändå att öka produktiviteten hos den som skriver koden. Som redan sagts börjar datorerna bli så billiga att det är utvecklingstiden som är den styrande faktorn. Istället för att spendera pengar på utvecklingstid köper man in lite mer datorkraft. That's it.

Att påstå att det går lika snabbt att skriva i C som i Java eller C# är bullshit.

Visa signatur

Archlinux, Sway och Rust, vad mer behövs?

Permalänk
Citat:

Ursprungligen inskrivet av Soulfly
Gammal hederlig prestanda har blivit bortglömd. Idag verkar en del blivit tagna i stjärten av gamla marknadsföringsknep och gladeligen kastar bort prestandan till svinen genom tex .NET . Phoronix har precis gjort benchmarks och jämfört Opensolaris, Ubuntu och FreeBSD med samma tester på samma burk:

Läste testet igår. Några saker slog mig:

1. Alla (såvitt jag kan förstå) benchmarks var single-threaded. FreeBSD's styrka nu för tiden är multi-threaded.

2. Många resultat ligger runt 2% skillnad mellan systemen. Det är definitivt för lite för att kunna dra några kvalitativa slutsatser.

3. Målet var kanske att jämföra prestandan hos en "basinstallation", men faktum kvarstår: De olika systemen har exempelvis olika versioner av GCC (vilket skulle t.ex. kunna förklara prestandaskillnaden i gzip/7z kompessionen). De har inte heller samma patchversion av Java, vilket skulle kunna förklara prestandaskillnaderna där. Kan vara bra att ha i åtanke.

4. Det står ingenstans om hur många gånger de upprepade varje test på respektive plattform. Den generella rekommendationen brukar vara ca 10 upprepningar per benchmark eftersom differensen mellan varje körning kan vara stor. Sedan brukar ett medelvärde tas fram utefter detta.

5. Finns det någon information om hur testen utfördes? Startade de om maskinerna mellan varje körning etc? Jag hittar inget.

Visa signatur

"Linux is good because it keeps people out of real kernels"

Permalänk
Medlem

Avseende OpenVMS med sitt ursprung från 70-talet, vars chefsarkitekt, Dave Cutler, som sedemera blev raggad till M$ från Digital av Bill för att ta fram Windows NT, kan sägas att det operativet är mig veterligt det enda operativet klassat som det säkraste av amerikanska myndigheter. Används än idag framförallt i miljöer där krascher inte kan accepteras, typ flygtrafikövervakning, banktransaktionssystem (OMX-Nasdaq tex.).

Java, C, C++ i alla ära men vet ni vilket som är snabbast?

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Gräs-Mannen
Tanken med Java och andra "högnivå"-språk jämtemot C och liknande är ju ändå att öka produktiviteten hos den som skriver koden. Som redan sagts börjar datorerna bli så billiga att det är utvecklingstiden som är den styrande faktorn. Istället för att spendera pengar på utvecklingstid köper man in lite mer datorkraft. That's it.

Att påstå att det går lika snabbt att skriva i C som i Java eller C# är bullshit.

Det beror väl på vad du skriver för program. I vissa fall går det till och med snabbare att skriva saker i C. Senaste året har jag utvecklat projekt där C delen tagit kortare tid att göra. Så det är bullshit att säga att det alltid går snabbare i Java eller C#, även om det är över lag stämmer.

Jag tror inte kunder skulle bli så glada ifall man sa; "Vi tycker det är jobbigt att utveckla i C så vi tänker göra det i java, så ni får helt enkelt köpa in några fler servrar för X antal miljoner kronor. Men det är väl ok?" I vissa fall medför inköp av nya servrar att specialhårdvara för _mycket_ pengar måste köpas in vilket medför att den tid(pengar) du vinner på att utveckla i språk som Java försvinner ganska fort.

Men som sagt, jag bara menar att det finns fall där det inte går att säga att Java är det bästa alternativet för hårdvara är så billigt.

Visa signatur
Permalänk
Medlem

Jag fattar inte vad ni yrar hela tiden.
Vem fan har sagt att operativsystem, drivrutiner, beräkningsprogramvara görs bäst i Java?

Jag sitter här och ritar figurer. Jag har använt Dia (skrivet i C++/C) och jPicEdt (skrivet i Java).
Den senare (som är skriven av en person) är betydligt stabilare, och har många jättebra funktioner som Dia fortfarande saknar (och desperat behöver).
Funktionalitet satt åt sidan.
Borde jag bry mig om vilket som kräver minst resurser? Jag har aldrig ens märkt av att något av programmen är igång till att börja med. 0.1% Cputid eller 0.12% Cputid?
Snälla berätta för mig varför jag borde bry mig?

Ett segmenteringsfel är 100 gånger värre än +25% cputid för mig.
Och ibland är det så jävla omständigt att koda mer avancerade saker i lågnivåspråk, att man nöjer sig med mindre avancerade lösninger, som ibland ökar komplexiteten hos algoritmerna och då kan du säga hej då till prestanda.

Så varför är nästan alla program jag använder skrivet i C/C++? Ibland är det motiverat, ibland bara av gamla vanor tror jag.