Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Door , , 109 reacties
Submitter: the_shadow

Metadata van de deb-package van PowerShell lijken te duiden op het opensource worden van PowerShell. De toevoeging dat 'PowerShell een open-source, cross-platform, scripting language en rich object shell' is, werd ontdekt door Tom Hounsell en vervolgens op Twitter geplaatst.

Hounsell test al enige tijd builds voor OS X en Linux van PowerShellCore en naar het nu schijnt is het de bedoeling om PowerShell opensource te maken. Vanuit Microsoft heeft nog geen officiële bekendmaking plaatsgevonden. Ook is de informatie op de GitHub-pagina van PowerShell nog niet aangepast.

Microsoft bracht PowerShell voor het eerst uit in 2006 en zit tegenwoordig op versie 5.1. PowerShell kan gezien worden als 'opvolger' van de MS DOS commandline-interface. De eerste versie was geschikt voor Windows XP SP2, Server 2003 en Vista. Het is een objectgeörienteerde shell- en scripttaal gebaseerd op het .net-framework. De tool wordt veel gebruikt door administrators om taken uit te voeren binnen COM en WMI.

Screenshot Twitter Tom Hounsell PowerShell

Moderatie-faq Wijzig weergave

Reacties (109)

De tool wordt veel gebruikt door administrators om taken uit te voeren binnen COM en WMI.
Ik doe zo'n 80% van mijn werk in Powershell (Systeembeheer), echter gebruik ik COM zeer weinig in Powershell en WMI gebruik ik niet zo gek veel (mede door de goede remote capabilities van Powershell zelf hoef ik in veel gevallen geen WMI te gebruiken - wel is het zo dat veel redelijk wat CMDlets eigenlijk wrappers zijn om WMI en CIM). Ook spreek ik zelf erg veel .NET aan met Powershell (want het kan erg makkelijk).
Zelfs de win32 API's zijn te gebruiken in Powershell dmv P/Invoke.

(en toevallig van de week nog als concept een simpele REST API gebouwd met Powershell, niet omdat het moet maar omdat het kan. Powershell heeft er ook voor gezorgd dat ik C# ben gaan leren)
Ik werk ook met posh, python en bash. Ik vind powershell toch wel de meest onleesbare verbose onnodig ingewikkelde hork van een scripttaal waarmee ik ooit gewerkt heb.

Posh: Split-Path -parent $MyInvocation.MyCommand.Definition
Cmd: %~d0%~p0
Bash: pwd

Goed, beetje kort door de bocht dit voorbeeld, maar ik vind posh met alles categorie "Waarom makkelijk doen als het moeilijk kan."

In Linux gebruik je al snel Python als je shellscript te uigebreid wordt, en dan wordt echt heel snel duidelijk wat een draak Posh ook eigenlijk is.

Bash > cmd
Python > posh

Microsoft kan wel alles open sourcen de laatste tijd, maar daar wordt een taal niet opeens mooier van.

[Reactie gewijzigd door Redsandro op 31 juli 2016 15:55]

Je hebt gelijk als je zegt dat Powershell wat "bureaucratisch" is, maar het heeft als grote voordeel dat het daardoor Lego-blokjes zijn. Alles past op alles. Hetzelfde resultaat is vaak ook wel te bereiken met - bijvoorbeeld- CMD, maar hier heb je meestal nog extra werk om de onderdelen op elkaar aan te laten sluiten.
Bash is erg goed in het op elkaar laten aansluiten van onderdelen, maar daarbij is elk onderdeel een "black box", waarbij je na moet gaan hoe de interne werking is. Die is voor elk commando anders (historisch gegroeid). Bij Powershell is dat gestandaardiseerd. En dat levert gestructureerde code op (maar inderdaad: wel breedsprakig).
Makkelijker om te onderhouden en 3rd party Cmdlet ontwikkelaars hanteren dezelfde conventies, waardoor het nÚg meer een eenheid wordt.

Overigens:
- Powershell kent $PSCommandPath, $PSScriptRoot en $pwd voor je (script) pad (eigenlijk:paden; je gebruikt hier 2 paden door elkaar)
- %~d0%~p0: ik gebruik altijd %~dp0 . met %CD% krijg je de huidige directory.
Dat zijn de iets makkelijkere statements. Als je iets complex wilt scripten dan is Posh al snel veel leesbaarder omdat het meer object oriented is dan cmd en Bash. Als ik onze deploy en build scripts vergelijk met die we hebben in bash of die we hebben in Posh vind ik persoonlijk de Posh veel duidelijker.
OOP is niet noodzakelijk een reden waarom een code leesbaarder is.
OOP is niet het 'mooi maken van je code d.m.v e.g classes' zoals vele denken, dat het er soms mooi en overzichtelijker uitziet is een mooie bijzaak.

Hoe duidelijk een code eruit ziet, ligt aan de ontwikkelaar en hoe goed hij de taal beheerst.
C is niet OOP maar C++ wel, toch zijn sommige C-codes duidelijker te lezen dan C++.
We hebben het in deze context over Posh vs Bash vs CMD en hier voegt OOP zeker wel leesbaarheid toe. Je hoeft me verder niet te onderwijzen wat OOP is ;), ik ben al wat jaartjes een senior software developer,
OOP voegt niet noodzakelijk leesbaarheid toe.
Ik vind Posh bijvoorbeeld helemaal niet leesbaar met z'n rare syntax, lange commando's,...
Daarom gaf ik ook mijn mening en zei ik het niet als een feit. Ik zei niet voor niks "vind ik persoonlijk". Maar als je een groot lang bash script hebt en een lang script van Posh dan is Posh toch wel ietsjes leesbaarder in mijn ervaring.
In jouw ervaring. Omdat jij een Posh-scripter bent.
Iemand die met Bash werkt, zal Bash overzichtelijker vinden.
En weer heb je het fout. Sorry maar jij doet echt veel te veel aannames. Ik werk namelijk gewoon met allebei en op dit moment misschien wel meer met Bash dan met Posh. Ik mag toch gewoon Posh leesbaarder vinden dan Bash? Waar maak je zo'n probleem van.
OOP is het samenvoegen van relevante data en functionaliteit binnen 1 object.

