HackerTrans
TopNewTrendsCommentsPastAskShowJobs

cihangir

no profile record

comments

cihangir
·last year·discuss
Years ago, I attempted to build a user-space network stack in C [0] that processes raw packets through the TUN interface and got it working to a certain point. It currently includes a simple shell that allows configuring IP addresses, routes, and such. A hybrid structure reminiscent of both mbuf and sk_buf is used to hold the network packets. However, after completing the UDP implementation I didn't find the time or motivation to implement TCP. If you want to check it out, here's the link:

[0] https://github.com/cakturk/unet
cihangir
·2 years ago·discuss
Plan 9’s ARG(2) [0] macros are worth a look too. No dependencies at all, just plain macros, super lightweight and easy to use.

[0] https://9fans.github.io/plan9port/man/man3/arg.html
cihangir
·3 years ago·discuss
[flagged]
cihangir
·4 years ago·discuss
Last time I checked, C++ used function pointers behind the scenes to achieve virtual method dispatch.
cihangir
·4 years ago·discuss
Linux kernel code makes heavy use of object-oriented design patterns [0]. It's not the best of its kind, but still provides a reasonable example of how OOP can be achieved in C: https://gist.github.com/cakturk/cd75d0ca588151c86d641cb6d5a1...

[0] https://lwn.net/Articles/444910/
cihangir
·4 years ago·discuss
> That is a special page of memory that is mapped read-only into user mode from kernel mode, and it contains things like the current time, so that applications can get this information quickly without having to take a kernel transition. This page is at a fixed location for performance reasons.

I didn't know there was a vdso-like mechanism in Windows as in Linux.