• 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

    • PDF-XChange Editor 11.0.1.0 by Razvan Serea PDF-XChange Editor is a comprehensive PDF editor that allows you to create, view, edit, annotate, and digitally sign PDF documents with ease. With advanced features like OCR, document security, and PDF optimization, PDF-XChange Editor is a powerful tool for both personal and professional use. Whether you need to edit text, images, or links, or add comments, stamps, or watermarks, PDF-XChange Editor provides all the necessary tools to make your PDFs look perfect. Additionally, it supports a wide range of file formats, including PDF, XPS, and DOCX, making it easy to convert and share your documents. PDF-XChange Editor key features: Edit text and images in PDF documents Add and remove pages from PDF files Annotate and markup PDFs with comments, highlights, and stamps Use OCR to convert scanned documents into searchable text Create and fill out PDF forms Sign and certify PDF documents digitally Add and edit hyperlinks within PDFs Extract text and images from PDF files Batch process multiple PDF files at once Customize the interface to your preferences Work with multiple documents in tabs Convert PDFs to other formats such as Word, Excel, and HTML Use advanced redaction tools to permanently remove sensitive information Add customizable headers and footers to PDFs Merge multiple PDF documents into a single file Split PDF documents into multiple files Add watermarks to PDF documents Use the measurement tools to calculate distances and areas in PDFs ....and much more PDF-XChange Editor 11.0.1.0 changelog: Fixed a crash in the new Open/Save dialog box when creating a new folder in an unavailable network path. (49552) Fixed a rare/infrequent crash on some dynamic XFA forms after changing their field values. [installer] Fixed an issue where shortcuts were lost during an upgrade from the previous version. [installer] Fixed an issue preventing migration of serial keys during updates from version 10. Fixed the issues with the shell context menu after installation of version 11. Fixed the issue with filtering comments. (49478) Fixed the issue that caused "Error [IO subsystem]: Invalid access mode." when converting PDFs to MS Office formats. Fixed an issue with the context menu position on some multi-monitor systems. (48467) Fixed an issue with handling complex custom file filters, displayed by JS, in the new Open/Save Files dialog box. (49486) Fixed several issues with the new 'Select Folder' dialog box. (49505) Fixed an issue with the new custom 'Open File' dialog box when using double-click to open it. (49498) Fixed an 'infinite' loop/proliferation in the 'Open Files' and 'Manage Places' dialog boxes. (49526) Fixed an issue with handling the mouse wheel inside the document "Find" box. (49539) Fixed an incorrect behaviour in the 'Go back (Alt+Left)' button in the new Open/Save Files dialog box. (49510) Fixed an issue with the shortcut keys (Alt+Left/Right) after navigating via breadcrumb paths in the new Open/Save Files dialog box. (49554) [installer] Fixed an issue with redrawing the progress text in the EXE installers. Fixed the issue where a mouse click outside of the polyline/polygon context menu during annotation creation would cancel the annotation. (49475) We switched back to using the system Open/Save/SelectFolder dialog box by default, instead of using the new one, because some popular features such as the QuickAccess/Recent items are missing in the new version. These will be added in a future release. Replaced the 'Extension' column in the new Open/Save File dialog box with a more user-friendly 'Type' column. Also fixed some issues when handling the 'Show file extension' option. (49497) Added the ability to authenticate local network shares in the new Open/Save Files dialog box. (49557) Improved the handling of dates after 01.01.2030 in XFA files - now such dates are stored properly when set via the dropdown widget. Flags NoZoom and NoRotate are now respected for only a limited subset of annotations. Download: PDF-XChange Editor (64-bit) | Portable ~300.0 MB (Shareware) Download: PDF-XChange Editor (32-bit) | Portable ~200.0 MB Download: PDF-XChange ARM64 | 276.0 MB Download: PDF-XChange Portable @PortableApps.com | 97.0 MB View: PDF-XChange Editor Website | Screenshot Get alerted to all of our Software updates on Twitter at @NeowinSoftware
    • Still 3x what it should cost. So, it seems the trick is to increase price by 6x so that a reduction in price back to 4x looks like a steal. "You savvy shoppers win again!" I'm glad I'm not in a desperate spot to actually even need this overpriced crap. Hopefully, it comes back down by the time for when (or if) I ever do.
    • Although AI is great and has it's use cases they likely have massively overhyped it and it has not delivered as per their expectations. I fully expect them to start saying the same things again when it does get to a certain level of intelligence!
    • Microsoft wants to end printer driver headaches with Windows Ready Print by Usama Jawad A few days ago, Microsoft released Windows 11 Experimental build 26300.8553, bringing a ton of enhancements such as Start menu customization, search improvements, Taskbar polish, and other minor UI tweaks. Another relatively major enhancement snuck deep within the change log was related to upgrades to the Windows printing experience. Now, Microsoft has shared more details about these benefits. For starters, Microsoft has renamed its Modern Print Platform to Windows Ready Print. The company believes that this name highlights its shift in strategy, which now focuses on modernizing, securing, and streamlining the printing experience for Windows devices. Some of the upgrades present in Windows Ready Print have already been seeded to customers and partners. This includes ending support for third-party printer drivers via Windows Update and transitioning towards the Internet Printing Protocol (IPP) and the native Windows IPP printer driver. In line with these changes, new printer installations will default to Windows Ready Print on eligible devices starting from July 2026. However, Microsoft recognizes that not all environments will be able to migrate to this platform immediately, so it will allow users to choose between installing the printer via Windows Ready Print or the traditional OEM process. Users will be able to toggle this configuration through Settings > Bluetooth & Devices > Printers & Scanners > Printer preferences. This control applies only to new printer installations, and its functionality can also be modified via Group Policy as follows: Launch Group Policy Editor Navigate to Local Computer Policy -> Administrative Templates -> Printers Find and select 'Configure Windows Ready Print driver ranking' -> double click to open it Select 'Enabled' (if you wish to enable Windows Ready Print driver selection) or 'Disabled' (if you wish to explicitly disable Windows Ready Print driver selection). Select Apply Select OK Similarly, if you set up Windows protected print mode through the same setting in Windows 11, it will also default to using Windows Ready Print exclusively. Microsoft hopes that these improvements will help eradicate dependency on OEM-specific driver installation processes and simplify printer installations. We'll likely find out more about other tangible benefits in the coming months.
  • Recent Achievements

    • 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
    • Reacting Well
      Sir_Timbit earned a badge
      Reacting Well
    • Week One Done
      rubentuben8 earned a badge
      Week One Done
  • Popular Contributors

    1. 1
      +primortal
      513
    2. 2
      PsYcHoKiLLa
      231
    3. 3
      +Edouard
      138
    4. 4
      ATLien_0
      87
    5. 5
      Steven P.
      81
  • Tell a friend

    Love Neowin? Tell a friend!