Having made my own IP stack, i wondered where to next.
And it occurred to me that making a whole web browser sounds like a task akin to making an OS.
It's a program that works with semi-standard data, have it's own flow control, got it's own task control and multitasking (tabs/js threads), got it's own drivers (network, proxy, FTP, TLS/SSL, sound and video codecs and so on), got a whole GUI with a lot of stuff in it (CSS, fonts and what not), got compilers for it (asm.js), and so on.
It's a large, complex thing that encompasses most of the features of an OS, and can even act as one for many not-too-complex use cases.
So, have anyone actually tried to make their own browser?
Is there some sort of a browser-dev community around?
Is it a task that is achievable on amateur level from scratch (in pre-JS days i didn't even think of it as being hard, these days it looks hellishly hard...)?
I've already got most of the backbone pieces - IP stack, TLS, HTTP, HTML parser, image format readers, UTF parser and renderer and so on.
I need to make an HTML renderer (with CSS) to get a basic thing, and a JS engine to operate the HTML to get anything non-trivial going.
Browser-dev?
- Coconut9
- Member
- Posts: 51
- Joined: Sat May 20, 2017 1:25 am
- Location: PCI bus: 3, slot: 9, function: 5
Re: Browser-dev?
Just count the number of html tags and you will find that the browser will be the last application you will make!
How people react when a new update of your OS is coming:
Linux user: Cool, more free stuff!
Mac user: Ooh I have to pay!
Windows user: Ah not again!
Linux user: Cool, more free stuff!
Mac user: Ooh I have to pay!
Windows user: Ah not again!
Re: Browser-dev?
Unfortunately there is no place like osdev.org for browser development. However there is Mozillazine: http://forums.mozillazine.org
They have a development section:
http://forums.mozillazine.org/viewforum.php?f=54
They will probably help you if you're developing a Gecko based browser. If you're writing a browser from scratch then you are on your own.
They have a development section:
http://forums.mozillazine.org/viewforum.php?f=54
They will probably help you if you're developing a Gecko based browser. If you're writing a browser from scratch then you are on your own.
- MajickTek
- Member
- Posts: 101
- Joined: Sat Dec 17, 2016 6:58 am
- Libera.chat IRC: MajickTek
- Location: The Internet
- Contact:
Re: Browser-dev?
I made a browser in VB 2015 but it used Microsoft's webview thing to display [mobile] web pages and used a listbox to store "bookmarks", which were just copied URLs.
Not what you want, i think. To simple
Not what you want, i think. To simple
Last edited by MajickTek on Thu Oct 12, 2017 5:29 am, edited 1 time in total.
Everyone should know how to program a computer, because it teaches you how to think! -Steve Jobs
Code: Select all
while ( ! ( succeed = try() ) );
-
- Member
- Posts: 1146
- Joined: Sat Mar 01, 2014 2:59 pm
Re: Browser-dev?
Probably worth mentioning that a browser doesn't usually implement its own networking, SSL/TLS, or codecs as these are installed separately or are part of the operating system. Networking is part of the operating system (as either part of your kernel or a driver/kernel module depending on the design of your operating system) and codecs may be part of the operating system or may be installed separately as plugins for a particular multimedia API and multimedia applications (web browsers, video players, etc.) can use whatever codecs are installed and compatible with the application but the codecs themselves aren't part of the applications that use them.
The same goes for multithreading/multitasking - this isn't part of the browser itself and usually the browser will use the operating system's own multithreading API.
The same goes for multithreading/multitasking - this isn't part of the browser itself and usually the browser will use the operating system's own multithreading API.
When you start writing an OS you do the minimum possible to get the x86 processor in a usable state, then you try to get as far away from it as possible.
Syntax checkup:
Wrong: OS's, IRQ's, zero'ing
Right: OSes, IRQs, zeroing
Syntax checkup:
Wrong: OS's, IRQ's, zero'ing
Right: OSes, IRQs, zeroing