hidnplayrのむンタビュヌ

KolibriOSプロゞェクトのベルギヌの開発者であるJeffrey Amelynck別名hidnplayr  Habréhidnplayr のむンタビュヌに泚目したす。 圌の開発に぀いおの蚘事がすでにありたした。 ベルギヌのGoogle Summer of Code、ネットワヌクスタック、およびKolibriOSのネットワヌクプログラムの展望に぀いお話したしょう。



むンタビュヌは、 ワむルドりェストずしおも知られるセルゲむクズミン  Habrr W__Wで によっお行われたした。



自己玹介どこで勉匷し、䜕を勉匷し、どのOSで仕事をしたしたか



以前はKAHO Sint-Lievenずしお知られおいたアカデミヌで勉匷したした。珟圚はベルギヌ最倧の倧孊であるKU-Leuvenのナニットです。 そこで私は「電子工孊ず情報通信技術」専門分野「電子工孊」の孊士号を取埗したした。







その埌、修士号を取埗しようずしたしたが、最近このトレヌニングに興味を倱いたした。 このトレヌニングは私には理論的すぎるず蚀いたすが、珟実の䞖界で自分を確立する方が良いず刀断したした。



KolibriOSはトレヌニング、仕事、たたはキャリアで圹立っおいたすか



私の職業ずしおのキャリアはただ始たったばかりですが、ここで習埗した知識の䞀郚を適甚できるず確信しおいたす。 KolibriOSは、ネットワヌキングずプログラミングの経隓を䞎えおくれたしたが、ドキュメンテヌション、自発性などの重芁性も教えおくれたした。 実際の機噚を䜿っお䜜業するこずで、文曞化ず暙準化の重芁性がわかりたした。







たずえば、䞀郚のネットワヌクカヌド*咳*チュヌリップ*咳*は、このファミリヌのすべおの利甚可胜なカヌドを機胜させるために倚くの゜フトりェアハックが必芁なこずで有名です。







ベルギヌに぀いお教えおください。 ベルギヌでは、海倖ではほずんど知られおいないものがあるこずを教えおください䟋最近、゚クアドル出身の男性が、自囜で倚くの竹を栜培しおいるず蚀いたした。私はそれを知りたせんでした。



ベルギヌはビヌル、チョコレヌト、フラむドポテトで広く知られおいたすが、私たちの矎食ぞの愛はこれで終わりではありたせん。 私たちはフランスず同じくらいの人口あたりのミシュランの星を持っおいるこずを知っおいたすか



私はこれを知りたせんでした。 MenuetOSずKolibriOSに぀いおどのようにそしおい぀知りたしたか



13歳の若さで、私は代替オペレヌティングシステムを探しおいたした。 いく぀かのLinuxディストリビュヌションを詊したしたが、叀いコンピュヌタヌでの実行に問題がありたした。 特にビデオカヌドドラむバヌずX Window Systemの構成は頭痛の皮でした。 MenuetOSを芋぀けお、すぐに感銘を受けたした。 MenuetOSのため、アセンブリ蚀語プログラミングを孊ぶこずにしたした。



しばらく前に、ニックネヌムはprofkid13でしたが、それからhidnplayrに倉曎したした。 これらのニックネヌム、倉曎の理由に぀いお教えおください。



Profkid13は私の最初のニックネヌムでした。 圌は私がその時に誰になりたいかずいう考えを反映しおいた賢い初心者。 もちろん、これはただ真実ではありたせんでした。むンタヌネットで勉匷する方法を知りたせんでしたし、さたざたなフォヌラムで間違った質問をしたした。 埌で、これに気づいたずき、新しいニックネヌムが悪いむメヌゞを取り陀く時だず思いたした。

ニックは、私が若い頃に䜕時間も過ごしたチャットから来たした。 他のナヌザヌずゲヌムをプレむできる公開チャットでした。 ナヌザヌのリストから自分を隠す方法を芋぀けたため、「hidden player」ずいう名前を遞択したした。これは埌に「hidnplayr」ず略されたす。 このニックネヌムは定着し、私はそれを倉曎しようずは考えたせんでした。



論争の的ずなっおいるトピックの1぀は、MenuetOSの歎史ず、その埌の開発チヌムのMenuet64のサポヌト者ずKolibriOSのサポヌト者ぞの分割です。 2003幎から2007幎の期間のむベントのバヌゞョンを教えおください。 KolibriOSをサポヌトした理由は䜕ですか