Met leesbaarheid van code an sich heeft het weinig te maken, In theorie zou je ook brainfuck OO kunnen maken :-)
Tja dat is maar wat je bedoeld
pwd in powershell is Get-Location
"Split-Path -parent $MyInvocation.MyCommand.Definition" is om het executie path van je huidige script te bepalen. Dat is toch echt iets anders dan pwd.
Zoals eef89 al zei dat is dus `dirname`. pwd bestaat ook in powershell en is een alias naar get-location. In python: "import os; print os.getcwd()" ?
Crap, redundant: eef89's reply te veel geskimmed. Mijn excuses.

[Reactie gewijzigd door goarilla op 29 juli 2016 18:01]

Gebruik je powershell het meeste als script of als interpreter ?
Het 2e.
Bv AD password voor een user resetten : ipv RDPen naar een DC (of RSAT gebruiken), user opzoeken, reset password doen doe ik nu Set-ADAccountPassword -identity <bla> -reset -newpassword (read-host -assecurestring).
Verder veel voor Exchange management.

Op het moment dat ik bv zaken in moet richten (bv een nieuwe fileserver opnemen in DFS inclusief replica links) dan schrijf ik meestal "on-the-fly" en script. Omdat ik op een gegeven moment veel zaken die normaal via de GUI gedaan werden via losse commando's deed ben ik ook erg snel geworden met scripts on the fly schrijven (omdat ik ook tig scripts her en der op mijn machines heb staan is het vaak ook sneller voor mij om even snel iets uit mijn hoofd te bouwen ipv dat ene script op te zoeken : mijn volgende taak wordt ook om alle echte productie scripts op een duidelijke manier te ordenen want daar gaat het bij nog wel eens mis :P)
Ik vind de kracht van Powershell dat je grote hoeveelheden gebruikers of ander objecten met een script kunt aanpassen in korte tijd. Met klikken kan dat weken duren.
Welkom in de CLI wereld.... We hebben T-Shirts!
Welkom terug bedoel je. ;)
Sorry, maar waarom zouden ze dit willen doen?
Vergeet niet dat bash sinds kort ook op windows beschikbaar is
Waarom powershell dan nog gebruiken?
Omdat je met powershell direct gebruik kan maken van alle .net libraries.
Omdat de doelgroep anders is.
Powershell is object georiŽnteerd. Bash niet, het is procedureel. Om maar een verschil te nomen. Beide hebben voor- en nadelen.
Bash on Ubuntu on Windows is zeker nog geen volwaardige vervanger voor Powershell al zie ik ze op termijn elkaar wel meer aanvullen en complementair worden.
Was ook mijn eerste gedachte. Powershell is net niet handig genoeg om makkelijk te kunnen gebruiken, met zijn onduidelijke syntax ("was het nou set-executionpolicy of set execution-policy") en dan nog die verschrikkelijk lange namen...

Maar elk hebben ze hun eigen specialisatie.
Een functie of cmdlet kan geen spaties bevatten.

En van alle cmdlets zijn ťťn of meerdere aliassen die je kan gebruiken.
Zijn standaard verbs en nouns.
Doe maar eens get-verb in een Powershell venster

Meeste kan je gokken. En als je het even niet meer weet dan doe je get-command *execut*
Omdat PS vele malen krachtiger is dan bash.
Windows was vooral gebaseerd op GUI, Unix-systemen op CLI.
Dus het logische gevolg is dat je op Unix(-like) systemen veel meer de Bash gaat nodig hebben, Bash heeft meer features.
Het is maar net dat Windows administratie-commando's niet exclusief voor de GUI maken, maar het ook mogelijk maken via de CLI.

Buiten dat, Powershell kan nooit zo krachtig worden op Unix-systemen omdat e.g Bash file-oriented werkt, en Powershell niet.
Waarom zouden Unix systemen meer Bash nodig hebben? Zelfs het GUI systeem komt uit de Unix wereld.

Echter is Bash ontzettend krachtig en zijn er veel taken die je sneller met de commandline kan uitvoeren dan via een GUI.

