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 _______________________________________________ Kernelnewbies mailing list Kernelnewbies@xxxxxxxxxxxxxxxxx http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies