Gå til hovedindhold
Version2 it for professionelle
Forsiden

Hovedmenu

  • It-nyheder
  • Blogs
  • It-job
  • It-firmaer
  • Whitepapers
  • Opret bruger
  • Log ind
Du kan logge ind med din e-mail-adresse
Der er forskel på store og små bogstaver i adgangskoden.
Glemt adgangskode?
Se kommentarer (9)
Emner Udviklingsværktøjer, Styresystemer

Potientiale for elongerede kønskirtler

Af Poul-Henning Kamp 9. marts 2010 kl. 09:17

Blandt meget andet manglende tankegods i socket-API'et, er en måde at finde ud af om data faktisk er sendt ud på nettet og hvis relevant for protokollen, ACK'et af den anden ende.

Der findes en ioctl til at finde ud af hvor mange bytes der er ankommet, men endnu ikke læst, FIONREAD, som naturligvis ikke er del af POSIX, dertil er den alt for anvendelig.

At ioctl'en hedder FIOmumle, betyder at den arbejder på alle fildescriptorer, således at også pipes, tty'er, USB pipes kan anvende samme generiske facilitet.

Man kunne sågar lade almindelige filer fortælle hvor meget read-ahead der er klar i kernens buffere, hvis man havde de lyster.

Det ligger derfor umiddelbart for, at FIONWRITE bør returnere bytes der er skrevet til en fildescriptor, men endnu ikke leveret til destinationen

Det er også hvad den gør, i FreeBSD.

Og NetBSD.

Linux har ikke FIONWRITE, men lader sockets svare på en ioctl ved navn TIOCOUTQ, der, så vidt jeg kan gennemskue, returnerer samme metrik. Der er lige den arkitektoniske detalje at en TIOmumle ioctl bruges til TTY'er...

VxWorks har også FIONWRITE: For TTY'er, returnerer den antal endnu ikke udskibede tegn, i andre sammenhænge, er det hvor mange bytes der endnu er plads til at skrive.

I ZOS, operativsystemet tidligere kendt som MVS, er FIONWRITE defineret for AF_UNIX sockets, men returnerer hvor mange bytes der endnu kan skrives, før bufferen er fyldt.

I RTOS32, (whatever that is), returnerer FIONWRITE "the number of bytes available to write", altså igen hvor meget plads der er i bufferen, istedet for hvor meget der stadig ligger i den.

Purister som jeg, vil påpege at en funktion der returnerer hvor meget plads der er, burde hedde FIONSPACE.

Det gør den også på FreeBSD.

Og NetBSD.

Linux har ikke FIONSPACE.

Det har RTOS32 naturligvis heller ikke, de bruger jo FIONWRITE.

Ditto for ZOS, ihvertfald for AF_UNIX sockets.

Opensolaris har FIONREAD, men hverken FIONWRITE eller FIONSPACE.

ARGH!

phk

Send Tweet
Udskriv
Billede af Poul-Henning KampOm Poul-Henning Kamp

Selvstændig systemprogrammør, kernekoder, Varnish-forfatter, data-arkæolog og brokkehoved uden særlig portefølje.

Follow @bsdphk

Kommentarer (9)

Opret en konto eller log ind for at følge indhold på Version2 - og bliv opdateret via e-mail eller rss

Følg kommentarer
Jesper Dahl Nyerup 9. mar. 2010 - 10.57
 
Det er vigtigt, den slags.

Men hvis jeg fortalte min kone om det, ville hun antageligt stille samme ansigt op, som jeg præsterer, når jeg er med hende ud og se på sko.

  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer
Markus Hornum-Stenz 9. mar. 2010 - 11.53
 
ACK FIOmumle?

Hæ ja, den titel var ingen underdrivelse.
Det er vist noget med at når man skriver noget, vil det være rart hvis man kunne vide om det bliver læst?

Men det der med læsbarhed og skrivemotiv er ikke lige din kop te, hva' PHK?
Jeg ved intet om socket API'er, men med al respekt:

Efter at have læst sådan en klamamse, sidder jeg tilbage med en fornemmelse af at hensigten med at skrive den - bevidst eller ubevidst - mere er at udstille din ekstraordinære nørdeniveau og få lidt luft for din frustration over dine nørdekollegers middelmådighed, end at kommunikere noget konstruktivt til nogen?

Hmm, måske skal jeg bare lade være med at bilde mig ind at jeg kan læse systemprogrammørblogs....men når du er læsbar, er du en superskribent, så trods alt: Tak for de elongerede kønskirtler