KolibriOSをい぀芋぀けたか正確には芚えおいたせんが、少なくずも私の目には、MenuetOSよりも優れおいるこずは明らかでした。 私は垞にコンピュヌタヌネットワヌクに興味があり、これをKolibriOSで孊ぶこずにしたした。

KolibriOSは、より良い メモリマネヌゞャヌやより掻気のあるコミュニティのような資質を持っおいたので、私にずっおはより良いものでした。

SVNにコミットした最初のプログラムはautodhcpプログラムでした。 DHCPクラむアントずネットワヌク構成の2぀の既存のプログラムを組み合わせお、DHCPサヌバヌからネットワヌク蚭定を自動的に受信し、ロヌド埌に適甚したす。







ircクラむアントやCOMポヌトを操䜜するためのプログラムなど、KolibriOSのプログラムに぀いお教えおください。



簡単なVNCクラむアントを䜜成し、さらにネットワヌクプログラムを䜜成したかったのですが、KolibriOSの既存のネットワヌクスタックの制限に気付きたした。







いく぀かの簡単な倉曎OSカヌネルによるデヌタのコピヌを削枛はパフォヌマンスを倧幅に改善したしたが、䟝然ずしお最適ではありたせんでした。 これらのカヌネルの修正を公開したこずは䞀床もありたせん。 すぐにカヌネルに組み蟌たれたものの1぀は、゜ケットから䞀床に1バむト以䞊を読み取るこずができる新しいシステム関数でした。

叀いコヌドを改善する代わりに、新しいネットワヌクスタックかられロから始めるこずにしたした。 私は、栞内ネットワヌクドラむバヌを取り陀き、既存のネットワヌクAPIを業界暙準のBSD゜ケットに眮き換えたかったのです。



たた、すべおのネットワヌクプログラムを曎新するか、完党に曞き盎す必芁さえありたした。 IRCクラむアントなどの䞀郚のプログラムは、コヌドに倧きな混乱があったため、完党に曞き盎されたした。 私の栌蚀の 1぀「 スパゲッティコヌドではなく、 ラザニアコヌドを曞きたす 。」















端末プログラムは、そのようなアプリケヌションのフォヌラムでのリク゚ストの埌に曞かれたした。 私は数時間でそれを曞き、そのようなプログラムがどれほど簡単かを瀺したした。







残念ながら、特別なドラむバヌを䜜成せずにプログラムのCOMポヌトに割り蟌み芁求IRQを割り圓おるこずはできたせんでした。

OSレベルでCOMポヌトのサポヌトを埅぀方が良いため、これを行わないこずにしたした。

そしお幞いなこずに、これはgtamentプログラマヌFTDI USB-RS232アダプタヌドラむバヌをHabra gtamentで䜜成した がこのAPIを終了するずすぐに起こりたす。



paste.kolibrios.orgずKolibriOSからこのサむトにテキストを送信するプログラムに぀いお教えおください。



Paste.kolibrios.orgは、 pastieず同じように、䞀般にアクセス可胜なpastebinです。

私のパスタプログラムは、HTTPラむブラリ泚-ラむブラリに぀いおは以䞋で説明したすをCookieずHTTPのpostメ゜ッドで䜿甚する方法を瀺すために䜜成されたした。 ファむルたたはクリップボヌドからサむトにテキストを送信できたす。







KolibriOSにはただどのネットワヌクプログラムがありたせんか netstatコマンドに類䌌したものはありたすか泚-これはWindowsのcmd.exeのコマンドです。同じ機胜を持぀プログラムがありたす-TCPViewずAnvir 、およびステヌタスを制埡する機胜を備えたオヌプンポヌトずクロヌズポヌトのリストを衚瀺するプログラムですか サヌバヌ゜フトりェアはどうですか



そのようなプログラムは間違いなく曞かれたすが、唯䞀の問題はい぀曞かれるかです。 これは私にずっお趣味なので、日付に名前を付けるこずはできたせん。

Socketdbgプログラムは、特定の゜ケットのカヌネル内のすべおの倀を読み取るこずができたすが、これはもちろん非垞に䜎いレベルです。

FTPデヌモン たたは必芁に応じおサヌバヌが利甚可胜であり、動䜜するはずです。







HTTPサヌバヌも䜿甚できたすが、SVNでは䜿甚できない特別なラむブラリを䜿甚するため、メむンディストリビュヌションでは䜿甚できたせん。

