Page 1 of 2

Why do you write a kernel?

Posted: Mon Oct 17, 2016 4:35 am
by miaowei
Hi, every one.
I want to know how did the thought arise in your heart that you should write an os kernel ?

I write it because i need a way to learn linux kernel and finally get a relevant job.
Some people read to learn . I choose to write.

Of course , there exist some reasons I choose os development as my job:
I like to program under command line, because that way, i can use my lovely total-reflection screen(It doesn't emit light.. i don't know its english name) and e-ink screen, which both perform badly in GUI environment . But they are good for eyes.

And, i don't like writing 'app' or computer games, because i think in that field, programming is not the first thing, a product designer should be more important than programmers.

Maybe i should start my natural science research career in my nineteen :)

What's your reason? Might you tell me ?

Re: Why do you write a kernel?

Posted: Mon Oct 17, 2016 4:37 am
by iansjack
miaowei wrote:Hi, every one.
I want to know how did the thought arise in your heart that you should write an os kernel ?
Because it wasn't there.

Re: Why do you write a kernel?

Posted: Mon Oct 17, 2016 4:41 am
by miaowei
iansjack wrote:
miaowei wrote:Hi, every one.
I want to know how did the thought arise in your heart that you should write an os kernel ?
Because it wasn't there.
Did i make grammar mistakes?
I should use 'why did ..", not 'how did .." ?

Re: Why do you write a kernel?

Posted: Mon Oct 17, 2016 5:10 am
by sebihepp
After I learned programming I was asking myself, how to write code on the lowest level. There had to be a way to execute code without an Operating System. I wanted to know how the hardware is really programmed. How to read from HD? How to access PCI cards? How is all this working together. And how is everything connected electrically? What, if I only have the hardware but no mainboard or any software?

So it was interessted and began to learn digital electronics and microcontroller for hardware, and learning programming an os for the software part. The electronic side is finished now. I know most about it and the rest I can learn myself or search for in the internet. I designed a CPU in a FPGA, I designed circuit boards and realized a "Happy Brithday" playback device, Temperature sensor, using displays, generating VGA signals, programming microcontrollers and, the most important thing, how to read datasheets. (manual for electronic things, mostly digital ICs)
I know about signal delay and the problems of high frequency, etc.

Now I want to programm the hardware directly. I want to control the graphics card and display text and images, read and write from and to harddisk, cdrom, memory... I want to program a Filesystem and enumerate the PCI bus... and so on.

My goal is a small console which can run programs (compiled with gcc). The programs should be able to get fully access to the hardware, so I can quickly try and test things. But to run programs I need more things and a stable specified environment. So I decided to create a small OS for this purpose.

I like what I've learned and what I am still learning on the way there. Today I use Grub to boot a multiboot compatible kernel that uses Paging and Interrupts. One Timer is used for the minimalistic Scheduler and another one for updating the system time via RTC/CMOS. I have a fully working physical and virtual memory manager and I am able to create new threads in kernel or user space.
In future I will program the APIC, VGA, PCI, CDRom, Harddisk, Sound, Filesystem and a console. The exact list of what is planned is on my computer at home.

Next thing is to extend the Scheduler and extend system calls for process handling. And that's were... lets say I lack of motivation in the past half year. After that I plan to implement VGA and PCI. But first I need to wait until I get motivated. :-D

-------------------

Or to say all this in one sentence: I started programming an OS for educational and entertainment purpose. :-)

Re: Why do you write a kernel?

Posted: Mon Oct 17, 2016 5:36 am
by osdever
Just for fun.

Re: Why do you write a kernel?

Posted: Mon Oct 17, 2016 6:51 am
by miaowei
sebihepp wrote:After I learned programming I was asking myself ...Or to say all this in one sentence: I started programming an OS for educational and entertainment purpose. :-)
designing and making a cpu with electronic components like 74HC should be interesting. I also have interest to do such thing in future.

But writing device driver(i.e. what you said, program on hardware) is quite boring, at least for me . During my teenage, i spent quite a lot time on chemistry, I finally didn't to take it as my career, but it seems take away all my curiosity.

Re: Why do you write a kernel?