Kortom Unix kan beiden zaken uitstekend.

[Reactie gewijzigd door BoringDay op 29 juli 2016 23:12]

Ja tuurlijk, Unix kan beide uitstekend.
Maar de shells hebben een grotere aanwezigheid in Unix-systemen, waardoor ze dus eigenlijk 'gedwongen' worden krachtiger te zijn dan Powershell; wat niet zo nodig gebruikt moet worden door e.g gewone gebruikers.
De gewone gebruiker zal zichzelf een gunst doen om bash te leren. Het is ook niet bijzonder ingewikkeld om te leren.
Dat is waar, makkelijker dan Posh IMHO.
Maar ik bedoelde ook dat je ook als gewone gebruiker Bash (basic Bash) gaat nodig hebben. Op Windows heb je als gewone gebruiker geen Posh nodig.
Veel configuratie uitlezen / instellen kan door het lezen van en schrijven naar bestanden. Je "C-schijf" is 'gewoon' een bestand dat je kan kopieren of wijzigen, CD ROMs en USB-stick partities idem dito, dus nooit betalen voor 40 incompatibele imaging-programmaatjes (Daemon tools, Alcohol en 38 anderen) als bij Windows.

Standaard output, zeg maar het 'antwoord' van commando's is een bestand. Input is ook een bestand. Random getallen, een eindeloze stroom ervan, is een bestand: handige gratis paswoord generator. Een eindeloze stroom nullen is een bestand, hier kopieer je vandaan om een harde schijf te 'wipen', dus ook daar geen betaalde programma's nodig. Welke bestandssystemen je OS ondersteunt staat in een (pseudo) bestand, net als nummers van draaiende processen en welke processen welke bestanden open hebben staan. Als je browser Flash filmpjes streamt gaat dat middels, jawel, een bestand, en die kon je kopieren om het filmpje te downloaden; alweer geen programmaatje voor nodig!

De standaard oplossing voor problemen voor Windows was vroeger altijd: Daar moet je een programma voor kopen, betaald of met stinkende spy- en malware erin genaamd 'freeware'. Voor Unix kon het dus standaard zonder installatie en extra zooi door de bestandsstromen te begrijpen. Windows was daarom vroeger (98 / XP tijd) snel vol met een berg aan programma's - veel ervan met bugs, onveilig, geen updates, onnodig duur en incompatibel met elkaar. Gelukkig is Windows nu een stuk beter, maar nog steeds zijn veel simpele dingen onnodig moeilijk.
Nee, God is overdreven...
Eerder een soort profeet ofzo...

Het file-oriented zijn op Linux is een voordeel omdat je dan bijvoorbeeld ook op aangesloten devices bepaalde commando's/operaties kan uitvoeren die je op bestanden ook kan.

[Reactie gewijzigd door ONiel op 30 juli 2016 00:22]

Ik hoor anders van genoeg Linux admins dat ze stiekem toch best een beetje jaloers zijn op de object georiŽnteerde omgeving van PowerShell.

De ontwikkelling van modules gaat wel lekker snel, al moet je je afvragen of je modules van publieke repo's moet vertrouwen voor je werk omgeving.
De object georiŽnteerde omgeving is brak op eender welk Unix-systeem. Bash is file-georienteerd omdat de Linux kernel bijvoorbeeld zo werkt.
Een object-georienteerde shell op een Unix-systeem zou extreem slecht werken.
Op Unix kan je toch gewoon Python als object georiŽnteerde shell gebruiken? Gewoon beginnen met #! /bin/python, hopelijk komt dit ook standaard in Windows. Nu nog geklooi met PortableApps of compileren.
Je hebt duidelijk nooit Jeffrey Snover horen praten.
Omdat .NET Core ook open source is.

Het huidige .NET Framework was teveel gebonden aan Windows en de technieken die je kon gebruikten werden links en rechts ingehaald door Open Source of gratis alternatieven.

Om sneller te kunnen reageren op de markt is Microsoft bezig om zaken als het .NET Framework, en dus schijnbaar ook PowerShell, opensource ťn cross platform te maken.

Het verdienmodel zit het in het aanbieden van infrasctructuur (Azure), IDE's en support om deze technieken in het bedrijfsleven in te zetten.
Dank jullie wel allen, wijze les voor mij dit.
Jij ook bedankt @inorde
Het huidige .NET Framework was teveel gebonden aan Windows en de technieken die je kon gebruikten werden links en rechts ingehaald door Open Source of gratis alternatieven.
Ik snap niet goed waar je het hier over hebt.
Voor gebruik van het .Net Framework heb je nooit hoeven betalen. Pak Visual Studio Express, en je kan gewoon aan de slag met .Net, free of charge.
Ook als eindgebruiker zat het sinds conceptie al ingebakken in Windows, en updates zijn gewoon gratis.
Daarnaast levert Mono al tijden een open implementatie van .Net, dus strikt genomen ben je niet gebonden aan Windows. Mono is alleen niet net zo compleet als .Net zelf. Als je WPF en WCF niet gebruikt, kan je over het algemeen prima af met Mono. Alleen de async/await stack kan dan problemen opleveren.

