On Thu, Aug 14, 2014 at 10:16 PM, Greg Freemyer <greg.freemyer@xxxxxxxxx> wrote: > On Thu, Aug 14, 2014 at 7:46 PM, Nick Krause <xerofoify@xxxxxxxxx> wrote: >> On Thu, Aug 14, 2014 at 6:12 PM, Nick Krause <xerofoify@xxxxxxxxx> wrote: >>> On Thu, Aug 14, 2014 at 5:38 PM, <Valdis.Kletnieks@xxxxxx> wrote: >>>> On Thu, 14 Aug 2014 17:13:28 -0400, Nick Krause said: >>>>> I am learned C. Perhaps I am a little rusty and need to review. >>>> >>>> We've seen very little evidence that you *ever* really understood C >>>> at all, and you're *far* from "a little rusty". It's been some 23 >>>> years since I've hacked any code in IBM's Pascal/VS, and 29 since I >>>> had to do maintenance work on PL/I code, and I *still* remember more >>>> of those than you remember of C. (I'll admit that my mad Snobol4 skilz >>>> have pretty much evaporated, though ;) >>>> >>>> http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect >>> I learned C like two years ago and never really practiced it that >>> much to be honest. >>> In addition I will come back in the future about I have read The C Programming >>> Language. >>> Cheers Nick >> Thanks for pointing me in the right direction , I really do need to >> brush up on my C. >> Sorry for wasting your time. >> Nick > > Nick, > > The linux kernel has some of the most complex c code on the planet. > It is seriously not a place to "brush-up", "practice", or "learn". > > A few _years_ of current c experience is pretty much a must to truly > grok the kernel. Once you have that as a base, then it takes a lot of > real study to comprehend the complex use cases used in the linux > kernel. > > I suggest you find a userspace project and work with it for a year or > two before you jump back into the kernel. Personally, I find the > libyal family of userspace c libraries interesting. The code base is > much smaller, but works with filesystems and is has multi-threaded > needs. The main author is crazy smart (works for Google), so I'm not > saying he needs your help. I'm saying the code base is small enough > you might be able to get your arms around it and really understand it. > That can help you understand the data structures used in filesystems, > complex volume systems, and encryption. > > https://code.google.com/p/libyal/wiki/Overview > > You said you have an interest in filesystems (as do I). > > Looking at the filesystem section of that overview a couple of his > targeted libraries haven't even been started yet. You code will > likely be throwaway code for your first effort or two, but > File systems > > Several libraries for different types of filesystems don't even have code yet. > > libfsclfs; Common Log File System (CLFS) format > libfshfs; Hierarchical File System (HFS) format - at the moment > documentation only > libfsntfs; New Technology File System (NTFS) format - at the moment > documentation only > libfsrefs; Resilient File System (ReFS) format - at the moment > documentation only > > For me, if I was trying to learn about filesystems, that would be a > fun way to hack away at new code. Also, libyal has lots of low level > libraries you can build upon so your not starting from scratch. > Further there are lots of "tools" written that provide high-level > end-user applications. > > If you'd rather look at volumes (similar to device mapper code), there > are these projects: > > libbde; BitLocker drive encryption (BDE) > libfvde; FileVault drive encryption (FVDE) > libluksde; LUKS Disk Encryption - at the moment documentation only > libvslvm; Linux Logical Volume Manager (LVM) volume system format - at > the moment documentation only > libvshadow; Volume Shadow Snapshot (VSS) format > libvslibs; several libraries for different types of volume systems. - > at the moment documentation only > > Or maybe you'd like to learn about virtual disks such as VMs use: > > Image formats > > Several libraries for accessing different types of storage media: > > libodraw; optical disc (split) RAW image format (bin/cue, iso/cue) > libsmdev; storage media devices > libsmraw; (split) RAW image format > libewf; Expert Witness Compression Format (EWF) image format > libqcow; QEMU Copy-On-Write (QCOW) image format > libvhdi; Virtual Hard Disk (VHD) image format > libvmdk; VMware Virtual Disk (VMDK) format > > FYI: I maintain many of the above for openSUSE and have the packages > in the main distro. My to do list for this weekend is to package up > libqcow, libvhdi, and libvmdk. That being my weekend plan is why I > have libyal in my head at the moment. > > Greg Greg, Thats very understandable I will look into something else for now. Nick _______________________________________________ Kernelnewbies mailing list Kernelnewbies@xxxxxxxxxxxxxxxxx http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies