• 0

Learning C (Basically for working with Kernals and everything really comple


Question

What is the best book or site where I could learn every aspect of "C"? I've decided next summer that I want to live a little more custom and I want to restructure the way I work. I'm a quick, but thorough person, and I'd like to work with the Linux Kernal from scratch.

Recommended Posts

  • 0

well C alone isnt really gonna help you much if you're dabling with kernels. sure,you can understand the syntax of the source code, but you wont understand what its actually doing. you need way more knowledge before you can tackle that area.

you'd need to know

-assembly language

-cpu architecture,like the registers,memory,interrupts,opcodes,MMU,caches,etc..

-how each component of an operating system works

-how the linux kernel works

and a whole bunch of other stuff.

really you're in for alot of work. you will be reading alot of books and manuals. i'm talking about years and years of learning before you can get to this level. you cant just read books and jump into things. you need to start writing code, start debugging code. it all comes from experience like everyone said.

i was exactly like you when i began learning programming. i was going to do alot of things. and then i realized what i was in for.

  • 0

I'm guessing many of you know or don't know about Codecademy & TutsPlus? I'm studying at both places for JavaScript, Python, Ruby, Objective-C, and many others. And I pretty much have enough patience to have all the intake to understand the differences of each languages. I'm not new to this, I just needed some books and such to get a better understanding, heck I've already started reading C / C++ Primer Plus (5th edition) because I also need to learn C and Objective C for Mobile App development.

Like I said, I'm just trying to be experimental. I've been loving tech since I was little, and I will always love & continue to study what I don't know about tech.

I'm even obsessed with technology that doesn't exist. :shiftyninja:

  • 0

how each component of an operating system works

Good point you need to know the big picture of how a operating system is designed before you build the key component of one.

Doing a quick google search, a quickier route than trying to learn assembly would be taking a look at this:

http://cosmos.codeplex.com/

I haven't used it before but since your trying something ambitious might as well do it in C#.

Im learning JavaScript, Python, Ruby, Objective-C, and many others

That's not good to learn a whole bunch of different languages at once, your not going to retain anything and more than likely you'll just burn yourself out. Focus on one language preferably C/C++/C# and than learning any other language is just a matter of picking up the syntax. Anyone can learn syntax, don't focus too much on that, focus instead on the core concepts of programming and getting something working.

C / C++ Primer Plus (5th edition)

Don't just sit there and copy examples out of book, that's a complete waste of time. I've taught many individuals how to program, and the best way to do it is to only use those books as a reference. Instead come up with something that you want to make, and look up how to do that.

Here is a situation that I'm currently facing that kinda pertains to this, our scripting guys at the studio I work at were having problems coding scripts because obviously they have no way to debug it. So I thought hey i'll write a custom debug engine plugin for Visual Studio. I wasted three days and a Microsoft Support Incident to figure out everything was 100% right, but it kept telling me custom DE wasn't installed. I was like WTF, it took a guy in the Visual Studio division a couple days to figure out the only thing I had to was launch visual studio with the /setup switch :/.

The moral of the story is even if know what your doing stupid things can come up that will discourage you and make you want to quit; I probably would have moved on to something else if I didn't have a MSDN support incident I could use. There isn't any self help guides, or really much other material on Kernel development out there because its usually done by guys that know what to do and what to look for if they need help.

  • 0

I'm not doing them all at once, I'm doing courses 1 by 1 and then moving on to the next language unless I've messed up on a few and that's when I do the whole course all over again until I've got it right.

I don't like to copy code out of a book. Of course I'm going to make my own, all I really wanted was references.

For learning just C. I won't be able to learn it all just yet until I've built up my office. Basically I'm trying to slowly learn it until next summer.

  • 0

moving on to the next language

Why are you moving on to another language? Especially since half of those you mentioned aren't going to help you at all in Kernel development. Stick with ONE maybe two languages at most, become a pro in the syntax, than become a pro in logic. Once you accomplish those two things going to another language is extremely easy.

Listen it looks like your changing some of your points to match what you think we want to hear...we don't care what you do lol. Just take it from someone who's heard the "I'm an awesome guy I can pick up programming by reading all this random crap without applying it anything" over and over again. If your already preficiant in syntax now do something practical. Put down the books, get your ass off of google and download UDK. Now I personally dislike Unreal for a lot of reasons, but my dislikes are mostly on the licensee end doing stuff you won't care enough to do.

Why would I be telling you to make a game when you don't have any goals related to game development?

When teaching programming I find its easier to get someone going when they say can come up with a project, and set milestones/goals for how to get it done. When you start coding each goal you will realize you have no idea whats your doing. So than you do research and you learn how to teach yourself, and you can see on the screen each goal getting accomplished. This teaches logic because your teaching youself.

To whoever mentioned going to college for a computer science degree, if you do pursue this one route there is one reason why I and other employers won't hire new college graduates...they can't figure **** out for themselves. Colleges spoon feed everything to you, and you don't understand how to get your ass on google and search around to figure out whatever it is your doing. This is why I strongly recommend doing the above, once you complete two or three projects with this method I promise you, you will be decently profient in programming. From there you can apprieciate what you want to do now and if its worth it.

  • 0

Everyone when they first start programming usually ask ambisous questions like this

I didn't. I wrote a "hello world", then moved on, through books (as there was not web resource for me back then) to connecting to a local database, to distributing on floppy. I had no lofty goals - I knew what I wanted to do, set myself landmarks to achieve and did.

  • 0

Also, OP... You say you want to write a custom OS by programming with the kernel...

Then when you talk about a custom OS you mention Longhorn (in context of its look and feel).

Please detail what you believe you mean by "custom OS"...

  • 0

As far as learning the language and some basic computer science goes, then K&R's The C Programming Language Second Edition is the bible. You don't have to read the entire book from front to back, but it's an excellent primer if you do. I use it as a reference regularly. In addition to linux man pages and web information of course.

If contributing to the Linux kernel project is your aspiration or desire, then it's easy enough to start submitting small patches to fix bugs, then build up to larger things. I'd recommend taking a look at https://bugzilla.kernel.org/ and see if there's anything you're interested in doing there.

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • Sadly, that is the state of things. It's basically considered acceptable for any random app running on your computer to use 1+ GB of RAM, and install space, lol, no one even seems to consider that.
    • EU Commission explains why Siri AI isn't launching in the EU, and Apple is to blame by Hamid Ganji Image via Apple This week at Apple’s 2026 developers conference, the iPhone maker unveiled the upgraded Siri after more than a year of delays. The new Siri is now called Siri AI, and it's powered by Google Gemini models. While Siri AI is preparing to roll out to Apple users worldwide, the company’s EU customers might need to wait much longer before getting their hands on the new assistant. Shortly after announcing iOS 27, Apple said in a blog post that Siri AI is not coming to the EU anytime soon due to hurdles posed by the Digital Markets Act (DMA) and other regulatory requirements. To comply with the DMA in the EU, Apple apparently needs to open Siri AI to rival assistants on iOS 27 and iPadOS 27. Apple has refused to do so, which has resulted in Siri AI being delayed for its EU users. The company argues that such a move would put users’ privacy at risk. In a statement to Neowin, a European Commission spokesperson provided more details about why Siri AI will not be rolled out to Apple customers in the region. The statement first noted that the DMA does not prohibit Apple from launching its services in the EU and that the company is simply required to comply with the law. The European Commission spokesperson added that, since Apple is considered a gatekeeper under the DMA, it is “obliged to give third parties access to equivalent features as they give to its own products. Because the DMA is precisely about giving users the choice to use the product they find best suits their needs.” Moreover, the spokesperson said the Commission has been in contact with Apple, though the company “did not develop proposals for DMA compliant interoperability solutions.” The statement also clarified that companies designated as gatekeepers cannot leverage their status and products, such as operating systems, to favor their own AI services. The first public beta of iOS 27 will roll out next month, while the stable version is expected to launch this fall following the release of the iPhone 18 series. It remains unclear when Apple will be able to resolve its DMA-related compliance issues with the European Commission and bring Siri AI to its European customers.
    • i wish i could uninstall Chrome from Anrdoid...  
    • XMedia Recode 3.6.3.1 by Razvan Serea XMedia Recode is a free video and audio converter. XMedia Recode supports nearly all audio and video codecs. With XMedia Recode you can easily convert nearly all film and music files in the format you want. Convert for countless devices, select the predefined profile (iPhone, iPad, iPod Touch, Android-Tablets, Sony PSP, Amazon Kindle, Smartphones Blackberry, Wii und DS, Cowon, Android, HTC, Xbox360, Samsung, LG). XMedia Recode converts: 3GP in AVI, 3GP in FLV, AC3 in MP3, AC3 in WAV, ASF in 3GP, ASF in FLV, ASF in MP4, AVI in FLV, AVI in 3GP, FLAC in MP3, FLAC in WMA, FLV in 3GP, FLV in Mp3, DVD in 3GP, DVD in AC3, DVD in AVI, DVD in MP3, DVD in MP4, DVD in MOV, DVD in SVCD, DVD in VCD, DVD in WMV, OGG in MP3, OGG in WMA, MPEG in AVI, MP2 in MP3, MP4 in FLV, MP4 in AVI, M4P in MP3, MOV in 3GP, MOV in AVI, MOV in FLV, WMA in MP3, WMV in FLV, WAV in MP3. Main functions of XMedia Recode: Extracts audio tracks from DVD, Blu-ray and video files Framework also freely selectable color (Padding) Drag-n-drop of video files directly on the encoder Selection display format (1: 1, 3:2, 4:3, 5:4, 5:6, 11:9,16: 9, 16:10, 2.21: 1) Zoom shot (none, type character box, media, Pan Scan, to screen) ''Direct Stream'' copies the audio stream or video stream into the target format 2-Pass-Encoding Volume correction Can change framerate, bit rate, resolution Can extract audio stream of most video formats Produce DVD copies for mobile phones, various mobile devices Edit Video: Color correction Video cut Cropping Denoise Delogo Deblocking De-interlacing Flip Image Start Time End Time Resolution Rotate Image Sepia Sharpness Padding Video fade in / fade out XMedia Recode 3.6.3.1 changelog: Update of ffmpeg Updated AOM AV1 Codec (3.14.1) Fixed minor bugs Download: XMedia Recode 64-bit | Portable ~20.0 MB (Freeware) Download: XMedia Recode 32-bit | Portable View: XMedia Recode Website | Screenshot Get alerted to all of our Software updates on Twitter at @NeowinSoftware
    • This has been on the roadmap for years, nothing really new here. This is one of the few areas where Microsoft is making Windows better. Universal print is a very good things and so far works as expected. The last step is ending the option for 3rd parties to add traditional custom drivers. It is somewhat of a hurdle, but it is for a long-term good. The downside is that printer manufactures are likely going to use this as an excuse to force users onto new printers. Considering this roadmap has been public for years, then printers sold during that time should be covered...but I'm sure they will have a different opinion.
  • Recent Achievements

    • One Month Later
      pinnclepd earned a badge
      One Month Later
    • First Post
      X-No-file earned a badge
      First Post
    • One Month Later
      johnjacobb40 earned a badge
      One Month Later
    • One Year In
      Primer1st earned a badge
      One Year In
    • Experienced
      JayZJay went up a rank
      Experienced
  • Popular Contributors

    1. 1
      +primortal
      508
    2. 2
      PsYcHoKiLLa
      213
    3. 3
      +Edouard
      145
    4. 4
      Steven P.
      86
    5. 5
      ATLien_0
      83
  • Tell a friend

    Love Neowin? Tell a friend!