PS: Gad vide hvordan Roald Als ville portrættere dig?

  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer
Carsten Olsen 9. mar. 2010 - 12.00
 
Tag kontakt mellem Linux/BSD ?

Var det ikke en ide med nogen møder mellem de forskellige UNIX (alike) lejre?

INGEN i nogen UNIX lejre kan være tjent med tingenes tilstand som du beskriver dem.

Man kunne måske lave en fælles "mail list" hvor alle udviklere kan anmelde forskelligheder i UNIX afarter. Og GURU'erne fra de forskellige UNIX lejre kan skrive hvad de agter at gøre ved "uensartetheden". (Jeg kunne forestille mig nogen kontroversielle svar hvor "elongerede kønskirtler" o.lign. kunne skræmme nogen useriøse folk væk, - og fred med det.)

  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer
Carsten Sonne 9. mar. 2010 - 12.05
 
Portability

Hvis man tager sine interop/portable briller på, så er overstående klassiske eksempler på divergerende snitflader/API, der gør processen sværre og i værste tilfælde stopper den.

Der er nok ikke andre end Austin Group at takke. Generelt har jeg det indtryk at POSIX ikke udvikler sig proaktivt nok, med overstående eksempel til følge.

Måske burde man i Austin Group overveje at strømline beslutningsprocesserne. Helt generelt må man sige, at nogle få uheldige beslutninger sammen med en masse gode, er bedre end et ineffektivt beslutningsorgan.

  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer
Poul-Henning Kamps billede
Poul-Henning Kamp 9. mar. 2010 - 12.26
 
Re: Portability
Generelt har jeg det indtryk at POSIX ikke udvikler sig proaktivt nok, med overstående eksempel til følge.

Udvikler POSIX sig da overhovedet ?

Det er mit indtryk at der ingen nytænkning, hvis overhovedet tænkning, er kommet fra den kant siden sidste årtusinde ?

Og ja, det ville sikkert kunne blive stort hvis man kunne sende Linus og nogle strategisk valgte personer til Tristan Da Cune en vinters tid, men det sker ikke, så længe UNIX holdningen til portabilitet er: "De andre skal bare gøre som mig og autocrap-tools tager sig af resten".

Poul-Henning

  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer
Rasmus Toftdahl Olesen 9. mar. 2010 - 13.07
 
Så er det ikke kun mig

Jeg har fornyligt også stiftet bekendskab med sockets API'erne (i mit tilfælde heldigvis kun Linux sockets og Winsock) og der var virkelig også tendens til lange testikler.

Hvis nu FreeBSD indførte et par nye funktioner der gjorde at man ikke skulle bruge ioctl til at få tingene til at virke så må andre vel også skulle bevæge sig i samme retning for at være "BSD-sockets" compliant?

  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer
Carsten Olsen 9. mar. 2010 - 14.33
 
Google søgning "POSIX SUS LSB C99/BSD"

Ovenstående søgning skulle skulle give svaret på: "hvorfor er der ikke mere fodslav i UNIX lejren?"

I stedet gav det svaret på et andet spørgsmål.
Svaret er: "De sejrede stort fordi UNIX lejren kun så hinanden under slåskampen"

Så mangler vi bare spørgsmålet: "Hvorfor vandt Microsoft 21-0 på OS markedet (1992-96)"

(Jeg ved godt PHK siger at det ikke er noget mål i sig selv at få medlemmer til BSD lejren, det er mere vigtigt med kvaliteten af (de få) medlemmer - men alligevel)

  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer
Jesper S. Møller 9. mar. 2010 - 17.58
 
"A little case of history repeating itself"

Jeg plejer at joke med at 50% af den tid energiske hobbyister bruger på Open Source udvikling bruges på at udvikle stadigt mere sofistikerede skinning APIer til stadig mere obskure windowmanagere som så afvikles af folk der helst vil arbejde i xterm eller tilsvarende. :-)

Hvis bare lidt af dén energi blev flyttet til egentlige problemer som dette ville verden være lidt sjovere og man skulle ikke debugge sære makrosprog for at bygge en Makefil.

Før pthreads var rigtig på plads var der også kloge folk, der kæmpede med at udjævne nogle af de uheldige forskelle imellem sammenlignelige platforme, f.eks. ACE (ja, det er i C++, men det var stadig meget lavniveau og med lavt overhead). Den type projekt kunne man er der åbenbart stadig brug for.