Posted: Mon Oct 17, 2016 7:29 am
by onlyonemac
I wanted to experiment with some new concepts in OS design.

Re: Why do you write a kernel?

Posted: Mon Oct 17, 2016 7:57 am
by klange
My university offered a course, through the Electrical and Computer Engineering department, in operating systems, which involved a major group project of building a simple OS. I was not allowed to take that course, because I had already received credit from another course that conflicted. I started my OS project out of spite. I graduated four years ago, but the project continues.

Re: Why do you write a kernel?

Posted: Mon Oct 17, 2016 8:09 am
by Mikumiku747
I was interested in low level programming after messing around with Microcontrollers like the ATMega386 and such, and wanted to take on a slightly larger project than logic for some sensor or LEDs. After looking around for a while I thought operating systems might be what I was looking for, and then I stumbled upon the wiki (after seeing a few of those cringeworthy "Make your own OS" sites which let you change the window style of the desktop...), and that was where I really found some nice info and got started on my own kernel like everyone else here.

- Mikumiku747

Re: Why do you write a kernel?

Posted: Mon Oct 17, 2016 8:13 am
by crunch
miaowei wrote:
sebihepp wrote:After I learned programming I was asking myself ...Or to say all this in one sentence: I started programming an OS for educational and entertainment purpose. :-)
designing and making a cpu with electronic components like 74HC should be interesting. I also have interest to do such thing in future.

But writing device driver(i.e. what you said, program on hardware) is quite boring, at least for me . During my teenage, i spent quite a lot time on chemistry, I finally didn't to take it as my career, but it seems take away all my curiosity.
I'm actually a biochemist as my day job. Having a programming background is extremely beneficial if you choose to go into this field - there is a ton of computational analysis work to be done, and not many scientists that are good at programming. However, most of that is going to be high-level language work.
Most of my day-to-day is just normal bench work.
sebihepp wrote:After I learned programming I was asking myself, how to write code on the lowest level. There had to be a way to execute code without an Operating System. I wanted to know how the hardware is really programmed. How to read from HD? How to access PCI cards? How is all this working together. And how is everything connected electrically? What, if I only have the hardware but no mainboard or any software?
This is exactly why I started writing my OS as well. It's the same reason that drove me to my field of study today - how do things work on the lowest level?
Well, actually I first started on it 9 years ago back when I was in high school and then totally forgot about it during college etc. I'm not sure what prompted me to come back... better programming skills?

Re: Why do you write a kernel?

Posted: Mon Oct 17, 2016 8:35 am
by Schol-R-LEA
My original goal was driven by precisely the sort of pure egotism I often criticize others for today: I saw the existing systems of the time (which in 1986 would have been mainly MS-DOS, though I had some very limited exposure to Xenix, AppleDOS, TRS-DOS, GEM, and early versions of MacOS), and with the utter lack of foresight typical of someone in their late teens, decided "I can do better than this". It took me another ten years before I could find even a small part of the information I would need, and by the early 2000s my interest had shifted towards more experimental ideas, while I had matured enough that I realized just how ridiculous my teenaged ambitions really were. I am now focused on exploring new approaches, rather than trying to take over the world, though in practice most of what I actually do is give advice and information (of often dubious quality, I must admit) to those who were where I had been thirty years ago.

Re: Why do you write a kernel?

Posted: Mon Oct 17, 2016 9:25 am
by MichaelFarthing
Just for fun.

Re: Why do you write a kernel?

Posted: Mon Oct 17, 2016 2:00 pm
by Octacone
Learning purposes + fun + self made OS I am willing to use

Re: Why do you write a kernel?

Posted: Mon Oct 17, 2016 4:59 pm
by miaowei
crunch wrote: there is a ton of computational analysis work to be done
biochemistry. I can image it :)

Re: Why do you write a kernel?

Posted: Mon Oct 17, 2016 5:01 pm
by miaowei
Schol-R-LEA wrote:I am now focused on exploring new approaches, rather than trying to take over the world, though in practice most of what I actually do is give advice and information (of often dubious quality, I must admit) to those who were where I had been thirty years ago.
" I'd just be the catcher in the rye and all."