Er zijn inderdaad veel commerciŽle pakketten voor componenten (denk DevExpress), maar daar heb je als gebruiker niks mee te maken; alleen als developer. En ook dan weer alleen als je er voor kiest om die te gebruiken.

Verder vraag ik me wel af welke technieken dan links en rechts worden ingehaald door open source alternatieven. Persoonlijk ben ik nog geen tekortkomingen tegengekomen.
Het verdienmodel zit het in het aanbieden van infrasctructuur (Azure), IDE's en support om deze technieken in het bedrijfsleven in te zetten.
Ik denk dat daar de crux zit van deze strategie. Ook Azure gaat steeds meer om met Linux, en het hebben van dezelfde tools voor alle omgevingen is vanuit een beheersperspectief natuurlijk veel interessanter dan voor je Windows-bakken Powershell moeten gebruiken en onderhouden, en voor je Linux servers dezelfde scripts voor bash moeten maken, gebruiken en onderhouden.
Zal voor hen zelf waarschijnlijk ook eenvoudiger zijn, zowel in het dagelijks gebruik als in het zoeken naar personeel om al die servers te onderhouden.
Voor gebruik van het .Net Framework heb je nooit hoeven betalen. Pak Visual Studio Express, en je kan gewoon aan de slag met .Net, free of charge.
Niet helemaal gratis.

Voor VS Express en Community heb je een Microsoft Account nodig, waarbij je weer je persoonsgegevens moet prijs geven.

Er zijn zat gratis IDE's die dat niet vereisen.
bouwtekeningen van technisch lego zijn gratis. Je hebt er alleen wat aan als je lego hebt. Lego is niet gratis. Ergo de tekeningen zijn niet gratis? Ik
snap
je nick.
(Haiku)
Hoe vreemd het ook klinkt, open source is vaak veiliger.
Dit komt omdat er meer mensen naar de code kijken, dit zorgt ervoor dat exploits sneller gevonden worden.

Ook eventuele bugs in de software kunnen op deze manier sneller gevonden worden.
Dat FOSS veiliger is omdat meer mensen de code kunnen inkijken is niet correct. Wel zorgt FOSS er vaak voor dat code op een netere manier geschreven en beter gedocumenteerd wordt. Daarnaast is het vaak zo dat wanneer een fout gevonden wordt deze vaak sneller opgelost wordt omdat iedereen een fix kan indienen.

Maar denk even terug aan een bug zoals heartbleed dat jarenlang in de OpenSSL library heeft gezeten of shellshock (wat geen bug is maar de normale werking van Bash die zowat iedereen uit het oog was verloren omdat het net een toonbeeld is van ongedocumenteerde functionaliteit).
De bug is uiteindelijk toch maar gevonden. Buiten dat, je praat enkel over Heartbleed, maar praat ook eens over de duizenden andere kwetsbaarheden die wťl gevonden zijn dankzij het open-source zijn van bepaalde software?
Er worden ook duizenden bugs gevonden in niet open source software hoor. Blokker_1999 wil gewoon zeggen dat FOSS niet per definitie betekent dat het veiliger is. Ik ken namelijk software dat niet open source is, wat zo streng geaudit word door verschillende partijen dat daar veel open source projecten nieteens tegenop kunnen boksen.
Het is niet 100% garantie nee, ik kan het meest brakke stuk software schrijven en het dan open-source maken.

Is het veilig? Nee.
Maar omdat mensen het kunnen inzien gaat het rap geweten worden dat mijn software slecht is, en zullen mensen overschakelen naar andere software.

Bij closed-source kan er niet in de broncode gekeken worden om te bepalen of het wel kwaliteitsvol en veilig is.

Buiten dat, misschien is mijn idee wel goed, maar kan ik gewoon geen software schrijven. Ik release het project dan maar, en omdat het open-source is, zouden betere ontwikkelaars mijn idee kunnen overnemen, het herschrijven, en zou een beter versie ontwikkelen.
Maar omdat mensen het kunnen inzien gaat het rap geweten worden dat mijn software slecht is, en zullen mensen overschakelen naar andere software.
Je onderschat dat veruit de meeste Linux mensen niet broncodes gaan nalezen. Degene die dat wel doen zitten meestal niet op breed bekende blogs of grote youtube kanalen maar die ranten wat van zich af op een verdwaald IRC kanaal op freenode.

Jou stukje software, als het zinvol genoeg is, wordt toch wel gedownload en blind uitgevoerd. Compileren doet het gross ook gewoon blind zonder enig checken.
Jawel. Eigenlijk zijn er veel mensen die dat doen. Kijk op websites gelijk Bugcrowd, Github,... Bij verscheidene projecten hebben vele mensen de broncode nagekeken. En dat enkel via die platformen.

Dat jij zegt "Er zijn niet veel mensen die dat doen", is onzin.
Het is niet omdat jij niet de moeite neemt dat te doen, dat niemand dat doet.
Jij maakt hier een fout, denkende dat het grote gedeelte van de FOSS projecten wel goed nagekeken wordt, en dat is verre van de waarheid. Genoeg projecten op GitHub te vinden met vele honderduizenden downloads en waar er maar 1 of 2 mensen de volledige broncode weten/nagekeken hebben (en dat zijn doorgaans de ontwikkelaars zelf). En als je naar de wat grotere projecten gaat, met veel legacy bv, is er vaak helemaal niemand die elk stukje code nagekeken heeft.