Men det var bare 15 år siden, kører vi i ring eller hvad?

http://www.cs.wustl.edu/~schmidt/ACE.html

  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer
Morten Wegelbye Nissen 10. mar. 2010 - 10.24
 
Det kan umuligt være så vigtigt

Sidst jeg var vidne til en tilnærmelse fra den ene fløj - takkede modparten nej, alene pga. navnet på den standard man forsøgte at støbe.

  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer

Tilføj kommentar

Opret en konto eller log ind for at følge indhold på Version2 - og bliv opdateret via e-mail eller rss

Følg kommentarer
Log ind herunder eller opret en bruger for at skrive kommentarer
Du kan logge ind med din e-mail-adresse
Der er forskel på store og små bogstaver i adgangskoden.
Glemt adgangskode?

Seneste nyt

Meego-afløseren Tizen klar til at tage kampen op med Android

Udgivet 23. maj 16.01Opdateret 23. maj 16.01

Massiv logning af danskernes internetbrug - men politiet bruger kun IP-adressen

Udgivet 23. maj 15.22Opdateret 23. maj 15.22

198 IBM-medarbejdere fritstillet med øjeblikkelig virkning

Udgivet 23. maj 14.28Opdateret 23. maj 15.10

Mystisk Project X afsløret: Rent flashlager giver fænomenal IOPS-ydelse

Udgivet 23. maj 14.19Opdateret 23. maj 14.19

Region sparer licens-millioner på at lukke ”Grønt System”

Udgivet 23. maj 13.22Opdateret 23. maj 13.22

Flere it-nyheder »

Tilmeld dig Version2's it-nyhedsbrev og vind den nye iPad.

Seneste debat

  1. GOTO - Embracing variability

    7 comments.
    Last update 27 minutter 10 sekunder
    Skrevet af Allan Ebdrup
  2. Massiv logning af danskernes internetbrug - men politiet bruger kun IP-adressen

    2 comments.
    Last update 1 time 15 minutter
    Skrevet af Kim Henriksen
  3. HTML5 – det nye sort?

    9 comments.
    Last update 1 time 31 minutter
    Skrevet af Benni Bennetsen
  4. Ny malware går efter alle browsere - også på Mac og Linux

    7 comments.
    Last update 1 time 37 minutter
    Skrevet af Simon Friis Vindum
  5. Finansminister afliver teori om NemID som spionsoftware

    25 comments.
    Last update 1 time 42 minutter
    Skrevet af Ole Tange
  6. Meego-afløseren Tizen klar til at tage kampen op med Android

    2 comments.
    Last update 3 timer 11 minutter
    Skrevet af Jens Schumacher
  7. Sådan formaterer du tekst i debatten på Version2

    30 comments.
    Last update 3 timer 27 minutter
    Skrevet af Jesper Lund Stocholm
  8. Minister giver e-læring i køreskolerne det røde kort

    2 comments.
    Last update 3 timer 50 minutter
    Skrevet af Jens Madsen

Mere debat »

It-virksomheder

D60
|
Webdanmark.Com
|
Netcompany
|
Byggeweb
|
Agema
|
ØBERG Partners
|
Aalborg Data
|
Planahead
|
Raxco Scandinavia
|
solvo it
|
Zylinc
|
Sharkcell
 

Information

  • Kontakt redaktionen
  • Job- og annoncesalg
  • Teknisk support
  • Om Version2
  • Brugerbetingelser
  • Privatlivspolitik

Aktuelle emner

  • Agil udvikling
  • Android
  • Bruttolønsordning
  • Business Intelligence
  • Cloud computing
  • Download Windows 8
  • HTML5
  • Harddisk-priser
  • IE9
  • Intranet
  • It-sikkerhed
  • Kindle Fire
  • Multimedieskat
  • NemID
  • OS X Mountain Lion
  • Open source CMS
  • Projektledelse
  • Scrum
  • Sharepoint intranet
  • Storage
  • Ubuntu 11.10
  • Virtualisering
  • Windows 8
  • Windows Phone 7
  • iOS 5
  • iPhone 4S

Tjenester

  • Android-app
  • iPhone-app
  • RSS-feeds
Følg @version2dk
Tilmeld dig Version2's it-nyhedsbrev og vind den nye iPad.

Version2 udgives af

  • Mediehuset Ingeniøren A/S work Skelbækgade 4 1717 København V
  • Tlf. work 33265300