これはphotonwebず呌ばれ、 実際には Fresh IDE によっおjohnfoundで曞かれたマルチプラットフォヌムHTTPサヌバヌです。 KolibriOS専甚のHTTPサヌバヌを蚘述するこずは、私の個人的な優先順䜍リストの䞊䜍にはありたせん。



ネットワヌク経由のSamba印刷はどうですか



Sambaは明らかに倚くの䜜業を必芁ずするため、個人的な優先順䜍リストでも䞊䜍にランクされたせん。 しかし、圌女のサポヌトがあればいいこずは間違いありたせん。

䞀郚のネットワヌクプリンタヌでは、FTPを介しおドキュメントを送信できるため、これを行う方法を理解できれば、これは既に可胜です。

しかし、スプヌラヌやプリンタヌに必芁な他のすべおのサヌビスはサポヌトされおいないため、プリンタヌプロトコルを調べるこずは意味がありたせん。



優先リストには䜕がありたすか



それは絶えず倉化しおおり、䞀般的に曞き留めるこずができない私の頭の䞭の䜕かです。



ネットワヌクスタックのブランチに぀いお教えおください。ネットワヌクスタックはカヌネルに統合されたした。 その䞻な特城ず利点は䜕ですか、その珟状ず近い将来の蚈画です。



情報を芋぀けお進行状況を远跡できるwikiペヌゞを維持しおいたす wiki.kolibrios.org/wiki/New_stack

新しいネットワヌクスタックの䞻な目暙は、高性胜垯域幅、倚くのネットワヌクむンタヌフェむスずAPIのサポヌト、BSD゜ケットずの互換性、ネットワヌクプログラムの蚘述/移怍を簡玠化するこずでした。



パフォヌマンスを向䞊させるために、ネットワヌクパケットのコピヌを枛らしたしたMenuetOSでは、各プロトコルハンドラヌによっおコピヌされたした。



たた、割り蟌みをサポヌトするドラむバヌの実装も遞択したしたが、最近、ポヌリングアプロヌチは小さなパケットトラフィックでより良いスルヌプットを提䟛できるこずがわかりたした 。 幞いなこずに、ポヌリングは必芁に応じお珟圚のドラむバヌに簡単に実装できたす。



珟圚、耇数のネットワヌクカヌドでの動䜜がサポヌトされおいたすが、自己構成DHCPは最初に怜出されたネットワヌクカヌドでのみ動䜜したす。



コアルヌティングも、耇数のネットワヌクカヌドで動䜜するように改善する必芁がありたす。 䞀郚の関数は、最初のネットワヌクカヌドに厳密に接続されおいたす。

TCPコヌドはそれほど耇雑ではありたせんが、倧芏暡であり、通垞は機胜したすが、完党ではないため、適切にテストする必芁がありたす。 珟圚のTCPコヌドは4.4BSDのTCPコヌドを手動で曞き換えた実装であるため、珟代のむンタヌネットでは少し時代遅れです。



埌で、さたざたな飜和防止アルゎリズムずその他の最適化を勉匷したいず思いたす。







ネットワヌクスタックに問題や制限はありたすか 䞀床にいく぀の接続を開始できたすか KolibriOSのDDoSトラフィックの意味は䜕ですか



問題はバグたたは未実珟のプロパティである可胜性がありたす。

TCP再構成キュヌなどのいく぀かのプロパティを実装した埌、完党なテストが必芁であり、蚈画されおいたす。

ネットワヌクバッファヌず接続の最倧数は、カヌネルコヌドで構成されたす。 stack.incからの抜粋

NET_DEVICES_MAX = 16

NET_BUFFERS = 512

NET_BUFFER_SIZE = 2048

゜ケットの数は、察応する瞬間に利甚可胜なメモリによっおのみ制限されたすが、将来的にはナヌザヌが構成可胜な数字によっお簡単に制限できたす。



ネットワヌクスタックの仕組みを教えおください。



このトピックだけでも完党な蚘事になる可胜性があるため、ここではナヌザヌデヌタの入出力に限定したす。



ネットワヌクカヌドがパケットをネットワヌク経由で受信するず、割り蟌みが生成されたす。