Bij closed en open source heb je beide vrijwel dezelfde voor en nadelen als het om veiligheid aankomt, en doorgaans is dit vertrouwen hebben in de ontwikkelaar.
Er zijn teveel open-source projecten om nagekeken te worden ja. Maar de belangrijkste (Linux, libraries gelijk OpenSSL) zijn wel vaak nagekeken geworden.

Er zijn veel mensen die broncode's nakijken om een bug bounty mee te krijgen.
De grote/bekende FOSS projecten doorgaans wel, maar de grote closed source software pakketten worden ook gepeer reviewd en nagekeken door 3rde partijen. Maar zoals ik al zei, de voor en nadelen betrekkende veiligheid zijn bij closed en open source vrijwel gelijk, het belangrijkste is gewoon vertrouwen hebben in het project en/of de developers erachter. Het is echter een fabeltje dat software veiliger is, enkel omdat het open source is.
De closed-source projecten kunnen enkel door grote groepen nagekeken worden op een blackbox-manier, dat is niet efficiŽnt.

Open-source kan whitebox door een grote groep nagekeken worden, en dat gebeurd ook.
Dat gebeurd voor het overgrote deel van de FOSS projecten juist niet. Alleen de top paar FOSS projecten kan je er bij vanuit gaan dat dit gebeurd. Het gross op Github, of zelfs in vele Linux repositories, wordt niet 100% nagekeken door meerdere personen buiten de developers om. Debian die dit bv wel deed in het verleden (waardoor er jaren tussen releases zat), doet dit zelfs al enige jaren niet meer en veel in de repos is niet volledig nagecheckt. (En Debian is al een uitzondering)
Ik heb je even geleden al gezegd, kijk op Github/Bugcrowd/...
Je blijft maar zeggen "nee niemand kijkt dat na", maar waar baseer je je op?

Er zijn wťl mensen die het nakijken. En wat noem je 'top' projecten? Linux, OpenSSL Library,....?
Op het feit dat ik zelf bij een handvol projecten meewerk op GitHub. 1 heeft enkele 10duizenden downloads, daar zijn welgeteld 2 mensen die de hele code kennen. Ik samen met de hoofd ontwikkelaar zelf (en het gross van de code heb ik ook alleen maar doorheen gelezen/bladerd). Daar is niemand geweest die alles doorgelezen heeft, wel een hacker (white hat) geweest die een paar exploits vond en dit ons medegedeeld heeft op github, en dat waren open deuren als je als "pro" de broncode doorgelezen had. (Ik kende toen de hele code nog niet, deed alleen de Windows kant)

Dan nog een groter project met enkele 100duizenden downloads, daar is helemaal niemand die elk regeltje code kent. (Daar zit legacy meuk in tot terug de jaren 80 in). Er wordt niet eens door andere bijgehouden wat wij aan wijzigingen doorvoeren, die vertrouwen er allemaal wel op dat het wel snor zit. (Af en toe 1 iemand die uit verveling de changelogs en diffs wel eens doorkijkt, maar daar houd het ook bij op). Komt van een project af welke enkele miljoenen downloads had over de jaren heen (stamt uit 2006 ergens als standalone), waar wij de eerste groepje mensen warendie vorig jaar een groot gedeelte van de broncode nagepluist hebben.

En ik ken genoeg mensen die allerlei FOSS projecten draaien of daar aan meewerken, eerlijk waar, het grootste gedeelte wordt echt niet gecontrolleerd zoals jij denkt dat wel gebeurd.

Gebeurd inderdaad alleen bij de grote namen zoals Linux, OpenSSH, OpenSSL, LibreOffice, Apache e.d.
Ok, het gebeurt enkel volledig bij de grote namen, Linux, OpenSSL, LibreOffice,...
Maar dat is de software die bijna elke Linux gebruiker op z'n computer heeft, dus zolang die veilig is, en goed gecontroleerd is het goed.
Microsoft Office, Windows,... door het closed-source zijn, zijn dus slechter nagekeken dan de open-source alternatieven.
Met de grote bekendere software zit het in FOSS en closed beide meestal wel goed. Windows wordt bv ook gepeerreviewed door 3rde partijen, naast dat de development kracht bij MS een heel stuk groter is dan het overgrote deel van de FOSS incl iedereen die code meeleest.

Het is niet dat kleinere FOSS projecten helemaal geen controle krijgen, maar net als bij kleinere closed software paketten is het developer-afhankelijk.

Software is niet per definitie veiliger of onveiliger omdat het FOSS of closed source is, het maakt namelijk helemaal niets uit.

Windows en Linux zijn bv vrij gelijkwaardig in het veiligheids niveau dat ze bieden. Linux is niet veiliger dan Windows en Windows niet veiliger dan Linux, dat is -tegenwoordig- afhankelijk van de system admins en software die draait. (vroeger zat er nog wel verschil in, ten favore van Linux)

