From lower intermediate to Kernel-level within 1 year??
Linux - NewbieThis Linux forum is for members that are new to Linux.
Just starting out and have a question?
If it is not in the man pages or the how-to's this is the place!
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
From lower intermediate to Kernel-level within 1 year??
Main Request
I need to know the best/fastest/most efficient path/resource(s) to get from what I consider to be lower intermediate Linux user to kernel level within 1 year from today. NOTE: Because of my job I will have hours every day. I want to be someone who can answer many questions on a platform like this instead of asking the questions, and not for the glory, just to be competent.
Context and Background
I recently transitioned from a cybersecurity teacher to a Linux and Network Admin for a very complex network to say the least. Within one year they want me to be at the level of making kernel-level changes to Linux (unspecified distro).
2 years of teaching cybersecurity including ethical hacking. 1 year full stack web dev, Net+, Sec+, A+, and others. BS in cybersecurity and information assurance.
Current Abilities
I have no issues getting around on the terminal, I know what the main directories are used for. I am comfortable installing software with apt, apt-get, yum and so on. I have started VPNs, deployed Django web apps on linux servers in EC2. I have most of the terminal basics down. Not advanced at anything (basics of grep, find, locate, top). I have started services and know the basics of bash scripting. Aware of cron jobs although I have not implemented any myself.
I taught ethical hacking with Kali and I can say that my main OS at this job is Ubuntu right now although it can be any distro I so choose. I have been using Ubuntu ~50% of the time personally for the last year for basic tasks.
Well! I have the goal of knowing that much too, except in the scope of my home network, plus some businesses in which I plan to start or will become employed at.
As for the timeframe, good start, I don't know that much yet, though in different ways, know a lot. But what I would tell them, is, "I'll try, but be willing to give me longer if I need 2 years". 2 years, even from where you are, sounds a bit more realistic, with the first one being an expert at the GUI, and inner workings, a little beyond what an "expert" at Windows would need to know, but applied to Linux, instead.
The whole second year, I'd be learning about programming and kernel workings. If I was exactly where you describe, that's what I would say is more reasonable. On the other hand, you can probably do a lot of work for them with just that knowlege.
If you want a place to look, first try my list of general computer questions, not all of which, I've been the reciever of. Check it out at http://smileynetmain.createaforum.com. As many of the questions can be found here, on this site as well, take a look and just browse this website, which you're on.
Second, try to do a google search for "operating system + create your own". Although that goal is not yours, understanding basic content there, and especially a "Hello World", OS, will help you understand Linux, if you try to "read" it.
Before that, I'm assuming you have a basic knowlege of C++ and C, and ASM. If not, better do that before learning how to create an OS.
All those, would be essential knowlege, and not discrediting what you've already done either, but it would be great to know all of that, in order to begin to be a "kernel expert". Other than that, you are doing fine with what you are learning, and it's a great start! If you could also teach a class later on it, that'd be great, as I know "different" stuff than you. I don't know that I know less than you, but just differnet, when it comes to Linux.
There is no best way. At least there is no general answer to that question, what is good for you probably won't work for me. But anyway, for me the best is to practice. The result obviously will depend on you, if you are really interested.
And actually I don't really know what do you mean by kernel level. Do you want to build customized kernels, or do you want to implement drivers/modules, or what?
He's right! There is no best way! I only could tell you what I thought, but it may or may not be true for you. Do you really want to do it? That will influence whether you CAN do it. Please DO explain what YOU mean by, "kernel level". That will help a little for things, but even when it's explained, it's a bit individual. I could only tell you what would work for me, which I have.
I have to agree with des_a. There can be no "set" time-limit for learning this stuff; we all have different abilities, and as individuals we all learn at a different pace. Different people will in fact 'learn' stuff in alternate ways; one's brain will be wired-up in such a way that they're able to short-circuit a lot of the basic & intermediate steps, and more or less deduce the answers without needing a lot of info. Some take a lateral approach, and often come at problems from an unexpected direction. Another will only be able to achieve the end goal by steadily & diligently plodding through course work, step by step (this applies to more folks than would care to admit to such).
And so on, and so forth...
You have to find a comfortable pace that you yourself are able to learn at. I think it's very unrealistic of an employer to "demand" that you, as an individual, MUST absorb 'x' amount of material in 'y' amount of time with FULL comprehension.....or else. Although if a company's personnel consists almost exclusively of 'high-achievers', I guess it's only natural that the recruiters wouldn't want newcomers to hold the rest of the team back.
(*shrug*)
Good luck, anyway.
Mike.
Last edited by Mike_Walsh; 02-15-2023 at 08:11 AM.
If you like reading books, look for:
Linix system (calls/programming) and Linux kernel
Do you have a large city library near you or like reading PDFs, maybe from internet (ISBN) search?
I got this from my local library plus found a .pdf on the web: https://www.amazon.com/Practical-Lin.../dp/171850196X
Definitely thoroughly study 'How Linux Works' book (pdf's all over the internet)
Let us know what you find that works for you.
Code up simple programs that demonstrate important syscalls (StackExchange may have examples)
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.