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.
So, I'm starting the final year of my degree (Bachelors level), and happen to be searching for a final year project. Since we are free to choose whichever field we like, I thought about NLP, Image processing, predictive analytics, and a ton of other areas, before I realised that the area I really would enjoy working on would be something related to Linux... like building my own operating system. Great, right?
Well, there is just one small problem.
It is the question of why I would build an operating system from scratch. Just building it simply for fun wouldn't cut it. The project has 60% for the documentation and research and only 40% for the implementation. I basically need to cite at least three separate papers that say "For these reasons, an operating system like this is necessary"
For example, if I was to build a minimal OS that focuses on being small, I would have to cite someone from some research paper saying that a small OS like this is necessary. And when I get to presenting my project, the professor would undoubtedly ask "What makes your OS special? Puppy Linux can do the same thing, can't it". At this point, I need to be able to defend it by saying something like "My OS is faster than Puppy", then show benchmarks to prove it.
So, this is basically what I want. Since most of you guys have a good idea on building Linux from scratch, and definitely have far more knowledge than me on the domain of Linux, I would like to know a particular purpose as to why I would build a LFS. Perhaps a specialised operating system for some reason? Or perhaps a tiny OS that's a lot more user friendly? I'm all ears!
P.S: I have about 10 months to complete the project. Also, we can't just put together a couple of existing algorithms and call it a project. For example, if I was building a system to recognise cats, just putting together some image recognition libraries would get me nowhere. I need to also add in an algorithm that does something as well (improves accuracy perhaps).
What you have done instead was to post here issuing a request for everyone else to complete your thesis. There's a reason you've been given 10 months to complete this project, and as you cite in your prose, there has to be a reason that is defensible.
If you're interested in a Linux project, you could always find some aspect in which Linux, or some aspect of it, is lacking and implement it. A bit like the projects in Google's Summer of Code (but yours would be 10 months long ). It could involve teaming up with a current project or application.
I'm not sure that LFS would count. After all, it just guides you through the construction of your own Linux distro using the available source code. How much originality are you expected to show? And when you look at the several hundred distros out there, are you sure that you will be able to produce something that is new and worth having?
Linux from scratch won't be small. You'll have build tools, source code, compiled bits, and resulting binaries. And maybe even multiple versions of everything over time.
Linux from scratch is mostly to learn, to optimize (binaries), or to make an OS for an unknown / rare / unsupported architecture (risc-v, mips, powerpc, ..., ..., ...). But mostly it's a waste of time unless you have niche goals and a skillset that needs it. You could in theory gain some performance (< 10% IMO) by optimizing everything specifically for your CPU. It's all kind of relative though. And mostly pointless unless you have bleeding edge hardware on a scale that 1% more performance is significant enough to pay at least one persons yearly salary or more. Since lots of other options already do most of what LFS accomplishes like gentoo or arch with a fraction of the effort.
Yes, it is pretty clear that building a LFS as my final year project is not the best idea. I'm following up on hydrurga's answer to see how I can add to an already existing Linux distro, such as an addition to the shell. Of course, please keep the ideas flowing!
So, I'm thinking something along the lines of creating a specialised NLP model, so that users unfamiliar with linux can still use the terminal using natural language. So to set executable permissions to a file, you could simply type in:
"give file.sh executable permissions", which would run: chmod +x file.sh
I've checked around and so far, it hasn't been done. So what do you guys think? Would a Linux newbie actually use this?
I don't see anything wrong with that direction of proposal, however the first suggestion is that you develop it well enough to present as your proposal, and then see if you can get it accepted as your project.
I'm not sure you need to prove that people would use it. You have discussed that you find it to be unique, therefore whatever research you've done can support this. Your singular example represents your concept well, however you obviously will look to describe your concept in greater scope as well as discussing all possible applications of it which you intend to develop.
Yes, I don't need to necessarily prove that people would use it, but I must be able to cite a research paper written by someone that says "A NLP platform for Linux terminal would be useful" or something along that lines. I have been scouring Google Scholar and Sci-hub the last two days for papers, and so far, nothing has come up. However, as you mentioned, looking at this is a greater scope and showing other applications for this project, I might be able to find something. So I shall continue researching on this. Thanks.
Distribution: Debian testing/sid; OpenSuSE; Fedora; Mint
Posts: 5,524
Rep:
I guess AI is a pretty wide open field. There is definitely need for better AI systems. Perhaps you could do something with IoT devices and AI. You might even be able to make a living off it when you graduate.
Distribution: Ubuntu Linux 16.04, Debian 10, LineageOS 14.1
Posts: 1,572
Rep:
Perhaps the Halium project, which is looking to increase standardization within Linux builds for smart phones. Don't know if it's still active or not though.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.