[Reactie gewijzigd door batjes op 30 juli 2016 16:48]

Windows kan nooit zoveel nagekeken worden dan Linux. Ja, ze huren bedrijven in waar een paar man komt kijken.

Bij Linux, kijken vele mensen; waarschijnlijk de mensen die bij zo'n beveiligingsbedrijf werken, kijken ook Linux na (PR, Bug bounty,...).

Dus, Linux is qua 'source-veiligheid' wel veiliger.
Buiten de source-kwestie. Linux is wel gewoon veiliger.
Minder malware, ten eerste. Ten tweede door zijn architectuur is Linux gewoon veiliger, privileges, grotere scheiding kernel/user space, packet managers,...
Buiten dat, als we bijvoorbeeld op CVE het aantal gevonden critical bugs bekijken en Linux vs Windows doen. Zien we dat Windows gemiddeld veel meer critical bugs heeft dan Linux. En dat terwijl er op Linux toch wel veel meer bugs gevonden zijn (dankzij open-source). Maar doordat Linux Unix' veiligheidsgewoontes heeft overgenomen, en de slechte gewoontes heeft weggelaten, is de architectuur van Linux vťťl veiliger dan die van Windows.

Natuurlijk, ligt er ook een groot deel aan de gebruiker.
Of het niet zoveel nagekeken wordt is de vraag, MS heeft ongeveer net zoveel mensen aan Windows werken dan dat er aan Linux werken. (Er werken vele duizenden mensen aan Windows). En de Windows broncode is voor vrij veel mensen gewoon inzichtelijk, academische studenten kunnen bv ook de broncode inzien.

Linux is momenteel nog veiliger d.m.v. kleine doelgroep, en juist doordat Windows al een decenia of 2 de go to doelgroep is (/was gezien nu veel richting smartphones gaat, en android -een Linux- is ook een veiligheidsgatenkaas) is er op Windows veel harder gezocht naar exploits.

Daarnaast is het geen al te beste vergelijking gezien Windows een full blown OS is en Linux slechts een kernel. Daarom vergelijk ik het ook eerder met Debian (Ubuntu is eigenlijk beter, maar Debian sid is ook geen veilige distro) of andere distros. ~10miljoen regels code vergelijking met een paar miljard... Vooral op gebied van CVE's is dat gewoon niet te vergelijken. Pak dan bv https://www.debian.org/security/ . 20+ security fixes de afgelopen maand versus 10 in Windows 10 (toepasselijk) https://support.microsoft...windows-10-update-history, of betekend nu minder vinden = meer gaten?

In de architectuur is de Windows oplossing niet beter dan de Linux oplossing, of vice versa. Beide gebruiken namelijk een hele andere aanpak. En als het er op aankomt, werken ze ook weer vrij vergelijkbaar, Kernelspace, userspace, hardware laag met kernel ertussen die verzoeken van de user regelt, beide zijn modulair, maar de ene is micro de ander macro (Alhoewel Linux de laatste jaren ook steeds meer onder de kernel laat vallen). Overigens die scheiding tussen kernel en user space heeft Windows ook sinds Windows 8(.1, weet niet zeker meer welke van de 2, ik dacht gewoon 8.0), heeft even geduurt, is met Vista in gang gezet om dat te scheiden. Op rechten gebruik werken beide gewoon anders, en beide is gewoon veilig. En slechte gewoontes, ik vind chmod een hork, afschuwelijk systeem, het werkt en doet wat het moet doen, maar daar is ook alles mee gezegt, persoonlijk vind ik de Windows aanpak een stuk overzichtelijker en admin vriendelijker, beide werken gewoon goed en zonder priviledge escalation kom je er niet omheen. Enige nadeel aan de 1 of ander is persoonlijke voorkeur.
Er werken geen 'vele duizenden' aan Windows. Enkel duizend, naar boven afgerond. Er hebben al meer mensen naar de Linux source code gekeken.

Ubuntu heeft een average van 6.30, Debian 6.50, en Windows 7.50. Dus, deze distributies zijn veiliger per definitie.

En ja, meer vinden is meer gerepareerd en dus veiliger. Als je kijkt, op Windows zijn er in de 200 fouten gevonden, op Debian in de 600.
Dus er zijn meer fouten gevonden en gerepareerd op Debian (open-source = meer vinden). En alhoewel er op Debian meer gevonden zijn, heeft Windows toch een hogere average weight van critical vulnerabilities. Dus Windows heeft 81/275 critical, Debian 62/650. Dat is 30% (Windows) vs 2.4% (Debian) critical van alle gevonden bugs.
Jawel er werken duizenden mensen aan windows, die "enkel" duizend waar jij op doelt is slechts de NT kernel (800 man oid werkt daaraan). Verder heb je al meer dan 3000 man in Redmond zitten die constant aan Windows werken, nog een duizend oid in India en nog wat offices over de wereld die aan Windows werken. Buiten dat MS niet zo heel erg gesloten is met hun code en het voor betrekkelijk veel mensen in te zien is. (Windows krijg je het zonder hulp van MS toch niet voor elkaar het te builden, alhoewel ze dit -naar schijnt- met Windows 10 verbeterd hebben). Er hadden als ik het zo goed had meer dan 8000 man aan Windows 7 zelf gewerkt.