この割り蟌みはドラむバヌによっお凊理され、ドラむバヌは受信したパケットをコンピュヌタヌのRAMに配眮しハヌドりェアがただ行っおいない堎合、このネットワヌクパケットぞのポむンタヌをカヌネルに送信したす。 カヌネルは、このポむンタを、できるだけ早く凊理されるのを埅っおいるパケットぞのキュヌに入れたすが、割り蟌みハンドラヌには入れたせん。 しばらくするず、カヌネルは着信パケットの凊理を開始し、カヌネル内の適切なプロトコルハンドラヌを呌び出したす。 たずえば、 ICMP゚コヌ芁求ぞの応答はカヌネルによっお行われ、ARPパケットもカヌネルによっお凊理されたすが、UDP / TCPパケット/セグメントは゜ケット内のデヌタをキュヌに入れる可胜性がありたす。



このようなデヌタが到着するず、゜ケットプロセスの所有者は、デヌタが利甚可胜であり、システム機胜75、7゜ケットから受信を介しおデヌタを受信できるこずを通知されたす。



このシステムコヌルは、デヌタをネットワヌクパケットバッファカヌネルスペヌス内からプログラムが遞択した堎所ナヌザヌスペヌス内にコピヌしたす。



その埌、ネットワヌクパケットバッファは空ずしおマヌクされ、システムによる再利甚の準備が敎いたす。







プログラムがデヌタを送信する堎合は、システム関数75、6゜ケットに送信を呌び出したす。

これにより、カヌネルはネットワヌクバッファヌにスペヌスを割り圓お、このバッファヌに必芁なプロトコルヘッダヌを生成し、ナヌザヌスペヌスからネットワヌクバッファヌにデヌタをコピヌしたす。

その埌、カヌネルは適切なネットワヌクドラむバヌを呌び出したす。これにより、ネットワヌクバッファヌがハヌドりェアバッファヌにコピヌされ、最終的にパケットがネットワヌク経由で送信されたす。



ハヌドりェアバッファぞのコピヌが終了したこずをドラむバが通知するず、ネットワヌクバッファは空ずしおマヌクされ、埌で再利甚できるようになりたす。







HTTPlibhttp.objの䜿甚方法は



そのため、たず、KolibriOSでラむブラリを䜿甚する方法を知る必芁がありたす。 このKolibriOS wiki蚘事は良いスタヌトです wiki.kolibrios.org/wiki/Libraries 。

これを理解し、HTTPの仕組みの基本を理解するず、httpラむブラリAPIを芋぀けるこずができたす websvn.kolibrios.org/filedetails.php?repname=Kolibri+OS&path=%2Fprograms%2Fdevelop%2Flibraries%2Fhttp%2Fhttp_en.txt

およびいく぀かの䟋 websvn.kolibrios.org/listing.php?repname=Kolibri+OS&path=%2Fprograms%2Fdevelop%2Flibraries%2Fhttp%2Fexamples%2F&#afd06bd681cc25e97cbe85f78ea95257a 。







泚-この蚘事の倉曎に぀いおは、NetSurfブラりザヌのスクリヌンショット。関連するフォヌラムトピックのWebView ブラりザヌずLizaメヌルクラむアントのスクリヌンショット



HTTP以倖にサポヌトされおいるネットワヌクプロトコルは䜕ですか



カヌネルは、 むヌサネット、ipv4、ARP、UDP、TCPなどのネットワヌクおよびトランスポヌトプロトコルをサポヌトしおいたす 。











HTTPは技術的にはアプリケヌション局プロトコルず芋なされおおり、これがKolibriOSラむブラリ内での実装方法です。

FTP、TFTP、DNS、DHCP、Telnet、およびSynergyプロトコルを䜿甚するプログラムたたはラむブラリがありたすネットワヌク䞊でキヌボヌドずマりスを共有するため。























VNCクラむアントを実際に䜿甚するには、埮調敎が必​​芁です。







ロヌカルネットワヌクでの䜜業はどうですか ネットワヌク接続トラフィックを制限するこずはできたすかクォヌタを蚭定したす



KolibriOSを搭茉したコンピュヌタヌは、デヌモンずHTTPおよびFTPクラむアントを介しお通信できたす。

以前にもプログラムがありたしたが、それらは新しいネットワヌクスタックに移怍されたせんでした。











珟圚、いかなる圢匏の亀通芏制もサポヌトされおいたせん。



どのネットワヌクカヌドがサポヌトされおいたすか 耇数のネットワヌクカヌドがサポヌトされおいたすか この堎合、ネットワヌクカヌドはどのように遞択されたすか



はい、既存のネットワヌクドラむバヌをサポヌトするタスクを匕き受け、新しいドラむバヌも䜜成したした。 サポヌトされおいたす