Verder zit je post weer vol met aannames.

Als software FOSS is, is het niet per definitie veiliger en beter. Het vinden van aantal exploits betekend ook niet dat iets daarom veiliger is of niet, ik haalde aantal exploits juist express aan(Windows is onveilig gezien de gevonden exploits, debian vind meer exploits, maar debian is in eens veiliger omdat daar juist meer exploits gevonden worden |:( ). Buiten dat is Debian eerder uitzondering dan regel in de FOSS wereld.

[Reactie gewijzigd door batjes op 1 augustus 2016 12:05]

Open-source > 3000 mensen; je standpunt blijft ongeldig.

Open-source software is niet per definitie veiliger en beter, maar je kan wel controleren OF het veiliger/beter is.
De enige reden waarom er in Debian meer exploits gevonden worden dan in Windows is doordat het open-source is. En zoals je in de statistieken ziet heeft Windows meer ergere kwetsbaarheden doordat het een slechtere architectuur heeft dan e.g Debian.

En hoezo is Debian een 'uitzondering'? Het is open-source, open-source is open-source; nu moet je beginnen met je flauwe kul.
Deze claim wordt zo vaak gemaakt, maar hier is nog altijd nooit bewijs voor aangeleverd. Er is absoluut geen reden om deze conclusie te trekken totdat er een fatsoenlijke studie naar gedaan wordt, en dat is momenteel gewoon niet het geval.
Je kan op zijn minst zien hoe er met code om wordt gegaan.

Ik heb in het bedrijfsleven genoeg code die niet om aan te zien is, verkocht en in gebruik genomen zien worden.

Dat hoeft je bij OpenSource niet te overkomen.
Genoeg ralle code in open source projecten, ooit de source van WordPress gezien?
Dat is ook een manier/mogelijkheid.
Thanks man.
Dat meer mensen de code kunnen bekijken zegt natuurlijk niet zoveel.

- hoeveel mensen kijken de code ook echt in?
- hoeveel van die mensen hebben ook echt de skills om code goed door te spitten?
- hoeveel van die mensen gaat ook echtde hele code doorlopen?
- en canvan dat minimale percentage, wie die dat gratis uit goodwill en hoeveel doen het om exploits te vinden?
Eigenlijk best veel mensen. Dit noemen ze peer-review.
Buiten dat, veel werknemers van bedrijven zoals e.g Google doen dit in hun vrije tijd, En gratis uit goodwill? Veel open-source projecten hebben bug-bounties.
Veel niet open source projecten hebben ook gewoon bug bounties hoor. Daarnaast is er ook gewoon peer review bij de closed source projecten.
Ja, die hebben ze, ik wou er gewoon op wijzen dat het clichť dat open-source reviewers alles maar gratis doen; het is niet omdat een ontwikkelaar zijn gebruikers niet uitmelkt dat 'ie geen geld heeft om mensen te betalen.

Peer-review bij closed-source? Nee, fout.
Closed-source bedrijven huren enkele mensen in om het na te kijken, maar geen hele 'peer' zoals bij open-source. Buiten dat, je kan wel kijken bij closed-source als er fouten in zitten, maar dat is blackbox-testing, en helemaal niet zo effectief.
Ik denk dat jij een verkeerde definitie van peer review hebt. Peer review is niet meer en minder dan een code review (of idee review) door experts in hetzelfde vakgebied. Dit kunnen dus ook gewoon collega's zijn of collega's van een andere locatie. Bij closed source kan dus prima peer review toegepast worden, het is zelfs een gewoonte aan het worden bij de meeste goede software bedrijven.
Je overschat echt de hoeveelheid tijd dat mensen erin steken want er is meestal juist GEEN grote 'peer'. De grote peer reviews (met meer dan 4-5 mensen) worden alleen gedaan op grote super populaire frameworks of applicaties en dan nog is 80% van die mensen collegas van diegene die een review aanvraagt. De duizend in dozijn applicatie waarvan de code op github ofzo staat mag blij zijn als er 1 iemand een keertje naar een pull request kijkt of naar de commits.

Daarnaast een peer review van meer dan 3-5 mensen op elke pull request / commit is echt overkill in de meeste gevallen.

[Reactie gewijzigd door Rutix op 29 juli 2016 20:12]

Wat zeg jij nu? Zeg jij nu dat bij een open-source project zoals Linux, niet meer dan 5 mensen de broncode hebben bekeken?

https://github.com/torvalds/linux
De ******* "contributors" knop heeft een infinite-logo.
Dat zijn meer als 5 mensen hoor.

[Reactie gewijzigd door ONiel op 29 juli 2016 21:02]

Je hebt de tweede regel van mij reply niet gelezen. Daarin staat letterlijk het antwoord in op je vragen.
Nu praat je dubbel. Eerst zeg je dat er te weinig mensen zijn die code nakijken, en nu zeg je dat het 'overkill' is als teveel mensen kijken?
Weer lees je mijn reply niet goed. Er staat toch niet voor niks in "in de meeste gevallen"? Daarnaast zei ik nooit dat er te weinig mensen de code nakijken maar zei ik dat open source dat niet per definitie beter maakt en dat een code review process dat ook prima kan opvangen bij closed source. Jij was diegene die begon te praten over een verschil van 3 en 50.
Ok, maar ja. Beter overkill dan onderkill he?
Buiten dat, in de meeste gevallen niet nee. Maar zoals ik al zei: De belangrijkste en grootste projecten worden wel goed nagekeken.
"Peer" is Engels voor "gelijke". Ofwel iemand met dezelfde skills/status/baan.
Daar waar het niet kan.

Geen.

Daar waar het wel kan is onduidelijk. 1 als meer als geen.

[Reactie gewijzigd door Mit-46 op 29 juli 2016 15:25]

Ik zou het bijvoorbeeld interessant vinden voor het maken van deployment scripts die crossplatform zijn.
Tja en dan ga je dus nat, want open source betekent niet dat er redelijke implementaties van te vinden zijn op andere platformen... PowerShell drijft op .NET, en ja dat is open source, en nee, dat is brak ondersteund op Mac of Linux/Unix....
helemaal niet .Net Core werkt prima op Linux. De tijden zijn echt wel veranderd
PowerShell DSC maakt anders gewoon MOF bestanden (welke een industrie standaard is), waarmee je zowel Microsoft als Linux servers kan beheren. Of Windows vanuit Puppet of Chef.
De weg die Microsoft nu aan het bewandelen is dat straks op OS X en op linux gewoon goede ondersteuning en implementaties zijn voor .NET Core + alle andere Core componenten zoals ASP.NET Core. Zelf vind ik 1.0 van .NET Core al zeer goed werken op linux.
Pak dan python...
Of ruby (puppet ;-) _

/runs
Omdat Microsoft meer community gedreven wil worden ipv van het gesloten imago wat het nu heeft.

En door dat er meer mensen werken met microsoft opensource software komen ze automatisch in aanraking met software waar wel voor betaald moet worden.

Azure, Sql, Exchange, Ads, Windows, Power BI, enzovoort.
Omdat als het opensource is, mensen zin hebben om "Eraan te pielen" wat dus meer zicht geeft op de code, en een grotere pakkans van bugs / exploits :9
Nog even en Windows is bijna een soort desktop environment voor Linux. Linux kernel, paar MS aanpassingen, en de Windows shell.

Ik heb het al een paar keer voor de grap gezegd, al voordat "Bash on Ubuntu on Windows" uitkwam, maar nu lijkt het bijna wel echt die kant op te gaan.

[Reactie gewijzigd door Amanoo op 29 juli 2016 15:32]

zou leuk zijn, linux kernel met daarop een windows 'x"-server en desktop-manager...
kunnen we wellicht directx games draaien met een beetje prielen :) OP linux :)

dat zou wel eens het einde kunnen betekenen van de klassieke windows desktop, tenminste toch bij gamers want ik vermoed dat we meer uit een linux kernel gaan halen dan uit de windows kernel; al moeten we eerlijk toegeven dat er de laatste jaren veel vooruitgang is geweest; in windows 10 haal je meer uit je hardware dan ooit tevoren op een windows machine...
Misschien wel een interessant onderwerp om je in te verdiepen.
Afgezien van de keuzes van het bedrijf erachter, is de NT kernel en Windows eromheen een goed gemaakt systeem. Voor wanneer je jezelf iets verder wilt verdiepen in de samengang en de samenwerking tussen Windows en Linux:

WSL executes unmodified Linux ELF64 binaries by emulating a Linux kernel interface on top of the Windows NT kernel. One of the kernel interfaces that it exposes are system calls (syscalls). This post will dive into how syscalls are handled in WSL. June 8, 2016

Windows NT and VMS: The Rest of the Story "(...) a short tour of NT's lineage" Nov 30, 1998

En als je helemaal zin hebt om te lezen: Showstopper! The Breakneck Race to Create Windows NT and the Next Generation at Microsoft Bol.com, origineel 1994

Kort gezegd: de NT-kernel is niet toe aan vervanging door Linux. Uiteindelijk maakt het daarnaast ook weer niet heel veel uit wat je gebruikt als echte basis: je bouwt het op vanuit ontzettend veel verschillende software. Van drivers, tot shells, tot compositors, tot init systemen (systemd spektakel als goed voorbeeld).
Showstopper is een interessant boek. Ook verkrijgbaar via Amazon/Kindle. Zeker aan te raden voor de tweaker die op vakantie gaat ;)
De uitspraak van Microsoft dat Windows 10 de laatste windows versie is, kun je in dit licht ook op meerdere manieren opvatten.

Op dit item kan niet meer gereageerd worden.



Apple iOS 10 Google Pixel Apple iPhone 7 Sony PlayStation VR AMD Radeon RX 480 4GB Battlefield 1 Google Android Nougat Watch Dogs 2

© 1998 - 2016 de Persgroep Online Services B.V. Tweakers vormt samen met o.a. Autotrack en Carsom.nl de Persgroep Online Services B.V. Hosting door True