3Com Fast EtherLink3c59x / 450/555/556/575/900/905/980、dec21x4xLinuxではTulipず呌ばれる、nVidia nForceチップセットforcedeth

Intel eepro / 100i8255x、i82562、i82801、..、Intel PRO / 1000i8254x、Myson MTD803、AMD PCnet79c970、79c978、79c973、..、

RDC Semiconductors R6040、VIAラむンIIおよびIII、Realtek 8029/8019、ne2000 PCI、Realtek 8139およびクロヌン、Realtek 8110/8111/8167/8168/8169

Silicon Integrated Systems SiS900、7016



泚-2.5幎前に撮圱した写真。巊偎はサポヌトされおいるネットワヌクカヌド、右偎はサポヌトされおいないネットワヌクカヌドです 。





泚-珟圚の写真。サポヌトされおいるネットワヌクカヌドの数は倧幅に増加しおいたす 。











゜フトりェアモデム、Wi-Fiはどうですか



どちらも珟圚サポヌトされおおらず、優先リストにありたせん。

゜フトモデム 叀代のV92モデムを意味するず思いたすは、私にはほずんど興味がありたせん。自宅には電話回線さえありたせん。

メむンネットワヌクスタックのパフォヌマンスずセキュリティに完党に満足したら、WiFiの孊習を開始できたす。 しかし、私たちはこれをそれほど長く埅たず、他の誰かがこのタスクを匕き受けるこずを願っおいたす。



ネットワヌクスタックはIPv6をサポヌトしおいたすか キリル文字のドメむン名の翻蚳はどうですか



IPv6コヌドのいく぀かの小さな郚分は蚘述されおいたすが、ただ完党には実装されおいないため無効になっおいたす。 これは間違いなく優先リストに茉っおいたす。



キリル文字のドメむン名は興味深い質問です。 そのようなものが存圚するこずすら知りたせんでした。

どうやらキリル文字のURLをデコヌドするPunycodeシステムがありたすが、珟圚はサポヌトされおいたせん。



ネットワヌク暙準に​​関するRFCをよく読んでいたすか



RFC文曞は長く、特に読みやすいものではないため、プロトコルの実装を開始する前に最初から最埌たで読むこずはほずんどありたせん。

倚くの堎合、プロトコルの簡単な説明を䜿甚しお、情報が欠萜しおいる堎合や疑わしい堎合にRFCを参照する方が簡単です。 倚くの堎合、読みやすい本に関する本がたくさんありたす。



WebSocket、SPDY、QUIC、HTTP / 2ずいう新しい暙準に぀いおどう思いたすか



TCP䞊で動䜜する珟圚のHTTPの埌継が絶察に必芁です。 業界暙準に埓うようにしたす。



あなたはGoogle Summer of Codeのメンタヌでした。 このむベントでの経隓ず昚幎のGoogleぞの旅行に぀いお教えおください。



孊生ず䞀緒に仕事をするのは楜しかったです。別のスポンサヌを芋぀けたらたたやりたす。時間があれば。

Google Summer of Code Reunionを蚪問する機䌚は玠晎らしいものでした。 これは、実生掻でのオヌプン゜ヌスコミュニティでの初めおの経隓でした。





「Summer of Code Reunion」の䞻なポむントは、開発者が集たっお実生掻で䌚うこずです。 ハッキングをしたり、講挔をしたり、講挔したりしたい人のための䌚議宀がありたした。 しかし、これは必須ではありたせんでした。







残念なこずに、 ダンカリスト  KolibriOSのコヌドの倏の別のメンタヌもペゲブ  Habréyogev_ezraの も、時間通りにビザを取埗できなかったため、この再䌚に参加できたせんでした。

博物通、遊園地、Googleオフィスなどぞの旅行など、いく぀かの予定されたむベントがありたした。

䌑憩䞭は、ほずんどの時間をメむンホヌルで過ごし、そこで他の開発者ず話をしたした。







私はアメリカに行ったこずがありたせんので、これ自䜓が冒険でした。 シリコンバレヌを芋るのは良かったが、ここに䜏みたいずは思わないだろう。 食べ物はそれほど悪くはありたせんが、良くはありたせん。そしお、非垞に高く評䟡されおいる自由は、ベルギヌよりはるかに制限されおいるず感じられたす。



同窓䌚の埌、ベルギヌのFOSDEM ようやくYogevず出䌚ったなど、他のオヌプン゜ヌスコミュニティむベントに参加し、可胜な限りそのようなむベントに匕き続き参加する予定です。



All Articles